ZGlmZiAtLWdpdCBhL0FVVEhPUlMgYi9BVVRIT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmJhODMxLi4wMDAwMDAwCi0tLSBhL0FVVEhPUlMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1TZWUgdGhlIGZpbGUgQ1JFRElUUy4gIEF1dG9tYWtlIGxpa2VzIHVzIHRvIGhhdmUgdGhpcyBmaWxlIGNhbGxlZCBBVVRIT1JTLgpkaWZmIC0tZ2l0IGEvQW5kcm9pZC5tayBiL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1N2EwMzkuLjAwMDAwMDAKLS0tIGEvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotCi1pZm5lcSAoJChUQVJHRVRfU0lNVUxBVE9SKSx0cnVlKQotCi1MT0NBTF9QQVRIIDo9ICQobXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLSMgRnJvbSBhdXRvY29uZi1nZW5lcmF0ZWQgTWFrZWZpbGUKLXN0cmFjZV9TT1VSQ0VTID0gc3RyYWNlLmMgc3lzY2FsbC5jIHV0aWwuYyBkZXNjLmMgZmlsZS5jIFwKLSAgICAgICAgICAgICAgICAgaW8uYyBpb2N0bC5jIG1lbS5jIG5ldC5jIHByb2Nlc3MuYyBiam0uYyBcCi0gICAgICAgICAgICAgICAgIHJlc291cmNlLmMgc2lnbmFsLmMgc29jay5jIHN5c3RlbS5jIHRlcm0uYyB0aW1lLmMgXAotICAgICAgICAgICAgICAgICBwcm9jLmMgc3RyZWFtLmMKLQotI2V4Y2x1ZGVkX3NvdXJjZXMgPSBpcGMuYwotCi1MT0NBTF9TUkNfRklMRVM6PSAkKHN0cmFjZV9TT1VSQ0VTKQotCi1MT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9Ci0KLUxPQ0FMX0NfSU5DTFVERVMgOj0gXAotCSQoS0VSTkVMX0hFQURFUlMpIFwKLQkkKExPQ0FMX1BBVEgpL2xpbnV4IFwKLQkkKExPQ0FMX1BBVEgpL2FuZHJvaWQvYXJjaC8kKFRBUkdFVF9BUkNIKQotCi1MT0NBTF9DRkxBR1MgOj0gLURIQVZFX0NPTkZJR19IIC1EZF9maWxlbm89ZF9pbm8gLURfTEZTNjRfTEFSR0VGSUxFPTEKLQotaWZlcSAoJChUQVJHRVRfQVJDSCkseDg2KQotTE9DQUxfQ0ZMQUdTICs9IC1VbGludXgKLWVuZGlmCi0KLUxPQ0FMX01PRFVMRSA6PSBzdHJhY2UKLQotTE9DQUxfTU9EVUxFX1BBVEggOj0gJChUQVJHRVRfT1VUX09QVElPTkFMX0VYRUNVVEFCTEVTKQotCi1MT0NBTF9NT0RVTEVfVEFHUyA6PSBkZWJ1ZwotCi1pbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKLQotZW5kaWYgICMgVEFSR0VUX1NJTVVMQVRPUiAhPSB0cnVlCmRpZmYgLS1naXQgYS9DT1BZUklHSFQgYi9DT1BZUklHSFQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3NmJhYzcuLjAwMDAwMDAKLS0tIGEvQ09QWVJJR0hUCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLUNvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLUNvcHlyaWdodCAoYykgMTk5MyBVbHJpY2ggUGVnZWxvdyA8cGVnZWxvd0Btb29yZWEudW5pLW11ZW5zdGVyLmRlPgotQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IE1pY2hhZWwgRWxpemFiZXRoIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+Ci1Db3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLUNvcHlyaWdodCAoQykgMTk5OC0yMDAxIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlZXBoYWNrbW9kZS5vcmc+Ci1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotYXJlIG1ldDoKLTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLTMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi1JTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi1PRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi1OT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotJElkOiBDT1BZUklHSFQsdiAxLjMgMjAwMi8wMy8zMSAxODo0MzowMCB3aWNoZXJ0IEV4cCAkCmRpZmYgLS1naXQgYS9DUkVESVRTIGIvQ1JFRElUUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJiM2M1Zi4uMDAwMDAwMAotLS0gYS9DUkVESVRTCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotVGhlIHByaW1hcnkgYXV0aG9ycyBvZiBzdHJhY2UgYXJlOgotCi0JUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotCUJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotCVJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLVRoYW5rcyB0byB0aGUgZm9sbG93IHBlb3BsZSBmb3IgY29udHJpYnV0aW5nIHRvIHN0cmFjZSBieSByZXBvcnRpbmcKLWJ1Z3MsIHByb3ZpZGluZyBmaXhlcywgcHJvdmlkaW5nIGluZm9ybWF0aW9uLCBwcm92aWRpbmcgcmVzb3VyY2VzIG9yCi1wb3J0aW5nIHRvIG5ldyBzeXN0ZW1zOgotCi0JQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KLQlBcmthZGl1c3ogTWlza2lld2ljeiA8bWlzaWVrQHBsZC5vcmcucGw+Ci0JTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4KLQlMdXBlIENocmlzdG9waCA8bHVwZUBhbGFueWEuaXNhci5tdWMuZGU+Ci0JVGhhbmggTWEgPHRtYUBlbmNvcmUuY29tPgotCUtlaXRoIFRob21wc29uIDxrc3RAYWxzeXMuY29tPgotCVJvbGFuZCBCb3JkZSA8Ym9AdWViZW1jLnNpZW1lbnMuZGU+Ci0JTWF0dCBEYXkgPG1kYXlAYXJ0aXNvZnQuY29tPgotCUpvZSBJbGFjcXVhIDxzcGlrZUB3b3JsZC5zdGQuY29tPgotCUp1InJnZW4gRmx1ayA8bG91aXNAbWFyY28uZGU+Ci0JQm8gS3VsbG1hciA8YmtAa3VsbG1hci5zZT4KLQlMZW9uYXJkIE4uIFp1YmtvZmYgPGxuekBkYW5kZWxpb24uY29tPgotCVJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4KLQlKdWVyZ2VuIFdlaWdlcnQgPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgotCUxpbnVzIFRvcnZhbGRzIDxMaW51cy5Ub3J2YWxkc0Bjcy5IZWxzaW5raS5GST4KLQlNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4KLQlBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4KLQlEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+Ci0JTWF0dGhpYXMgUGZhbGxlciA8bGVvQGRhY2hhdS5tYXJjby5kZT4KLQlUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4KLQlSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgotCVRvbSBEeWFzIDx0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1PgotCUhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPgotCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KLQlVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPgotCU5hdGUgRWxkcmVkZ2UgPG5hdGVAY2FydHN5cy5jb20+Ci0JSmFrdWIgSmVsaW5layA8ampAdWx0cmEubGludXguY3o+Ci0JSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCVJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgotCUZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KLQlELkouIEJhcnJvdyA8ZGpiYXJyb3dAZGUuaWJtLmNvbT4KLQlUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPgotCUdh62wgUm91YWxsYW5kIDxnYWVsLnJvdWFsbGFuZEBpbmFtZS5jb20+Ci0JUmljaGFyZCBIaXJzdCA8cmhpcnN0QGxpbnV4Y2FyZS5jb20+Ci0JR2FuZXNhbiBSYWphZ29wYWwgPHJnYW5lc2FuQG15cmVhbGJveC5jb20+Ci0JR3JlZyBCYW5rcyA8Z2JhbmtzQHBvY2tldHBlbmd1aW5zLmNvbT4KLQlBbmRpIEtsZWVuIDxha0BzdXNlLmRlPgotCU1pY2hhbCBMdWR2aWcgPG1sdWR2aWdAc3VzZS5jej4KLQlIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI1Yjk1Zi4uMDAwMDAwMAotLS0gYS9DaGFuZ2VMb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNjEzICswLDAgQEAKLTIwMDUtMDYtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTIuCi0JKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjEyLTEuCi0KLTIwMDUtMDYtMDggIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQlNaW5vciBuYW1lc3BhY2UgY2xlYW51cC4KLQkqIGRlZnMuaCAoc3RyaW5nX3F1b3RlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgotCSogZmlsZS5jIChvcGVubW9kZXNzb2wpIFtMSU5VWFNQQVJDXTogTWFrZSBzdGF0aWMuCi0JKGZpbGVmbGFncyk6IExpa2V3aXNlLgotCShhY2xjbWRzLCBhY2xpcGMpIFtIQVZFX1NZU19BQ0xfSF06IExpa2V3aXNlLgotCShkaXJlbnR0eXBlcykgW0ZSRUVCU0QgfHwgTElOVVhdOiBMaWtld2lzZS4KLQkoeGF0dHJmbGFncyk6IExpa2V3aXNlLgotCSogcHJvY2Vzcy5jICh1bmFsaWduY3RsX3N0cmluZyk6IE1ha2Ugc3RhdGljLgotCShzZXRhcmcpOiBEaXNhYmxlLgotCSogc3lzY2FsbC5jIChzdWJjYWxsc190YWJsZSk6IE1ha2Ugc3RhdGljLgotCShzb2NrZXRfbWFwKSBbIShMSU5VWCAmJiAoQUxQSEEgfHwgTUlQUykpXTogTGlrZXdpc2UuCi0JKHNwYXJjX3NvY2tldF9kZWNvZGUpOiBNYWtlIHN0YXRpYywgZGVmaW5lIGZvciBbU1BBUkMgfHwgU1BBUkM2NF0gb25seS4KLQkoZGVjb2RlX3N1YmNhbGwpOiBNYWtlIHN0YXRpYy4KLQkoc3lzY2FsbF9maXh1cCk6IExpa2V3aXNlLgotCShnZXRfZXJyb3IpOiBMaWtld2lzZS4KLQkoc3lzY2FsbF9lbnRlcik6IExpa2V3aXNlLgotCSogdXRpbC5jICh0dl90dik6IERpc2FibGUuCi0JKGdldHBjKTogTGlrZXdpc2UuCi0JKHN0cmluZ19xdW90ZSk6IE1ha2Ugc3RhdGljLgotCUZpeGVzIFJIIzE1OTY4OC4KLQotMjAwNS0wNS0xMiAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+Ci0KLQkqIHV0aWwuYyAoZ2V0cGMsIHByaW50Y2FsbCk6IENoZWNrICNpZiBkZWZpbmVkKE02OEspLCBub3QgTTY4ay4KLQlFbmFibGVzIGAtaScgb24gbTY4ayBtYWNoaW5lcy4KLQotMjAwNS0wNi0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbWDg2XzY0XTogUmVvcmRlciBlbGVtZW50cyBzbwotCW1hdGNoaW5nIHdvcmtzIHJpZ2h0LgotCUZpeGVzIFJIIzE1OTc4Ny4KLQotCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0LCBTWVNfYmluZCwgU1lTX2Nvbm5lY3QsIFNZU19saXN0ZW4pCi0JKFNZU19hY2NlcHQsIFNZU19nZXRzb2NrbmFtZSwgU1lTX2dldHBlZXJuYW1lLCBTWVNfc29ja2V0cGFpcikKLQkoU1lTX3NlbmQsIFNZU19yZWN2LCBTWVNfc2VuZHRvLCBTWVNfcmVjdmZyb20sIFNZU19zaHV0ZG93bikKLQkoU1lTX3NldHNvY2tvcHQsIFNZU19nZXRzb2Nrb3B0LCBTWVNfc2VuZG1zZywgU1lTX3JlY3Ztc2cpCi0JKFNZU19nZXRzb2NrbmFtZSwgU1lTX3NlbW9wLCBTWVNfc2VtZ3N1Yl9ldCwgU1lTX3NlbWdldCwgU1lTX3NlbWN0bCkKLQkoU1lTX3NlbXRpbWVkb3AsIFNZU19tc2dzbmQsIFNZU19tc2dyY3YsIFNZU19tc2dnZXQpCi0JKFNZU19tc2djdGwsIFNZU19zaG1hdCwgU1lTX3NobWR0LCBTWVNfc2htZ2V0KQotCShTWVNfc2htY3RsKTogTWFjcm9zIHJlbmFtZWQgdG8gU1lTX3N1Yl8qLgotCSogc3lzY2FsbC5jIChkdW1waW8pOiBNYXRjaCBTWVNfc3ViXyogaWYgZGVmaW5lZCBpbnN0ZWFkIG9mIFNZU18qLgotCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU193YWl0aWQpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IHByZWFkL3B3cml0ZSBuYW1lcyB0byBwcmVhZDY0L3B3cml0ZTY0LgotCi0JKiBkZWZzLmggKHN0cnVjdCBzeXNlbnQpOiBOZXcgbWVtYmVyIGBuYXRpdmVfc2NubycuCi0JKGtub3duX3Njbm8pOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIG5ldyBmaW5hbCBmaWVsZCB0byBpbnRlcmVzdGluZyBzeXNjYWxscy4KLQkqIHN5c2NhbGwuYyAoa25vd25fc2Nubyk6IE5ldyBmdW5jdGlvbi4KLQkoZHVtcGlvLCBpbnRlcm5hbF9zeXNjYWxsLCBzeXNjYWxsX2ZpeHVwLCB0cmFjZV9zeXNjYWxsKTogVXNlIGl0LgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9mb3JrLCBpbnRlcm5hbF9leGl0KTogTGlrZXdpc2UuCi0JW0lBNjRdIChBUkdfU1RBQ0tTSVpFLCBBUkdfUFRJRCwgQVJHX0NUSUQsIEFSR19UTFMpOiBMaWtld2lzZS4KLQkqIHN0cmFjZS5jIChwcm9jX29wZW4pOiBMaWtld2lzZS4KLQkqIHV0aWwuYyBbTElOVVhdIChzZXRicHQpOiBMaWtld2lzZS4KLQkqIGxpbnV4L3N5c2NhbGwuaDogUmVtb3ZlIFshZGVmaW5lZChYODZfNjQpXSBmcm9tIGNvbmRpdGlvbmFsCi0JZm9yIGRlZmluaW5nIFNZU19zb2NrZXRfc3ViY2FsbCBldCBhbC4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UgZm9yICNlcnJvciBjaGVjay4KLQkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IExpa2V3aXNlIGZvciBTWVNfe3NvY2tldGNhbGwsaXBjfSBjYXNlcy4KLQlGaXhlcyBSSCMxNTg5MzQuCi0KLTIwMDUtMDYtMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGZpbGUuYyAocHJpbnRzdGF0ZnM2NCk6IENhc3QgdmFsdWVzIHRvIHVuc2lnbmVkIGxvbmcgbG9uZyBhbmQgdXNlCi0JJWxsdSBmb3JtYXRzLgotCUZpeGVzIFJIIzE1ODI0My4KLQotMjAwNS0wNS0zMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KLQotCURlYWwgd2l0aCBtZW1vcnkgbWFuYWdlbWVudCBpc3N1ZXMuCi0JKiBkZWZzLmggKHRwcmludF9pb3YpOiBVcGRhdGUgcHJvdG90eXBlLgotCSogZGVzYy5jIChzeXNfZXBvbGxfd2FpdCkgW0hBVkVfU1lTX0VQT0xMX0hdOiBEbyBub3QgYWxsb2NhdGUKLQllcG9sbF9ldmVudCBhcnJheSBvZiBhcmJpdHJhcnkgc2l6ZSBvbiB0aGUgc3RhY2ssIHRvIGF2b2lkCi0Jc3RhY2sgb3ZlcmZsb3cuCi0JKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZwotCW1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCi0JKiBpby5jICh0cHJpbnRfaW92KSBbSEFWRV9TWVNfVUlPX0hdOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdwotCWR1cmluZyBtYWxsb2Mgc2l6ZSBjYWxjdWxhdGlvbiwgdG8gYXZvaWQgaGVhcCBjb3JydXB0aW9uLgotCUNoYW5nZSBpb3ZlYyBhcnJheSBoYW5kbGluZyB0byBhdm9pZCBoZWFwIG1lbW9yeSBhbGxvY2F0aW9uLgotCSogbWVtLmMgKGdldF9ub2RlcykgW0xJTlVYXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCi0Jc2l6ZSBjYWxjdWxhdGlvbiBhbmQgZG8gbm90IGFsbG9jYXRlIGFycmF5IG9mIGFyYml0cmFyeSBzaXplIG9uCi0JdGhlIHN0YWNrLCB0byBhdm9pZCBzdGFjayBvdmVyZmxvdy4KLQkqIG5ldC5jIChwcmludGNtc2doZHIpIFtIQVZFX1NFTkRNU0ddOiBEbyBub3QgYWxsb2NhdGUgYXJyYXkgb2YKLQlhcmJpdHJhcnkgc2l6ZSBvbiB0aGUgc3RhY2ssIHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93LiAgRG8gbm90Ci0JdHJ1c3QgY21zZy5jbXNnX2xlbiB0byBhdm9pZCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIGFsbG9jYXRlZAotCW9iamVjdC4KLQkocHJpbnRtc2doZHIpIFtIQVZFX1NFTkRNU0ddOiBVcGRhdGUgdHByaW50X2lvdigpIHVzYWdlLgotCSogcHJvY2Vzcy5jIChzeXNfc2V0Z3JvdXBzKTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCi0JbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4gIENoYW5nZSBnaWRfdAotCWFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCi0JKHN5c19nZXRncm91cHMpOiBMaWtld2lzZS4KLQkoc3lzX3NldGdyb3VwczMyKSBbTElOVVhdOiBMaWtld2lzZS4KLQkoc3lzX2dldGdyb3VwczMyKSBbTElOVVhdOiBMaWtld2lzZS4KLQkqIHN0cmVhbS5jIChzeXNfcG9sbCkgW0hBVkVfU1lTX1BPTExfSF06IENoZWNrIGZvciBpbnRlZ2VyCi0Jb3ZlcmZsb3cgZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCi0JQ2hhbmdlIHBvbGxmZCBhcnJheSBoYW5kbGluZyB0byBhdm9pZCBoZWFwIG1lbW9yeSBhbGxvY2F0aW9uLgotCSogc3lzdGVtLmMgKHN5c19zeXNjdGwpIFtMSU5VWF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93Ci0JZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCi0JKiB1dGlsLmMgKGR1bXBpb3YpIFtIQVZFX1NZU19VSU9fSF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93Ci0JZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCi0JRml4ZXMgUkgjMTU5MTk2LgotCi0JKiB1dGlsLmMgKHByaW50eHZhbCk6IENoYW5nZSB0aGlyZCBhcmd1bWVudCBmcm9tICJjaGFyICoiIHRvCi0JImNvbnN0IGNoYXIgKiIuCi0JKHByaW50ZmxhZ3MpOiBBZGQgdGhpcmQgYXJndW1lbnQsICJjb25zdCBjaGFyICoiLCB3aXRoIHNpbWlsYXIKLQltZWFuaW5nIHRvIHRoZSB0aGlyZCBhcmd1bWVudCBvZiBwcmludHh2YWwoKS4KLQkqIGRlZnMuaCAocHJpbnR4dmFsKTogQ2hhbmdlIHRoaXJkIGFyZ3VtZW50IGZyb20gImNoYXIgKiIgdG8KLQkiY29uc3QgY2hhciAqIi4KLQkocHJpbnRmbGFncyk6IEFkZCB0aGlyZCBhcmd1bWVudC4KLQkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKSBbTElOVVhdOiBQYXNzIHRoaXJkIGFyZ3VtZW50IHRvCi0JcHJpbnRmbGFncygpLgotCSogZGVzYy5jIChzeXNfZmNudGwpOiBMaWtld2lzZS4KLQkoc3lzX2Zsb2NrKSBbTE9DS19TSF06IExpa2V3aXNlLgotCShwcmludF9lcG9sbF9ldmVudCkgW0hBVkVfU1lTX0VQT0xMX0hdOiBMaWtld2lzZS4KLQkqIGZpbGUuYyAoc3lzX29wZW4pOiBMaWtld2lzZS4KLQkoc29sYXJpc19vcGVuKSBbTElOVVhTUEFSQ106IExpa2V3aXNlLgotCShzeXNfYWNjZXNzKTogTGlrZXdpc2UuCi0JKHN5c19jaGZsYWdzLCBzeXNfZmNoZmxhZ3MpIFtGUkVFQlNEXTogTGlrZXdpc2UuCi0JKHJlYWxwcmludHN0YXQpIFtIQVZFX0xPTkdfTE9OR19PRkZfVCAmJgotCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KLQkocHJpbnRzdGF0NjQpIFtIQVZFX1NUQVQ2NCAmJgotCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KLQkoc3lzX3NldHhhdHRyLCBzeXNfZnNldHhhdHRyKTogTGlrZXdpc2UuCi0JKiBpcGMuYyAoc3lzX21zZ2dldCwgc3lzX21zZ3NuZCwgc3lzX21zZ3Jjdiwgc3lzX3NlbWdldCwKLQlzeXNfc2htZ2V0LCBzeXNfc2htYXQpIFtMSU5VWCB8fCBTVU5PUzQgfHwgRlJFRUJTRF06IExpa2V3aXNlLgotCShzeXNfbXFfb3BlbikgW0xJTlVYXTogTGlrZXdpc2UuCi0JKHByaW50bXFhdHRyKSBbSEFWRV9NUVVFVUVfSF06IExpa2V3aXNlLgotCSogbWVtLmMgKHByaW50X21tYXApIFshSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KLQkoc3lzX21tYXA2NCkgW19MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KLQkoc3lzX21wcm90ZWN0KTogTGlrZXdpc2UuCi0JKHN5c19tcmVtYXAsIHN5c19tYWR2aXNlLCBzeXNfbWxvY2thbGwpIFtMSU5VWF06IExpa2V3aXNlLgotCShzeXNfbXN5bmMpIFtNU19BU1lOQ106IExpa2V3aXNlLgotCShzeXNfbWN0bCkgW01DX1NZTkNdOiBMaWtld2lzZS4KLQkoc3lzX3JlbWFwX2ZpbGVfcGFnZXMsIHN5c19tYmluZCwgc3lzX2dldF9tZW1wb2xpY3kpIFtMSU5VWF06Ci0JTGlrZXdpc2UuCi0JKiBuZXQuYyAocHJpbnRtc2doZHIpIFtIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0xdOiBMaWtld2lzZS4KLQkoc3lzX3NlbmQsIHN5c19zZW5kdG8pOiBMaWtld2lzZS4KLQkoc3lzX3NlbmRtc2cpIFtIQVZFX1NFTkRNU0ddOiBMaWtld2lzZS4KLQkoc3lzX3JlY3YsIHN5c19yZWN2ZnJvbSk6IExpa2V3aXNlLgotCShzeXNfcmVjdm1zZykgW0hBVkVfU0VORE1TR106IExpa2V3aXNlLgotCShwcmludGljbXBmaWx0ZXIpIFtJQ01QX0ZJTFRFUl06IExpa2V3aXNlLgotCSogcHJvYy5jIChwcm9jX2lvY3RsKSBbU1ZSNCAmJiAhSEFWRV9NUF9QUk9DRlMgfHwgRlJFRUJTRF06IExpa2V3aXNlLgotCSogcHJvY2Vzcy5jIChzeXNfY2xvbmUpIFtMSU5VWF06IExpa2V3aXNlLgotCShwcmludHdhaXRuKTogTGlrZXdpc2UuCi0JKHN5c193YWl0aWQpIFtTVlI0IHx8IExJTlVYXTogTGlrZXdpc2UuCi0JKiBzaWduYWwuYyAoc3lzX3NpZ3ZlYykgW1NVTk9TNCB8fCBGUkVFQlNEXTogTGlrZXdpc2UuCi0JKHN5c19zaWdhY3Rpb24pOiBMaWtld2lzZS4KLQkocHJpbnRjb250ZXh0KSBbU1ZSNF06IExpa2V3aXNlLgotCShwcmludF9zdGFja190KSBbTElOVVgpIHx8IEZSRUVCU0RdOiBMaWtld2lzZS4KLQkoc3lzX3J0X3NpZ2FjdGlvbikgW0xJTlVYXTogTGlrZXdpc2UuCi0JKiBzb2NrLmMgKHNvY2tfaW9jdGwpIFtMSU5VWF06IExpa2V3aXNlLgotCSogc3RyZWFtLmMgKHN5c19wdXRtc2csIHN5c19nZXRtc2cpOiBMaWtld2lzZS4KLQkoc3lzX3B1dHBtc2cpIFtTWVNfcHV0cG1zZ106IExpa2V3aXNlLgotCShzeXNfZ2V0cG1zZykgW1NZU19nZXRwbXNnXTogTGlrZXdpc2UuCi0JKHN5c19wb2xsKTogTGlrZXdpc2UuCi0JKHByaW50X3RyYW5zcG9ydF9tZXNzYWdlKSBbVElfQklORF06IExpa2V3aXNlLgotCShzdHJlYW1faW9jdGwpOiBMaWtld2lzZS4KLQkqIHN5c3RlbS5jIChzeXNfbW91bnQsIHN5c19yZWJvb3QpOiBMaWtld2lzZS4KLQkoc3lzX2NhY2hlZmx1c2gpIFtMSU5VWCAmJiBNNjhLXTogTGlrZXdpc2UuCi0JKHN5c19jYXBnZXQsIHN5c19jYXBzZXQpIFtTWVNfY2FwZ2V0XTogTGlrZXdpc2UuCi0JKiB0ZXJtLmMgKHRlcm1faW9jdGwpIFtUSU9DTUdFVF06IExpa2V3aXNlLgotCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfc2V0dGltZSkgW0xJTlVYXToKLQlMaWtld2lzZS4KLQlGaXhlcyBSSCMxNTkzMTAuCi0KLQkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKSBbTElOVVhdOiBVbml0aXplICJvdXQgb2YgbWVtb3J5IgotCWVycm9ycyByZXBvcnRpbmcgc3R5bGUuCi0JKiBzdHJhY2UuYyAocmVidWlsZF9wb2xsdikgW1VTRV9QUk9DRlNdOiBMaWtld2lzZS4KLQkqIHN5c3RlbS5jIChzeXNfY2FwZ2V0LCBzeXNfY2Fwc2V0KSBbU1lTX2NhcGdldF06IExpa2V3aXNlLgotCSogdXRpbC5jIChwcmludHN0cik6IExpa2V3aXNlLgotCShkdW1waW92KSBbSEFWRV9TWVNfVUlPX0hdOiBMaWtld2lzZS4KLQkoZml4dmZvcmspIFtTVU5PUzRdOiBMaWtld2lzZS4KLQkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IENvbnRpbnVlIHRvIGRlY29kZSBzeXNjYWxsIGFyZ3VtZW50cwotCWluIGNhc2Ugb2YgT09NIGNvbmRpdGlvbi4KLQkqIGZpbGUuYyAoc3lzX2dldGRlbnRzKTogTGlrZXdpc2UuCi0JKHN5c19nZXRkZW50czY0KSBbX0xGUzY0X0xBUkdFRklMRV06IExpa2V3aXNlLgotCShzeXNfZ2V0ZGlyZW50cmllcykgW0ZSRUVCU0RdOiBMaWtld2lzZS4KLQkqIG1lbS5jIChzeXNfbWluY29yZSk6IENoYW5nZWQgdHlwZSBvZiB2YXJpYWJsZXMgd2hpY2ggZGVhbCB3aXRoCi0JbWFsbG9jIHNpemUgZnJvbSBpbnQgdG8gdW5zaWduZWQgbG9uZy4KLQlGaXhlcyBSSCMxNTkzMDguCi0KLTIwMDUtMDUtMjIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIGJqbS5jIFtMSU5VWF06IERvIG5vdCBpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+LiAgSXQgaXMgbm90Ci0Jc2FmZSB0byBpbmNsdWRlIGtlcm5lbCBoZWFkZXJzLCBhbmQgdGhpcyBvbmUgaXMgbm90IHVzZWQgYW55d2F5LgotCUZpeGVzIFJIIzE1ODQ4OC4KLQotMjAwNS0wNS0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzdGVtLmMgKHN5c19zeXNjdGwpOiBDaGVjayBmb3IgZXJyb3JzIGFjY2Vzc2luZyB1c2VyIHBvaW50ZXJzLgotCVVzZSBtYWxsb2MgaW5zdGVhZCBvZiBhbGxvY2EgaW4gY2FzZSBzaXplIGlzIGluc2FuZS4KLQotMjAwNS0wNS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgbGliYWlvLmguCi0JKiBkZXNjLmMgKHN5c19pb19zZXR1cCwgc3lzX2lvX3N1Ym1pdCwgc3lzX2lvX2NhbmNlbCwKLQlzeXNfaW9fZ2V0ZXZlbnRzLCBzeXNfaW9fZGVzdHJveSk6IE5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHRob3NlIGZvciBpb18qIHN5c2NhbGxzLgotCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQlGcm9tIFphY2ggQnJvd24gPHphY2guYnJvd25Ab3JhY2xlLmNvbT4uCi0JRml4ZXMgUkgjMTU1MDY1LgotCi0JKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIHBwYzY0LgotCUZpeGVzIERlYmlhbiBidWcgIzMwMTA4OS4KLQotMjAwNS0wNS0wNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgotCi0JKiBwcm9jZXNzLmMgKHB0cmFjZV9jbWRzKTogQWRkIFBUUkFDRV9HRVRWUlJFR1MgYW5kIFBUUkFDRV9TRVRWUlJFR1MKLQlpZiBkZWZpbmVkLgotCi0yMDA1LTA1LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuYyAobWFpbik6IFJlZnVzZSBuZWdhdGl2ZSAtcyBhcmd1bWVudCB2YWx1ZS4KLQlGaXhlcyBEZWJpYW4gYnVnICMzMDMyNTYuCi0KLTIwMDUtMDQtMjUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogZmlsZS5jIChvcGVubW9kZXMpOiBBZGQgT19OT0FUSU1FIGZsYWcgaWYgZGVmaW5lZC4KLQotMjAwNS0wNC0wNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgotCi0JKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGVkLgotCi0JKiBzaWduYWwuYyAoc2lnbmFtZSk6IERvbid0IHRyeSBhbmQgZGVyZWZlcmVuY2UgbmVnYXRpdmUgaW5kZXguCi0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgZGVidWdfc2V0Y29udGV4dCwgdnNlcnZlciwKLQltYmluZCwgKl9tZW1wb2xpY3ksIG1xXyosIHN5c19rZXhlY19sb2FkLCBhZGRfa2V5LCByZXF1ZXN0X2tleSwKLQlrZXljdGwsIHdhaXRpZCwgc3lzX3NlbXRpbWVkb3AuICBGaXggdmFyaW91cyBvdGhlciBzeXNjYWxscy4KLQotCSogaXBjLmMgKHNobV9yZXNvdXJjZV9mbGFncyk6IE5ldyB2YXJpYWJsZSwgdGFibGUgaGFzIFNITV9IVUdFVExCCi0JYnV0IG5vdCBJUENfTk9XQUlULCB3aGljaCBoYXZlIHRoZSBzYW1lIHZhbHVlLgotCShzeXNfc2htZ2V0KTogVXNlIHRoYXQgaW5zdGVhZCBvZiByZXNvdXJjZV9mbGFncy4KLQotMjAwNS0wMy0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0KTogSW5jcmVhc2UgbG9jYWwgYnVmZmVyIHNpemUuCi0JRml4ZXMgUkgjMTUxNTcwLgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjExLgotCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xMS0xLgotCi0JKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBGaXggMTEzIGVudHJ5IChzeXNjYWxsLCBub3Qgdm04Nm9sZCkuCi0KLTIwMDUtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTAuCi0JKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjEwLTEuCi0KLTIwMDUtMDItMjYgIEdPVE8gTWFzYW5vcmkgIDxnb3RvbUBkZWJpYW4ub3IuanA+Ci0KLQkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogRml4IHRoZSByZXZlcnNlZCBvcmRlciBvZiBsc3RhdDY0IGFuZAotCWZzdGF0NjQuICBDbGVhbiB1cCBvc2ZfbnJlY3Ztc2cgYW5kIG9zZl9uZ2V0c29ja25hbWUuCi0KLTIwMDUtMDItMjggIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+Ci0KLQkqIHN5c2NhbGwuYyAoZ2V0cnZhbDIpOiBNb3ZlICNpZmRlZiBJQTY0IGluc2lkZSAjaWZkZWYgTElOVVguCi0KLTIwMDUtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBVcGRhdGUgdmFyaW91cyBjYWxscy4KLQlGcm9tIFRoaWVtbyBTZXVmZXIgPHRoc0BuZXR3b3Jrbm8uZGU+LgotCUZpeGVzIERlYmlhbiBidWcgIzI1NjY4NC4KLQotCSogZGViaWFuL2NvbnRyb2wgKEFyY2hpdGVjdHVyZSk6IEFkZCBzMzkwLgotCUZpeGVzIERlYmlhbiBidWcgIzI5NDE3Mi4KLQotMjAwNS0wMy0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLmMgKHRyYWNlKSBbUFRSQUNFX0dFVFNJR0lORk9dOiBGZXRjaCBzaWdpbmZvX3QgZm9yIFNJR1NFR1YKLQlhbmQgU0lHQlVTIHNpZ25hbHMsIHVzZSBzaV9hZGRyIGluIG91dHB1dC4KLQotMjAwNS0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBBZGQgYSBjYXN0LgotCi0yMDA1LTAyLTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBDYWxjdWxhdGUgc2l6ZSBvZiBwYXNzZWQgZmRfc2V0IHZlY3RvcnMgYW5kCi0JY29weSBpbiB0aGUgdXNlcidzIHNpemUgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIHNpemVvZihmZF9zZXQpLgotCUZpeGVzIERlYmlhbiBidWcgIzY1NjU0LCAjMjg0MjkwLgotCi0JKiB1dGlsLmMgKHByaW50cGF0aCwgcHJpbnRwYXRobik6IFByaW50IE5VTEwgYW5kIGRvbid0IHRyeSBhbnkgZmV0Y2gKLQl3aGVuIEFERFIgaXMgemVyby4KLQlGaXhlcyBEZWJpYW4gYnVnICM2MzA5My4KLQotCSogZGViaWFuL2NvbnRyb2wgKEJ1aWxkLURlcGVuZHMpOiBGaXggZm9yIHMzOTAgYW5kIHNwYXJjLgotCUZyb20gQmFzdGlhbiBCbGFuayA8d2FsZGlAZGViaWFuLm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjkzNTY0LgotCi0yMDA0LTEyLTE5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzdHJhY2UuYyAobWFpbikgWyFVU0VfUFJPQ0ZTXTogSW4gY2hpbGQgcHJvY2VzcywgcmFpc2UgU0lHU1RPUAotCXJpZ2h0IGJlZm9yZSBleGVjdigpIGNhbGwuICBSZW1vdmUgZmFrZV9leGVjdmUoKSBjYWxsLgotCSogZGVmcy5oIChmYWtlX2V4ZWN2ZSk6IFJlbW92ZSB1bnVzZWQgZGVjbGFyYXRpb24uCi0JKiBwcm9jZXNzLmMgKGZha2VfZXhlY3ZlKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KLQlGaXhlcyBSSCMxNDMzNjUuCi0KLTIwMDUtMDItMDQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuOS4KLQkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuOS0yLgotCi0JKiBmaWxlLmMgKE9fTEFSR0VGSUxFKTogT21pdCB3aGVuICN1bmRlZidkIGJlY2F1c2UgaXQgd2FzIHplcm8uCi0KLTIwMDUtMDItMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGRlYmlhbi9jb250cm9sOiBBZGQgc3RyYWNlLXVkZWIgcGFja2FnZSBmb3IgaW5zdGFsbGVyIGRlYnVnZ2luZy4KLQkqIGRlYmlhbi9ydWxlcyAoYmluYXJ5LWFyY2gpOiBCdWlsZCBpdC4KLQlGcm9tIEpvc2h1YSBLd2FuIDxqb3Noa0B0cmlwbGVoZWxpeC5vcmc+LgotCUZpeGVzIERlYmlhbiBidWcgIzI2ODI5NC4KLQotCSogZmlsZS5jIChvcGVubW9kZXMpIFtPX0xBUkdFRklMRV0gW09fTEFSR0VGSUxFID09IDBdOiBSZWRlZmluZSB0bwotCWtub3duIHZhbHVlcyBmb3IgTGludXguCi0KLQkqIHV0aWwuYyAocHJpbnRjYWxsKTogUHJpbnQgMTYgP3Mgd2hlbiBsb25nIGlzIDggYnl0ZXMuCi0JRml4ZXMgUkgjMTQ2OTMyLgotCi0JKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2Vwb2xsX2NyZWF0ZSwgc3lzX2Vwb2xsX2N0bCwKLQlzeXNfZXBvbGxfd2FpdC4KLQkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbC5oOiBKdXN0ICNpbmNsdWRlICIuLi9zcGFyYy9zeXNjYWxsLmgiIGhlcmUuCi0JKiBpb2N0bC5jIChuaW9jdGxlbnRzMik6IEFkZCBjb25zdCB0byB0eXBlLgotCUZpeGVzIERlYmlhbiBidWcgIzI3ODQ0OS4KLQotCSogc29jay5jIChpZmZmbGFncyk6IE5ldyB2YXJpYWJsZSwgdGFibGUgb2YgSUZGXyogdmFsdWVzLgotCShwcmludF9hZGRyKTogTmV3IGZ1bmN0aW9uLgotCShzb2NrX2lvY3RsKTogSGFuZGxlIFNJT0NHSUZBRERSLCBTSU9DR0lGRFNUQUREUiwgU0lPQ0dJRkJSREFERFIsCi0JU0lPQ0dJRk5FVE1BU0ssIFNJT0NHSUZGTEFHUywgU0lPQ0dJRk1FVFJJQywgU0lPQ0dJRk1UVSwgU0lPQ0dJRlNMQVZFLAotCVNJT0NHSUZIV0FERFIuCVVzZSBwcmludF9hZGRyIGZvciBTSU9DR0lGQ09ORiwgU0lPQ0dJRk5BTUUsIGFuZAotCVNJT0NHSUZJTkRFWCwgYW5kIGZpeCB0aGVpciBvdXRwdXQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzgyMjMuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMTkyMTY0LgotCi0yMDA0LTEyLTIwICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBjb25maWd1cmUuYWM6IFVzZSBBQ19HTlVfU09VUkNFIG1hY3JvIGluc3RlYWQgb2YgY2hhbmdpbmcgQ0ZMQUdTLgotCSogZGVmcy5oIFtIQVZFX0NPTkZJR19IXTogSW5jbHVkZSBjb25maWcuaCBmaXJzdC4KLQkqIHN0cmFjZS5jOiBJbmNsdWRlICJkZWZzLmgiIGZpcnN0LgotCUZpeGVzIFJIIzE0MzM3MC4KLQotCSogc3lzY2FsbC5jIChjYWxsX3N1bW1hcnkpOiBGaXggcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2UuCi0JRml4ZXMgUkgjMTQzMzY5LgotCi0yMDA0LTEyLTE5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzeXNjYWxsLmMgKHF1YWxfc2lnbmFsKTogQ2hlY2sgYm91bmRzIGZvciBudW1lcmljIHNpZ25hbCBuYW1lcy4KLQlGaXggcGFyc2VyIG9mIHN5bWJvbGljIHNpZ25hbCBuYW1lcy4KLQlGaXggcmV0dXJuIGNvZGUsIGFzIHJlcXVpcmVkIGJ5IHF1YWxpZnkoKSBmdW5jdGlvbi4KLQkqIHN5c2NhbGwuYyAocXVhbF9kZXNjKTogQ2hlY2sgYm91bmRzIGZvciBkZXNjcmlwdG9yIG51bWJlci4KLQkqIHN5c2NhbGwuYyAocXVhbF9zeXNjYWxsKTogQ29ycmVjdCByZXR1cm4gY29kZSwgdG8gYmUgY29uc2lzdGVudAotCXdpdGggcXVhbGlmeSgpIGFuZCBvdGhlciBxdWFsXyogZnVuY3Rpb25zLgotCUZpeGVzIFJIIzE0MzM2Mi4KLQotMjAwNS0wMi0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzdGVtLmMgW0xJTlVYXSAoTVNfTUFORExPQ0ssIE1TX05PQVRJTUUsIE1TX05PRElSQVRJTUUsIE1TX0JJTkQsCi0JTVNfTU9WRSwgTVNfUkVDLCBNU19WRVJCT1NFLCBNU19QT1NJWEFDTCwgTVNfQUNUSVZFLCBNU19OT1VTRVIpOgotCU5ldyBtYWNyb3MuCi0JW0xJTlVYXSAobW91bnRfZmxhZ3MpOiBBZGQgdGhlbS4KLQlbTElOVVhdIChzeXNfbW91bnQpOiBJZiBhbnkgb2YgKE1TX0JJTkR8TVNfTU9WRXxNU19SRU1PVU5UKSBiaXRzIGFyZQotCXNldCBpbiB0aGUgZmxhZ3MgYXJndW1lbnQsIGRvbid0IHRyeSB0byBmZXRjaCB0aGUgZmlsZXN5c3RlbSBzdHJpbmcuCi0JRml4ZXMgUkgjMTQxOTMyLgotCi0JKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGNhbm9uaWNhbCB2ZXJzaW9uLCB0aW1lc3RhbXAgMjAwNC0xMS0xMi4KLQkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwNC0xMS0zMC4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gW1g4Nl82NF0gKHN5c19hcmNoX3ByY3RsKTogTmV3IGZ1bmN0aW9uLgotCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIGl0LgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogVXNlIGl0LgotCVBhcnQgb2YgUkgjMTQyNjY3LgotCi0JKiBwcm9jZXNzLmMgKHN5c19zY2hlZF9zZXRzY2hlZHVsZXIpOiBVc2UgJSNseCBmb3JtYXQgZm9yIGJhZCBwb2ludGVyLgotCShzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRwYXJhbSk6IExpa2V3aXNlLgotCVBhcnQgb2YgUkgjMTQyNjY3LgotCi0JKiBzaWduYWwuYyBbSEFWRV9TSUdBQ1RJT05dIFtMSU5VWCAmJiBYODZfNjRdIChTQV9SRVNUT1JFUik6IERlZmluZQotCWhlcmUgdG9vLgotCVBhcnQgb2YgUkgjMTQyNjY3LgotCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfbWluY29yZSBpbnN0ZWFkIG9mIHByaW50YXJncy4KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLiAgQWxzbyB1c2Ugc3lzX2dldHJsaW1pdCwKLQlzeXNfc2VtdGltZWRvcCwgc3lzX3Vtb3VudDIuCi0JUGFydCBvZiBSSCMxNDI2NjcuCi0KLQkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBGaXggaW52ZXJ0ZWQgcmV0dXJuIHZhbHVlIGFuZCBib2d1cwotCWFyZ3VtZW50IHRvIHF1YWxpZnlfb25lIGluIHRoZSBuYW1lZCBjYXNlLgotCi0JKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IERvbid0IHVzZSBhdXRvIGFycmF5IHNpemVkIGJ5IHN5c2NhbGwKLQlhcmd1bWVudC4gIFVzZSBtYWxsb2MgaW5zdGVhZCwgc28gaXQgY2FuIGZhaWwgZm9yIGluc2FuZSB2YWx1ZXMuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjgzNzA0LgotCi0JKiBuZXQuYyAoc3lzX2dldHNvY2tvcHQpOiBGaXggYSBmb3JtYXQgJWxkIC0+ICVkLgotCi0JKiBsaW51eC9zeXNjYWxsLmggW0lBNjRdIChTWVNfc2VtdGltZWRvcCk6ICN1bmRlZiBpdC4KLQotCSogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKSBbWDg2XzY0XTogRml4IDMyLWJpdCBhcmd1bWVudCByZWdpc3RlciBtYXAKLQlub3QgdG8gZG91YmxlIHRoZSBtaWRkbGUgZW50cnkhCi0JRml4ZXMgUkgjMTQ2MDkzLgotCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBGaXggZXhpdF9ncm91cCBlbnRyeS4KLQotCSogdXRpbC5jIChnZXRwYykgW1MzOTAgfHwgUzM5MFhdOiBJbXBsZW1lbnQgaXQuCi0JUGF0Y2ggYnkgRGF2aWQgV2lsZGVyIDx3aWxkZXJAdXMuaWJtLmNvbT4uCi0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgZmFkdmlzZTY0LCBmc3RhdGZzNjQsIHN0YXRmczY0LCBtYmluZCwKLQlbZ3NdZXRfbWVtcG9saWN5LCBtcV8qLCBzeXNfa2V4ZWNfbG9hZCwgdnNlcnZlciwgYW5kIHdhaXRpZC4KLQlGaXhlcyBSSCMxNDYyNDUuCi0KLTIwMDUtMDEtMjIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+Ci0KLQkqIG5ldC5jIChzeXNfZ2V0c29ja29wdCk6IENoYW5nZSB0eXBlIG9mIGxlbiB0byBpbnQuCi0KLTIwMDQtMTAtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuOC4KLQkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuOC0xLgotCi0JKiBmaWxlLmMgKHN5c19mYWR2aXNlNjQpOiBDb25kaXRpb25hbGl6ZSBqdXN0IG9uIFtMSU5VWF0uCi0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHN5cy9lcG9sbC5oLgotCSogZGVzYy5jOiBQcm90ZWN0ICNpbmNsdWRlIDxzeXMvZXBvbGwuaD4gd2l0aCBbSEFWRV9TWVNfRVBPTExfSF0uCi0JKGVwb2xsY3RscywgZXBvbGxldmVudHMpOiBQcm90ZWN0IGVhY2ggZW50cnkgd2l0aCAjaWZkZWYgb24gaXRzIG1hY3JvLgotCi0JKiBzdHJhY2UuYyAoaGFuZGxlX2dyb3VwX2V4aXQpOiBEb24ndCBkZXRhY2ggbGVhZGVyIHRoYXQgd2Fzbid0Ci0JVENCX0FUVEFDSEVELiAgSW5zdGVhZCBtYXJrIGl0IHdpdGggVENCX0dST1VQX0VYSVRJTkcuCi0JUmVtb3ZlIGRyb3B0Y2IgbG9vcCBhdCBlbmQsIG5vIGxvbmdlciByZXF1aXJlZCBzaW5jZSAyLjYgcmVwb3J0cyBlYWNoCi0JdGhyZWFkIGRlYXRoLgotCUZpeGVzIFJIIzEzNTI1NC4KLQotCSogc3RyYWNlLmMgKHRyYWNlKTogVXNlIGhhbmRsZV9ncm91cF9leGl0IGZvciBub24tVENCX0FUVEFDSEVEIGNoaWxkCi0JdGFraW5nIHNpZ25hbCB3aGVuIGl0IGhhcyBuY2xvbmVfdGhyZWFkcyA+IDAuCi0KLQkqIHN0cmFjZS5jIChoYW5kbGVfZ3JvdXBfZXhpdCwgdHJhY2UpOiBNYXJrIGxlYWRlciB3aXRoCi0JVENCX0dST1VQX0VYSVRJTkcgYW5kIGRvbid0IGJlIHN1cnByaXNlZCBhdCBjaGlsZCBkZWF0aHMgd2hlbiB0aGVpcgotCWxlYWRlciBoYXMgaXQgc2V0LgotCUZpeGVzIFJIIzEzMjE1MC4KLQotCSogcHJvY2Vzcy5jIChXQ09SRUZMQUcpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCi0JKFdfU1RPUENPREUsIFdfRVhJVENPREUpOiBMaWtld2lzZS4KLQlSZXBvcnRlZCBieSBNYXJ0eSBMZWlzbmVyIDxtbGVpc25lckBlbmcubWMueGVyb3guY29tPi4KLQotCSogc29jay5jIFshIExJTlVYXTogSW5jbHVkZSA8c3lzL3NvY2tldC5oPiBiZWZvcmUgPHN5cy9zb2NraW8uaD4uCi0JUmVwb3J0ZWQgYnkgTWFydHkgTGVpc25lciA8bWxlaXNuZXJAZW5nLm1jLnhlcm94LmNvbT4uCi0KLQkqIGRlYmlhbi9ydWxlczogTWFrZSBzdHJhY2U2NC4xLmd6IHN5bWxpbmsgdG8gc3RyYWNlLjEuZ3ogaW5zdGVhZCBvZgotCXN0cmFjZTY0LjEgdG8gc3RyYWNlLjEsIHdoaWNoIGRvZXNuJ3QgZXhpc3QuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjY5MjIwLgotCi0yMDA0LTA5LTA1ICBQaGlsIEJsdW5kZWxsICA8cGJAbmV4dXMuY28udWs+Ci0KLQkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgotCi0yMDA0LTEwLTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBkZWJpYW4vcnVsZXMgKERFQl9CVUlMRF9HTlVfVFlQRSwgQ09ORklHX09QVFMpOiBOZXcgdmFyaWFibGVzLgotCVskKERFQl9IT1NUX0dOVV9UWVBFKSA9PSBzMzkwLWxpbnV4XSAoYnVpbGQ2NCwgSE9TVDY0LCBDQzY0KTogU2V0IHRoZW0uCi0JKGJ1aWxkL01ha2VmaWxlKTogVXNlICQoQ09ORklHX09QVFMpLgotCShidWlsZDY0L01ha2VmaWxlKTogUGFzcyAtLWhvc3QgYXMgd2VsbCBhcyAtLWJ1aWxkLgotCUZyb20gQmFzdGlhbiBCbGFuayA8d2FsZGlAZGViaWFuLm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjcxNTAwLgotCi0JKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXBkYXRlIGZvciAyLjYuOSBzeXNjYWxscy4KLQlGcm9tIFJhbmRvbHBoIENodW5nIDx0YXVzcUBkZWJpYW4ub3JnPgotCUZpeGVzIERlYmlhbiBidWcgIzI3Mzg4Ny4KLQotCSogZmlsZS5jIChzeXNfbGxzZWVrKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgotCi0yMDA0LTA5LTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0d2lkZGxlLm5ldD4KLQotCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBBZGQgdGdraWxsLCAqc3RhdDY0LCB2c2VydmVyLCBtYmluZCwKLQlbZ3NdZXRfbWVtcG9saWN5LCBtcV8qLCB3YWl0aWQuCi0KLTIwMDQtMTAtMDcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGZpbGUuYyAoc3lzX2xsc3Nlaywgc3lzX3JlYWRhaGVhZCwgc3lzX2ZhZHZpc2U2NCwgc3lzX2ZhZHZpc2U2NF82NCk6Ci0JVXNlIExPTkdfTE9ORyBtYWNyby4KLQkqIGlvLmMgKHN5c19wcmVhZCwgc3lzX3B3cml0ZSwgc3lzX3NlbmRmaWxlKTogTGlrZXdpc2UuCi0KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEZpeCBib3RjaGVkIHRhYmxlIGVudHJpZXMuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQotCSogbWVtLmMgW0xJTlVYXSAoc3lzX21iaW5kLCBzeXNfc2V0X21lbXBvbGljeSwgc3lzX2dldF9tZW1wb2xpY3kpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIG1iaW5kLCBzZXRfbWVtcG9saWN5LCBnZXRfbWVtcG9saWN5LgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGZpbGUuYyBbTElOVVggJiYgKEkzODYgfHwgWDg2XzY0KV0gKHN5c19mYWR2aXNlNjQsIHN5c19mYWR2aXNlNjRfNjQpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIGZhZHZpc2U2NCBhbmQgZmFkdmlzZTY0XzY0IHVzaW5nIHRob3NlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQotMjAwNC0wOS0xMyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KLQotCSogbGludXgvaW9jdGxzb3J0LmMgKG1haW4pOiBPbWl0IGR1cGxpY2F0ZSBsaW5lcwotCSh3aXRoIHNhbWUgbmFtZSBhbmQgY29kZSkgZnJvbSBvdXRwdXQuCi0JKiBsaW51eC9pb2N0bGVudC5zaDogQnVpbGQgdGhlIGxpc3Qgb2YgaW9jdGxzIGRlZmluZWQgaW4KLQlzY3NpL3NnLmggKDB4MjIuLiksIHNjc2kvc2NzaS5oIGFuZCBzY3NpL3Njc2lfaW9jdGwuaCAoMHg1My4uKSwKLQlhcyBzdWdnZXN0ZWQgYnkgUGV0ZXIgSm9uZXMgPHBqb25lc0ByZWRoYXQuY29tPgotCSogbGludXgvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQuCi0JRml4ZXMgUkgjMTI5ODA4LgotCi0yMDA0LTA5LTEzICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPgotCSAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIHRpbWUuYyBbTElOVVhdIChwcmludF9ydGMpOiBOZXcgZnVuY3Rpb24sIGZvciBwcmludGluZyBydGNfdGltZQotCXN0cnVjdHVyZS4KLQlbTElOVVhdIChydGNfaW9jdGwpOiBOZXcgZnVuY3Rpb24sIGZvciBwYXJzaW5nIFJUQ18qIGlvY3Rscy4KLQkqIGlvY3RsLmMgW0xJTlVYXSAoaW9jdGxfZGVjb2RlKTogQ2FsbCBydGNfaW9jdGwuCi0JKiBkZWZzLmggW0xJTlVYXTogRGVjbGFyZSBydGNfaW9jdGwuCi0JRml4ZXMgUkgjNTg2MDYuCi0KLTIwMDQtMTAtMDYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGRlc2MuYyBbTElOVVhdIChzeXNfZXBvbGxfY3JlYXRlLCBzeXNfZXBvbGxfY3RsLCBzeXNfZXBvbGxfd2FpdCk6Ci0JTmV3IGZ1bmN0aW9ucy4KLQkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgotCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2UgdGhvc2UgZm9yIGVwb2xsXyogc3lzY2FsbHMuCi0JKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmg6IExpa2V3aXNlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzQ0NjMuCi0KLQkqIHJlc291cmNlLmMgKHJlc291cmNlcyk6IEFkZCBSTElNSVRfTE9DS1MsIFJMSU1JVF9TSUdQRU5ESU5HLAotCWFuZCBSTElNSVRfTVNHUVVFVUUsIGlmIGRlZmluZWQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzM1OTQuCi0KLQkqIG5ldC5jIFtIQVZFX1NFTkRNU0ddIChwcmludGNtc2doZHIpOiBOZXcgZnVuY3Rpb24uCi0JKHByaW50bXNnaGRyKTogVXNlIGl0LgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0JRml4ZXMgUkgjMTMxNjg5LgotCi0JKiBmaWxlLmMgKHNwcmludG1vZGUpOiBBZGQgY29uc3QgdG8gcmV0dXJuIHR5cGUuCi0JKHNwcmludGZzdHlwZSk6IExpa2V3aXNlLgotCSogc2lnbmFsLmMgKHByaW50c2lnaW5mbyk6IEFkZCBhIGNvbnN0LgotCi0yMDA0LTA5LTE1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3dhaXRpZC4KLQotCSogbGludXgvc3lzY2FsbGVudC5oOiB3YWl0aWQgdGFrZXMgNSBhcmd1bWVudHMsIGFuZCBpcyBpbiBUUCBjYXRlZ29yeS4KLQkqIHByb2Nlc3MuYyAoc3lzX3dhaXRpZCk6IEhhbmRsZSBmaWZ0aCBhcmd1bWVudCAoc3RydWN0IHJ1c2FnZSAqKS4KLQotMjAwNC0wOS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwKTogUHJpbnQgemVybyBmbGFncyBhcmcgY29ycmVjdGx5LgotCShzeXNfdGltZXJfc2V0dGltZSk6IExpa2V3aXNlLgotCShwcmludHNpZ2V2ZW50KTogUHJpbnQgc2lnbmFscyBieSBuYW1lIGZvciBTSUdFVl9TSUdOQUwuCi0JKHN5c190aW1lcl9jcmVhdGUpOiBQcmludCBjbG9jayBJRCBzeW1ib2xpY2FsbHkuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzE0MjAuCi0KLTIwMDQtMDktMDcgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQkqIGRlZnMuaCAobmlvY3RsZW50czEsIG5zaWduYWxzMik6IEZpeCB0eXBvcyBpbiBkZWNscy4KLQotMjAwNC0wOS0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChxdWFsX29wdGlvbnMpOiBBZGQgY29uc3QgdG8gZGVmbi4KLQlVcGRhdGUgYWxsIHVzZXMuCi0JKGNhbGxfY291bnQsIGVycm9yX2NvdW50LCB0dl9jb3VudCk6IFZhcmlhYmxlcyByZW1vdmVkLgotCShzdHJ1Y3QgY2FsbF9jb3VudHMsIGNvdW50cyk6IE5ldyB0eXBlIGFuZCB2YXJpYWJsZS4KLQlVcGRhdGUgYWxsIHVzZXJzIG9mIHRoZSBvbGQgdGhyZWUgdG8gdXNlIHRoZSBuZXcgYXJyYXkgb2Ygc3RydWN0cy4KLQkodHJhY2Vfc3lzY2FsbCk6IEFsbG9jYXRlIGNvdW50cyBvbiBmaXJzdCB1c2UuCi0JKHNvcnRlZF9jb3VudCk6IFZhcmlhYmxlIHJlbW92ZWQuCi0JKGNhbGxfc3VtbWFyeSk6IEFsbG9jYXRlIGxvY2FsbHkuCi0KLQkqIHN5c2NhbGwuYyAoc3lzZW50MCwgc3lzZW50MSwgc3lzZW50Miwgc3lzZW50KTogQWRkIGNvbnN0IHRvIGRlZm4uCi0JKG5zeXNjYWxsczAsIG5zeXNjYWxsczEsIG5zeXNjYWxsczIpOiBMaWtld2lzZS4KLQkoZXJybm9lbnQwLCBlcnJub2VudDEsIGVycm5vZW50MiwgZXJybm9lbnQpOiBMaWtld2lzZS4KLQkobmVycm5vczAsIG5lcnJub3MxLCBuZXJybm9zMik6IExpa2V3aXNlLgotCSogc2lnbmFsLmMgKHNpZ25hbGVudDAsIHNpZ25hbGVudDEsIHNpZ25hbGVudDIpOiBMaWtld2lzZS4KLQkobnNpZ25hbHMwLCBuc2lnbmFsczEsIG5zaWduYWxzMik6IExpa2V3aXNlLgotCShzaWduYW1lKTogTElrZXdpc2UuCi0JKiBpb2N0bC5jIChpb2N0bGVudDAsIGlvY3RsZW50MSwgaW9jdGxlbnQyKTogTGlrZXdpc2UuCi0JKG5pb2N0bGVudHMwLCBuaW9jdGxlbnRzMSwgbmlvY3RsZW50czIpOiBMaWtld2lzZS4KLQkoaW9jdGxfbG9va3VwLCBpb2N0bF9uZXh0X21hdGNoKTogTGlrZXdpc2UuCi0JKiBkZWZzLmg6IFVwZGF0ZSBkZWNscy4KLQkqIGlvLmMgKHN5c19pb2N0bCk6IFVwZGF0ZSB1c2Vycy4KLQotCSogdXRpbC5jICh4bG9va3VwLCBwcmludHh2YWwsIGFkZGZsYWdzLCBwcmludGZsYWdzKTogVXNlIGNvbnN0IGZvcgotCXN0cnVjdCB4bGF0ICogYXJndW1lbnQuCi0JKiBkZWZzLmggKHhsb29rdXAsIHByaW50eHZhbCwgYWRkZmxhZ3MsIHByaW50ZmxhZ3MpOiBVcGRhdGUgZGVjbHMuCi0JKiBiam0uYzogQWRkIGNvbnN0IHRvIGFsbCBzdHJ1Y3QgeGxhdCBkZWZucy4KLQkqIGRlc2MuYzogTGlrZXdpc2UuCi0JKiBmaWxlLmM6IExpa2V3aXNlLgotCSogaXBjLmM6IExpa2V3aXNlLgotCSogbWVtLmM6IExpa2V3aXNlLgotCSogbmV0LmM6IExpa2V3aXNlLgotCSogcHJvYy5jOiBMaWtld2lzZS4KLQkqIHByb2Nlc3MuYzogTGlrZXdpc2UuCi0JKiByZXNvdXJjZS5jOiBMaWtld2lzZS4KLQkqIHNpZ25hbC5jOiBMaWtld2lzZS4KLQkqIHNvY2suYzogTGlrZXdpc2UuCi0JKiBzdHJlYW0uYzogTGlrZXdpc2UuCi0JKiBzeXN0ZW0uYzogTGlrZXdpc2UuCi0JKiB0ZXJtLmM6IExpa2V3aXNlLgotCSogdGltZS5jOiBMaWtld2lzZS4KLQkqIHV0aWwuYzogTGlrZXdpc2UuCi0KLTIwMDQtMDktMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEFkZCBuZXcgZW50cmllcyBmb3IgdGltZXJfKiwgY2xvY2tfKiwgYW5kCi0JbXFfKiBzeXNjYWxscywgYW5kIG5hbWVzIG9ubHkgZm9yIG5ldyBjYWxscyB1cCB0byAyNTIuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB3YWl0aWQuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfd2FpdGlkLgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBUYWtlIHNlY29uZCBhcmcgZ2l2aW5nIGluZGV4IG9mIGZsYWdzCi0JYXJndW1lbnQuCi0JKiBkZWZzLmg6IFVwZGF0ZSBwcm90b3R5cGUuCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVcGRhdGUgY2FsbGVyLgotCUFsc28gdXNlIGludGVybmFsX3dhaXQgZm9yIFNZU193YWl0aWQuCi0JKiBwcm9jZXNzLmMgKHN5c193YWl0aWQpOiBEZWZpbmUgZm9yIFtMSU5VWF0gYXMgd2VsbC4KLQlEb24ndCB0d2VhayBUQ0JfU1VTUEVOREVELS1pbnRlcm5hbF93YWl0IGRvZXMgdGhhdC4KLQkod2FpdGlkX3R5cGVzKTogQ29uZGl0aW9uYWxpemUgdXNlIG9mIG5vbnN0YW5kYXJkIFBfKiBtYWNyb3MuCi0KLTIwMDQtMDgtMzEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNy4KLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS43LTEuCi0JKiBzdHJhY2Uuc3BlYzogNC41LjctMi4KLQotCSogZGViaWFuL3J1bGVzOiBSZXdyaXRlIHNwYXJjNjQgY2hhbmdlIG9mIDIwMDQtMDctMTIuCi0JQWx3YXlzIGRvIGVhY2ggYnVpbGQgaW4gYSBzZXBhcmF0ZSBidWlsZCBkaXJlY3RvcnkuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgotCi0JKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBVc2UgI2lmZGVmIGFyb3VuZCBDTE9DS18qIHVzZXMuCi0KLQkqIHN0cmFjZS4xOiBTYXkgdGhhdCAtYyBzaG93cyBzeXN0ZW0gQ1BVIHRpbWUsIG5vdCByZWFsIHRpbWUuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NDM4LgotCi0JKiBzeXNjYWxsLmMgKGR1bXBpbyk6IE1hdGNoIHByZWFkIGFuZCBwd3JpdGUgc3lzdGVtIGNhbGxzIHRvby4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMzk5NDcuCi0KLQkqIG5ldC5jIChzb2Nrb3B0aW9ucyk6IEFkZCBhbGwgU09fKiBtYWNyb3Mga25vd24gaW4gTGludXggMi42LjkuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMTcxNjUzLgotCi0yMDA0LTA3LTEyICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IEZpeCBoZXggc3RyaW5ncyBwYXJzZXIuCi0JRml4ZXMgUkgjMTI4MDkxLgotCi0yMDA0LTA4LTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuYyAobWFpbik6IERvbid0IGNhbGwgZmFrZV9leGVjdmUgdW5kZXIgLWMuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjkxNjYuCi0KLQkqIG5ldC5jIChzb2NraXBvcHRpb25zKTogQWRkIHNvbWUgb3B0aW9ucy4KLQlbU09MX0lQVjZdIChzb2NraXB2Nm9wdGlvbnMpOiBOZXcgdmFyaWFibGUuCi0JKHN5c19nZXRzb2Nrb3B0LCBwcmludHNvY2tvcHQpOiBVc2UgaXQgZm9yIFNPTF9JUFY2IGxldmVsLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0JRml4ZXMgUkgjMTI4MzkxLgotCi0JKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBOZXcgdmFyaWFibGUsIHN5bWJvbGljIG5hbWVzIGZvciBjbG9ja190LgotCShzeXNfY2xvY2tfc2V0dGltZSwgc3lzX2Nsb2NrX2dldHRpbWUsIHN5c19jbG9ja19uYW5vc2xlZXApOiBVc2UgaXQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjkzNzguCi0KLQkqIHN5c3RlbS5jIChwZXJzb25hbGl0eV9vcHRpb25zKTogSGFyZC1jb2RlIHZhbHVlcyBoZXJlLgotCURvbid0ICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPiBhdCBhbGwuCi0JRml4ZXMgUkgjMTMwOTY1IGFuZCBEZWJpYW4gYnVnICM0MDU4OC4KLQotCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBOZXcgZnVuY3Rpb24gdG8gc2hvdyBhdHRyaWJ1dGUgdmFsdWVzLgotCShzeXNfc2V0eGF0dHIsIHN5c19mc2V0eGF0dHIsIHN5c19nZXR4YXR0ciwgc3lzX2ZnZXR4YXR0cik6IFVzZSBpdC4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzEzMTE3Ny4KLQotMjAwNC0wNy0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS42LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS42LTEuCi0KLQkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NwYXJjNjQgZmlsZXMuCi0KLQkqIGRlYmlhbi9ydWxlczogT24gc3BhcmMtbGludXgsIGJ1aWxkIHN0cmFjZTY0IGFzIHdlbGwuCi0JRnJvbSBCZW4gQ29sbGlucyA8YmNvbGxpbnNAZGViaWFuLm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgotCi0yMDA0LTA3LTA3ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQ+Ci0KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogU3luYyB3aXRoIHJlYWxpdHkuCi0JKiBsaW51eC9zcGFyYy9zeXNjYWxsLmggKHN5c19zZW5kZmlsZTY0LCBzeXNfZnV0ZXgsIHN5c19nZXR0aWQsCi0Jc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHksIHN5c19zZXR4YXR0ciwKLQlzeXNfbHNldHhhdHRyLCBzeXNfZnNldHhhdHRyLCBzeXNfZ2V0eGF0dHIsIHN5c19sZ2V0eGF0dHIsCi0Jc3lzX2ZnZXR4YXR0ciwgc3lzX2xpc3R4YXR0ciwgc3lzX2xsaXN0eGF0dHIsIHN5c19mbGlzdHhhdHRyLAotCXN5c19yZW1vdmV4YXR0ciwgc3lzX2xyZW1vdmV4YXR0ciwgc3lzX2ZyZW1vdmV4YXR0ciwKLQlzeXNfcmVtYXBfZmlsZV9wYWdlcywgc3lzX3JlYWRhaGVhZCwgc3lzX3Rna2lsbCwgc3lzX3N0YXRmczY0LAotCXN5c19mc3RhdGZzNjQsIHN5c19jbG9ja19zZXR0aW1lLCBzeXNfY2xvY2tfZ2V0dGltZSwKLQlzeXNfY2xvY2tfZ2V0cmVzLCBzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfY3JlYXRlLAotCXN5c190aW1lcl9zZXR0aW1lLCBzeXNfdGltZXJfZ2V0dGltZSk6IE5ldyBkZWNsYXJhdGlvbnMuCi0JKiBsaW51eC9zcGFyYzY0L2R1bW15Mi5oLCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgsCi0JbGludXgvc3BhcmM2NC9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCwKLQlsaW51eC9zcGFyYzY0L2Vycm5vZW50MS5oLCBsaW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oLAotCWxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCwgbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCwKLQlsaW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oLCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudC5oLAotCWxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsCi0JbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oLAotCWxpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCwgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmgsCi0JbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oOiBOZXcgZmlsZXMuCi0JKiBkZWZzLmggKExJTlVYU1BBUkMpOiBEZWZpbmUgYWxzbyB3aGVuIFNQQVJDNjQuCi0JKExJTlVYICYmIFNQQVJDNjQpOiBTZXQgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgdG8gMy4KLQlJZ25vcmUgU0lHVFJBUCBhZnRlciBleGVjdmUgYnkgZGVmaW5pbmcgVENCX1dBSVRFWEVDVkUuCi0JRGVmaW5lIHBvc3NpYmx5IG1pc3NpbmcgX19OUl9leGl0X2dyb3VwLiAgRGVjbGFyZSBnZXRydmFsMi4KLQkqIGNvbmZpZ3VyZS5hYyAoc3BhcmM2NCk6IE5ldyBhcmNoaXRlY3R1cmUgY2FzZS4KLQkqIGZpbGUuYyAoc3RhdF9zcGFyYzY0KTogTmV3IHN0cnVjdHVyZS4KLQkocHJpbnRzdGF0X3NwYXJjNjQpOiBOZXcgb3V0cHV0IHJvdXRpbmUgZm9yIHRoYXQuCi0JKHByaW50c3RhdCk6IENhbGwgaXQsIGlmIHBlcnNvbmFsaXR5IGlzIDIuCi0JKHByaW50c3RhdDY0KTogTGlrZXdpc2UuCi0JKiB1dGlsLmM6IENvbmRpdGlvbmFsaXplIHB0cmFjZSBkZWZpbmVzIG9uIExJTlVYU1BBUkMKLQlub3QgTElOVVggJiYgU1BBUkMuCi0JKFNQQVJDNjQgJiYgTElOVVgpOiBEZWZpbmUgcl9wYyB0byByX3RwYywgYW5kIFBUUkFDRV9GT09SRUdTCi0JdG8gUFRSQUNFX0ZPT1JFR1M2NCBzbyB0aGF0IG1vcmUgc3BhcmMgY29kZSBjYW4gYmUgc2hhcmVkCi0JYmV0d2VlbiA2NC1iaXQgYW5kIDMyLWJpdC4KLQkoX2hhY2tfc3lzY2FsbDUpOiBDb3JyZWN0IHRyYXAgbnVtYmVyIHdoZW4gU1BBUkM2NC4KLQkoUFRSQUNFX1dSSVRFe1RFWFQsREFUQX0pOiBBZGQgU1BBUkM2NCB0byBpZmRlZiBndWFyZC4KLQkoZ2V0cGMpOiBIYW5kbGUgU1BBUkM2NCAmJiBMSU5VWC4KLQkocHJpbnRjYWxsKTogTGlrZXdpc2UuCi0JKGFyZyBmZXRjaGluZy9zZXR0aW5nKTogVXNlIHNhbWUgY29kZSBmb3IgU1BBUkM2NCBMSU5VWAotCWFzIGZvciBTUEFSQy4KLQkoc2V0YnB0KTogSGFuZGxlIFNQQVJDNjQgJiYgTElOVVguCi0JKGNsZWFyYnB0KTogTGlrZXdpc2UuCi0JKiBzaWduYWwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCi0JU1BBUkM2NC4KLQkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKLQl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKLQliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgotCShtX3NpZ2luZm8pOiBVc2Ugc2FtZSBkZWZpbml0aW9uIG9uIFNQQVJDNjQgYXMgU1BBUkMuCi0JKHN5c19zaWdyZXR1cm4pOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KLQkqIHN5c2NhbGwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCi0JU1BBUkM2NC4KLQkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKLQl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKLQliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgotCShnZXRzY25vKTogVXNlIHNhbWUgc3RhdGljIHN0YXRlIG9uIFNQQVJDNjQgYXMgU1BBUkMsCi0JYW5kIGFkZCBTUEFSQzY0IGhhbmRsaW5nLgotCShnZXRfZXJyb3IpOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KLQkoZm9yY2VfcmVzdWx0KTogTGlrZXdpc2UuCi0JKHN5c2NhbGxfZW50ZXIpOiBMaWtld2lzZS4KLQkodHJhY2Vfc3lzY2FsbCk6IEhhbmRsZSBzeXNfc29ja2V0Y2FsbCBhbmQgc3lzX2lwYyBvbiBTUEFSQzY0Ci0JanVzdCBsaWtlIFNQQVJDLgotCShnZXRydmFsMik6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgotCSogcHJvY2Vzcy5jOiBDb25kaXRpb25hbGl6ZSBwdHJhY2UgZGVmaW5lcyBvbiBTUEFSQyBhbmQKLQlTUEFSQzY0LgotCShTUEFSQzY0ICYmIExJTlVYKTogRGVmaW5lIHJfcGMgdG8gcl90cGMsIGFuZCBQVFJBQ0VfRk9PUkVHUwotCXRvIFBUUkFDRV9GT09SRUdTNjQgc28gdGhhdCBtb3JlIHNwYXJjIGNvZGUgY2FuIGJlIHNoYXJlZAotCWJldHdlZW4gNjQtYml0IGFuZCAzMi1iaXQuCi0JKGNoYW5nZV9zeXNjYWxsKTogSGFuZGxlIExJTlVYICYmIFNQQVJDNjQuCi0JKHN0cnVjdF91c2VyX29mZnNldHMpOiBJZmRlZiBvdXQgdGhvc2Ugd2hpY2ggZG8gbm90IGV4aXN0Ci0Jb24gU1BBUkM2NC4KLQkqIG5ldC5jIChzeXNfcGlwZSk6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgotCSogaW9jdGwuYzogRml4IGluaXRpYWxpemVyIHR5cG8gZm9yIG5pb2N0bGVudHMyLCB3YXMKLQluaW9jdGxlbnRzMSBieSBhY2NpZGVudC4KLQotMjAwNC0wNi0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KLQotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9leGVjKTogTW92ZSBUQ0JfV0FJVEVYRUNWRSBoYW5kbGluZyBoZXJlLgotCShzeXNfZXhlY3ZlKTogUmVtb3ZlIGl0IGhlcmUuCi0KLTIwMDQtMDctMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oLgotCi0JKiBkZWJpYW4vY29udHJvbCAoU2VjdGlvbik6IE1vdmUgdG8gdXRpbHMsIG1hdGNoaW5nIERlYmlhbiBvdmVycmlkZS4KLQotCSogbmV0LmMgKGFkZHJmYW1zKTogTWFrZSB2YXJpYWJsZSBnbG9iYWwuCi0JKiBzb2NrLmMgKHNvY2tfaW9jdGwpOiBEZWNvZGUgdGhlIGFyZ3VtZW50cyBmb3IgU0lPQ0dJRk5BTUUsCi0JU0lPQ0dJRklOREVYLCBhbmQgU0lPQ0dJRkNPTkYuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjY5MTcuCi0KLQkqIGxpbnV4L2lvY3Rsc29ydC5jOiBBZGQgc29tZSAjaW5jbHVkZXMuCi0JW1BPV0VSUENdOiBLbHVkZ2Ugb3V0IGhpZ2ggYml0cy4KLQkqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQgdXNpbmcgUkhFTDMgaGVhZGVycy4KLQkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogTGlrZXdpc2UuCi0KLTIwMDQtMDctMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2lvY3RsZW50LnNoOiBSZXBsYWNlIGFzbSB3aXRoICRhc20gaW4gYWxsIHBsYWNlcy4KLQotCSogY29uZmlndXJlLmFjOiBBZGQgSTM4NiBhcyBBTV9DT05ESVRJT05BTC4KLQkqIE1ha2VmaWxlLmFtIFtMSU5VWF06IEFkZCBtYWludGFpbmVyLW1vZGUgcnVsZXMgdG8gcmVnZW5lcmF0ZQotCXRoZSBpb2N0bGVudC5oIGZpbGUuCi0KLTIwMDQtMDctMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHJlc291cmNlLmMgKHN5c19xdW90YWN0bCk6IFRydW5jYXRlIGZpcnN0IGFyZ3VtZW50IHRvIDMyIGJpdHMsIHNpbmNlCi0JdGhhdCdzIHdoYXQgdGhlIGtlcm5lbCB3aWxsIGRvLgotCi0yMDA0LTA3LTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9pb2N0bGVudC5zaDogVGFrZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gdXNlIGFzIGRpcmVjdG9yeQotCW5hbWUgaW4gcGxhY2Ugb2YgYGFzbScuCi0KLTIwMDQtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNS4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuNS0xLgotCi0yMDA0LTA2LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZml4dXApIFtMSU5VWCAmJiBYODZfNjRdOiBGb3IgMzItYml0IHByb2Nlc3MsCi0Jc2lnbiBleHRlbmQgdGhlIGxvdyAzMiBiaXRzIG9mIFJBWCB0byA2NCBiaXRzLgotCUZpeGVzIFJIIzEyNjU0Ny4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpOiBbTElOVVggJiYgWDg2XzY0XTogRml4IFJBWCo0IC0+IFJBWCo4LgotCi0yMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjQuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjQtMS4KLQotCSogbmV0LmMgKGRvbWFpbnMpOiBBZGQgbWFueSBQRl8qIHZhbHVlcyAjaWZkZWYgUEZfKi4KLQkoYWRkcmZhbXMpOiBBZGQgbWFueSBBRl8qIHZhbHVlcyAjaWZkZWYgQUZfKi4KLQlGaXhlcyBEZWJpYW4gYnVnICMyNTA1MDYuCi0KLTIwMDQtMDUtMDIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIGxpbnV4L2lvY3Rsc29ydC5jIChjb21wYXJlKTogV2hlbiBpb2N0bCBjb2RlcyBlcXVhbCwgY29tcGFyZQotCW5hbWVzLgotCShtYWluKTogUHJpbnQgYSBub3RlIHRoYXQgcHJvZ3JhbSBvdXRwdXQgaXMgZ2VuZXJhdGVkIGJ5Ci0JaW9jdGxzb3J0LgotCSogbGludXgvaW9jdGxlbnQuc2g6IEJ1aWxkIHRoZSBsaXN0IG9mIGlvY3RscyBkZWZpbmVkIGluCi0JbGludXgvZmIuaCAoMHg0Ni4uKSwgbGludXgva2QuaCAoMHg0Qi4uKSwgbGludXgvY2Ryb20uaCAoMHg1My4uKSwKLQlhc20vaW9jdGxzLmggKDB4NTQuLiksIGxpbnV4L3Z0LmggKDB4NTYuLiksIGxpbnV4L3ZpZGVvdGV4dC5oCi0JKDB4NzEuLiksIGxpbnV4L3ZpZGVvdGV4dC5oICgweDcyLi4pLCBhc20vc29ja2lvcy5oICgweDg5Li4pLAotCWxpbnV4L3NvY2tpb3MuaCAoMHg4OS4uKSwgbGludXgvd2lyZWxlc3MuaCAoMHg4Qi4uKS4KLQkqIGxpbnV4L2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGVkIGZyb20gbGludXgtMi42LjUuCi0JRml4ZXMgUkgjMTIyMjU3LgotCi0yMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIGFtZDY0LgotCUZpeGVzIERlYmlhbiBidWcgIzI0NjU2OC4KLQotCSogc3RyYWNlLmMgKG1haW4pIFtMSU5VWF06IEV4cGFuZCBUQ0JUQUIgYXMgbmVjZXNzYXJ5IGZvciB0aHJlYWRzCi0JYXR0YWNoZWQuICBBdHRhY2ggdGhyZWFkcyBvbmx5IHVuZGVyIC1mLiAgU2V0IFRDQl9GT0xMT1dGT1JLIGluIHRoZW0uCi0JKGV4cGFuZF90Y2J0YWIpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgLi4uCi0JKiBwcm9jZXNzLmMgKGZvcmtfdGNiKTogLi4uIGhlcmUsIGNhbGwgdGhhdC4KLQkqIGRlZnMuaDogRGVjbGFyZSBleHBhbmRfdGNidGFiLgotCi0yMDA0LTA0LTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBwcm9jZXNzLmMgKHByaW50c3RhdHVzKTogQWRkIGEgc3BhY2UgYmVmb3JlIHwgaW4gb3V0cHV0LgotCi0yMDA0LTA0LTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWM6IFZlcnNpb24gNC41LjMuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjMtMS4KLQotMjAwNC0wMy0xOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KLQotCSogcmVzb3VyY2UuYyAoc3lzX3F1b3RhY3RsKSBbTElOVVhdOiBDYXN0IGFyaXRobWV0aWMgc2hpZnQgb3BlcmFuZAotCWZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLCB0byBmaXggb3V0cHV0IG9mIHRoZSBxdW90YWN0bCBjb21tYW5kCi0JcGFyc2VyLgotCUZpeGVzIFJIIzExODY5NC4KLQotMjAwNC0wNC0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvczM5MC9pb2N0bGVudC5oLCBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBVcGRhdGUgREFTRCBpb2N0bHMuCi0JRnJvbSBNYXhpbSBTaGNoZXR5bmluIDxtYXhpbUBkZS5pYm0uY29tPi4KLQotCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgPG1xdWV1ZS5oPi4KLQkqIGlwYy5jIChzeXNfbXFfb3BlbiwgcHJpbnRtcWF0dHIpIFshIEhBVkVfTVFVRVVFX0hdOiBEb24ndCB0cnkgdG8KLQlkZWNvZGUgc3RydWN0IG1xX2F0dHIuCi0JKiBORVdTOiBNZW50aW9uIG1xIHN1cHBvcnQuCi0KLQkqIGxpbnV4L3N5c2NhbGwuaDogU3VwcG9ydCBuZXcgbXFfKiBzeXNjYWxscyBvbiBMaW51eC4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9kdW1teS5oOiBMaWtld2lzZS4KLQkqIGlwYy5jOiBMaWtld2lzZS4KLQkqIHRpbWUuYyAocHJpbnRzaWdldmVudCk6IEhhbmRsZSBTSUdFVl9USFJFQUQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjA3MDEuCi0KLTIwMDQtMDQtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIG5ldC5jIChtc2dfZmxhZ3MpOiBHcm9rIE1TR19GSVgsIE1TR19TWU4sIE1TR19SU1QsIE1TR19OT1NJR05BTCwKLQlNU0dfTU9SRS4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzEyMDU0MS4KLQotCSogcHJvY2Vzcy5jIChwcmludHN0YXR1cyk6IE1hc2sgb3V0IGJpdHMgcHJlc2VudGVkIHN5bWJvbGljYWxseSwgYW5kCi0JcHJpbnQgInwgMHhubm4iIGlmIHRoZSByZW1haW5pbmcgYml0cyBhcmUgbm90IGFsbCB6ZXJvLgotCUZpeGVzIERlYmlhbiBidWcgIzI0MDA2Mi4KLQotCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBSZXdyaXR0ZW4gdG8gaGFuZGxlIGluZGlyZWN0IHZhbHVlcy4KLQkoc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHkpOiBVcGRhdGUgY2FsbGVycy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzExODY4NS4KLQotCSogYWNpbmNsdWRlLm00OiBRdW90ZSBmaXJzdCBhcmd1bWVudCB0byBBQ19ERUZVTiBpbiBhbGwgY2FzZXMuCi0KLTIwMDQtMDQtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKSBbTElOVVhdOiBXaGVuIGF0dGFjaGluZyBmb3IgLXAsIGxvb2sgaW4KLQkvcHJvYy9QSUQvdGFzayBmb3IgYWxsIHRocmVhZHMgYW5kIGF0dGFjaCB0aGVtIGFzIHByZXN1bWVkCi0JQ0xPTkVfVEhSRUFEIGNoaWxkcmVuLgotCSogTkVXUzogTWVudGlvbiB0aGUgZmVhdHVyZS4KLQlGaXhlcyBSSCMxMjA0NjIuCi0KLTIwMDQtMDMtMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHV0aWwuYyAoc2V0YnB0KTogRml4IG9uZSBtaXNzZWQgc3BvdCB0byB1c2UgbmV3IGFyZzBfaW5kZXggbWFjcm8uCi0JRnJvbSBNaWNoYWVsIEhvbHpoZXUgPEhPTFpIRVVAZGUuaWJtLmNvbT4uCi0KLQkqIGRlYmlhbi9jb250cm9sIChTdGFuZGFyZHMtVmVyc2lvbik6IFVwZGF0ZSB0byAzLjYuMS4KLQotMjAwNC0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4yLgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4yLTEuCi0KLQkqIHN0cmFjZS5jIChtYWluKTogQXZvaWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVycnVucyBmcm9tIGx1ZGljcm91cwotCWFyZ3VtZW50cyBvciBQQVRIIHZhbHVlcy4KLQkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBCYWlsIG91dCBmb3IgdG9vLWxvbmcgc3RyaW5nLgotCi0JKiBtZW0uYyBbTElOVVhdOiA8YXNtL21tYW4uaD4gLT4gPGxpbnV4L21tYW4uaD4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMjMyMDcuCi0KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogQ29weSBsaW51eC9zeXNjYWxsLmggZGVjbHMgb2Ygc3lzX3NjaGVkXyouCi0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGBzdHJ1Y3QgdXNlcl9kZXNjJyBpbiA8YXNtL2xkdC5oPi4KLQkqIHByb2Nlc3MuYyBbSEFWRV9TVFJVQ1RfVVNFUl9ERVNDXTogVXNlIHN0cnVjdCB1c2VyX2Rlc2MgaW4gcGxhY2Ugb2YKLQlzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcy4KLQkqIG1lbS5jIFtIQVZFX1NUUlVDVF9VU0VSX0RFU0NdOiBMaWtld2lzZS4KLQotCSogc3lzdGVtLmMgKHN5c2N0bF92bSk6IENvbmRpdGlvbmFsaXplIFZNXyogbWFjcm8gdXNlcywgYWRkIHNvbWUgbW9yZS4KLQlGcm9tIFRpbSBZYW1pbiA8cGxhc21hcm9vQGdlbnRvby5vcmc+LgotCi0JKiBwcm9jZXNzLmMgKHN5c19leGVjdmUpOiBDbGVhciBpbnN0ZWFkIG9mIHNldCBUQ0JfV0FJVEVYRUNWRSBvbgotCWVycmluZyBzeXNjYWxsLgotCi0JKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnCi0JYW5kIGBzdHJ1Y3QgaWE2NF9mcHJlZycgaW4gPHN5cy9wdHJhY2UuaD4uCi0JKiB1dGlsLmMsIHByb2Nlc3MuYywgc3lzY2FsbC5jLCBzaWduYWwuYzogV29yayBhcm91bmQgY29uZmxpY3RzIGJldHdlZW4KLQk8c3lzL3B0cmFjZS5oPiBhbmQgPGxpbnV4L3B0cmFjZS5oPiBmb3IgZGVmaW5pbmcgdGhvc2UgdHlwZXMuCi0KLQkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYICYmIElBNjRdOiBDb25kaXRpb25hbGl6ZQotCVBUX0FSX0NTRCBhbmQgUFRfQVJfU1NEIHVzZXMgaW4gY2FzZSBvZiBvbGRlciBrZXJuZWwgaGVhZGVycy4KLQotCSogdXRpbC5jIFtMSU5VWF0gKGFyZzBfaW5kZXgsIGFyZzFfaW5kZXgpOiBOZXcgbWFjcm9zLgotCVtTMzkwIHx8IFMzOTBYXTogRGVmaW5lIHRoZW0gd2l0aCBpbnZlcnRlZCB2YWx1ZXMuCi0JKHNldGJwdCk6IFVzZSB0aGVtIGZvciB1X2FyZyBpbmRpY2VzLgotCi0yMDA0LTAyLTI2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgotCi0JKiBkZWZzLmggW0xJTlVYICYmIElBNjRdOiBEZWNsYXJlIGdldHJ2YWwyIGFsc28gb24gSUE2NC4KLQkqIG5ldC5jIChzeXNfcGlwZSkgW0xJTlVYICYmIElBNjRdOiBGb3IgSUE2NCB1c2UgdGhlIHR3byByZXR1cm4gdmFsdWVzLgotCSogc3lzY2FsbC5jIChnZXRydmFsMikgW0xJTlVYICYmIElBNjRdOiBJbXBsZW1lbnQgZm9yIElBNjQuCi0KLTIwMDQtMDMtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2R1bW15LmggKHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9zZXRwYXJhbSwKLQlzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCi0Jc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogUmVtb3ZlIG1hY3Jvcy4KLQkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfc2V0cGFyYW0sCi0Jc3lzX3NjaGVkX2dldHBhcmFtLCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAotCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogTmV3IGZ1bmN0aW9ucy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzExNjk5MC4KLQotMjAwNC0wMi0yMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBzb21lIHN5c2NhbGxzLgotCUZyb20gUmFuZG9scGggQ2h1bmcgPHRhdXNxQGRlYmlhbi5vcmc+LgotCUZpeGVzIERlYmlhbiBidWcgIzIzMTYzMi4KLQotMjAwMy0xMi0zMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZXhpdCk6IEZvciBpYTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMiAyNTIKLQlhcyBleGl0X2dyb3VwKCkuCi0JKGNoYW5nZV9zeXNjYWxsKTogRm9yIElBNjQsIGFsc28gc3VwcG9ydCBjaGFuZ2luZyBJQS0zMiBzeXNjYWxscy4KLQkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEZvciBJQTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMgotICAgICAgICBzeXNjYWxsIDI1MiAoZXhpdF9ncm91cCkgYXMgYW4gaW50ZXJuYWxfZXhpdCgpIHN5c2NhbGwuCi0JKiB1dGlsLmMgKFNZU19mb3JrKTogRm9yIElBNjQsIGRlZmluZSB0aGVtIHRvIHRoZSBJQS0zMiBzeXNjYWxsCi0JbnVtYmVyLgotCShTWVNfdmZvcmspOiBMaWtld2lzZS4KLQkoYXJnX3NldHVwKTogRm9yIElBNjQgdmVyc2lvbiwgYWxzbyBzdXBwb3J0IElBLTMyIHN5c2NhbGxzLgotCShnZXRfYXJnMCk6IExpa2V3aXNlLgotCShnZXRfYXJnMSk6IExpa2V3aXNlLgotCShzZXRfYXJnMCk6IExpa2V3aXNlLgotCShzZXRfYXJnMSk6IExpa2V3aXNlLgotCi0yMDA0LTAyLTE1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+Ci0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgcnRhcyBjYWxsLgotCVNoaWZ0IG11bHRpcGxleGVkIHN5c2NhbGxzIHRvIHN0YXJ0IGF0IDMwMCwgd2UgYXJlIGFscmVhZHkgYWJvdXQKLQl0byBoaXQgMjU2IHJlYWwgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IFNZU19zb2NrZXRfc3ViY2FsbCBpcyBub3cgMzAwIGZvciBbUE9XRVJQQ10uCi0KLTIwMDQtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKTogVXNlIFRDUC0+cGlkLCBub3QgUElELCBpbiAtcCBtZXNzYWdlLgotCUZpeGVzIERlYmlhbiBidWcgIzIyOTgwMi4KLQotMjAwNC0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBSZW1vdmUgYm9ndXMgdXBlZWsKLQljYWxsLgotCi0JKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogRml4IHR5cG8gc3RyaWN0IC0+IHN0cnVjdC4KLQlSZXBvcnRlZCBieSBQZXR0ZXIgUmVpbmhvbGR0c2VuIDxwZXJlQGh1bmdyeS5jb20+LgotCi0yMDAzLTEyLTMxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KLQotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbSUE2NF06IEZpeCB1cCByZWdpc3RlciBuYW1lIGxpc3QuCi0KLTIwMDMtMTItMTQgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogZmlsZS5jIChzeXNfZ2V0ZGVudHM2NCk6IERvbid0IGNhc3QgZF9pbm8gYW5kIGRfb2ZmIHRvIHVuc2lnbmVkIGxvbmcuCi0JVXNlICVsbHUgZm9ybWF0cyBmb3IgdGhlbS4KLQotCSogZmlsZS5jIFtMSU5VWF0gKGZzbWFnaWMpOiBBZGQgU1lTRlNfTUFHSUMuCi0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVcGRhdGUgdG8gaW5jbHVkZSByZWNlbnRseSBhZGRlZAotCXN5c2NhbGxzLgotCi0JKiBzeXNjYWxsLmMgKGdldF9lcnJvcikgW1BPV0VSUENdOiBDYXN0IHJlc3VsdCB0byB1bnNpZ25lZCBsb25nIGZvcgotCXBwYzY0LCB3ZSB3ZXJlIG1pc3JlcG9ydGluZyBzeXNjYWxscyB0aGF0IHJlYWxseSBzdWNjZWVkZWQgYXMgaGF2aW5nCi0JZmFpbGVkLgotCi0yMDA0LTAxLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuMTogUmVtb3ZlIGNvbW1lbnQgYWJvdXQgdmZvcmsgb24gTGludXguCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjIzMzkwLgotCi0JKiBmaWxlLmMgKGRpcmVudHR5cGVzKTogRGVmaW5lIHVuZGVyIFtMSU5VWF0gYXMgd2VsbC4gIEFkZCBEVF9VTktOT1dOLgotCShzeXNfZ2V0ZGVudHM2NCkgW0xJTlVYXTogUHJpbnQgZF90eXBlIGZpZWxkLgotCi0yMDAzLTEyLTE1ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtXQ09SRURVTVBdOiBTaG93IGNvcmVkdW1wIHN0YXR1cyBvZiB0aGUKLQlraWxsZWQgcHJvY2VzcyBpZiBhdmFpbGFibGUuICBGaXhlcyBSSCMxMTIxMTcuCi0KLTIwMDMtMTEtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMS4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuMS0xLgotCi0yMDAzLTA5LTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBkZWZzLmggKGlvY3RsX2xvb2t1cCk6IFByb3RvdHlwZSBjaGFuZ2UuCi0JKiBpb2N0bC5jIChpb2N0bF9uZXh0X21hdGNoKTogTmV3IGZ1bmN0aW9uLgotCSogZGVmcy5oOiBEZWNsYXJlIGl0LgotCSogaW8uYyAoc3lzX2lvY3RsKTogVXNlIGl0LCB0byBkaXNwbGF5IGFsbCBwb3NzaWJsZSBpb2N0bCBuYW1lcwotCXdoZW4gdGhlcmUncyBtb3JlIHRoYW4gb25lIG1hdGNoLgotCSogaW9jdGwuYyAoaW9jdGxfbG9va3VwKTogTGlrZXdpc2UuCi0JKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogTGlrZXdpc2UuCi0JUGF0Y2ggZnJvbSBTb2xhciBEZXNpZ25lciA8c29sYXJAb3BlbndhbGwuY29tPi4KLQotMjAwMy0xMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIuCi0JKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLTIwMDMtMDktMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQlGaXhlcyBmb3IgUkgjMTA1MzU5LgotCSogdXRpbC5jIChwcmludHVpZCk6IE5ldyBmdW5jdGlvbi4KLQkqIGRlZnMuaDogRGVjbGFyZSBpdC4KLQkqIGZpbGUuYyAoc3lzX2Nob3duKTogVXNlIGl0LgotCSogZmlsZS5jIChzeXNfZmNob3duKTogTGlrZXdpc2UuCi0JKiBwcm9jZXNzLmMgKHN5c19zZXRyZXVpZCwgc3lzX3NldHJlZ2lkLCBzeXNfc2V0cmVzdWlkLAotCXN5c19zZXRyZXNnaWQpOiBMaWtld2lzZS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQmV0dGVyIGhhbmRsZSBnZXRnaWQzMiwgZ2V0ZXVpZDMyLCBnZXRlZ2lkMzIsCi0Jc2V0cmV1aWQzMiwgc2V0cmVnaWQzMiwgZ2V0Z3JvdXBzMzIsIHNldGdyb3VwczMyLCBmY2hvd24zMiwKLQlzZXRyZXN1aWQzMiwgZ2V0cmVzdWlkMzIsIHNldHJlc2dpZDMyLCBnZXRyZXNnaWQzMiwgY2hvd24zMiwKLQlzZXR1aWQzMiwgc2V0Z2lkMzIsIHNldGZzdWlkMzIsIHNldGZzZ2lkMzIuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXTogRGVmaW5lIEdFVEdST1VQUzMyX1QuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c19zZXRncm91cHMzMiwgc3lzX2dldGdyb3VwczMyKToKLQlEZWNsYXJlIHRoZW0uCi0KLTIwMDMtMTEtMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKTogQmFpbCB3aXRoIHVzYWdlIGVycm9yIGZvciBtaXNzaW5nIGNvbW1hbmQgYmVmb3JlIHdlCi0Jb3BlbiB0aGUgLW8gZmlsZSBvciBmaWRkbGUgdWlkcy4KLQotMjAwMy0xMS0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBUcmVhdCBwaXBlZCBvdXRwdXQgbW9yZSBsaWtlIGZpbGUgb3V0cHV0LgotCURpc2FsbG93IC1mZiB3aXRoIHBpcGVkIG91dHB1dC4gIEZpeGVzIFJIIzEwNTM2Ni4KLQlSZXBvcnRlZCBieSBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIHN0cmFjZS5jICh0cHJpbnRmKTogQ2hlY2sgcmVzdWx0IG9mIHZmcHJpbnRmIGFuZCB1c2UgcGVycm9yIHdoZW4gaXQKLQlmYWlscyB3aGlsZSBub3Qgd3JpdGluZyB0byBzdGRlcnIgaXRzZWxmLiAgRml4ZXMgRGViaWFuIGJ1ZyAjMjE4NzYyLgotCi0JKiBuZXQuYyAocHJpbnRzb2NrKTogRml4IHR5cG8gaW4gI2lmZGVmIEFGX05FVExJTksuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQotMjAwMy0xMS0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKSBbTElOVVhdOiBDYWxjdWxhdGUgT05FX1RJQ0sgb25jZSB1c2luZwotCXNldGl0aW1lciByYXRoZXIgdGhhbiBoYXJkLWNvZGluZyBhIHZhbHVlIGJhc2VkIG9uIEhaLgotCUZpeGVzIFJIIzEwODAxMiwgcmVwb3J0ZWQgYnkgRmxvcmlhbiBMYSBSb2NoZSA8bGFyb2NoZUByZWRoYXQuY29tPi4KLQotMjAwMy0xMC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLjE6IEZpeGVkIGEgZmV3IHNwZWxsaW5nIGVycm9ycy4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMTcwMDguCi0KLQkqIHN5c2NhbGwuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCB3YXMgYnJva2VuLgotCi0yMDAzLTEwLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRG9uJ3Qgc3VzcGVuZCBwYXJlbnQgd2hlbiBjYWxsIHJlcXVlc3RlZAotCWEgc3BlY2lmaWMgUElEIHRoYXQgaXMgbm90IGEgdHJhY2VkIGNoaWxkLgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IFJld3JpdGUgdG8gcHJvY2VzcyBoZXggc3RyaW5ncwotCWZyb20gcmlnaHQgdG8gbGVmdCBzbyB3ZSBkb24ndCBoYXZlIHRvIHByZXN1bWUgdGhlIHNpemUuCi0JUmVwb3J0ZWQgYnkgRGF2aWQgV29vZGhvdXNlIDxkd213MkByZWRoYXQuY29tPi4KLQotMjAwMy0wOS0yNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbWVtLmMgKG1tYXBfcHJvdCkgW1BST1RfU0VNLCBQUk9UX0dST1dTRE9XTiwgUFJPVF9HUk9XU1VQXTogSW5jbHVkZQotCXRoZXNlIGluIHRoZSB0YWJsZSBpZiB0aGV5IGFyZSBkZWZpbmVkLgotCi0yMDAzLTA5LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS0xLgotCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXTogQmFpbCBvdXQgb2YKLQlpbnN0cnVjdGlvbiBkZWNvZGluZyBicmFuY2ggaWYgVENCX0lOU1lTQ0FMTCBpcyBjbGVhci4KLQlSZXBvcnRlZCBieSA8am9jaGVuQHBlbmd1aW4tYnJlZWRlci5vcmc+LgotCi0JKiBsaW51eC9pb2N0bGVudC5oOiBTd2FwIG9yZGVyIG9mIG92ZXJsb2FkZWQgVEMqIGFuZCBTTkRDVExfKiB2YWx1ZXMuCi0KLTIwMDMtMDktMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5zcGVjOiBPbiBwcGM2NCAobWF5YmUgb3RoZXJzIGxhdGVyKSwgY3JlYXRlIGFuIHN0cmFjZTY0Ci0JcGFja2FnZSBhcyB3ZWxsIGNvbnRhaW5pbmcganVzdCAvdXNyL2Jpbi9zdHJhY2U2NC4KLQotCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBQcmludCBSVF8ldSBmb3IgX19TSUdSVE1JTi4uX19TSUdSVE1BWC4KLQlGaXhlcyBSSCMxMDQzNjUuCi0KLTIwMDMtMDgtMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IG1sb2NrIGFyZ3VtZW50IGNvdW50LiAgRml4ZXMgUkgjMTAxNDk5LgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCi0yMDAzLTA3LTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KLQotCSogZGVmcy5oIChBTElHTjY0KTogRGVmaW5lIGZvciBNSVBTLgotCSogaW8uYyAoUFJFQURfT0ZGU0VUX0FSRyk6IERlZmluZS4KLQkoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogVXNlIGl0LgotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbU0hdOiBDaGVjayB3aGV0aGVyIFJFR19YRFJFRzAKLQlpcyBkZWZpbmVkLgotCSogbGludXgvc2gvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgotCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFByZXR0eS1wcmludC4KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgotCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFRha2UgZm91ciBhcmd1bWVudHMuCi0KLTIwMDMtMDctMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTkuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk5LTEuCi0KLTIwMDMtMDctMTUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogaXBjLmM6IEFkZCBTSE1fSFVHRVRMQiBmaWVsZC4KLQlNYXNrIG91dCBwZXJtaXNzaW9uIGJpdHMgaW4gbXNnZ2V0LCBzZW1nZXQgYW5kIHNobWdldCBiZWZvcmUKLQkJcHJpbnRpbmcgcmVzb3VyY2VfZmxhZ3MuCi0JTWFzayBleGVjdXRlIHBlcm1pc3Npb24gYml0cyAoZXZlbiB0aG91Z2ggd2UgZG9udCBjdXJyZW50bHkKLQkJdXNlIHRoZW0pLgotCi0yMDAzLTA3LTE3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDI1MC4KLQotCSogbGludXgvc3lzY2FsbGVudC5oOiB0cnVuY2F0ZTY0L2Z0cnVuY2F0ZTY0IG5lZWQgMyBhcmdzLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIHN0YXRmczY0LCBmc3RhdGZzNjQsIHV0aW1lcy4KLQkqIGZpbGUuYyAocHJpbnRzdGF0ZnMpOiBQcmludCBmX2ZzaWQgYW5kIGZfZnJzaXplLgotCVtMSU5VWF0gKHByaW50c3RhdGZzNjQsIHN5c19zdGF0ZnM2NCwgc3lzX2ZzdGF0ZnM2NCk6IE5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBkZWNscy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCi0yMDAzLTA3LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDEyMzUuCi0KLTIwMDMtMDctMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHR3aWRkbGUubmV0PgotCi0JKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IE9yZGVyIGFyZ3VtZW50cyBmb3IgYWxwaGEgdGhlIHNhbWUgYXMgeDg2XzY0LgotCSogc3lzY2FsbC5jIChFUkVTVEFSVF9SRVNUQVJUQkxPQ0spOiBOZXcuCi0JKHRyYWNlX3N5c2NhbGwpOiBQcmludCBpdC4KLQkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaCAob3NmX3N5c2NhbGwpOiBOYW1lIHByb3Blcmx5LgotCShvc2Zfc2V0X3Byb2dyYW1fYXR0cmlidXRlcyk6IEZpeCB0eXBvLgotCShvc2ZfbmZzc3ZjKTogTGlrZXdpc2UuCi0JKG9zZl9zaWdzZW5kc2V0KTogTGlrZXdpc2UuCi0JKGdldGRlbnRzNjQsIGdldHRpZCwgcmVhZGFoZWFkLCB0a2lsbCwgc2V0eGF0dHIsIGxzZXR4YXR0ciwgZnNldHhhdHRyLAotCWdldHhhdHRyLCBsZ2V0eGF0dHIsIGZnZXR4YXR0ciwgbGlzdHhhdHRyLCBsbGlzdHhhdHRyLCBmbGlzdHhhdHRyLAotCXJlbW92ZXhhdHRyLCBscmVtb3ZleGF0dHIsIGZyZW1vdmV4YXR0ciwgZnV0ZXgsIHNjaGVkX3NldGFmZmluaXR5LAotCXNjaGVkX2dldGFmZmluaXR5LCB0dXhjYWxsLCBpb19zZXR1cCwgaW9fZGVzdHJveSwgaW9fZ2V0ZXZlbnRzLAotCWlvX3N1Ym1pdCwgaW9fY2FuY2VsLCBleGl0X2dyb3VwLCBsb29rdXBfZGNvb2tpZSwgZXBvbGxfY3JlYXRlLAotCWVwb2xsX2N0bCwgZXBvbGxfd2FpdCwgcmVtYXBfZmlsZV9wYWdlcywgc2V0X3RpZF9hZGRyZXNzLAotCXJlc3RhcnRfc3lzY2FsbCwgZmFkdmlzZSwgdGltZXJfY3JlYXRlLCB0aW1lcl9zZXR0aW1lLCB0aW1lcl9nZXR0aW1lLAotCXRpbWVyX2dldG92ZXJydW4sIHRpbWVyX2RlbGV0ZSwgY2xvY2tfc2V0dGltZSwgY2xvY2tfZ2V0dGltZSwKLQljbG9ja19nZXRyZXMsIGNsb2NrX25hbm9zbGVlcCwgc2VtdGltZWRvcCk6IE5ldy4KLQotMjAwMy0wNy0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc2lnbmFsLmMgKHN5c190Z2tpbGwpOiBOZXcgZnVuY3Rpb24uCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB0Z2tpbGwuCi0KLTIwMDMtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuCi0JKiBmaWxlLmMgKGNvbnZlcnRvbGRzdGF0LCBwcmludG9sZHN0YXQpOiBEZWZpbmUgdW5kZXIKLQlbTElOVVggJiYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVRdIHJhdGhlciB0aGFuIGEgbGlzdCBvZiBhcmNocy4KLQkoc3lzX29sZHN0YXQsIHN5c19vbGRmc3RhdCwgc3lzX29sZGxzdGF0KTogTGlrZXdpc2UuCi0JKiBsaW51eC9kdW1teS5oIFshIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUXQotCShzeXNfb2xkc3RhdCwgc3lzX29sZGZzdGF0LCBzeXNfb2xkbHN0YXQpOiAjZGVmaW5lIHRvIHByaW50YXJncy4KLQotMjAwMy0wNi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjOiBTSE1FRElBIC0+IFNINjQKLQkqIGRlZnMuaDogTGlrZXdpc2UuCi0JKiBtZW0uYzogTGlrZXdpc2UuCi0JKiBwcm9jZXNzLmM6IExpa2V3aXNlLgotCSogc29jay5jOiBMaWtld2lzZS4KLQkqIHN5c2NhbGwuYzogTGlrZXdpc2UuCi0JKiB1dGlsLmM6IExpa2V3aXNlLgotCSogbGludXgvc2htZWRpYS9zeXNjYWxsZW50Lmg6IE1vdmVkIHRvIC4uLgotCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IC4uLiBoZXJlLgotCi0JKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGNhbm9uaWNhbCB2ZXJzaW9uLCB0aW1lc3RhbXAgMjAwMy0wNi0xNy4KLQkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgotCi0JKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCkgW0xJTlVYXSBbQVJNXTogRml4IHZhcmlhYmxlIHVzYWdlLgotCUZyb206IEpvc2h1YSBOZWFsIDx0aW5hcmFAbmV0cGlwZWxpbmUubmV0Pi4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19mdXRleCk6IEdyb2sgRlVURVhfUkVRVUVVRSBhbmQgcHJpbnQgNXRoIGFyZy4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogc3lzX2Z1dGV4IGFyZ3VtZW50IGNvdW50IGlzIG5vdyA1LCBub3QgNC4KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQlGcm9tIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+LgotCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbUzM5MCB8fCBTMzkwWF06IEZpeCBvbGQgdnMgbmV3IG1vZGUgZGV0ZWN0aW9uLgotCUZyb20gTWljaGFlbCBIb2x6aGV1IDxIT0xaSEVVQGRlLmlibS5jb20+LgotCi0yMDAzLTA2LTIzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBuZXQuYyAoc3lzX3NvY2tldCk6IERlY29kZSBwcm90b2NvbCBmb3IgUEZfSU5FVDYgc2FtZSBhcyBQRl9JTkVULgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLTIwMDMtMDYtMTAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTguCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk4LTEuCi0KLTIwMDMtMDYtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MFhdIHZhbHVlLgotCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MF0gdmFsdWUuCi0KLQkqIGxpbnV4L3NobWVkaWEvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KLQlGcm9tIFN0ZXBoZW4gVGhvbWFzIDxzdGVwaGVuLnRob21hc0BzdXBlcmguY29tPi4KLQotCSogc3RyYWNlLmMgKHRyYWNlKTogUHJpbnQgYSBtZXNzYWdlIGFuZCBuZXdsaW5lIGZvciBhIFdJRkVYSVRFRCByZXBvcnQKLQlmcm9tIHRoZSBwcm9jZXNzIHdlIGp1c3QgcHJpbnRlZCBhbiB1bnRlcm1pbmF0ZWQgc3lzY2FsbCBsaW5lIGZvci4KLQotMjAwMy0wNi0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF06IEZpeCB0eXBvIFtJQTYyXSAtPiBbSUE2NF0uCi0KLQlMaW51eC9BUk0gaW1wcm92ZW1lbnRzIGZyb20gUnVzc2VsbCBLaW5nIDxybWtAYXJtLmxpbnV4Lm9yZy51az46Ci0JKiBkZWZzLmggW0xJTlVYXSAoVENCX1dBSVRFWEVDVkUpOiBEZWZpbmUgZm9yIFtBUk1dIHRvby4KLQkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYXSBbQVJNXTogQWRkIEFSTSByZWdpc3RlcnMuCi0JKiBzaWduYWwuYyBbTElOVVhdIChzeXNfc2lncmV0dXJuKSBbQVJNXTogTmV3IGNhc2UuCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vLCBzeXNjYWxsX2ZpeHVwKSBbTElOVVhdIFtBUk1dOiBDYXNlIHJld3JpdHRlbi4KLQkoZ2V0X2Vycm9yKSBbTElOVVhdIFtBUk1dOiBVcGRhdGUuCi0JKHN5c2NhbGxfZW50ZXIpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgotCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgotCi0JKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy41LjEwLgotCi0JKiBzdHJhY2UuYyAobWFpbik6IEluIFBBVEggc2VhcmNoLCBhY2NlcHQgb25seSBhIHJlZ3VsYXIgZmlsZSB3aXRoCi0JZXhlY3V0ZSBiaXRzIHNldC4gIEZpeGVzIERlYmlhbiBidWcgIzEzNzEwMy4KLQotMjAwMy0wNi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBTZXQgLXEgd2hlbiBnaXZlbiAtbyBhbmQgbm90IC1wLCBhbmQgbm90IHdoZW4gbm90Ci0JZ2l2ZW4gLW8sIHRvIG1hdGNoIHdoYXQgdGhlIG1hbiBwYWdlIGFsd2F5cyBzYWlkLgotCUZpeGVzIERlYmlhbiBidWcgIzQ3MTEzLCAjMTUzNjc4LgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk3LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Ny0xLgotCi0JKiBjb25maWd1cmUuYWMsIGRlZnMuaCwgbWVtLmMsIHByb2Nlc3MuYywgc29jay5jLCBzeXNjYWxsLmMsIHV0aWwuYzoKLQlNZXJnZWQgaW4gU0htZWRpYSBwb3J0IGZyb20gU3RlcGhlbiBUaG9tYXMgPHN0ZXBoZW4udGhvbWFzQHN1cGVyaC5jb20+LgotCi0JKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvY29uZmlnLywKLQl0aW1lc3RhbXAgMjAwMy0wNS0yMi4KLQkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwMy0wNS0yNC4KLQotMjAwMy0wNS0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTmV3IG1lbWJlciBgbnpvbWJpZXMnLgotCSogc3RyYWNlLmMgKGFsbG9jdGNiKTogSW5pdGlhbGl6ZSBpdC4KLQkoZHJvcHRjYik6IEluY3JlbWVudCBvdXIgcGFyZW50J3Mgem9tYmllIGNvdW50LgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogRG9uJ3QgZ28gaW50byBUQ0JfU1VTUEVOREVEIGlmIHRoZQotCXByb2Nlc3MgaGFzIHpvbWJpZXMgaXQgY2FuIHJlYXAuICBPbiB0aGUgd2F5IG91dCwgaWYgd2UgcmVhcGVkCi0JYW4gdW50cmFjZWQgcHJvY2VzcywgZGVjcmVtZW50IHRoZSB6b21iaWUgY291bnQuCi0KLQkqIHByb2Nlc3MuYyAoc3lzX2Nsb25lKTogTWFzayBDU0lHTkFMIG91dCBvZiBmbGFncyBhbmQgcHJpbnQgdGhhdAotCXNlcGFyYXRlbHkgdXNpbmcgc2lnbmFtZS4KLQotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSkgW1RDQl9DTE9ORV9USFJFQURdOiBVc2UgQVJHX0ZMQUdTIGluc3RlYWQKLQlvZiBsaXRlcmFsIDAgZm9yIGluZGV4LiAgQ29uc3VsdCB0aGUgcmlnaHQgZmxhZ3Mgd2l0aG91dCBjbG9iYmVyaW5nCi0JYW55dGhpbmcgd2hlbiB3ZSByZXBhcmVudCB0aGUgbmV3IGNoaWxkIHRvIHRoZSBjYWxsZXIncyBwYXJlbnQgdGhyZWFkLgotCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogRml4IHN5c19jbG9uZSBhcmd1bWVudCBjb3VudC4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLQkqIHByb2Nlc3MuYyBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXSAoQVJHX0NUSUQsIEFSR19UTFMpOiBGaXggc3dhcHBlZAotCWluZGljZXMuICBSZXBvcnRlZCBieSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPi4KLQotCSogc2lnbmFsLmMgW0xJTlVYXSAoU0lfU0lHSU8sIFNJX1RLSUxMKTogTmV3IG1hY3Jvcy4KLQlbTElOVVggfHwgU1ZSNF0gKHNpZ2luZm9fY29kZXMpOiBBZGQgc3RyaW5ncyBmb3IgdGhlbS4KLQotCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBGaXggbG9vcCBjb25kaXRpb24uCi0JUmVwb3J0ZWQgYnkgSWFuIFdpZW5hbmQgPGlhbndAZ2VsYXRvLnVuc3cuZWR1LmF1Pi4KLQotMjAwMy0wNC0xMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChxdWFsX2Rlc2MpOiBSZXR1cm4gemVybyBhZnRlciBwYXJzaW5nIG51bWJlci4KLQlGcm9tIFJvYiBMZXNsaWUgPHJvYkBtYXJzLm9yZz4sIGZpeGVzIERlYmlhbiBidWcgIzE4ODM3OS4KLQotMjAwMy0wNC0wNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgc2VtdGltZWRvcCBzdWJjYWxsIG9mIGlwYyBzeXNjYWxsLgotCSogbGludXgvc3lzY2FsbC5oOiBMaWtld2lzZS4KLQkqIGlwYy5jIFtMSU5VWF0gKHN5c19zZW10aW1lZG9wKTogTmV3IGZ1bmN0aW9uLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGlwYy5jIChzeXNfc2VtZ2V0KTogTWFzayBvZmYgcGVybWlzc2lvbiBiaXRzIGZvciByZXNvdXJjZV9mbGFncy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCi0yMDAzLTA0LTAxICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KLQotCSogc29jay5jLCBzdHJlYW0uYzogQ2hlY2sgI2lmZGVmIExJTlVYLCBub3QgbGludXguCi0JKiBmaWxlLmM6IEFsd2F5cyBwcm92aWRlIHN5c18qYXR0ciwgcmVnYXJkbGVzcyBvZiAjaWZkZWYgWEFUVFJfQ1JFQVRFLgotCi0yMDAzLTAzLTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk2LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Ni0xLgotCi0yMDAzLTAyLTI2ICBTdHVhcnQgTWVuZWZ5IDxzdHVhcnQubWVuZWZ5QHN0LmNvbT4KLQotCVZhcmlvdXMgZml4ZXMgZm9yIFN1cGVySCBbU0hdOgotCSogbWVtLmMgKHN5c19vbGRfbW1hcCk6IG1tYXAoKSBwYXJhbWV0ZXJzIHBhc3NlZCBpbiByZWdpc3RlcnMKLQkqIG5ldC5jIChzeXNfcGlwZSksIHN5c2NhbGwuYyAoZ2V0cnZhbDIpOiBwaXBlKCkgcmVzdWx0cyByZXR1cm5lZAotCWluIHJlZ2lzdGVycwotCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCk6IEZpeGVkIHJlZ2lzdGVyIHdoaWNoIGhvbGRzIHN5c3RlbQotCWNhbGwgbnVtYmVyCi0JKiB1dGlsLmMgKGFyZzBfb2Zmc2V0LCBhcmcxX29mZnNldCk6IHByb3ZpZGUgZGVmaW5pdGlvbgotCSogTWFrZWZpbGUuYW06IEFkZGVkIG5ldyBmaWxlcyBpbiBsaW51eC9zaAotCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3NoL2Vycm5vZW50Lmg6IE5ldyBmaWxlLgotCSogbGludXgvc2gvaW9jdGxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zaC9zaWduYWxlbnQuaDogTmV3IGZpbGUuCi0KLQkqIGxpbnV4L2lvY3RsZW50LnNoOiBUYWtlIGFuIGFyZyBmb3IgbG9jYXRpb24gb2YgaGVhZGVyIGZpbGVzCi0JKiBzeXNjYWxsZW50LnNoOiBSZXBsYWNlZCBsb3N0ICQKLQotMjAwMy0wMy0zMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogdGltZS5jIFtMSU5VWF06IEhhbmRsZSBuZXcgTGludXggMi41IGNsb2NrL3RpbWVyIHN5c2NhbGxzLgotCSogbGludXgvc3lzY2FsbC5oLCBsaW51eC9zeXNjYWxsZW50LmgsIGxpbnV4L2R1bW15Lmg6IExpa2V3aXNlLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRybGltaXQgZm9yIDE5MS4KLQlVc2UgbmFtZSAib2xkX2dldHJsaW1pdCIgZm9yIDc2LgotCVJlcG9ydGVkIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCi0yMDAzLTAzLTE4ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKTogRG9uJ3QgZGVyZWZlcmVuY2UgcGFyZW50X3RpZCBhcmd1bWVudC4KLQotMjAwMy0wMy0xNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogY2xvbmUgdGFrZXMgNSBhcmdzLgotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19jbG9uZSkgW1g4Nl82NF06IEZpeCBhcmd1bWVudCBvcmRlci4KLQotMjAwMy0wMy0xNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogQWRkIGV4aXRfZ3JvdXAgc3lzY2FsbCBhdCAyMzEuCi0KLTIwMDMtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBhbmQgYWRkIG1hbnkgMi41IHN5c2NhbGxzLgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogY2xvbmUgdGFrZXMgNSBhcmd1bWVudHMuCi0JKiBwcm9jZXNzLmMgW0xJTlVYICYmIElBNjRdIChBUkdfKik6IFVwZGF0ZSBmb3IgMi41IGNsb25lIGNhbGxzLgotCi0yMDAzLTAzLTEyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogRml4IGFyZyBjb3VudHMgZm9yIGNsb25lIGFuZCBjbG9uZTIuCi0JVXNlIHN5c19jbG9uZSBmb3IgY2xvbmUyLgotCSogbGludXgvc3lzY2FsbC5oOiBEb24ndCBkZWNsYXJlIHN5c19jbG9uZTIuCi0JKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IFJld3JpdHRlbiB0byBoYW5kbGUgYm90aCBmbGF2b3JzLAotCXByaW50IGFsbCBleHRyYSBhcmdzIGRlcGVuZGluZyBvbiBmbGFnIGJpdHMuCi0JKHN5c19jbG9uZTIpOiBGdW5jdGlvbiByZW1vdmVkLgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogQWRkIGEgYnVuY2ggb2YgMi41IHN5c2NhbGxzLgotCi0yMDAzLTAzLTA0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbSUE2NF06IERvIFRDQl9XQUlURVhFQ1ZFIGNoZWNrIG9ubHkgd2hlbgotCVRDQl9JTlNZU0NBTEwgaXMgY2xlYXIsIGxpa2Ugb3RoZXIgcGxhdGZvcm1zIGRvLgotCi0yMDAzLTAzLTA0ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KLQotCSogbWVtLmMgW0xJTlVYXSAoc3lzX3JlbWFwX2ZpbGVfcGFnZXMpOiBOZXcgZnVuY3Rpb24uCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBpdC4KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19mdXRleCk6IE9taXQgZmluYWwgaWYgb3AgaXMgbm90IEZVVEVYX1dBSVQuCi0KLTIwMDMtMDItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYzogRml4IHR5cG8gaW4gbmV0aW5ldC9pbi5oIGNoZWNrLgotCUFsc28gaW5jbHVkZSA8c3lzL3R5cGVzLmg+IGFuZCA8c3lzL3NvY2tldC5oPiBiZWZvcmUgPG5ldGluZXQvaW4uaD4uCi0JUmVwb3J0ZWQgYnkgQWxleCBTZW1lbnlha2EgPGFsZXhzQHNuYXJrLnJpbmV0LnJ1Pi4KLQotMjAwMy0wMi0yNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45NS4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTUtMS4KLQotCSogcHJvY2Vzcy5jIChzeXNfZ2V0cmVzZ2lkKTogRml4IHR5cG9zIGluIGFyZ3VtZW50IGFjY2Vzcy4KLQotMjAwMy0wMi0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogcHJvY2Vzcy5jIChzeXNfZ2V0cmVzdWlkKTogRml4IHR5cG9zIGluIGFyZ3VtZW50IGFjY2Vzcy4KLQlSZXBvcnRlZCBieSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCi0KLTIwMDMtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTQuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk0LTEuCi0KLQkqIHZlcnNpb24uYzogUmVtb3ZlZC4KLQkqIE1ha2VmaWxlLmFtIChzdHJhY2VfU09VUkNFUyk6IFJlbW92ZSBpdC4KLQkqIHN0cmFjZS5jOiBVc2UgUEFDS0FHRV9OQU1FIGFuZCBWRVJTSU9OIG1hY3JvcyBpbnN0ZWFkIG9mIHZlcnNpb24gdmFyLgotCi0JRnJlZUJTRCByZm9yayBzdXBwb3J0IGNoYW5nZXMgZnJvbSBSdXNzIENveCA8cnNjQHBsYW45LmJlbGwtbGFicy5jb20+OgotCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogSGFuZGxlIFNZU19yZm9yayB3aXRoIGludGVybmFsX2ZvcmsuCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmspIFtTWVNfcmZvcmtdOiBCYWlsIGlmIFJGUFJPQyBmbGFnIG5vdCBzZXQuCi0KLTIwMDMtMDEtMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHNpZ25hbC5jOiBSZW9yZGVyICNpZmRlZnMgc28gSEFWRV9BU01fU0lHQ09OVEVYVF9IIGRvZXNuJ3QgbWF0dGVyIG9uCi0JU1BBUkMsIHdoaWNoIGRvZXNuJ3QgdXNlIHRoZSBoZWFkZXIgcmVnYXJkbGVzcy4KLQotCSogdXRpbC5jIFtMSU5VWCAmJiBTUEFSQ106IERvIHJlbmFtaW5nIGtsdWRnZXMgYXJvdW5kIDxhc20vcmVnLmg+Ci0JbGlrZSBzaWduYWwuYyBkb2VzLgotCi0JKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2dldGRlbnRzNjQsIHN5c19sbHNlZWsuCi0KLQkqIGxpbnV4L2R1bW15LmggWyEgU1lTX2dldHBtc2ddIChzeXNfZ2V0cG1zZyk6ICNkZWZpbmUgdG8gcHJpbnRhcmdzLgotCVshIFNZU19wdXRwbXNnXSAoc3lzX3B1dHBtc2cpOiBMaWtld2lzZS4KLQotCSogcHJvY2Vzcy5jOiBSZW9yZGVyIGluY2x1ZGVzIHRvIHB1dCBzeXMvcmVnLmggYmVmb3JlIGxpbnV4L3B0cmFjZS5oLAotCXNpbmNlIHRoZXkgY2FuIGNvbmZsaWN0LgotCi0yMDAzLTAxLTIxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuYyAodXNhZ2UpOiBPbWl0IC16LCBzaW5jZSBpdCBoYXMgbmV2ZXIgd29ya2VkIHByb3Blcmx5LgotCSogTkVXUzogTGlrZXdpc2UuCi0KLQkqIHN0cmFjZS5jIChtYWluKTogR3JvayBuZXcgb3B0aW9uIGAtRSB2YXI9dmFsJyBvciBgLUUgdmFyJyB0byBwdXQKLQl2YXI9dmFsIGluIGVudmlyb24gb3IgdG8gcmVtb3ZlIHZhciwgcmVzcGVjdGl2ZWx5LgotCSh1c2FnZSk6IE1lbnRpb24gaXQuCi0JKiBzdHJhY2UuMSwgTkVXUzogRG9jdW1lbnQgaXQuCi0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTMuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkzLTEuCi0JKiBzdHJhY2Uuc3BlYyAoU291cmNlMCk6IFVzZSBzdHJhY2UtVkVSU0lPTi50YXIuYnoyIG5vdy4KLQotMjAwMy0wMS0yMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZGVmcy5oIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdIChUQ0JfV0FJVEVYRUNWRSk6IERlZmluZSBpdC4KLQkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8sIHN5c2NhbGxfZml4dXApIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBIYW5kbGUKLQlUQ0JfV0FJVEVYRUNWRSBzdGF0ZSB3aXRoIHNwZWNpYWwga2x1ZGdlcy4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19jbG9uZSkgW1MzOTAgfHwgUzM5MFhdOiBBcmd1bWVudCBvcmRlciBpcwotCXJldmVyc2VkIGZyb20gb3RoZXIgYXJjaGl0ZWN0dXJlcy4KLQotCSogcHJvY2Vzcy5jIChzeXNfZXhlY3ZlKSBbTElOVVhdOiBNYWtlIHNldHRpbmcgVENCX1dBSVRFWEVDVkUgZmxhZwotCWNvbmRpdGlvbmFsIG9uIFtUQ0JfV0FJVEVYRUNWRV0gaW5zdGVhZCBvZiBsaXN0IG9mIHByb2Nlc3NvcnMuCi0KLQkqIHV0aWwuYyAocmVzdG9yZV9hcmcwKTogRXZhbHVhdGUgYXJncyBpbiBuby1vcCBkZWZucy4KLQotCSogdXRpbC5jIFtTMzkwIHx8IFMzOTBYXSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogRml4IGRlZmluaXRpb25zCi0JZm9yIGNsb25lIGNhbGwgb24gUzM5MC4gIEZyb20gTWljaGFlbCBIb2x6aGV1IDxob2x6aGV1QGRlLmlibS5jb20+LgotCi0yMDAzLTAxLTE3ICBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogdXRpbC5jIFtMSU5VWF0gKHNldGJwdCk6IEhhbmRsZSBTWVNfdmZvcmsgbGlrZSBTWVNfZm9yay4KLQotCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiAyNTYgYWxzbyBmb3IgUE9XRVJQQy4KLQotMjAwMy0wMS0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvcG93ZXJwYy9lcnJub2VudC5oOiBBZGQgbWlzc2luZyBlcnJub3MuCi0JKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50Lmg6IFVwZGF0ZSBpb2N0bCB2YWx1ZXMuCi0JRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCi0KLQkqIGlvLmMgW0xJTlVYXSAoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogRml4IGxhc3QgY2hhbmdlLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRkZW50czY0LCBzeXNfdHJ1bmNhdGU2NCwKLQlzeXNfZnRydW5jYXRlNjQsIGluc3RlYWQgb2YgcHJpbnRhcmdzLCBmb3IgdGhvc2Ugc3lzY2FsbHMuCi0JKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IE9ubHkgMjU2IGZvciBTMzkwLCBTMzkwWC4KLQlBbGwgb3RoZXJzIGF0IHRoZSBtb21lbnQgdXNlIGxpbnV4L3N5c2NhbGxlbnQuaCwgd2hlcmUgaXQncyAzMDAuCi0KLQkqIHN0cmFjZS4xOiBVcGRhdGUgYnVnIHJlcG9ydGluZyBpbmZvLgotCi0JKiByZXNvdXJjZS5jIFtMSU5VWF0gKHF1b3RhY21kcyk6IEdyb2sgbmV3IGNvbW1hbmQgZW5jb2RpbmdzLgotCUZyb20gTmF0aGFuIFNjb3R0IDxuYXRoYW5zQGRlYmlhbi5vcmc+LgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40LjkyLgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Mi0xLgotCi0JKiBjb25maWd1cmUuYWM6IE1hdGNoIHBvd2VycGMqIChpbmNsdWRlcyBwb3dlcnBjNjQpLCBhbmQgZG9uJ3QgbWF0Y2gKLQlwcGMgKG5ldmVyIGNvbWVzIG91dCBvZiBjb25maWcuc3ViKS4KLQotCSogcHJvY2Vzcy5jIChzeXNfcHRyYWNlKTogVXNlICNseCBmb3JtYXQgZm9yIGFkZHJlc3MgYXJndW1lbnQuCi0JW1BPV0VSUENdOiBVc2Ugc2l6ZW9mKHVuc2lnbmVkIGxvbmcpIGluIHBsYWNlIG9mIDQgZm9yIG11bHRpcGxpZXJzLgotCSogcHJvY2Vzcy5jIFtQT1dFUlBDXTogTGlrZXdpc2UuCi0JKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW1BPV0VSUENdOiBMaWtld2lzZS4KLQkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtQT1dFUlBDXTogTGlrZXdpc2UuCi0JKiB1dGlsLmMgW1BPV0VSUENdOiBMaWtld2lzZS4KLQkocHJpbnRudW0pOiBVc2UgbG9uZyBmb3IgTlVNLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBkZWZzLmggKEFMSUdONjQpOiBGaXggZGVmbiBmb3IgUFBDLCBzYW1lIGFzIEZyZWVCU0Qgb25lLgotCi0JKiB1dGlsLmMgW0xJTlVYXSAocmVzdG9yZV9hcmcwLCByZXN0b3JlX2FyZzEpOiBOZXcgbWFjcm9zLCBkZWZpbmVkCi0JYXBwcm9wcmlhdGVseSB2aWEgc2V0X2FyZzAgb3Igbm8tb3BzIGZvciBlYWNoIGFyY2hpdGVjdHVyZS4KLQkoY2xlYXJicHQpOiBVc2UgdGhvc2UgaW5zdGVhZCBvZiBzZXRfYXJnMCBhbmQgc2V0X2FyZzEuCi0KLQkqIGRlZnMuaCBbX0xBUkdFRklMRTY0X1NPVVJDRV0gKF9MRlM2NF9MQVJHRUZJTEUpOiBEZWZpbmUgaXQuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfZ2V0ZGVudHM2NCwgc3lzX3RydW5jYXRlNjQsCi0Jc3lzX2Z0cnVuY2F0ZTY0LCBpbnN0ZWFkIG9mIHByaW50YXJncywgZm9yIHRob3NlIHN5c2NhbGxzLgotCi0JKiBwcm9jZXNzLmM6IFVzZSA8bGludXgvcHRyYWNlLmg+IHJlZ2FyZGxlc3Mgb2YgPHN5cy9yZWcuaD4uCi0JKHN5c19wdHJhY2UpOiBVc2UgcHJpbnR4dmFsLgotCShwdHJhY2VfY21kcyk6IE1ha2UgUFRSQUNFX0dFVFJFR1MgZXQgYWwgY29uZGl0aW9uYWwgb24gI2lmZGVmIFBUUkFDRV8qCi0JaW5zdGVhZCBvZiBvbmx5ICNpZmRlZiBTVU5PUzQuICBBZGQgUFRSQUNFX1tHU11FVEZQWFJFR1MuCi0KLQkqIGlwYy5jIChQUklOVENUTCk6IE5ldyBtYWNyby4gICNpZmRlZiBJUENfNjQsIGZhY3RvciBvdXQgdGhlIGZsYWcgYW5kCi0JcHJpbnQgaXQgYmVmb3JlIHVzaW5nIHByaW50eHZhbC4KLQkoc3lzX21zZ2N0bCwgc3lzX3NlbWN0bCwgc3lzX3NobWN0bCk6IFVzZSBpdC4KLQotMjAwMy0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgZnJvbSBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8sCi0JdGltZXN0YW1wIDIwMDMtMDEtMTAuCi0JKiBjb25maWcuc3ViOiBMaWtld2lzZSwgdGltZXN0YW1wIDIwMDMtMDEtMDMuCi0JKiBpbnN0YWxsLXNoOiBVcGRhdGUgZnJvbSBBdXRvbWFrZSAxLjcuMi4KLQotCSogbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaDogQWRkIFNJR1JUTUlOLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogQWRkIG1pc3Npbmcgc3lzdGVtIGNhbGxzLgotCURlY29kZSBtb3JlIHN5c3RlbSBjYWxscywgd2Ugd2VyZSBqdXN0IHByaW50YXJncyBmb3IgbWFueSB0aGluZ3MuCi0JUmVtb3ZlIHNvbWUgeDg2LXNwZWNpZmljIHN5c3RlbSBjYWxscy4KLQlSZW1vdmUgdHdvIHN5c2NhbGxzIGJldHdlZW4gdGhlIHNvY2tldCBhbmQgaXBjIHN5c2NhbGxzLAotCWl0IHdhcyByZXN1bHRpbmcgaW4gYWxsIElQQyBzeXNjYWxscyBiZWluZyBvZmYgYnkgdHdvLgotCi0JKiBpb2N0bC5jIChpb2N0bF9kZWNvZGUpIFtQT1dFUlBDXTogRGVjb2RlIHRlcm0gaW9jdGxzIGxpa2UgQWxwaGEuCi0JRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCi0KLQkqIGRlZnMuaCBbUE9XRVJQQ10gKFVFU1AsIEVJUCwgRUFYLCBPUklHX0VBWCk6IFJlbW92ZSB0aGlzIGNydWZ0LgotCVtMSU5VWCAmJiBQT1dFUlBDICYmICFfX3Bvd2VycGM2NF9fXSAoQUxJR042NCk6IE5ldyBtYWNyby4KLQkqIGlvLmMgKHN5c19wcmVhZCwgc3lzX3B3cml0ZSk6IFVzZSBBTElHTjY0LgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiB0ZXJtLmMgW0xJTlVYXTogR2V0IGtlcm5lbCBkZWZpbml0aW9uIG9mIHN0cnVjdCB0ZXJtaW9zLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBsaW51eC9pb2N0bGVudC5zaDogTG9vayBpbiBzb3VuZC8gZGlyZWN0b3J5IHRvby4KLQlGcm9tIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KLQotCSogZGVzYy5jIChwcmludGZsb2NrNjQpOiBGaXggQUREUiBhcmd1bWVudCB0eXBlLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBzdHJhY2UuYyBbISBIQVZFX1NUUlNJR05BTF06IENsZWFuIHVwICNpZmRlZnMgb24gZGVjbHMgZm9yCi0Jc3lzX3NpZ2xpc3QgYW5kIF9zeXNfc2lnbGlzdC4KLQlSZXBvcnRlZCBieSBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+LgotCi0JKiBuZXQuYzogSEFWRV9PUFRIRFIgLT4gSEFWRV9TVFJVQ1RfT1BUSERSCi0JUmVwb3J0ZWQgYnkgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPi4KLQotCSogbGludXgvc3lzY2FsbC5oIFtBUk1dIChTWVNfc29ja2V0X3N1YmNhbGwpOiBTZXQgdG8gMzAwLgotCi0yMDAzLTAxLTEwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40LjkxLgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45MS0xCi0KLQkqIHV0aWwuYyBbTElOVVggJiYgWDg2XzY0XSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogVXNlIGNvcnJlY3QKLQl2YWx1ZXMgZm9yIHg4Ni02NCwgY29uZGl0aW9uYWwgb24gY3VycmVudF9wZXJzb25hbGl0eS4KLQotCSogc3RyYWNlLmMgKGRyb3B0Y2IpOiBDbGVhciBmbGFncyB3b3JkIGJlZm9yZSBjYWxsaW5nIHJlYnVpbGRfcG9sbHYuCi0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgc3RydWN0IFRfY29ubl9yZXMgZm9yIFFVRVVFX3B0ciBvciBBQ0NFUFRPUl9pZC4KLQkqIHN0cmVhbS5jIChwcmludF90cmFuc3BvcnRfbWVzc2FnZSk6IFVzZSAjaWZkZWZzIGZvciB0aG9zZSBtZW1iZXJzLgotCi0JKiBzdHJhY2UuYyAocmVidWlsZF9wb2xsdik6IEZpeCB0eXBvOiBzdHJ1Y3QgcG9sbCAtPiBzdHJ1Y3QgcG9sbGZkLgotCi0JKiBjb25maWd1cmUuYWM6IEZpeCBzaWdpbmZvX3Qvc2lnX2F0b21pY190IGNoZWNrcy4KLQlVc2UgcHJlcmVxdWlzaXRlICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGZvciBuZXRpbmV0LyouaCBjaGVja3MuCi0KLQkqIHN0cmFjZS5jIChwZmQydGNiKTogRml4IGZvciBuZXcgdGNidGFiIHR5cGUuCi0JKHJlYnVpbGRfcG9sbHYpOiBMaWtld2lzZS4KLQkoZGV0YWNoKTogUHV0IHZhcmlhYmxlcyB1c2VkIHVuZGVyIFtMSU5VWF0gaW5zaWRlICNpZmRlZi4KLQotCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCkgW1BPV0VSUENdOiBBZGQgbWlzc2luZyByZXR1cm4uCi0JKiB1dGlsLmMgW1BPV0VSUENdIChhcmcwX29mZnNldCk6IFNldCB0byA0KlBUX1IzLCBub3QgNCpQVF9PUklHX1IzLgotCi0JKiBzdHJhY2Uuc3BlYzogTmV3IGZpbGUuCi0JKiBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTAtMQotCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IERlcGVuZCBvbiBidWlsZC4KLQkoY2xlYW4pOiBEb24ndCB0cnkgdG8gcnVuIE1ha2VmaWxlLmluLgotCSogZGViaWFuL2NvbnRyb2wgKFN0YW5kYXJkcy1WZXJzaW9uKTogTm93IDMuNS44LgotCi0JKiBjb25maWd1cmUuYWM6IERpZGRsZSBDRkxBR1MgYWZ0ZXIgQUNfUFJPR19DQywgbm90IGJlZm9yZS4KLQotMjAwMy0wMS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtTMzkwIHx8IFMzOTBYXTogRml4IHR5cG8uCi0KLQkqIGRlYmlhbi9jb250cm9sOiBVcGRhdGUgTWFpbnRhaW5lcjogZmllbGQuCi0KLTIwMDMtMDEtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE5FV1M6IFVwZGF0ZSBmb3IgNC40LjkwIHRlc3QgcmVsZWFzZS4KLQotCVN1cHBvcnQgZm9yIG5ldyBMaW51eCAyLjUgdGhyZWFkIGZlYXR1cmVzLgotCSogZGVmcy5oIFtMSU5VWF06IERlZmluZSBfX05SX2V4aXRfZ3JvdXAgaWYgbm90IGRlZmluZWQuCi0JKHN0cnVjdCB0Y2IpOiBOZXcgbWVtYmVycyBuY2xvbmVfdGhyZWFkcywgbmNsb25lX2RldGFjaGVkLAotCWFuZCBuY2xvbmVfd2FpdGluZy4KLQkoVENCX0NMT05FX0RFVEFDSEVELCBUQ0JfQ0xPTkVfVEhSRUFELCBUQ0JfR1JPVVBfRVhJVElORyk6IE5ldyBtYWNyb3MuCi0JKHdhaXRpbmdfcGFyZW50KTogTWFjcm8gcmVtb3ZlZC4KLQkocGlkMnRjYik6IERlY2xhcmUgaXQuCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKSBbVENCX0NMT05FX1RIUkVBRF06IFJlcGFyZW50IHRoZSBuZXcKLQljaGlsZCB0byBvdXIgcGFyZW50IGlmIHdlIGFyZSBhIENMT05FX1RIUkVBRCBjaGlsZCBvdXJzZWx2ZXMuCi0JTWFpbnRhaW4gVENCX0NMT05FX1RIUkVBRCBhbmQgVENCX0NMT05FX0RFVEFDSEVEIGZsYWdzIGFuZCBjb3VudHMuCi0JKGludGVybmFsX3dhaXQpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogRmFjdG9yIG91dCBkZXRhY2hlZCBjaGlsZHJlbiB3aGVuCi0JZGV0ZXJtaW5pbmcgaWYgd2UgaGF2ZSBhbnkuICBJZiBUQ0JfQ0xPTkVfVEhSRUFEIGlzIHNldCwgY2hlY2sKLQlwYXJlbnQncyBjaGlsZHJlbiBpbnN0ZWFkIG9mIG91ciBvd24sIGFuZCBidW1wIG5jbG9uZV93YWl0aW5nIGNvdW50LgotCShpbnRlcm5hbF9leGl0KSBbX19OUl9leGl0X2dyb3VwXTogU2V0IHRoZSBUQ0JfR1JPVVBfRVhJVElORyBmbGFnIGlmCi0JdGhlIHN5c2NhbGwgd2FzIGV4aXRfZ3JvdXAuCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVc2UgaW50ZXJuYWxfZXhpdCBmb3IgZXhpdF9ncm91cC4KLQkqIHN0cmFjZS5jIChwaWQydGNiKTogTm8gbG9uZ2VyIHN0YXRpYy4KLQkoYWxsb2N0Y2IpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogSW5pdGlhbGl6ZSBuZXcgZmllbGRzLgotCShkcm9wdGNiKSBbVENCX0NMT05FX1RIUkVBRF06IE1haW50YWluIG5ldyBmaWVsZHMuCi0JSWYgd2UgaGF2ZSB0aHJlYWQgY2hpbGRyZW4sIHNldCBUQ0JfRVhJVElORyBhbmQgZG9uJ3QgY2xlYXIgdGhlIFRDQi4KLQkocmVzdW1lKSBbVENCX0NMT05FX1RIUkVBRF06IERlY3JlbWVudCBwYXJlbnQncyBuY2xvbmVfd2FpdGluZy4KLQkoZGV0YWNoKSBbVENCX0NMT05FX1RIUkVBRF06IFdoZW4gY2FsbGluZyByZXN1bWUsIGNoZWNrIGFsbCB0aHJlYWQKLQljaGlsZHJlbiBvZiBvdXIgcGFyZW50IHRoYXQgbWlnaHQgYmUgd2FpdGluZyBmb3IgdXMgdG9vLgotCVtUQ0JfR1JPVVBfRVhJVElOR10gKGhhbmRsZV9ncm91cF9leGl0KTogTmV3IGZ1bmN0aW9uLgotCSh0cmFjZSkgW1RDQl9HUk9VUF9FWElUSU5HXTogVXNlIHRoYXQgaW4gcGxhY2Ugb2YgZGV0YWNoIG9yIGRyb3B0Y2IuCi0KLQlSZXZhbXAgLWYgc3VwcG9ydCBmb3IgTGludXguCi0JKiB1dGlsLmMgW0xJTlVYXSAoc2V0YnB0LCBjbGVhcmJwdCk6IE5ldyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB0d2VhawotCXRoZSBzeXN0ZW0gY2FsbCB0byBiZSBjbG9uZSB3aXRoIENMT05FX1BUUkFDRSBzZXQuICBWYXJpb3VzIG5ldyBzdGF0aWMKLQloZWxwZXIgZnVuY3Rpb25zLgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSk6IERlZmluZSBhbHNvICNpZmRlZiBTWVNfY2xvbmUyLgotCUluaXRpYWxpemUgVENQQ0hJTEQtPnBhcmVudCBmaWVsZC4KLQlbQ0xPTkVfUFRSQUNFXTogRG9uJ3QgZG8gUFRSQUNFX0FUVEFDSCBoZXJlLCBiZWNhdXNlIGl0J3MgcHJlYXR0YWNoZWQuCi0JQ2hlY2sgaW4gY2FzZSB0aGUgbmV3IGNoaWxkIGlzIGluIHRoZSB0Y2IgYWxyZWFkeS4KLQkoaW50ZXJuYWxfZm9yaykgW0xJTlVYXTogSnVzdCBjYWxsIGludGVybmFsX2Nsb25lLgotCSogc3RyYWNlLmMgKHRyYWNlKSBbTElOVVhdOiBVbmRlciAtZi8tRiwgZ3JvayBhbiB1bmtub3duIHBpZAotCXJlcG9ydGluZyB0byB3YWl0LCBwdXQgaXQgaW4gdGhlIFRDQiB3aXRoIFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVELgotCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaCAoc3lzX29sZGxzdGF0KTogI2RlZmluZSBhcyBwcmludGFyZ3MuCi0KLQkqIGZpbGUuYyBbTElOVVhdOiAjdW5kZWYgc3RfW2FtY110aW1lIGluIGNhc2UgdGhleSBhcmUgbWFjcm9zLgotCi0JKiBNYWtlZmlsZS5hbSAoQU1fQ0ZMQUdTKTogTmV3IHZhcmlhYmxlLCBkZWZpbmUgdG8gJChXQVJORkxBR1MpLgotCi0JKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IFJlbW92ZSBkZWJpYW4vcG9zdGluc3QgYW5kIGRlYmlhbi9wcmVybS4KLQotMjAwMy0wMS0wOSAgV2ljaGVydCBBa2tlcm1hbiAgPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KLQotCSogZGViaWFuL3Bvc3RpbnN0LCBkZWJpYW4vcHJlcm06IHJlbW92ZWQsIC91c3IvZG9jIHN5bWxpbmsgaXMgbm8KLQlsb25nZXIgdXNlZAotCSogZGViaWFuL3J1bGVzOiBubyBsb25nZXIgaW5zdGFsbCBwb3N0aW5zdCBhbmQgcHJlcm0KLQkqIGRlYmlhbi9jb250cm9sOiBkbyBub3QgZW5kIHN1bW1hcnkgd2l0aCBmdWxsIHN0b3AgKGxpbnRpYW4pCi0KLTIwMDItMTItMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtIChiaW5fU0NSSVBUUyk6IE5ldyB2YXJpYWJsZSwgbGlzdCBzdHJhY2UtZ3JhcGguCi0JKEVYVFJBX0RJU1QpOiBBZGQgbWlzc2luZyBmaWxlcy4KLQotCSogY29uZmlndXJlLmFjOiBGaXggYXNtL3NpZ2NvbnRleHQuaCBjaGVjayB0byBpbmNsdWRlIHByZXJlcXVpc2l0ZS4KLQotCSogc3lzY2FsbC5jIChxdWFsaWZ5X29uZSk6IE5ldyBmdW5jdGlvbi4KLQkocXVhbF9vcHRpb25zKTogUmVwbGFjZSBsb29rdXAgZmllbGQgd2l0aCBxdWFsaWZ5LCB1cGRhdGUgaW5pdGlhbGl6ZXIuCi0JKHF1YWxpZnkpOiBVcGRhdGUgY2FsbGVyLgotCShxdWFsX3NpZ25hbCwgcXVhbF9mYXVsdCwgcXVhbF9kZXNjKTogUmV3cml0dGVuIGZyb20gbG9va3VwXyouCi0JKHF1YWxfc3lzY2FsbCk6IFJld3JpdHRlbiBsb29rdXBfc3lzY2FsbCwgbWF0Y2ggbmFtZSBtb3JlIHRoYW4gb25jZS4KLQlGaXhlcyBSSCM3MDU3OSwgYml0ZXMgSUE2NCAtZWZvbyB3aGVuIGZvbyBleGlzdHMgb24gSUEzMi4KLQotCSogdmVyc2lvbi5jICh2ZXJzaW9uKTogTWFrZSBjb25zdCwgYnVtcCB0byA0LjQuOTAuCi0JKiBzdHJhY2UuYzogVXBkYXRlIGRlY2wuCi0KLQkqIE1ha2VmaWxlLmFtIFtMSU5VWCAmJiBYODZfNjRdOiBSZW1vdmUgY3J1ZnQuCi0JKiBsaW51eC94ODZfNjQvZXJybm9lbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L2lvY3RsZW50MS5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC94ODZfNjQvbWFrZWhlYWRlcnMuc2g6IEZpbGUgcmVtb3ZlZC4KLQkqIGxpbnV4L3g4Nl82NC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgotCi0JKiBsaW51eC9zeXNjYWxsZW50LmggW1g4Nl82NF06IERpc2FibGUgc2FuaXR5IGNoZWNrcywgc3ViY2FsbCBzdHVmZiBpcwotCWFscmVhZHkgYnJva2VuIGZvciAzMi1iaXQgcGVyc29uYWxpdHkgb24geDg2LTY0LgotCi0yMDAyLTEyLTI5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE1ha2VmaWxlLmFtOiBQdW50IHN1YmRpcnMsIGhhbmRsZSBldmVyeXRoaW5nIGhlcmUuCi0JKiBsaW51eC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgotCSogZnJlZWJzZC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgotCSogc3Vub3M0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBzdnI0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9ocHBhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9pYTY0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9wb3dlcnBjL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9zMzkweC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgotCi0yMDAyLTEyLTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXNjYWxsZW50LnNoOiBHcm9rIHRocmVlIGZsYXZvcnMgb2YgI2RlZmluZSBsaW5lLCB1bmlxdWlmeS4KLQkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5zaDogRmlsZSByZW1vdmVkLgotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LnNoOiBGaWxlIHJlbW92ZWQuCi0KLQkqIGxpbnV4L01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KLQkqIGxpbnV4L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBmcmVlYnNkL01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KLQkqIGZyZWVic2QvaTM4Ni9NYWtlZmlsZS5hbTogTmV3IGZpbGUuCi0JKiBmcmVlYnNkL2kzODYvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KLQotMjAwMi0xMi0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCVVwZGF0ZSB0byBBdXRvY29uZiAyLjU3LCBhbmQgQXV0b21ha2lmeSB3aXRoIHZlcnNpb24gMS43LgotCSogTWFrZWZpbGUuYW06IE5ldyBmaWxlLgotCSogTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KLQkqIGNvbmZpZ3VyZS5pbjogTW92ZWQgdG8gLi4uCi0JKiBjb25maWd1cmUuYWM6IC4uLiBoZXJlLiAgVXBkYXRlIGZvciBBdXRvY29uZiAyLjV4IGFuZCBBdXRvbWFrZS4KLQkqIGFjbG9jYWwubTQ6IE1vdmVkIHRvIC4uLgotCSogYWNpbmNsdWRlLm00OiAuLi4gaGVyZS4gIFVwZGF0ZSBmb3IgQXV0b2NvbmYgMi41eC4KLQkqIGFjY29uZmlnLmg6IEZpbGUgcmVtb3ZlZC4KLQkqIEFVVEhPUlM6IE5ldyBmaWxlLCBtYWtlcyBhdXRvbWFrZSBoYXBweS4KLQkqIGF1dG9nZW4uc2g6IEZpbGUgcmVtb3ZlZC4KLQkqIFJFQURNRS1DVlM6IFVwZGF0ZSB0byByZWNvbW1lbmQgYXV0b3JlY29uZiBpbnN0ZWFkLgotCSogZmlsZS5jOiBIQVZFX1NUXyogLT4gSEFWRV9TVFJVQ1RfU1RBVF9TVF8qLgotCSogbmV0LmM6IEhBVkVfU0lONl9TQ09QRV9JRCAtPiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCwKLQlIQVZFX01TR19DT05UUk9MIC0+IEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTC4KLQkqIHN0cmFjZS5jOiAqX0RFQ0xBUkVEIC0+IEhBVkVfREVDTF8qCi0JKiBzdHJlYW0uYzogSEFWRV8qIC0+IEhBVkVfU1RSVUNUXyoKLQotCSogbGludXgvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXNlICQoU0hFTEwpIGluc3RlYWQgb2YKLQlzaCwgYW5kIHVzZSAkKHNyY2RpcikgdG8gZmluZCB0aGUgc2NyaXB0LgotCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbiAoaW9jdGxlbnQucmF3KTogRmluZCBpb2N0bGVudC5zaCBpbiAuLi8uCi0JKGlvY3Rsc29ydC5vKTogVXNlIC4uL2lvY3Rsc29ydC5jLCBub3QgLi4vLi4vaW9jdGxzb3J0LmMuCi0JKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW4gKGhlYWRlcnMpOiBSZW5hbWVkIHRvIGFsbC4KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBBZGQgZW1wdHkgaW5zdGFsbCB0YXJnZXQuCi0JKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW46IExpa2V3aXNlLgotCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCi0JKiBsaW51eC9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCi0KLTIwMDItMTItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGRlZnMuaCBbTElOVVggJiYgTUlQU10gKE1BWF9RVUFMUyk6IFNldCB0byA1MDAwLCBub3QgNDk5OS4KLQlGcm9tIERhbmllbCBKYWNvYm93aXR6IDxkcm93QGZhbHNlLm9yZz4uCi0KLTIwMDItMTItMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHNvbWUgbmV3IDIuNSBzeXNjYWxsIG5hbWVzLgotCU5vdyBjbG9uZSB0YWtlcyA1IGFyZ3MuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoY2xvbmVfZmxhZ3MpOiBVcGRhdGUgd2l0aCAyLjUgZmxhZyBiaXRzLgotCVtMSU5VWF0gKHN5c19jbG9uZSk6IFByaW50IG5ldyBhcmdzLgotCSogbWVtLmMgKHByaW50X2xkdF9lbnRyeSk6IE1ha2UgZ2xvYmFsLgotCi0JKiBsaW51eC9zeXNjYWxsLmggW0kzODYgfHwgSUE2NF0gKFNZU19zb2NrZXRfc3ViY2FsbCk6IEJ1bXAgdG8gMzAwIGZvcgotCXNhZmV0eSwgc2luY2UgdXAgdG8gMjYwIGFyZSBhbHJlYWR5IHVzZWQgaW4gMi41IGtlcm5lbHMuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUuCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLQkqIHN5c2NhbGwuYyAoZm9yY2VfcmVzdWx0KTogTmV3IGZ1bmN0aW9uLgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogSGFuZGxlIEVDSElMRCBleGl0IGZyb20gd2FpdCBjYWxsIHdpdGgKLQlXTk9IQU5HIGZsYWcgc2V0OyBmb3JjZSB0aGUgcmV0dXJuIHZhbHVlIHRvIDAgaW4gdGhlIGluZmVyaW9yIHdoZW4gaXQKLQloYXMgbGl2ZSBjaGlsZHJlbiB3ZSBhcmUgdHJhY2luZy4KLQkqIE5FV1M6IE1lbnRpb24gdGhlIGJ1ZyBmaXguCi0KLTIwMDItMTItMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgcGxhY2Vob2xkZXJzIDI3NS0yOTggdG8gY2F0Y2ggdXAKLQl3aXRoIGxpbnV4L3N5c2NhbGxlbnQuaCBhZGRpdGlvbnMuCi0KLQkqIHN0cmFjZS5jICh0Y2J0YWIpOiBNYWtlIHRoaXMgYSBwb2ludGVyIHRvIHBvaW50ZXJzLCBub3QgYW4gYXJyYXkuCi0JKHRjYnRhYnNpemUpOiBOZXcgdmFyaWFibGUuCi0JKG1haW4pOiBJbml0aWFsaXplIHRoZW0gdXNpbmcgZHluYW1pYyBhbGxvY2F0aW9uLgotCShhbGxvY3RjYiwgbWFpbik6IFVzZSB0Y2J0YWJzaXplIGluIHBsYWNlIG9mIE1BWF9QUk9DUzsgaW5kaXJlY3QuCi0JKHBpZDJ0Y2IsIGNsZWFudXApOiBMaWtld2lzZS4KLQlbVVNFX1BST0NGU10gKHBvbGx2KTogTWFrZSB0aGlzIGEgcG9pbnRlciwgbm90IGFuIGFycmF5OyBtYWtlIHN0YXRpYy4KLQkocmVidWlsZF9wb2xsdik6IER5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSB2ZWN0b3IuCi0JKiBkZWZzLmggKHRjYnRhYik6IFVwZGF0ZSBkZWNscy4KLQkoTUFYX1BST0NTKTogTWFjcm8gcmVtb3ZlZCwgbm8gbW9yZSBzdGF0aWMgbGltaXQgb24gdGhpcy4KLQkqIHByb2Nlc3MuYyAoZm9ya190Y2IpOiBOZXcgZnVuY3Rpb24uCi0JKGludGVybmFsX2Nsb25lLCBpbnRlcm5hbF9mb3JrKTogVXNlIGl0IGluc3RlYWQgb2YgY2hlY2tpbmcgbnByb2NzLgotCi0JKiBzdHJhY2UuYyAoZGV0YWNoKSBbTElOVVhdOiBVc2UgX19XQUxMIChvciBhIHNlY29uZCB0cnkgd2l0aCBfX1dDTE9ORSkKLQlpbiB3YWl0IGFmdGVyIHNlbmRpbmcgU0lHU1RPUC4KLQotMjAwMi0xMi0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBJbmNyZWFzZSBzdGF0aWMgYnVmZmVyIHNpemUgdG8gYWNjb3VudCBmb3IKLQl3b3JzdCBwb3NzaWJsZSBjYXNlLiAgUmVwb3J0ZWQgYnkgRGFuaWVsIEphY29ib3dpdHogPGRyb3dAZmFsc2Uub3JnPi4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHdhaXQ0X29wdGlvbnMpOiBGaXggX19XQ0xPTkUgdmFsdWUuICBBZGQKLQlfX1dOT1RIUkVBRCBhbmQgX19XQUxMLgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtMSU5VWF06IE9ubHkgY2hlY2sgZXJybm8gaWYgd2FpdDQgYWN0dWFsbHkgZmFpbHMsCi0Jc28gd2UgZG9uJ3QgcmVwZWF0IGEgd2FpdCBhbmQgdGh1cyBkcm9wIGEgc3RhdHVzLiAgRml4ZXMgUkgjNjI1OTEuCi0KLTIwMDItMTItMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHByb2Nlc3MuYyAoc2V0YXJnKSBbUE9XRVJQQ106IFN1cHBvcnQgaXQuCi0KLQkqIHV0aWwuYyBbUE9XRVJQQ10gKExPT1ApOiBGaXggdmFsdWUsIG5vdyAweDQ4MDAwMDAwICgwOiBiIDBiKS4KLQlPbGQgdmFsdWUgd2FzIGJvZ3VzLCBub3QgZXZlbiBhIHByb3BlciBpbnN0cnVjdGlvbi4KLQlGcm9tIEd1eSBNLiBTdHJlZXRlciA8c3RyZWV0ZXJAcmVkaGF0LmNvbT4uCi0KLQkqIHN0cmFjZS5jIChtYWluKSBbISBVU0VfUFJPQ0ZTXTogQWx3YXlzIHJlc2V0IFNJR0NITEQgdG8gU0lHX0RGTC4KLQotCSogY29uZmlndXJlLmluOiBEb24ndCBjaGVjayBmb3IgcHV0cG1zZy4KLQkqIHN0cmVhbS5jIChzeXNfZ2V0cG1zZywgc3lzX3B1dHBtc2cpOiBNYWtlIHRoZXNlIGNvbmRpdGlvbmFsIG9uCi0JI2lmZGVmIFNZU18qLCByYXRoZXIgdGhhbiBvbiBIQVZFX1BVVFBNU0cuCi0KLQkqIGFjbG9jYWwubTQgKEFDX1NUQVQ2NCk6IEluY2x1ZGUgPGxpbnV4L3R5cGVzLmg+IGJlZm9yZSA8YXNtL3N0YXQuaD4KLQlpbiB0ZXN0LiAgVGVzdCBvdXIgb3duICNpZmRlZiBMSU5VWCByYXRoZXIgdGhhbiBwcmVkZWZpbmVkIGBsaW51eCcuCi0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2xsc2VlayBmb3IgX2xsc2Vlay4KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLQkqIHN5c2NhbGwuYyAoc3lzY2FsbF9lbnRlcikgW0xJTlVYICYmIFBPV0VSUENdOiBEZWZpbmUgUFRfT1JJR19SMyBpZgotCW5vdCBkZWZpbmVkLCBzaW5jZSA8YXNtL3B0cmFjZS5oPiBkZWZpbmVzIGl0IG9ubHkgI2lmZGVmIF9fS0VSTkVMX18uCi0JKiBwcm9jZXNzLmM6IExpa2V3aXNlLgotCi0JKiBkZXNjLmMgKHN5c19vc2Zfc2VsZWN0KTogQWRkIG1pc3NpbmcgcmV0dXJuIHR5cGUuCi0KLQkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IFVzZSBzdHJlcnJvciwgbm90IHN5c19lcnJsaXN0L3N5c19uZXJyLgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogUmVtb3ZlIG1hY3JvcyBmb3Igc3lzX2RlbGV0ZV9tb2R1bGUsCi0Jc3lzX25hbm9zbGVlcCwgYm90aCBhbHJlYWR5IGluIGxpbnV4L2R1bW15LmguCi0KLQkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pOiBNb3ZlIHN0YXRpYyBgY3VycnBlcnMnIGluc2lkZSAjaWZkZWYgWDg2XzY0LgotCSh0cmFjZV9zeXNjYWxsKTogRml4IHJldHVybiB3aXRob3V0IHZhbHVlLgotCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0YWJsZSB3aXRoIG5hbWVzIG9mIG5ldyBzeXNjYWxscwotCWlvX3NldHVwLCBpb19kZXN0cm95LCBpb19nZXR2ZW50cywgaW9fc3VibWl0LCBpb19jYW5jZWwuCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLQkqIHNpZ25hbC5jIFtMSU5VWCAmJiBJMzg2XTogUHJvdmlkZSBTQV9SRVNUT1JFUiBjb25zdGFudCBpZiBub3QKLQlkZWZpbmVkLiAgSWYgdGhlIGJpdCBpcyBzZXQsIHByaW50IHRoZSBzYV9yZXN0b3JlciBmaWVsZCBvZiBzaWdhY3Rpb24uCi0KLQkqIG1lbS5jOiBBZGQgc3lzX3tnZXQsc2V0fV90aHJlYWRfYXJlYS4KLQkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgotCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlIGZvciB0aGVzZS4KLQkqIGxpbnV4L2R1bW15LmggKHN5c19tb2RpZnlfbGR0KTogRGVmaW5lIG9ubHkgI2lmbmRlZiBJMzg2LgotCShzeXNfZ2V0X3RocmVhZF9hcmVhLCBzeXNfc2V0X3RocmVhZF9hcmVhKTogTmV3IG1hY3JvcyAjaWZuZGVmIEkzODYuCi0KLQkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIGxpbnV4L3hhdHRyLmggYW5kIGxpbnV4L2Z1dGV4LmggaGVhZGVycy4KLQkqIGxpbnV4L3N5c2NhbGwuaDogQWRkIHN5c18qIGRlY2xzIGZvciBuZXcgc3lzY2FsbHMgZ2V0cG1zZywgcHV0cG1zZywKLQlyZWFkYWhlYWQsIHNlbmRmaWxlNjQsIHNldHhhdHRyLCBmc2V0eGF0dHIsIGdldHhhdHRyLCBmZ2V0eGF0dHIsIGludAotCWxpc3R4YXR0ciwgZmxpc3R4YXR0ciwgcmVtb3ZleGF0dHIsIGZyZW1vdmV4YXR0ciwgc2NoZWRfc2V0YWZmaW5pdHksCi0Jc2NoZWRfZ2V0YWZmaW5pdHksIGZ1dGV4LgotCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlLgotCSogaW8uYzogQWRkIHN5c19zZW5kZmlsZTY0LgotCSogZmlsZS5jOiBBZGQgc3lzX3JlYWRhaGVhZCwgc3lzXyp4YXR0ci4KLQkqIHByb2Nlc3MuYzogQWRkIHN5c19mdXRleCwgc3lzXyphZmZpbml0eS4KLQotCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiBEZWZpbmUgdG8gMjU2IG9uIGFsbCBtYWNoaW5lcy4KLQkoU1lTX2lwY19zdWJjYWxsKTogQWx3YXlzIFNZU19zb2NrZXRfc3ViY2FsbCArIFNZU19zb2NrZXRfbnN1YmNhbGxzLgotCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlIGZvciBzb2NrZXQgYW5kIGlwYyBzdWJjYWxscy4KLQotMjAwMi0xMS0wOSAgSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+Ci0KLQlCdWdmaXggZm9yIHMzOTAvczM5MHg6Ci0JKiBzeXNjYWxsLmM6IEZpeGVkIHNjbm8gZGVyaXZhdGlvbiBmb3IgczM5MC9zMzkweC4KLQotMjAwMi0xMS0wNiAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KLQotCU1lcmdlZCBwYXRjaCBmcm9tIFN0ZXZlbiBKLiBIaWxsIDxzamhpbGxAcmVhbGl0eWRpbHV0ZWQuY29tPgotCXRvIGFsbG93IHRoZSBjb21waWxhdGlvbiBvZiBhIG5hdGl2ZSBNSVBTIHN0cmFjZS4KLQotMjAwMi0xMS0wNiAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KLQotCUZyb20gTWFydHkgTGVpc25lciA8bGVpc25lckByb2NoZXN0ZXIucnIuY29tPiwKLQlyZXdyaXR0ZW4gYnkgbWx1ZHZpZzoKLQkqIHN0cmFjZS5jIChub3RfZmFpbGluZ19vbmx5KTogTmV3LgotCSh1c2FnZSk6IEFkZGVkIC16IHN3aXRjaCBkZXNjcmlwdGlvbi4KLQkobWFpbik6IEFkZGVkIC16IHN3aXRjaCBwYXJzaW5nIHRvIG5vdF9mYWlsaW5nX29ubHkgdmFyaWFibGUuCi0JKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBBZGRlZCBub3RfZmFpbGluZ19vbmx5IGhhbmRsaW5nLgotCi0yMDAyLTEwLTA4ICBIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KLQotCU1pc3NpbmcgY29tcGxldGUgY2hhbmdlbG9nIGZvciAyMDAyLTEwLTA3IGNvbW1pdDoKLQkqIE1ha2VmaWxlLmluOiBBZGRlZCBsaW51eC9zMzkwLCBsaW51eC9zMzkweCB0byBBTExfU1VCRElSUy4KLQkqIGFjY29uZmlnLmg6IE5ldyBkZWZpbmUgZm9yIHMzOTB4LgotCSogY29uZmlnLnN1YjogQWRkZWQgbWlzc2luZyBkZWZpbmUgZm9yIHMzOTAgYW5kIG5ldyBvbmUgZm9yIHMzOTB4LgotCSogY29uZmlndXJlLmluOiBBZGRlZCBuZXcgZGVmaW5lIGZvciBzMzkweC4KLQkqIGZpbGUuYzogQWRkZWQgbWlzc2luZyAjdW5kZWYgZGlyZW50NjQgYW5kIG5ldyBkZWZpbmVzIGZvciBzMzkweC4KLQkqIGxpbnV4L3MzOTA6IE5ldyBkaXJlY3RvcnkuCi0JKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkwL2lvY3RsZW50Lmg6IE5ldyBmaWxlLgotCSogbGludXgvczM5MC9zaWduYWxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkweDogTmV3IGRpcmVjdG95LgotCSogbGludXgvczM5MHgvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgotCSogbGludXgvczM5MHgvZXJybm9lbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTB4L3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIHN5c19taW5jb3JlKCkgcHJvdG90eXBlIGFuZCBhZGRlZCBuZXcKLQlzMzkweCBkZWZpbmVzLgotCSogcHJvY2Vzcy5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgotCShjaGFuZ2Vfc3lzY2FsbCk6IENoYW5nZWQgaGFuZGxpbmcgZm9yIHMzOTAuCi0JKHNldGFyZyk6IEFkZGVkIG1pc3NpbmcgczM5MC9zMzkweCBjb2RlIGluIHNldGFyZygpLgotCSogc2lnbmFsLmM6IEFkZGVkIHMzOTB4IGRlZmluZS4KLQkoc3lzX3NpZ3JldHVybik6IEJ1Z2ZpeCBpbiBzMzkwL3MzOTB4IGNvZGUgKHdyb25nIG51bWJlciBvZgotCWFyZ3VtZW50cyB0byBzcHJpbnRzaWdtYXNrKCkpLgotCSogc3RyZWFtLmMgKGludGVybmFsX3N0cmVhbV9pb2N0bCk6IENoYW5nZWQgaW50IGNhc3QgdG8gbG9uZyBjYXN0LAotCXNpbmNlIHByaW50c3RyKCkgZXhwZWN0cyBhIGxvbmcuCi0JKiBzeXNjYWxsLmMgKGRlY29kZV9zdWJjYWxsKTogQ2hhbmdlZCBzZXZlcmFsIHZhcmlhYmxlcyB0byBiZSBsb25nCi0JaW5zdGVhZCBvZiBpbnQgdG8gbWF0Y2ggNjQgYml0IHJlcXVpcmVtZW50cy4gQWRkZWQgczM5MHggZGVmaW5lcy4KLQkoc3lzY2FsbF9lbnRlcik6IENoYW5nZWQgdXBlZWsoKSBjYWxsIHRvIG1hdGNoIHMzOTAgYW5kIHMzOTB4Ci0JcmVxdWlyZW1lbnRzLgotCSogdXRpbC5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgotCi0yMDAyLTEwLTA3ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgotCi0JTWVyZ2VkIHMzOTB4IHBvcnQgYnkgSGVpa28gQ2Fyc3RlbnMgPEhlaWtvLkNhcnN0ZW5zQGRlLmlibS5jb20+Ci0JYW5kIGJ1Z2ZpeGVzIHRvIHMzOTAgYnkgRC5KLiBCYXJyb3cuCi0KLTIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQlNZXJnZWQgeDg2LTY0IHBvcnQgYnkgQW5kaSBLbGVlbiA8YWtAc3VzZS5kZT4KLQlhbmQgTWljaGFsIEx1ZHZpZyA8bWx1ZHZpZ0BzdXNlLmN6PgotCSogTWFrZWZpbGUuaW46IE5ldyB0YXJnZXQgJ2hlYWRlcnMnLiBGYWlsdXJlIGlnbm9yZWQuCi0JKiBhY2NvbmZpZy5oOiBOZXcgZGVmaW5lcyBmb3IgeDg2LTY0LgotCSogY29uZmlndXJlLmluOiBEaXR0by4KLQkqIGRlZnMuaDogRGl0dG8uCi0JKiBmaWxlLmM6IERpdHRvLgotCSogc2lnbmFsLmM6IERpdHRvLgotCSogcHJvY2Vzcy5jOiBBZGRlZCBzdXBwb3J0IGZvciB4ODYtNjQuCi0JKiB1dGlsLmM6IERpdHRvLgotCSogc3lzY2FsbC5jOiBEaXR0byArIGFkZGVkIGF1dG9tYXRpYyBwZXJzb25hbGl0eSBzd2l0Y2hpbmcuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERpdHRvLgotCSogbGludXgveDg2XzY0OiBOZXcgZGlyZWN0b3J5LgotCSogbGludXgveDg2XzY0L01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3g4Nl82NC9nZW50YWIucGw6IERpdHRvLgotCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBEaXR0by4KLQkqIGxpbnV4L3g4Nl82NC9tYWtlaGVhZGVycy5zaDogRGl0dG8uCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBEaXR0by4KLQkqIG1lbS5jIChwcmludF9tbWFwKTogQWx3YXlzIHByaW50IGFyZ1s0XSBhcyBpbnQuCi0KLTIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQkqIGNvbmZpZ3VyZS5pbjogRml4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIG1pc3NpbmcgYnJhY2VzIGluIHByb3RvdHlwZSBvZgotCXN5c19nZXRkZW50czY0KCkuCi0JKiBmaWxlLmM6IFVzZSAnI2lmZGVmIExJTlVYJyBpbnN0ZWFkIG9mICcjaWZkZWYgbGludXgnLgotCShzdHJ1Y3QgZmlsZWZsYWdzKTogTWFkZSBleHRlcm4gdG8gaW5oaWJpdCBjb21waWF0aW9uIHdhcm5pbmdzLgotCShzeXNfZ2V0ZGVudHM2NCk6IE1lcmdlZCBMSU5VWCBhbmQgU1ZSNCBwYXJ0LgotCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IFNwbGl0IG11bHRpbGluZSBzdHJpbmcgaW50byB0d28gZGlzdGluY3QKLQlzdHJpbmdzLgotCi0yMDAyLTA1LTI0ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmVhbS5oLCBuZXQuaDogQXZvaWQgcG9zc2libGUgaW5maW5pdGUgbG9vcCBjYXVzZWQgYnkKLQl1bnNpZ25lZCBhcml0aG1ldGljIGluIHByZWNlZWRpbmcgY2hhbmdlLgotCi0yMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIGFjY29uZmlnLmg6IEFkZCBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUiBkZWZpbmVzLgotCi0JKiBhY2xvY2FsLm00OiBBZGQgdGVzdHMgZm9yIHN0cnVjdCBvcHRoZHIgaW4gc3lzL3NvY2tldC5oIGFuZAotCXN0cnVjdCB0X29wdGhkciBpbiBzeXMvdGl1c2VyLmgsIGRlZmluZSBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUgotCWlmIGZvdW5kLgotCi0JKiBjb25maWd1cmUuaW46IHVzZSB0ZXN0cyBmb3Igc3RydWN0IG9wdGhkciBhbmQgc3RydWN0IHRfb3B0aGRyLgotCi0JKiBkZWZzLmg6IGFkZCBuZXcgZnVuY3Rpb24gcHJpbnRfc29ja19vcHRtZ210LgotCi0JKiBpby5jOiBhZGQgaGFjayB0aGF0IGxldHMgaW9jdGwgZGVjb2RlIGZ1bmN0aW9ucyBzZXQgYXV4aWxsaWFyeQotCXN0cmluZyByZXR1cm4uCi0KLQkqIHN0cmVhbS5jOiBiZXR0ZXIgZGVjb2RpbmcgZm9yIHRpbW9kIGlvY3Rscy4KLQotCSogbmV0LmM6IGFkZCBmdW5jdGlvbiBwcmludF9zb2NrX29wdG1nbXQsIHVzZWQgYnkgdGltb2QgaW9jdGwKLQlkZWNvZGluZyBmdW5jdGlvbnMgaW4gc3RyZWFtLmMuCi0KLTIwMDItMDUtMjMgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KLQotCSogYWNjb25maWcuaDogTWFrZSBhdXRvaGVhZGVyIGhhcHB5IGFib3V0IExpbnV4L1N1cGVySAotCi0yMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmFjZS5jOiBHZXQgcmlkIG9mIHdhcm5pbmcgaWYgbm90IHVzaW5nIFBPTExfSEFDSwotCi0yMDAyLTA1LTIyICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIG5ldC5jOiBTaW1wbGlmeSB7Z2V0LHNldH1zb2Nrb3B0LCBkZWNvZGUgU09fTElOR0VSLCBjb3BlIHdpdGgKLQlvcHRpb25zIHRoYXQgYXJlIG5vdCBqdXN0IGludHMsIGNvcGUgd2l0aCBzeXN0ZW1zIHRoYXQgZG9uJ3QKLQkjZGVmaW5lIFNPTF9UQ1AgYW5kIHNvIG9uLgotCi0yMDAyLTA1LTIxICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmFjZS5jOiBGaXggd2FybmluZyBpZiBQT0xMX0hBQ0sgaXMgdXNlZC4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBzdnI0L2lvY3RsZW50LnNoOiBTb21lIGRlZmluZXMgb24gVVcgY29tZSB3aXRoIHRvbyBtYW55IHNwYWNlcy4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBzdnI0L2lvY3RsZW50LnNoOiBDb3BlIHdpdGggI2RlZmluZXMgd3JhcHBlZCBpbiAjaWZkZWZzLgotCi0yMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmVhbS5jOiB0aWR5IHVwIG91dHB1dCBhIGxpdHRsZS4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBwcm9jZXNzLmMsIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmg6IGRlY29kZSBhcmd1bWVudHMKLQl0byBwcm9jcHJpdiBzeXNjYWxsLgotCi0yMDAyLTA1LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIGNvbmZpZ3VyZS5pbiwgZGVmcy5oLCBwcm9jZXNzLmMsIHNvY2suYywgc3lzY2FsbC5jLCB1dGlsLmM6IG1lcmdlCi0JICBwYXRjaCBmcm9tIEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+IGZvciBMaW51eC9TdXBlckgKLQkgIHN1cHBvcnQKLQotMjAwMi0wNC0wMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgotCi0JKiBzdHJhY2UuYzogY2xvc2UgdGNwLT5vdXRmIGluIGRyb3B0Y2IoKQotCi0yMDAyLTA0LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIG5ldC5jOiBkZWNvZGUgcGFja2V0IG9wdGlvbnMKLQotMjAwMi0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgotCi0JKiBsaW51eC97YWxwaGEsaHBwYSxpYTY0LG1pcHMscG93ZXJwYyxzcGFyY30vc3lzY2FsbGVudC5oOiByZWdlbmVyYXRlZAotCi0yMDAyLTAzLTMxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIGRlYmlhbi8qOiBhZGRlZAotCSogbGludXgvc3lzY2FsbGVudC5oOiBmaXggdHlwbyBhbmQgYWRkIHRoZSByZXNlcnZlZCBzdHJlYW0gc3lzY2FsbHMKLQkqIGRlZnMuaCwgZmlsZS5jLCBpby5jOiBmaXggc2lnbmVkL3Vuc2lnbmVkIGlzc3VlcwotCSogc3lzY2FsbC5jOiBjaGVjayBmb3IgbmVnYXRpdmUgdV9lcnJvcnMKLQkqIGN2c2J1aWxkOiByZW5hbWVkIHRvIGF1dG9nZW4uc2gKLQotMjAwMS0xMi0xNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotCSogbmV0LmM6IGFkZCBuZXcgVENQIHNvY2tldCBvcHRpb25zCi0KLTIwMDEtMTAtMjYgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KLQotCSogc3ZyNC9pb2N0bGVudC5zaDogQ29wZSB3aXRoICNkZWZpbmUgbGluZXMgY29udGFpbmluZwotCWNvbW1lbnRzIHRoYXQgdGVybWluYXRlIG9uIHN1YnNlcXVlbnQgbGluZXMuICBVc2VkIHRvCi0JY29tbWVudCBvdXQgc3Vic2VxdWVudCBpb2N0bHMhCi0KLTIwMDEtMTAtMjUgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLQkqIGxpbnV4L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkIHVzaW5nIGN1cnJlbnQgc2NyaXB0cyBzbwotCSAgdGVybSBpb2N0bHMgYXJlIGluY2x1ZGVkCi0KLTIwMDEtMTAtMTkgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+Ci0KLQkqIHN0cmFjZS5jKHByb2Nfb3Blbik6IE9uIFNWUjQgb25seSB0cmFjZSB0aGUgc3lzY2FsbHMsCi0Jc2lnbmFscyBhbmQgZmF1bHRzIHdlIGNhcmUgYWJvdXQuCi0KLTIwMDEtMTAtMTggIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+Ci0KLQkqIGFjY29uZmlnLmg6IEFkZCBIQVNfU0lHSU5GT19ULgotCSogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBzaWdpbmZvX3QgaW4gc2lnbmFsLmguCi0JKiBjb25maWd1cmUuaW46IHVzZSBjaGVjayBmb3Igc2lnaW5mb190LgotCSogZGVmcy5oOiBpZiBIQVZFX1NJR0lORk9fVCB0aGUgZGVjbGFyZSBwcmludHNpZ2luZm8uICBPbiBTVlI0Ci0JICBhbGxvdyBhY2Nlc3MgdG8gc2lnaW5mbyB3aGVuIHNpZ25hbCByZWNpZXZlZC4KLQkqIHByb2Nlc3MuYzogUmVtb3ZlIFNWUjQgb25seSB2ZXJzaW9uIG9mIHByaW50c2lnaW5mby4KLQkqIHNpZ25hbC5jOiBtZXJnZSBTVlI0IGFuZCBMSU5VWCB2ZXJzaW9ucyBvZiBwcmludHNpZ2luZm8uCi0JKiBzdHJhY2UuYzogb24gU1ZSNCBwcmludCBzaWdpbmZvIHdoZW4gc2lnbmFsIHJlY2lldmVkLgotCi0yMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogaGFuZGxlIHJldHVybiB2YWx1ZXMgZm9yIHNzaXN5cwotCi0yMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzaWduYWwuYzogaGFuZGxlIHNpZ3dhaXQKLQkqIHN2cjQvZHVtbXkuYzogTW92ZSBzaWd3YWl0IHRvIGRvbmUKLQkqIHN2cjQvc3lzY2FsbC5oOiBoYW5kbGUgc2lnd2FpdAotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogZGVjb2RlIHNvbWUgYXJncyBmb3Igc3Npc3lzLgotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBtZW0uYzogTVNfU1lOQyBpcyB6ZXJvLCBzbyBtdXN0IGJlIGZpcnN0IGluIHhsYXQgbGlzdC4KLQotCSogc3ZyNC9kdW1teS5oOiBtZW1jbnRsIGlzIG11Y2ggbGlrZSBtY3RsLgotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiB1dGlsLmMgKHVtb3Zlc3RyKTogVW5peFdhcmUgKHN2cjQ/KSByZXR1cm5zIDAgd2hlbiB0cnlpbmcKLQl0byByZWFkIHVubWFwcGVkIHBhZ2UuICBNYWtlIGl0IHBvc3NpYmxlIHRvIHN0cmFjZSBrc2guCi0KLTIwMDEtMTAtMDMgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogQXZvaWQgcmFjZSBjb25kaXRpb24gYnkgY2xlYXJpbmcKLQlicmVha3BvaW50IGFmdGVyIGF0dGFjaGluZyB0byBjaGlsZC4KLQotMjAwMS0xMC0wMiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBEZWZpbmUgaWEzMiBzeXNjYWxsIG51bWJlcnMgKG9yaWdpbmFsbHkKLQlieSBEb24gRHVnZ2VyLCB3aXRoIG15IHJlZmluZW1lbnRzKS4KLQotCSogbGludXgvaWE2NC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlIGFuZCBtYW51YWxseSBtZXJnZSBjb25mbGljdGluZwotCWlvY3RscyAoVENHRVRTICYgU05EQ1RMX1RNUl9USU1FQkFTRSwgZXRjLikuCi0KLQkqIGxpbnV4L2lhNjQvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXBkYXRlIGZvcgotCW5ldyBpb2N0bGVudC5oIGdlbmVyYXRpb24gc2NoZW1lLgotCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c19jbG9uZTIpOiBEZWNsYXJlLgotCVtJQTY0XSBEZWZpbmUgaWEzMiBzb2NrZXQsIGlwYywgYW5kIGV4dHJhIHN5c2NhbGwgbnVtYmVycy4KLQotCSogbGludXgvaW9jdGxlbnQuc2ggKHJlZ2V4cCk6IEFsc28gaGFuZGxlIDxhc20vaW9jdGxzLmg+IHNvIHdlCi0JZG9uJ3QgbWlzcyB0aGUgdHR5IGlvY3RscyAodW5mb3J0dW5hdGVseSwgc29tZSBvZiB0aGUgc291bmQgdGltZXIKLQlpb2N0bHMgYXJlIGluIGNvbmZsaWN0IHdpdGggdGhlbSEpLgotCi0JKiB1dGlsLmMgKHNldGJwdCkgW0lBNjRdOiBBZGQgaWEzMiBzdXBwb3J0IChieSBEb24gRHVnZ2VyKS4KLQkoY2xyYnB0KSBbSUE2NF06IERpdHRvLgotCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBIYW5kbGUgU1lTX2Nsb25lMiwgU1lTMzJfd2FpdDQsCi0JYW5kIFNZUzMyX2V4aXQuCi0JKGdldF9zY25vKTogR2V0IGlhMzIgc3lzY2FsbCBudW1iZXIgZnJvbSByMSAob3JpZyBlYXgpIGluc3RlYWQgb2YKLQlyOCAoZWF4KS4gIEhhbmRsZSBUQ0JfV0FJVEVYRUNWRS4KLQkoc3lzY2FsbF9maXh1cCk6IEhhbmRsZSBpYTY0LgotCShzeXNjYWxsX2VudGVyKTogRml4IGFyZ3VtZW50IGZldGNoaW5nIGZvciBpYTY0LgotCi0JKiBzdHJhY2UuYyBbSUE2NCAmJiBMSU5VWF06IEluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPi4KLQkodHJhY2UpIFtQVF9HRVRTSUdJTkZPXTogUHJpbnQgc2lnbmFsIGFkZHJlc3MgYW5kIHBjIGlmIHBvc3NpYmxlLgotCi0JKiBwcm9jZXNzLmMgKHRjcCk6IE5ldyBmdW5jdGlvbi4KLQkoY2hhbmdlX3N5c2NhbGwpOiBBZGQgc3VwcG9ydCBmb3IgaWE2NCBsaW51eC4KLQkoc3lzX2V4ZWN2ZSk6IFR1cm4gb24gVENCX1dBSVRFWEVDVkUgZm9yIGlhNjQgbGludXguCi0KLQkqIGRlc2MuYyAoZ2V0bGspOiBDYXN0IGxfbGVuIHRvICJsb25nIGxvbmciIHRvIGF2b2lkIHdhcm5pbmdzIHdoZW4KLQl0eXBlIGlzIG5hcnJvd2VyLgotCSogcmVzb3VyY2UuYyAoc3ByaW50cmxpbTY0KTogRGl0dG8uCi0KLQkqIGRlZnMuaCAoVENCX1dBSVRFWEVDVkUpIFtJQTY0XTogRGVmaW5lLgotCVtJQTY0XTogRGVjbGFyZSAiaWEzMiIgdmFyaWFibGUuCi0KLQkqIGJqbS5jOiBEbyBub3QgaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+LiAgSXQncyBub3Qgc2FmZSB0byBpbmNsdWRlCi0Ja2VybmVsIGhlYWRlcnMuICBEZWNsYXJlIHRoZSBuZWNlc3NhcnkgY29uc3RhbnRzIGFuZCBzdHJ1Y3R1cmVzCi0JZGlyZWN0bHkgaW5zdGVhZC4KLQotMjAwMS0xMC0wMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIHNpZ25hbC5jIChwYXJzZV9zaWdzZXRfdCk6IE5ldyBmdW5jdGlvbi4KLQkoc2lnaXNoYW5kbGVkKTogRml4IG9mZi1ieS1vbmUgYnVnIGJ5IHVzaW5nIHBhcnNlX3NpZ3NldF90KCkgYW5kCi0JYXZvaWRpbmcgcmVseWluZyBvbiBpbnRlcm5hbCBsYXlvdXQgb2Ygc2lnc2V0X3QgZGF0YXN0cnVjdHVyZS4KLQotMjAwMS0wNC0yNiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgZ2V0dW53aW5kKCkuCi0KLTIwMDEtMDQtMTEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpOiBVc2UgUFRfUkJTX0VORCBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQKLQlQVF9BUl9CU1AuICBQaWNrIHVwIGFyZ3VtZW50cyBzdGFydGluZyB3aXRoIG91dDAsIHdoaWNoIGlzIG5vdAotCWFsd2F5cyB0aGUgc2FtZSBhcyByMzIgKGUuZy4sIGNvbnNpZGVyIGlubGluZWQgc3lzY2FsbHMpLgotCi0yMDAxLTA5LTI4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogcHJvY2Vzcy5jOiBGcmVlQlNELUNVUlJFTlQgbm8gbG9uZ2VyIGhhcyBQVF9SRUFEX1UsIGFuZCBhbnl3YXkgd2UKLSAgICB3ZXJlIHNob3dpbmcgaXQgYXMgUFRfV1JJVEVfVSEgIEZpeCBmcm9tIE1heGltZSBIZW5yaW9uLgotCi0yMDAxLTA5LTE4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogbmV0LmM6IGZpeCBkaXNwbGF5IG9mIHNvY2thZGRyIHN0cnVjdHVyZXMsIHNvbWV0aW1lcyB0b28gbWFueSAifSIsCi0gICAgc29tZXRpbWVzIHRvbyBmZXcuICBGaXggc3VnZ2VzdGVkIGJ5IFJpY2hhcmQgS2V0dGxld2VsbC4KLQotMjAwMS0wOC0xOSAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzaWduYWwuYzogZG8gbm90IGluY2x1ZGUgYXNtL3NpZ2NvbnRleHQuaCBvbiBJQTY0IHNpbmNlIGl0IGdldHMKLSAgICB0aGUgc3RydWN0IGZyb20gYml0cy9zaWdjb250ZXh0LmggYWxyZWFkeSB3aGljaCBzaWduYWwuaCBpbmNsdWRlcy4KLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pb2N0bGVudC5zaDogY2hhbmdlIHJlZ2V4cHMgc28gd2UgY2F0Y2ggc291bmQgaW9jdGxzIGFzIHdlbGwgaW4KLSAgICBMaW51eAotICAqIGxpbnV4L01ha2VmaWxlLmluOiBmaXggYSBmZXcgdGhpbmdzIHNvIHRoZSBpb2N0bCBsaXN0IGlzIGdlbmVyYXRlZAotICAgIHByb3Blcmx5Ci0gICogaW9jdGwuYzogcmVtZW1iZXIgdG8gc2hpZnQgaW9jdGwgbWFza3MgYXMgd2VsbAotCi0yMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIExpbnV4LyoqL3N5c2NhbGxlbnQuaDogc3luY2hyb25pemUgc2VjdGlvbiBmb3IgZmNudGwgYW5kIHVzZSBzeXNfZmNudGwKLSAgICBmb3Igc3lzX2ZjbnRsIGFzIHdlbGwKLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogdXBkYXRlZCBmcm9tIE1hdHRoZXcgV2lsY294Ci0KLTIwMDEtMDgtMDMgICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogcHJvY2Vzcy5jOiBzZWVtcyBMaW51eC9JQTY0IGNoYW5nZWQgcmVnaXN0ZXIgbmFtZXMgb24gdXMsIHN3aXRjaCB0bwotICAgIHVzaW5nIG5ldyBuYW1lcy4KLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzdHJhY2UuYzogc2V0IENMT0VYRUMgIGZsYWcgZm9yIG91dHB1dGZpbGUKLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9zcGFyYy9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogYWRkIHNvbWUgTEZTIGNhbGxzCi0KLTIwMDEtMDctMjMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IFN1cHBvcnQgY3Jvc3MtY29tcGlsaW5nIGJldHdlZW4gYXJjaGl0ZWN0dXJlcwotCi0yMDAxLTA3LTEzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogY29uZmlndXJlLmluOiBhZGQgUzM5MCB0byBhcmNoaXRlY3R1cmUgbGlzdAotCi0yMDAxLTA3LTEwICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBUT0RPLCBkZWZzLmgsIGlvLmgsIG5ldC5jLCBzdHJhY2UuYywgc3lzY2FsbC5jLCB1dGlsLmM6IE1lcmdlIGZpeGVzCi0gICAgZnJvbSBSaWNoYXJkIEtldHRsZXdlbGwgPHJrZXR0bGV3ZWxsQHpldXMuY29tPiB3aGljaCBhZGQgSS9PIGR1bXBpbmcKLSAgICBvZiBhcmdzIHRvIHJlYWR2L3dyaXRldi4gIEFsc28gZ2V0cyByaWQgb2YgcmVkdW5kYW50IHByaW50aW92ZWMKLSAgICByb3V0aW5lIGZyb20gbmV0LmMgKGR1cGxpY2F0ZSBvZiB0cHJpbnRfaW92IGluIHV0aWwuYykuCi0KLTIwMDEtMDctMDIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWcue2d1ZXNzLHN1Yn06IHVwZGF0ZWQKLQotMjAwMS0wNS0xNSAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogc2lnbmFsLmM6IHBhc3MgYSBwb2ludGVyIHRvIHNpZ21hc2sgdG8gcHJpbnRzaWdtYXNrIGZyb20gcHJpbnRjb250ZXh0LAotICAgIGl0IHdhcyBqdXN0IHBhc3NpbmcgdGhlIHNpZ21hc2sgKHVjcC0+dWNfc2lnbWFzaykuCi0KLTIwMDEtMDUtMTUgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHV0aWwuYzogRG9uJ3QgcnVuIG9mZiB0aGUgZW5kIG9mIHZhbGlkIG1lbW9yeSBpbiB1bW92ZXN0ciB3aGVuCi0gICAgVVNFX1BST0NGUy4gIEltcG9ydGFudCBmb3IgRlJFRUJTRCBzeXN0ZW1zICh3aGljaCBzZWVtIHRvIGhhdmUgYW4KLSAgICB1bm1hcHBlZCBwYWdlIGp1c3QgYWZ0ZXIgdGhlIGFyZ3MvZW52IGFyZWEpLgotCi0yMDAxLTA0LTE4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBjb25maWd1cmUuaW46IHRlc3QgZm9yIHN5cy9uc2NzeXMuaCwgdGhlIG5vbi1zdG9wIGNsdXN0ZXJzIGluY2x1ZGVzLgotICAqIHByb2Nlc3MuYzogaGFuZGxlIHJmb3JrezEsYWxsfSBhbmQgcmV4ZWN2ZSBjYWxscyBvbiBub24tc3RvcCBjbHVzdGVycy4KLSAgKiBzeXNjYWxsLmM6IHRyZWF0IHJmb3JrezEsYWxsfSBhbmQgZm9ya3sxLGFsbH0gYXMgZm9yayBsaWtlIGNhbGxzLgotICAgIFRyZWF0IHJleGVjdmUgYXMgYW4gZXhlYy4KLSAgKiBzeXN0ZW0uYzogZGVjb2RlIGFyZ3VtZW50cyB0byBzc2lzeXMgY2FsbCBvbiBuc2Mgc3lzdGVtcy4KLSAgKiBzdnI0L2R1bW15LmgsIHN2cjQvc3lzY2FsbC5oOiBub3cgd2UgaGFuZGxlIHJmb3JrezEsYWxsfSwgc3Npc3lzIGFuZAotICAgIHJleGVjdmUgY2FsbHMuCi0KLTIwMDEtMDQtMTIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBwcm9jZXNzLmM6IGZpeCBjYXN0IGZvciBwb3dlcnBjIGNvZGUKLSAgKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogdXBkYXRlIHN5c2NhbGwgbGlzdAotICAqIFJFQURNRTogZml4IGFkZHJlc3MgZm9yIHRoZSBzdHJhY2UgbWFpbGluZ2xpc3QKLSAgKiBzaWduYWwuYzogc3dpdGNoIHRvIHVzaW5nIC9wcm9jLzxwaWQ+L3N0YXR1cyBvbiBMaW51eCBzbyB3ZSBjYW4gZ2V0Ci0gICAgdGhlIHJlYWx0aW1lIHNpZ25hbHMgYXMgd2VsbAotCi0yMDAxLTA0LTEwICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2hlcyBmcm9tIE1hY2llaiBXLiBSb3p5Y2tpOgotICAgICsgdXRpbC5jOiBhZGQgY29kZSB0byBwcmludCBQQyBmb3IgTUlQUwotICAgICsgbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IHVwZGF0ZWQKLSAgICArIHN5c3RlbS5jOiBmb3JtYXRpbmcgZml4ZXMgZm9yIHN5c19zeXNtaXBzCi0gICAgKyBjb25maWd1cmUuaW46IHRlc3QgZm9yIHlldCBtb3JlIGhlYWRlcnMKLSAgICArIHN0cmVhbS5jOiB1c2UgY29uZmlndXJlLWhlYWRlcnRlc3RzIGluc3RlYWQgb2YgcmVseWluZyBvbiBPUyBoaW50cwotCi0yMDAxLTA0LTA3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTkVXUzogc3RhcnQgNC4zLjEgaXRlbXMKLSAgKiB2ZXJzaW9uLmM6IHVwZGF0ZWQgdG8gc2F5IDQuMy4xICh3YXMgc3RpbGwgNC4yLCBvb3BzISkKLQotMjAwMS0wNC0wNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgYXNtL3N5c21pcHMuaCBhbmQgbGludXgvdXRzbmFtZS5oCi0gICogbGludXgvc3lzY2FsbC5oOiBmaXggYSB0eXBvIGZvciBzeXNfc3lzbWlwcwotICAqIHN5c3RlbS5jOiBpbmNsdWRlIGFzbS9zeXNtaXBzLmggYW5kIGxpbnV4L3V0c25hbWUuaCBpZiB0aGV5IGV4aXN0LAotICAgIGZpeCB0eXBvCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pYTY0L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC97YWxwaGEsaWE2NCxwb3dlcnBjfS9pb2N0bGVudC5zaDogcmVtb3ZlZCwgYWxsIGFyY2hzIHVzZSB0aGUKLSAgICBnZW5lcmFsIExpbnV4IGlvY3RsZW50LnNoCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pb2N0bGVudC5zaDogYWRkIGRpciB2YXJpYWJsZSBmb3IgbG9jYXRpb24gb2Yga2VybmVsIGhlYWRlcnMKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2hwcGEvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2FscGhhL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCi0KLTIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IHVzZSBzcGFyYyogc28gd2UgY2FuIGNvbXBpbGUgb24gc3BhcmM2NCBhcyB3ZWxsCi0gICogcHJvY2Vzcy5jLCBzeXNjYWxsLmM6IHdvcmsgYXJvdW5kIGRvdWJsZSBkZWZpbmUgb2YgZnBxLCBmcSBhbmQgZnB1Ci0gICAgc3RydWN0cyBvbiBMaW51eC9zcGFyYywgYW5kIHVzZSByZWdzIGluc3RlYWQgb2YgcHRfcmVncwotICAqIGRvbid0IHVzZSBhc20vc2lnY29udGV4dC5oIG9uIExpbnV4L3NwYXJjCi0KLTIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9zcGFyYy9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAotCi0yMDAxLTAzLTI4ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogc3RyYWNlLmM6IHVzZSBfX1dBTEwgYXMgd2FpdDQgZmxhZyBpZiBpdCBleGlzdHMgc28gd2UgY2FuIHByb3Blcmx5Ci0gICAgdHJhY2UgdGhyZWFkZWQgcHJvZ3JhbXMKLQotMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBlbmRpYW5uZXNzIG9mIGxvbmcgbG9uZy4KLSAgKiBhY2NvbmZpZy5oOiBhZGQgI2RlZmluZSBmb3IgTElUVExFX0VORElBTl9MT05HX0xPTkcuCi0gICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgZW5kaWFubmVzcyBvZiBsb25nIGxvbmcuCi0gICogZGVmcy5oOiBjaGFuZ2UgTE9OR19MT05HIG1hY3JvIHRvIHdvcmsgd2l0aCBlaXRoZXIgZW5kaWFubmVzcyBvZgotICAgIGxvbmcgbG9uZy4KLQotMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogbmV0LmM6IE1ha2UgY29tcGlsYWJsZSBieSBTQ08gVURLIGNvbXBpbGVyIChkb2Vzbid0IGxpa2UgZW1wdHkKLSAgICBpbml0aWFsaXNhdGlvbiBsaXN0IGZvciBhcnJheSkuCi0KLTIwMDEtMDMtMjcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHN2cjQvc3lzY2FsbGVudC5oOiBudHBfYWRqdGltZSBlbnRyeSB3YXMgZHVwbGljYXRlZCBvbiBTb2xhcmlzCi0gICAgc3lzdGVtcyAtIGJhZCBtZXJnZSBvZiBIYXJhbGQgQm9laG1lJ3MgcGF0Y2ggYnkgbWUuCi0KLTIwMDEtMDMtMjcgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsb3RzIG9mIGZpbGVzOiBhZGQgTGludXgvaHBwYSBzdXBwb3J0Ci0KLTIwMDEtMDMtMTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogd2UgY2FuJ3QgaGF2ZSAtMSBuYXJncywgY2hhbmdlIHRvIDAKLSAgKiBsaW51eC9zeXNjYWxsZW50Lmg6IG5vdCB0aGF0IHN5c2NhbGxzIDIyMCBhbmQgMjIxIGFyZSB1c2VkIG5vdwotICAqIGNvbmZpZy5ndWVzczogdXBkYXRlZAotCi0yMDAxLTAzLTE3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvaW9jbHNvcnQuYzogbmV3IGZpbGUKLSAgKiBsaW51eC9pb2N0bGVudC5zaDogY29tcGxldGUgcmV3cml0ZSB0byB1c2UgYSBtb3JlIHNhbmUgYXBwcm9hY2ggdG8gZ2V0Ci0gICAgdGhlIGlvY3RsIGxpc3QgdGhhdCBkb2Vzbid0IGludm9sdmUgYXR0ZW1wdGluZyB0byAjaW5jbHVkZSBhbGwga2VybmVsCi0gICAgaGVhZGVycwotICAqIGxpbnV4Ly5jdnNpZ25vcmU6IGFkZGVkIGlvY3RkZWZzLmggYW5kIGlvY3Rscy5oIHdoaWNoIGFyZSBnZW5lcmF0ZWQKLSAgICBieSB0aGUgbmV3IGlvY3RsZW50LnNoCi0gICogaW9jdGwuYzogb25seSBsb29rIGF0IHRoZSBudW1iZXIgYW5kIHR5cGUgYml0cyBmb3IgbGludXgsIHNpbmNlCi0gICAgaW9jdGxlbnQuc2ggbm8gbG9uZ2VyIHN1cHBsaWVzIHRoZSBvdGhlcnMKLQotMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogZnJlZWJzZC9zeXNjYWxscy5wbDogT24gRnJlZUJTRCB3ZSBtdXN0IGNvcGUgd2l0aCBDT01QQVRpYmlsaXR5IHN5c2NhbGxzLAotICAgIHByZXRlbmQgdGhleSBoYXZlIG5hbWVzIGVuZGluZyB3aXRoICI/IiBzbyB0aGF0IC1lIHRyYWNlPXN0YXQgKGZvcgotICAgIGV4YW1wbGUpIHdpbGwgd29yay4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBhZGQgPyB0byBjb21wYXRhYmlsaXR5IHN5c2NhbGxzLgotICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmg6IGNvbnNpc3RlbmN5LgotCi0yMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2NvbmZpZy5oOiBhZGQgbmV3IFNUX3h4eCBkZWZpbmVzLgotICAqIGFjbG9jYWwubTQ6IG1hY3JvcyB0byBjaGVjayBmb3IgbW9yZSBmaWVsZHMgaW4gc3RydWN0IHN0YXQuCi0gICogY29uZmlndXJlLmluOiB1c2UgbmV3IG1hY3JvcyB0byBjaGVjayBmb3IgZmllbGRzIGluIHN0cnVjdCBzdGF0LgotICAqIGZpbGUuYzogdXNlIG5ldyBkZWZpbmVzIHRvIHJlcGxhY2UgI2lmZGVmIEZSRUVCU0QgYnkgI2lmIEhBVkVfU1RfeHh4LgotCi0yMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBkZWZzLmg6IHJlbmFtZSB3aW1weSBnZXQ2NCBhcyBwb3dlcmZ1bCBuZXcgTE9OR19MT05HCi0gICogZmlsZS5jOiB1c2UgTE9OR19MT05HCi0gICogaW8uYzogdXNlIExPTkdfTE9ORwotICAqIG1lbS5jIHVzZSBMT05HX0xPTkcKLQotMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogYWNjb25maWcuaDogbmV3ICNkZWZpbmVzIEhBVkVfTE9OR19MT05HX09GRl9UIGFuZCBIQVZFX0xPTkdfTE9OR19STElNX1QuCi0gICogYWNsb2NhbC5tNDogcm91dGluZXMgdG8gY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgotICAqIGNvbmZpZ3VyZS5pbjogY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgotICAqIGRlc2MuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgZmxvY2sgYXMgZmxvY2s2NAotICAqIGZpbGUuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgc3RhdCxsc3RhdCxmc3RhdCBhbmQgbHNlZWsgYXMgNjQKLSAgICBiaXQgdmVyc2lvbnMuCi0gICogaW8uYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiBwcmVhZCBhbmQgcHdyaXRlLgotICAqIG1lbS5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB1c2UgNjQgYml0IHZlcnNpb24gb2YgbW1hcAotICAqIHJlc291cmNlLmM6IGlmIEhBVkVfTE9OR19MT05HX09GRl9UIHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgZ2V0cmxpbWl0Ci0gICAgYW5kIHNldHJsaW1pdC4KLSAgKiBmcmVlYnNkL3N5c2NhbGxzLnByaW50OiBkb24ndCBleHBsaWNpdGx5IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgY2FsbHMsCi0gICAgbm93IGRvbmUgYXV0b21hdGljYWx5IGZvciB1cy4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiBkaXR0by4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oIGRpdHRvLgotCi0yMDAxLTAzLTA3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBkZXNjLmM6IE9uIEZyZWVCU0QgZmxvY2sgc3RydWN0dXJlIHVzZXMgNjQgYml0IG9mZnNldHMuCi0gICogZmlsZS5jOiBPbiBGcmVlQlNEIHVzZSBzdGF0NjQgYW5kIHBhbHMgaW5zdGVhZCBvZiBzdGF0LgotICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IHVzZSBzdGF0NjQsIGxzdGF0NjQgYW5kIGZzdGF0NjQuCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGwuaDogZGl0dG8uCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogZGl0dG8uCi0KLTIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGZpbGUuYzogbWVyZ2UgbWlzc2luZyBwYXJ0IG9mIEhhcmFsZCBC9mhtZSdzIHNvbGFyaXMgcGF0Y2hlcywKLSAgICB3YXMgb25seSBkZWNsYXJpbmcgc3lzX3tzdGF0NjQsbHN0YXQ2NCxmc3RhdDY0fSBvbiBsaW51eCEKLQotMjAwMS0wMy0wNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogc3ZyNC9kdW1teS5oOiBmaXggbXVsdGlwbGUgZGVmaW5lIHdhcm5pbmcgb24gbm9uIExGUzY0IHN5c3RlbXMuCi0gICogc3ZyNC9zeXNjYWxsZW50Lmg6IHByZWFkL3B3cml0ZSBhcmUgVEYgY2FsbHMuCi0KLTIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGRlZnMuaDogYWRkIEFMSUdONjQgbWFjcm8gdG8gY29wZSB3aXRoIEZyZWVCU0QncyBzdHJhbmdlIGluc2lzdGVuY2UKLSAgICBvbiBhbGlnbm1lbnQgZm9yIG9mZl90ICg2NCBiaXQpIGFyZ3VtZW50cy4gIEFsc28gc2ltcGxpZnkgZ2V0NjQgc28KLSAgICB3ZSBkb24ndCBuZWVkIHRvIGtub3cgZW5kaWFubmVzcyBvZiBsb25nIGxvbmcuCi0gICogZmlsZS5jOiBGcmVlQlNEIG5vdyB1c2VzIDY0IGJpdCB2ZXJzaW9ucyBvZiBsc2VlaywgdHJ1bmNhdGUsCi0gICAgZnRydW5jYXRlLCBhbGxvd3MgcmVkdWN0aW9uIGluIG51bXZiZXIgb2YgaG9ycmlkICNpZidzCi0gICogaW8uYzogRnJlZUJTRCBub3cgdXNlcyA2NCBiaXQgdmVyc2lvbnMgb2YgcHJlYWQsIHB3cml0ZS4KLSAgKiBtZW0uYzogRnJlZUJTRCBub3cgdXNlcyA2NCBiaXQgdmVyc2lvbiBvZiBtbWFwLgotICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgdmFyaW91cyBzeXNjYWxscy4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiB1c2UgNjQgYml0IHZlcnNpb25zIG9mIHZhcmlvdXMgc3lzY2FsbHMuCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiB2YXJpb3VzIHN5c2NhbGxzLgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBmaWxlLmM6IEltcGxlbWVudCB0cnVuY2F0ZTY0IGFuZCBmdHJ1bmNhdGU2NAotICAqIHN2cjQvZHVtbXkuaDogYWRkIGR1bW1pZXMgZm9yIHRydW5jYXRlNjQgYW5kIGZ0cnVuY2F0ZTY0IGZvciBub24KLSAgICBMRlM2NCBzeXN0ZW1zLgotICAqIHN2cjQvc3lzY2FsbC5oOiBhZGQgZGVjbGFyYXRpb25zIGZvciB0cnVuY2F0ZTY0IGFuZCBmdHJ1bmNhdGU2NC4KLQotMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogZnJlZWJzZC9zeXNjYWxscy5wbDogZml4IGZvciBGcmVlQlNEIDQuMSAobmV3IG9wdGlvbmFsIGZpZWxkIGluCi0gICAgc3lzY2FsbCBtYXN0ZXIgZmlsZSkuCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHN5c2NhbGwuYzogZml4IGZvciBGcmVlQlNEIDQuMSAoU1lTX3NlbWNvbmZpZyBoYXMgZGlzYXBwZWFyZWQpLiAgQWxzbwotICAgIHphcCBpbmNvcnJlY3Qgc3lzY2FsbCBzdWJhcmcgcmFuZ2UgY2hlY2suCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGNvbmZpZ3VyZS5pbiwgZGVmcy5oLCBkZXNjLmMsIGZpbGUuYywgaW8uYywgbWVtLmMsIG5ldC5jLCByZXNvdXJjZS5jLAotICAgIHNpZ25hbC5jLCBzeXNjYWxsLmMsIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmgsIHN2cjQvc3lzY2FsbGVudC5oOgotICAgIG1lcmdlIEhhcmFsZCBC9mhtZSdzIHNvbGFyaXMgcGF0Y2hlcyAoX0xGUzY0X0xBUkdFRklMRSBhbmQga2VybmVsIGFpbwotICAgIG1vc3RseSkuCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGR1bW15Lmg6IGFkZCB1bmltcGxlbWVudGVkIFVXIHN5Y2FsbHMKLSAgKiBzeXNjYWxsLmg6IHdlIGNhbiBkbyBzZXR0aW1lb2ZkYXkgZm9yIFVXLCB3aG9wZWUhCi0gICogc3lzY2FsbGVudC5oOiBmaXggdW5pbXBsZW1lbnRlZCBVVyBzeXNjYWxscwotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2xvY2FsLm00OiBsb29rIGZvciBwcl9zeXNjYWxsIGluIHByX2x3cCBpZiB3ZSBIQVZFX01QX1BST0NGUwotICAqIGRlZnMuaDogYWRkIFBSX1NZU0NBTEwgdG8gYWxsb3cgdXNlIG9mIHByX2x3cC5wcl9zeXNjYWxsIGlmIGl0IGV4aXN0cy4KLSAgKiBzeXNjYWxsLmM6IHVzZSBQUl9TWVNDQUxMIGluc3RlYWQgb2YgcHJfc3lzY2FsbCwgZml4IHVwIFVuaXhXYXJlIGNvZGUKLSAgICBzbyBpdCBkb2Vzbid0IHRyeSB0byB1c2UgcHJfc3lzYXJnLgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2xvY2FsLm00OiBvbiBzeXN0ZW1zIG90aGVyIHRoYW4gbGludXggbG9vayBmb3Igc3RhdDY0IGluIHN5cy9zdGF0LmgKLSAgKiBmaWxlLmM6IGhhbmRsZSB4c3RhdCB2ZXJzaW9uIF9TVEFUNjRfVkVSLCBha2Egc3RhdDY0LgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBuZXQuYzogbWFrZSBzdXJlIFNPTF8gb3B0aW9ucyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcuCi0gICogc2lnbmFsLmM6IGRlY2xhcmUgc2lnc2V0IHZhcmlhYmxlLCBvbmx5IHVzZWQgb24gbGludXgsIGluc2lkZSAjaWZkZWYuCi0KLTIwMDEtMDItMjEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBuZXQuYzogZml4IGZvcm1hdCBmb3IgcHJpbnRpbmcgVW5peCBkb21haW4gc29ja2V0cwotCi0yMDAxLTAyLTE5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IHVzZSBuZXcgc3lzX3N5c21pcHMKLSAgKiBzeXN0ZW0uYzogYWRkIHN5c19zeXNtaXBzIGRlY29kaW5nCi0KLTIwMDEtMDItMTYgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBDUkVESVRTOiBhZGQgQXJrYWRpdXN6IE1pc2tpZXdpY3ogPG1pc2lla0BwbGQub3JnLnBsPiB3aG8KLSAgICBzdWJtaXR0ZWQgdGhlIElQNiBzY29wZSBJRCB1cGRhdGVzCi0gICogYWNjb25maWcuaDogYWRkIEhBVkVfU0lONl9TQ09QRV9JRCBhbmQgSEFWRV9TSU42X1NDT1BFX0lEX0xJTlVYCi0gICogYWNsb2NhbC5tNDogYWRkIEFDX1NJTjZfU0NPUEVfSUQgdG8gY2hlY2sgaWYgc2luNl9zY29wZV9pZCBpcwotICAgIGF2YWlsYWJsZQotICAqIGNvbmZpZ3VyZS5pbjogY2hlY2sgZm9yIGlmX2luZGV4dG9uYW1lIGZ1bmN0aW9uIGFuZCBzaW42X3Njb3BlX2lkCi0gICogbmV0LmM6IHRlYWNoIHByaW50c29jayBhYm91dCBJUDYgc2NvcGUgaWRzCi0KLTIwMDEtMDItMTYgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IHRlc3QgZm9yIG5ldGluZXQvdGNwLmggYW5kIG5ldGluZXQvdWRwLmggZXhpc3RhbmNlCi0gICogbmV0LmM6IGluY2x1ZGUgbmV0aW5ldC90Y3AuaCBhbmQgbmV0aW5ldC91ZHAuaCBpZiB0aGV5IGV4aXN0Ci0gICogTWFrZWZpbGUuaW46IHVzZSBAbWFuZGlyQCBhbmQgQGJpbmRpckAKLQotMjAwMC0xMS0yNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqICBuZXQuYzogZml4IGZvcm1hdGluZyBlcnJvciBpbiBzeXNfc2V0c29ja29wdAotICAqICBuZXQuYzogYWRkIGxpc3Qgb2Ygc29ja2V0bGF5ZXJzIGFuZCB1c2UgdGhhdCBmb3IgW2dzXWV0c29ja29wdAotCi0yMDAwLTEwLTEyICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGltZS5jOiB1c2Ugc3lzL3RpbWV4Lmggc28gdGhpbmdzIGNvbXBpbGUgd2l0aCAyLjIga2VybmVscwotICAqIHN0cmVhbS5jOiB0ZXN0IGlmIE1TR18qIGNvbnN0YW50cyBhcmUgI2RlZmluZWQKLQotMjAwMC0wOS0wMyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIHByb2Nlc3MuYzogcGVyZm9ybSBicHQgdHJpY2sgZm9yIGNsb25lIGFzIHdlbGwgc28gd2UgY2FuIGdldCB0aGUKLSAgICBwaWQgb2YgdGhlIGNoaWxkIGJlZm9yZSBpdCBzdGFydHMgZG9pbmcgc29tZXRoaW5nCi0gICogZmlsZS5jOiByZW5hbWUgZGlyZW50NjQgc3RydWN0IHRvIGtlcm5lbF9kaXJlbnQ2NCBzbyB0aGluZ3MgY29tcGlsZQotICAgIGFnYWluIHdpdGggbmV3ZXIgbGliY3MKLSAgKiB0ZXN0L2Nsb25lLmM6IGltcHJvdmUgb3VyIHRlc3RjYXNlIGEgYml0Ci0gICogTWVyZ2UgYW5vdGhlciBwYXRjaCBmcm9tIEfkZWwgUm91YWxsYW5kIHdpdGggRnJlZUJTRCB1cGRhdGVzCi0KLTIwMDAtMDktMDEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsb3RzIG9mIGZpbGVzOiBtZXJnZSBwYXRjaCBmcm9tIEdh62wgUm91YWxsYW5kIHRvIGFkZAotICAgIHN1cHBvcnQgZm9yIEZyZWVCU0QuCi0KLTIwMDAtMDgtMDkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBmaWxlLmM6IHVwZGF0ZSB0byByZWZsZWN0IHRoYXQgc3RfaW5vIHN1ZGRlbmx5IGJlY2FtZSBhIGxvbmcgbG9uZwotICAgIGluIHRoZSBpbiBMaW51eCAyLjQuMC10ZXN0NgotCi0yMDAwLTA4LTA5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGVzdC9jbG9uZS5jOiBtaW5vciBmaXh1cAotICAqIEFub3RoZXIgYnVuY2ggb2YgcGF0Y2hlcyBmcm9tIEpvaG4gSHVnaGVzIG1lcmdlZDoKLSAgKiBzaWduYWwuYzoKLSAgICArIFNWUjQgcHJpbnRjb250ZXh0KCk6IHNpZ3NldF90ICE9IHNpZ3NldF90KgotICAgICsgZ2V0Y29udGV4dCByZXR1cm5zIGEgdmFsdWUsIHNvIHByaW50IG9uIGV4aXQgb2Ygc3lzY2FsbAotICAgICsgYWRkIFVDX0ZQIHRvIHVjb250ZXh0X2ZsYWdzIGZvciBPUyB3cml0ZXJzIHRoYXQgY2FuJ3Qgc3BlbGwKLSAgICArIHN5c19zaWduYWwoKTogc3BlY2lhbCBjYXNlIFNJR197RVJSLERGTCxJR059Ci0gICAgKyBkZWNvZGVfc3ViY2FsbCgpOiBvbmx5IGRvIHN1YmNhbGwgcmFuZ2UgY2hlY2tpbmcgd2hlbiBuZWVkZWQKLSAgKiBidW5jaCBvZiBVbml4V2FyZSB1cGRhdGVzCi0gICogYWNsb2NhbC5tNCwgYWNjb25maWcuaCwgY29uZmlndXJlLmluOiBhZGQgdGVzdCBmb3IgbG9uZyBsb25nIHR5cGUKLQotMjAwMC0wNy0wNCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIG5ldC5jOiBhZGQgU09MX1BBQ0tFVCBhbmQgU09MX1JBVyBzb2NrZXQgb3B0aW9ucywgdXBkYXRlCi0gICAgU09MX0lQIGFuZCBTT0xfVENQCi0KLTIwMDAtMDYtMjMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzdHJhY2UuYzogY2xvc2Ugb3V0ZiBiZWZvcmUgd2UgZXhlYyBhIGNoaWxkIHByb2Nlc3MKLQotMjAwMC0wNi0wOSAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+Ci0KLSAgKiBjb25maWd1cmUuaW46IERvbid0IGxpbmsgYWdhaW5zdCBsaWJuc2wgb24gTGludXgsIGl0J3MgdW5uZWNlc3NhcnkuCi0gICogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTWFrZSBhdXhzdHIgbWVtYmVyIGNvbnN0LgotICAqIGZpbGUuYyAoZnNtYWdpYyk6IEFuZCBtYW55IG1vcmUgbWFnaWMgbnVtYmVycy4KLSAgKiB1dGlsLmM6IERvbid0IGluY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiBmb3IgZ2xpYmMgMi4xIGFuZCB1cC4KLQotMjAwMC0wNC0yNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGRlZnMuaDogYmFsYW5jZSAjaWYvI2VuZGlmIGFnYWluCi0gICogc3lzdGVtLmM6IGZpeCByZXR1cm4gc3RhdGVtZW50cyBpbiBzeXNfY2FwZ2V0KCkKLSAgKiBNZXJnZSB1cGRhdGVzIGZyb20gVG9waSBNaWV0dGluZW4gPFRvcGkuTWlldHRpbmVuQG5pYy5maT46Ci0gICAgKyBmaWxlLmM6IGFkZCBGX1tTR11FVFNJRyB0byBmY250bCBmbGFncwotICAgICsgc3RyYWNlLmM6IGRvbid0IHNldHJlW2d1XWlkIGlmIG5vdCBuZWVkZWQKLSAgICArIHN5c3RlbS5jOiBoYW5kbGUgc3lzX3JlYm9vdCBmb3IgTGludXgKLSAgICArIHRlcm0uYzogYWRkIGJhdWRyYXRlIGNvbnN0YW50cyB1cCB0byBCNDAwMDAwMAotICAgICsgbGludXgvKiovc3lzY2FsbGVudC5oOiBub3RlIHRoYXQgbXVubG9ja2FsbCBoYXMgbm8gYXJndW1lbnRzCi0KLTIwMDAtMDQtMjUgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0gICogQ1JFRElUUzogZml4IGVtYWlsIGFkZHJlc3MKLSAgKiBwcm9jZXNzLmM6IGhhbmRsZSBQUl9bR1NdRVRfVU5BTElHTiBhbmQgUFJfW0dTXUVUX0tFRVBDQVBTCi0gICogc2lnbmFsLmM6IGhvbm91ciBvZmZzZXQgb2Ygc2lnY29uZmlnIGluIHNpZ2ZyYW1lIHN0cnVjdHVyZSBmb3IKLSAgICBMaW51eC9pYTY0Ci0gICogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkZCBwZXJmbW9uY3RsLCBwaXZvdHJvb3QsIG1pbmNvcmUsIGFuZAotICAgIG1hZHZpc2Ugc3lzY2FsbHMuCi0gICogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKTogV2l0aCBLZXZpbidzIGxhdGVzdCBwdHJhY2UgcGF0Y2hlcywKLSAgICBBUl9CU1AgcG9pbnRzIHRvIHRoZSBfZW5kXyBvZiB0aGUgYWN0aXZlIHJlZ2lzdGVyIGZyYW1lLCBzbyB3ZSBuZWVkCi0gICAgdG8gYWRqdXN0IGJzcCBieSBtb3ZpbmcgaXQgYmFjayBieSB0aGUgc2l6ZSBvZiB0aGUgYWN0aXZlIGZyYW1lCi0gICAgYmVmb3JlIHVzaW5nIGl0LgotCi0yMDAwLTA0LTI0ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogcHJvY2Vzcy5jOiBhZGQgc3BhcmMgc3VwcG9ydCB0byBjaGFuZ2Vfc3lzY2FsbAotCi0yMDAwLTA0LTIyICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IGZpeCBzb21lIHR5cG9zCi0KLTIwMDAtMDQtMTQgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogYWRkZWQgbmFtZXMgZm9yIFNWUjQsIFNZU1YsIEJTRDQuMyBhbmQgUE9TSVgKLSAgICBzeXNjYWxscwotCi0yMDAwLTA0LTEzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogZGVmcy5oOiBMaW51eC9NSVBTIHVzZXMgc3lzY2FsbHMgdXAgdG8gPjRrLCBzbyBzZXQgTUFYX1FVQUxTIHRvCi0gICAgNDk5OQotCi0yMDAwLTA0LTA5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUkVBRE1FLWxpbnV4OiB1cGRhdGVkIHRvIG5vdGUgdGhhdCBzdHJhY2UgbWlnaHQgbm90IGNvbXBpbGUKLSAgICB3aXRoIGRldmVsb3BtZW50IGtlcm5lbHMKLSAgKiBiam0uYzogc3lzX3F1ZXJ5X21vZHVsZTogY2hlY2sgaWYgbWFsbG9jIHN1Y2NlZWRzCi0gICogc3lzdGVtLmM6IHN5c19jYXBbZ3NdZXQoKTogY2hlY2sgaWYgbWFsbG9jIHN1Y2NlZWRzLCBvbmx5IG1hbGxvYyBvbmNlCi0gICogbGludXgvc3lzY2FsbGVudC5oOiB1cGRhdGVkIGZvciAyLjMuOTlwcmUzCi0gICogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiB1cGRhdGVkIGZvciAyLjMuOTlwcmUzLCBhZGQgYWxsIG9zZiBzeXNjYWxscwotICAgIGV2ZW4gdGhvdWdoIExpbnV4IGRvZXNuJ3QgaW1wbGVtZW50IHRoZW0KLSAgKiBzeXNjYWxsLmM6IGFkZCBnbG9iYWwgdmFyaWFibGVzIGZvciBNSVBTIHJlZ2lzdGVycyBhcyB3ZWxsCi0gICogc3lzY2FsbC5jOiBtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgdG8gYmVmb3JlIGdldF9zY25vIHNpbmNlIHRoYXQgdXNlcyB0aGVtCi0gICogdXRpbC5jOiBvb3BzLCBtaXNzcGVsbGVkIGRlZmluZWQKLSAgKiBwcm9jZXNzLmM6IGZpeCBwdHJhY2UgY2FsbHMgaW4gY2hhbmdlX3N5c2NhbGwKLSAgKiBtZW0uYzogZGVjb2RlIHN5c19tYWR2aXNlCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPgotICAgICsgYWRkIHN1cHBvcnQgZm9yIHF1b3RhY3RsLCBmZGF0YXN5bmMsIG1sb2NrLCBtbG9ja2FsbCwgbXVubG9ja2FsbCAmIGFjY3QKLSAgICArIHNtYWxsIGZpeCBmb3IgUkxJTUlUXyogYW5kIFJVU0FHRV9CT1RICi0gICAgKyBlbmhhY2Ugc3VwcG9ydCBmb3IgY2FwZ2V0IGFuZCBjYXBzZXQKLQotMjAwMC0wMi0xOSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGVzdC92Zm9yay5jOiBuZXcgZmlsZSB0byB0ZXN0IHZmb3JrIHRyYWNlcwotICAqIHRlc3QvLmN2c2lnbm9yZTogbmV3IGZpbGUKLSAgKiBkZWZzLmg6IFVwIG1heGltdW0gbnVtYmVyIG9mIHRyYWNlZCBwcm9jZXNzZWQgdG8gNjQKLSAgKiBzdHJhY2UuYzogRGlzYWJsZSBzb21lIGRlYnVnZ2luZyBjb2RlIGZyb20gZGF2aWRtCi0gICogaW1wbGVtZW50IHNldGFyZyBmb3IgbW9yZSBhcmNoaXRlY3R1cmVzCi0gICogaW1wbGVtZW50IGNoYW5nZV9zeXNjYWxsCi0KLTE5OTktMTItMjcgIE1vcnRlbiBXZWxpbmRlciAgPHRlcnJhQGRpa3UuZGs+Ci0KLQkqIHN5c2NhbGwuYyAobG9va3VwX3NpZ25hbCwgbG9va3VwX2Rlc2MpOiBpc2RpZ2l0IHJlcXVpcmVzIGFuCi0gCV91bnNpZ25lZF8gY2hhciBwYXJhbWV0ZXIuCi0KLTIwMDAtMDItMTQgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFMzOTAgdXBkYXRlcwotCi0yMDAwLTAyLTAzIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBMaW51eC9pYTY0IHBhdGNoZXMKLQotMjAwMC0wMS0wMiBQYXZlbCBNYWNoZWsJICAgICA8cGF2ZWxAdWN3LmN6PgotCi0gICogcHJvYmUgaWYgc3lzL3BvbGwuaCBleGlzdHMgaW4gY29uZmlndXJlICsgbWlub3IgY2xlYW51cHMKLQotICAqIHN5c2NhbGwuYzogc3BsaXQgdHJhY2Vfc3lzY2FsbCBpbnRvIGZldyBwaWVjZXMgdG8gbWFrZSBjb2RlIHJlYWRhYmxlCi0KLTIwMDAtMDEtMjEgV2ljaGVydCBBa2tlcm1hbiAgPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZWxlYXNlIHZlcnNpb24gNC4yIHRvIGdldCB0aGUgY3VycmVudCB1cGRhdGVzIG91dCBhbmQgc28KLSAgICB3ZSBjYW4gY29uY2VudHJhdGUgaW4gZmluaXNoaW5nIHRoZSBjbG9uZSBzdXBwb3J0LgotCi0yMDAwLTAxLTExIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIDE5MDAgdG8gdG1feWVhciBpbiBzcHJpbnR0aW1lCi0KLTE5OTktMTItMjQgIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gKiBmaWxlLmM6IHByb3RlY3QgcHJpbnRzdGF0NjQgd2l0aCBTVEFUNjQgaW5zdGVhZCBvZiBsaW51eCBzbyB3ZSBjYW4KLSAgIGNvbXBpbGUgb24gTGludXggYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgaXQKLSAqIHV0aWwuYzogZml4IExPT1AgZm9yIEFSTQotCi1GcmkgRGVjIDI0IDE4OjA1OjAwIEVTVCAxOTk5Ci0KLTE5OTktMTItMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgotCi0gKiBmaWxlLmM6IFVzZSB1Z2x5IGxpYmNfc3RhdCB0cmljayBhbHNvIGZvciBzdGF0NjQuCi0gICBJbXBsZW1lbnQgc3lzX3N0YXQ2NCwgc3lzX2ZzdGF0NjQsIHN5c19sc3RhdDY0LCBhbmQgcHJpbnRzdGF0NjQuCi0gKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRml4IGEgZmV3IHR5cG9zIGFuZCBhZGQgZGVmaW5pdGlvbnMgdG8gbWFrZQotICAgaXQgYXQgbGVhc3QgY29tcGlsZS4KLSAqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfc3RhdDY0LCBzeXNfbHN0YXQ2NCwgYW5kIHN5c19mc3RhdDY0LgotICogbGludXgvc3lzY2FsbGVudC5oOiBEZWZpbmUgdGFibGUgZW50cmllcyBmb3Igc3lzX3N0YXQ2NCwgc3lzX2xzdGF0NjQsCi0gICBhbmQgc3lzX2ZzdGF0NjQuCi0gKiBhY2xvY2FsLm00OiBEZWZpbmUgQUNfU1RBVDY0LgotICogYWNjb25maWcuaDogRGVmaW5lIEhBVkVfU1RBVDY0LgotICogY29uZmlndXJlLmluOiBBZGQgQUNfU1RBVDY0LgotCi1UaHUgRGVjIDIzIDE1OjAxOjM3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBwYXRjaCBmcm9tIGZ0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2xpbnV4MzkwLyB0byBhZGQKLSAgICBzdXBwb3J0IGZvciBMaW51eCBvbiB0aGUgSUJNIFMvMzkwIGFyY2hpdGVjdHVyZQotICAqIHByb2Nlc3MuYzogYWRkIGludGVybmFsX2Nsb25lKCksIGN1cnJlbnRseSBvbmx5IHNob3dzIHRoZSBvcHRpb25zCi0gICogc3lzY2FsbC5jOiB1c2UgaW50ZXJuYWxfY2xvbmUgdG8gaGFuZGxlIFNZU19jbG9uZQotCi1Nb24gRGVjIDIwIDAwOjI3OjUwIENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZXdyaXRlIG1tYXAtaGFuZGxpbmcgdG8gc3VwcG9ydCBtbWFwMiBvbiBMaW51eAotCi1UdWUgRGVjIDE0IDExOjM1OjE2IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBOb3RlIHRoYXQgTGludXggY2FuIGhhbmRsZSBzeXNfc2Vtb3AoKSBhcyB3ZWxsCi0KLVR1ZSBOb3YgMzAgMTE6MDU6MjYgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEluY2x1ZGUgbGludXgvaW42LmggZm9yIGdsaWJjMi4wIGFuZCBvbGRlcgotCi1Nb24gTm92IDI5IDE2OjMzOjA0IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgdG8gbWFrZSBjb25maWd1cmUgc3VwcG9ydCBVbml4V2FyZQotCi1TYXQgTm92IDI3IDIxOjM4OjE3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBFbmhhbmNlIHN5c19xdWVyeV9tb2R1bGUKLQotRnJpIE5vdiAyNiAxMDo1MTo1NSBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUGF0Y2hlcyBmcm9tIEpvaG4gSHVnaGVzOgotICAgICsgY29zbWVjdGljIGZpeCBpbiBzeXNfZ2V0cG1zZwotICAgICsgYWxsb3cgbmV0LmMgdG8gY29tcGlsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgQUZfSU5FVDYKLSAgICArIE9ubHkgdXNlIGxvbmdfdG9fc2lnc2V0IG9uIExpbnV4IHN5c3RlbXMKLSAgICArIFVuaXhXYXJlIHRyZWF0cyBzaWdtYXNrX3QgYW5kIHNpZ21hc2tfdCogYXMgdGhlIHNhbWUgdGhpbmcKLSAgICArIEFkZCBwb2xsaGFjawotICAgICsgUGFyc2UgbW91bnQgYXJndW1lbnRzIGZvciBVbml4V2FyZQotICAgICsgQUNMIGZpeGVzIGZvciBVbml4V2FyZQotCi1GcmkgTm92IDI2IDAxOjI4OjA5IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZWxlYXNlIDQuMSB0byBnZXQgYWxsIHRoZSBjaGFuZ2VzIG1hZGUgb3V0IHRoZXJlCi0KLVRodSBOb3YgMTggMTg6MDQ6MDQgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHN0cmFjZWZvcmsgZnJvbSBBbGV4ZXkgS3V6bmV0c292IDxrdXpuZXRAbXMyLmluci5hYy5ydT4KLSAgICArIFNvY2tldCBjYWxscyBwYXJzZWQgYmV0dGVyCi0JKyBidW5jaCBvZiBhbHBoYSBPU0Ygc3lzY2FsbHMgYWRkZWQKLQkrIEZpeCBhbHBoYSAzMi82NCBiaXQgaXNzdWVzCi0KLU1vbiBOb3YgIDEgMjA6NTI6MDggQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1vdmUgTGludXgga2VybmVsbW9kdWxlLWZ1bmN0aW9ucyBmcm9tIHN5c3RlbS5jIHRvIGJqbS5jIGFuZAotICAgIHJlbW92ZSBkdXBsaWNhdGUgZm9yIHN5c19jcmVhdGVfbW9kdWxlCi0gICogTGludXggTUlQUyB1cGRhdGVzOgotICAgICsgUGxheSB3aXRoICNpZmRlZidzIGluIG5ldC5jIHRvIGdldCBJUHY2IHJpZ2h0Ci0gICAgKyBVc2UgcHJpbnRhcmdzIGZvciB2bTg2LXN5c2NhbGwKLQotU3VuIE9jdCAzMSAyMjowMzowMCBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgTGludXggbWlwcyBwYXRjaCBmcm9tIEZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KLQotTW9uIE9jdCAxMSAwMDozNjoyNSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHBhdGNoIGZyb20gS2VpdGggT3dlbnMgPGthb3NAb2NzLmNvbS5hdT4gdG8gc3lzX3F1ZXJ5X21vZHVsZQotICAgIGFuZCBzeXNfZGVsZXRlX21vZHVsZSBjb3JyZWN0bHkKLQotV2VkIE9jdCAgNiAwMjowMDozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFVwZGF0ZSBjdnNidWlsZCB0byBnaXZlIGEgYmV0dGVyIGVycm9yIGlmIGF1dG9jb25mIGlzbid0IGluc3RhbGxlZAotICAqIEFkZCB0ZXN0IGZvciBsaW51eC9wdHJhY2UuaCB0byBjb25maWd1cmUKLSAgKiBTaW5jZSB3ZSBkZWZpbmUgR05VX1NPVVJDRSBpbiB0aGUgTWFrZWZpbGUgd2UgZG9uJ3QgbmVlZCB0byBkZWZpbmUKLSAgICBVU0VfR05VIGluIGZpbGUuYyBhbnltb3JlCi0KLUZyaSBTZXAgMTAgMDQ6MzU6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiAjZGVmaW5lIFVTRV9HTlUgYmVmb3JlIGluY2x1ZGluZyBmaWxlLmMgc28gd2UgZ2V0IHNvbWUgZXh0cmEgT18qIGZsYWdzCi0KLVR1ZSBBdWcgMzEgMTY6Mjc6MjEgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgbWlzc2luZyB9IGluIElQdjYgb3V0cHV0Ci0KLVR1ZSBBdWcgMzEgMDE6MjM6MDggQ0VTVCAxOTk5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogVXBkYXRlIGNvcHlyaWdodCBmb3Igc3RyYWNlLWdyYXBoIHRvIEJTRCB0byBiZSBjb25zaXN0ZW50IHdpdGgKLSAgICB0aGUgcmVzdCBvZiBzdHJhY2UKLQotTW9uIEF1ZyAzMCAwMDo1Mzo1NyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHBhdGNoIGZyb20gRGFuaWVsIEphY29ib3dpdHo6IEtFUk5fSkFWQV8qIGFuZCBLRVJOX1NFQ1VSRUxWTCBhcmVuJ3QKLSAgICBkZWZpbmVkIGZvciBhbGwga2VybmVsdmVyc2lvbnMKLSAgKiBBZGQgc3RyYWNlLWdyYXBoLCB3cml0dGVuIGJ5IFJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgotCi1UaHUgQXVnIDE5IDEzOjEwOjE1IENFU1QgMTk5OSBKYWt1YiBKZWxpbmVrIDxqakB1bHRyYS5saW51eC5jej4KLQotICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBjcmVhdGVfbW9kdWxlL2luaXRfbW9kdWxlLgotICAqIGNvbmZpZ3VyZS5pbjogQWxsb3cgY29tcGlsYXRpb24gaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5Ci0gICAgdGhhbiB0aGUgc291cmNlIG9uZS4KLSAgKiBzaWduYWwuYzogVXNlIGFzbS9yZWcuaCBhbmQgc3RydWN0IHJlZ3MgaW5zdGVhZCBvZiBwdF9yZWdzCi0gICAgc28gdGhhdCB3ZSBkb24ndCBkZXBlbmQgb24gYXNtL3B0cmFjZS5oIHdoaWNoIGNsYXNoZXMgd2l0aAotICAgIGdsaWJjIHN5cy9wdHJhY2UuaC4KLSAgKiB1dGlsLmM6IExpa2V3aXNlLgotICAqIHN5c2NhbGwuYzogTGlrZXdpc2UuCi0KLVdlZCBBdWcgIDQgMTg6MDE6NTAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBTeXNjYWxsIDk0IG9uIExpbnV4IGFscGhhIGlzIHN5c19wb2xsCi0KLVN1biBKdWwgMjUgMTQ6Mzg6MzMgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBpbiBVbml4V2FyZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi1UaHUgSnVsIDE1IDIzOjAwOjMyIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBNYWNpZWogVy4gUm96eWNraSA8bWFjcm9AZHMyLnBnLmdkYS5wbD46Ci0gICAgKyBDb3JyZWN0bHkgaW1wbGVtZW50IGZpeCBzeXNfY3JlYXRlbW9kdWxlIChMaW51eCkKLSAgICArIEFkZCBsaW1pdGVkIGhhbmRsaWcgb2Ygc3lzX2luaXRtb2R1bGUgKExpbnV4KQotCi1UdWUgSnVsIDEzIDE3OjA3OjUwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIGNvbmZpZ3VyZS10ZXN0IGZvciBzeXMvcmVnLmggYW5kIHVzZSB0aGF0Ci0gICogVXNlIHN5cy9yZWcuaCBpbnN0ZWFkIG9mIGFzbS9wdHJhY2UuaAotCi1TYXQgSnVsIDEwIDAxOjQ2OjEwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUmVtb3ZlIGhhY2sgaW4gc2lnbmFsLmMgZm9yIGFybSBhcmNoaXRlY3R1cmUKLSAgKiBBZGQgaGFjayBzbyB3ZSBjb21waWxlIGNvcnJlY3RseSBvbiBwb3dlcnBjCi0KLUZyaSBKdWwgIDkgMDI6Mjg6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgYSBjb3JyZWN0ZWQgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0egotCi1UaHUgSnVsICA4IDE2OjAwOjA0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0eiB0byBhbGxvdyB1cyB0byB1c2UgdGhlIGtlcm5lbCB0eXBlcwotICAgIGZvciB0aGUgc3RhdCBzdHJ1Y3R1cmUKLQotVGh1IEp1biAyNCAxNTo1NDoxOCBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEZpeCB0ZXN0IGZvciBzeXMvcmVnIGluY2x1ZGUKLQotVHVlIEp1biAyMiAxNzoyNjozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEZpeGVkIHNvbWUgTGludXgvcG93ZXJwYyBzaWxseW5lc3MsIHRoYW5rcyB0byBEYW5pZWwgSmFjb2Jvd2l0egotICAqIEZpeGVkIHNvbWUgU3VuT1MgY29tcGlsZSBwcm9ibGVtcyBlYXJsaWVyIHRoYXQgSSBmb3Jnb3QgdG8gaW5jbHVkZQotICAgIGhlcmUKLQotTW9uIEp1biAxNCAxMjo0NDoyNSBDRVNUIDE5OTkKLQotICAqIEF2b2lkIGxlYWtpbnQgZmQgaW50byBjaGlsZCB3aGVuIGZvcmtpbmcsIHBhdGNoIGZyb20KLSAgICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLUZyaSBKdW4gMTEgMTQ6NTQ6NDcgQ0VTVCAxOTk5Ci0KLSAgKiBBcHBsaWVkIElSSVg2NCBwYXRjaCBmcm9tIFRob21hcyBFLiBEaWNrZXkgPGRpY2tleUBjbGFyay5uZXQ+Ci0gICogQXBwbGllZCBTb2xhcmlzIGFuZCBtYW5wYWdlIHVwZGF0ZXMgZnJvbSBHdXkgSGFycmlzIDxndXlAbmV0YXBwLmNvbT4KLQotV2VkIEp1biAgOSAxNDo0ODo0OSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEJyb3VnaHQgc3lzY2FsbCBsaXN0IGZvciBhbHBoYSB1cCB0byBkYXRlCi0KLVdlZCBKdW4gIDIgMTg6MzA6MTIgQ0VTVCAxOTk5IEpha3ViIEplbGluZWsgPGpqQHVsdHJhLmxpbnV4LmN6PgotCi0gICogc3lzdGVtLmM6IHN5c191bW91bnQyIHN5c2NhbGwgc3VwcG9ydC4KLSAgKiBsaW51eC9zcGFyYy9lcnJub2VudC5oOiBVcGRhdGUgc3BhcmMtbGludXggZXJybm9zLgotICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogVXBkYXRlIHVzZWQgc3BhcmMtbGludXggc3lzY2FsbHMuCi0gICogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBNYXRjaCAyLjIuOSBzeXN0ZW0gY2FsbHMuCi0gICogZmlsZS5jOiBzcGFyYy1saW51eCBhc20vc3RhdC5oIHVzZXMgZGV2X3QgZXRjLiB0eXBlcywKLSAgICBzbyBpdCBuZWVkcyBzdHJhY2UncyBvd24gY29weSBvZiB0aGUgc3RhdCBzdHJ1Y3R1cmUuCi0gICogdXRpbC5jOiBNYWtlIGl0IGNvbXBpbGUgb24gc3BhcmMtbGludXguCi0gICogc3RyYWNlLmM6IEZpeCBzdHJhY2UgLWYgYW5kIC1mZiBvcGVyYXRpb24gb24gc3BhcmMtbGludXguCi0gICogc2lnbmFsLmM6IHJ0X3NpZ2FjdGlvbiBoYXMgZGlmZmVyZW50IGFyZ3VtZW50cyBvbiBzcGFyYyotbGludXgKLSAgICBhbmQgYWxwaGEtbGludXguCi0gICogc3lzY2FsbC5jOiBSZWNvZ25pemUgc3BhcmM2NC1saW51eCBiaW5hcmllcy4KLQotRnJpIE1heSAyOCAyMTowOTowMCBQU1QgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4KLQotICAqIGNvbmZpZ3VyZS5pbjogRml4IHR5cG8gKENGTEFHIC0+IENGTEFHUykuCi0KLSAgKiBzeXNjYWxsLmM6IERvbid0IGluY2x1ZGUgbGludXgvcHRyYWNlLmggZXhwbGljaXRseSBmb3IgZ2xpYmMuCi0KLVRodSBNYXkgMjcgMTM6NTk6MjcgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgc29tZSBzeXNjdGwgc3VwcG9ydCwgcGF0Y2ggZnJvbSBVbHJpY2ggRHJlcHBlcgotCi1XZWQgTWF5IDI2IDAxOjA0OjM0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogVXNlIGtlcm5lbCBkaXJlbnQgc3RydWN0dXJlIGZvciBMaW51eAotCi1TdW4gTWF5ICA5IDAyOjE4OjMwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uY3MudW5pLWRvcnRtdW5kLmRlPgotICAgICsgc29tZSBsYXlvdXQgYW5kIG90aGVyIG1pbm9yIGZpeGVzCi0gICAgKyBhZGQgc29tZSBtNjhrLXNwZWNpZmljIHRoaW5ncyB0byBsaW51eC9zeXNjYWxsZW50LmguIE5vdGUgdGhhdCBtNjhrCi0gICAgICBpcyBzaW1pbGFyIGVub3VnaCB0byBpMzg2IHRvIG5vdCBuZWVkIGl0J3Mgb3duIHN1YmRpcmVjdG9yeQotICAgICsgYWRkIHN1cHBvcnQgZm9yIHNlbmRmaWxlIGFuZCBtcmVtYXAgc3lzY2FsbHMgZm9yIExpbnV4Ci0gICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIFNhc2NoYSBTY2h1bWFubiA8c2FzY2hhQHNjaHVtYW5uLjJucy5kZT4KLSAgICArIGlvY3Rscy5oIHZzIHN5cy9pb2N0bC5oIG9uIEFscGhhIHBsYXRmb3JtCi0gICAgKyBwb2ludGVyIHdhcyBjYXN0ZWQgdG8gYW4gaW50IGluIHN0cmVhbS5jCi0gICAgKyBzdHJzaWduYWwoKSBuZWVkcyAtRF9HTlVfU09VUkNFIGluIENGTEFHUwotICAgICsgc2V2ZXJhbCBvdGhlciBjYXN0cyBjaGFuZ2VkCi0gICAgKyBjb3JyZWN0IEFSTS9QT1dFUlBDIGFyY2hpdGVjdHVyZSBkZWZpbmVzIGluIGFjY29uZmlnLmgKLSAgKiBNZXJnZSBpbiBwYXRjaGVzIGZyb20gTW9ydGVuIFdlbGluZGVyIDx0ZXJyYUBkaWt1LmRrPgotICAgICsgYWRkIHNvbWUgYXV0b2NvbmYtdGVzdHMgZm9yIGluY2x1ZGVmaWxlcwotICAgICsgaGFuZGxlIHNvbGFyaXMgdmVyc2lvbiBvZiBzaWdjb250ZXh0IHN0cnVjdCAoYWN0dWFsbHkgSSBoYWNrZWQgdGhpcwotICAgICAgdXAgYWdhaW4sIGJ1dCB0aGUgaWRlYSBpcyBoaXMgOikKLQotU3VuIEFwciAxOCAyMjozMjo0MiBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFVwZGF0ZSBzeXNjYWxscyBmb3IgbGludXggYWxwaGEsIHBhdGNoIGZyb20gQmFydCBXYXJtZXJkYW0KLSAgICA8YmFydHdAZGViaWFuLm9yZz4KLSAgKiBVcGRhdGUgc3BhcmMgY29kZSBzbyBpdCBhY3R1YWxseSBjb21waWxlcwotCi1GcmkgQXByIDE2IDAyOjE4OjA1IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIHN1cHBvcnQgZm9yIG9sZF8qc3RhdCBmdW5jdGlvbnMgZm9yIExpbnV4LiBQbGVhc2Ugbm90ZSB5b3UgbmVlZAotICAgIHRvIHVzZSByZWFzb25hYmx5IHJlY2VudCBrZXJuZWwgaGVhZGVycyB0byBjb21waWxlIHN0cmFjZSBub3cuCi0gICogQ2hhbmdlIHJlZmVyZW5jZXMgdG8gTElOVVggaW50byBsaW51eCBpbiBmaWxlLmMKLSAgKiBGaXggaW5jbHVkZSBmb3IgTERUIGluIG1lbS5jCi0KLVRodSBBcHIgMTUgMjI6Mjg6MTUgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBDaGFuZ2UgaW4gc3RyYWNlIG1haW50YWluZXJzaGlwLCBqcnMgcGFzc2VkIHRoZSB0b3JjaCB0byBtZS4KLSAgKiBVc2UgYXV0b2NvbmYgMi4xMwotICAqIEluY29ycG9yYXRlIGFsbCBjaGFuZ2VzIGFscmVhZHkgbWFkZSBpbiB0aGUgRGViaWFuIHN0cmFjZSBwYWNrYWdlOgotICAgICsgY29tcGlsZXMgd2l0aCBtb3JlIExpbnV4IGtlcm5lbHMKLSAgICArIGFkZGVkIHN1cHBvcnQgZm9yIG1vcmUgTGludXggYXJjaGl0ZWN0dXJlcwotICAgICsgYWRkIHN1cHBvcnQgZm9yIGEgbG90IG9mIGV4dHJhIHN5c2NhbGxzCi0gICAgKyBmaXggc29tZSBwcm9ibGVtcyB3aXRoIGhhbmdpbmcgY2hpbGRyZW4KLSAgICArIGNoZWNrIHN0cmF5IHN5c2NhbGwgYWZ0ZXIgZXhlY3YKLSAgICArIGRlY29kZSBjYXBnZXQgYW5kIGNhcHNldCBhcmd1bWVudHMKLSAgICArIGFkZCBtb3JlIGNvbnN0YW50cyB0byBuZXQuYwotICAgICsgZGV0ZWN0IFJPU0UgbmV0d29ya2luZwotICAgICsgYWRkIG1vcmUgcHJvdG9jb2wgZmFtaWxpZXMgdG8gZG9tYWlucwotICAgICsgYWRkIElQSVAgcHJvdG9jb2wKLSAgICArIGFkZGVkIE1TR19QUk9YWSBhbmQgTVNHX0NUUlVOQyB0byBtc2dfZmxhZ3MKLSAgICArIGFkZGVkIFNPX0JTRENPTVBBVCBhbmQgU09fUkVVU0VQT1JUIHRvIHNvY2tvcHRpb25zCi0gICAgKyBhZGRlZCBJUCwgSVBYIGFuZCBUQ1Atb3B0aW9ucwotICAgICsgYWRkZWQgSVAsIElQWCBhbmQgVENQIHN1cHBvcnQgdG8gZ2V0LS9zZXRzb2Nrb3B0KCkKLSAgICArIGFkZGVkIElQWCBzdXBwb3J0Ci0gICAgKyB1cGRhdGVkIGhhbmRsaW5nIG9mIHNpZ25hbHMKLQotU3VuIE9jdCAyNyAyMjoyODowMCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdXRpbC5jICh1bW92ZXN0cikgW0xJTlVYXTogSGFuZGxlIExpbnV4IGxpa2UgU3VuT1M0Ci0JaW5zdGVhZCBvZiBTVlI0LiAgVGhhdCBpcywgcmVhZCBhIGZldyBieXRlcyBhdCBhIHRpbWUKLQl0byBhdm9pZCBvdmVycnVubmluZyB0aGUgZW5kIG9mIHRoZSBzdGFjay4KLQotRnJpIE1heSAzMSAwMTo0ODo0OSAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMSBpcyByZWxlYXNlZC4KLQotVGh1IE1heSAyMyAwMTowNDo0MyAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogYWNsb2NhbC5tNCAoQUNfREVDTF9TWVNfRVJSTElTVCk6IFRyeSBsb29raW5nIGluIHN0ZGlvLmgKLQlhcyB3ZWxsIHNpbmNlIHRoYXQncyB3aGVyZSBnbGliYyBkZWNsYXJlcyBpdC4gIEdvIGZpZ3VyZS4KLQkqIHNpZ25hbC5jIChzeXNfc2lncmV0dXJuKSBbQUxQSEFdOiBVc2Ugc2lnY29udGV4dAotCWluc3RlYWQgb2Ygc2lnY29udGV4dF9zdHJ1Y3Qgc2luY2UgZ2xpYmMgdjUrIGFwcGFyZW50bHkKLQlwbGF5cyBnYW1lcyB3aXRoIHRoZSBuYXRpdmUgT1MgbmFtZXNwYWNlLgotCUZyb20gRGF2aWQgTW9zYmVyZ2VyLVRhbmcgPGRhdmlkbUBBWlN0YXJOZXQuY29tPi4KLQotTW9uIE1heSAyMCAyMzoxNzoxNCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xNCBpcyByZWxlYXNlZC4KLQotCSogYWNsb2NhbC5tNCAoQUNfU1RSVUNUX01TR19DT05UUk9MKTogTmV3IG1hY3JvLgotCSogY29uZmlndXJlLmluOiBBZGQgY2FsbCB0byBBQ19TVFJVQ1RfTVNHX0NPTlRST0wuCi0JKiBuZXQuYyAocHJpbnRtc2doZHIpOiBIYW5kbGUgQlNEIDQuMyBhbmQgNC40IG1zZ2hkciBtZW1iZXJzCi0gCWRpZmZlcmVudGx5LgotCVJlcG9ydGVkIGJ5IEhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPi4KLQotCSogY29uZmlndXJlLmluOiAoQUNfQ0hFQ0tfe0hFQURFUlMsRlVOQ1N9KTogQWRkIGNoZWNrcyBmb3IKLSAJc3lzL2ZpbGlvLmggYW5kIHN5cy9zdHJlYW0uaCBhbmQgcmVtb3ZlIGNoZWNrIGZvciBwb2xsLgotCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0LCBzeXNfc2VsZWN0LCBzeXNfb2xkc2VsZWN0KSBbTElOVVhdOgotIAlIYW5kbGUgb2xkIGFuZCBuZXcgc3R5bGVzIG9mIGFyZ3VtZW50IHBhc3NpbmcgZm9yIHNlbGVjdCBvbiBMaW51eC4KLQkqIGlvY3RsLmMsIHN0cmVhbS5jOiBDb25kaXRpb25hbGl6ZSBzdHJlYW0gY29kZSBvbiBwcmVzZW5jZSBvZgotCXN5cy9zdHJlYW0uaCBpbnN0ZWFkIG9mIHBvbGwgYmVjYXVzZSBnbGliYyBpbXBsZW1lbnRzIHBvbGwgYnV0Ci0Jbm90IHRoZSByZXN0IG9mIHRoZSBzdHJlYW0gaW50ZXJmYWNlLgotCSogc2lnbmFsLmMgW0xJTlVYXTogU3RhbmRhcmRpemUgb24gdGhlIG5hbWUgc2lnY29udGV4dF9zdHJ1Y3QuCi0JKHN5c19zaWdwcm9jbWFzaykgW0FMUEhBXTogSGFuZGxlIE9TRiBmbGF2b3Igd2hpY2ggaXMgbW9yZSBsaWtlCi0Jc2lnc2V0bWFzay4KLQkqIHRlcm0uYyAodGVybV9pb2N0bCk6IFVzZSBfVk1JTiwgaWYgcHJlc2VudCwgZm9yIFRDe0csU31FVEEqLgotCSogdXRpbC5jICh1bW92ZW4sIHVtb3Zlc3RyKTogTW92ZSBkYXRhIGluIGxvbmctc2l6ZWQgY2h1bmtzCi0JYXQgYSB0aW1lLCBpbnN0ZWFkIG9mIGhhcmQgY29kaW5nIGl0IHRvIGJlIDQuCi0JRnJvbSBEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQEFaU3Rhck5ldC5jb20+LgotCi1Nb24gTWF5IDIwIDAxOjE5OjM2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEzIGlzIHJlbGVhc2VkLgotCi0JKiBjb25maWd1cmUuaW4gKEFDX0NIRUNLX0hFQURFUlMpOiBBZGQgY2hlY2sgZm9yIGFzbS9zaWdjb250ZXh0LmguCi0JKiBzaWduYWwuYyBbSEFWRV9BU01fU0lHQ09OVEVYVF9IXTogQ29uZGl0aW9uYWxseSBpbmNsdWRlCi0JYXNtL3NpZ2NvbnRleHQuaCB0byBkZWZpbmUgc2lnY29udGV4dF9zdHJ1Y3QgYW5kIGRvbid0IGRlZmluZSBpdAotCWxvY2FsbHkgaWYgdGhlIGhlYWRlciBpcyBwcmVzZW50LgotCi0JKiBzeXNjYWxsLmMgKG5lcnJub3N7MCwyfSk6IENvcnJlY3Qgc2l6ZSBjb21wdXRhdGlvbi4KLQotCSogTWFrZWZpbGUuaW46IFJlbW92ZSBkZXBlbmRlbmNpZXMgYW5kIHJ1bGVzIHJlbGF0aW5nIHRvIGZpbGVzCi0gCW5vcm1hbGx5IGZvdW5kIGluIHRoZSBvcyBkaXJlY3RvcnkuICBCZWNhdXNlIG9mIHRoZSBuZXcgc2NoZW1lIHdlCi0gCWRvbid0IGtub3cgcHJlY2lzZWx5IHdoZXJlIHRoZXkgY29tZSBmcm9tLiAgU2lnaC4KLQkqIHNpZ25hbGVudC5zaDogTWFrZSBpdCB3b3JrIGZvciBzdW5vczQsIGxpbnV4LCBhbmQgc3ZyNC4KLQkqIHtzdW5vczQsbGludXh7LC9hbHBoYX0sc3ZyNH0vTWFrZWZpbGUuaW46IE1ha2UgcnVsZXMgY29ycmVzcG9uZAotIAl0byB0cmFkaXRpb25hbCBtYWtlIHN5bnRheC4gIEFkZCBzaWduYWxlbnQuaCB0byBmaWxlcyB3aGljaCBjYW4KLSAJdW5jb25kaXRpb25hbGx5IGJlIHJlYnVpbHQuICBQcmV2ZW50IHNpZ25hbGVudC5oIGZyb20gYmVpbmcKLSAJdW5jb25kaXRpb25hbGx5IGJlaW5nIHJlYnVpbHQgc2luY2UgaXQncyBjdXN0b21pemVkLgotCSoge3N1bm9zNCxsaW51eHssL2FscGhhfSxzdnI0fS97aW9jdGxlbnQsZXJybm9lbnQsc2lnbmFsZW50fS5oOgotIAlVc2UgdmVyc2lvbnMgYnVpbHQgYnkge2lvY3RsZW50LGVycm5vZW50LHNpZ25hbHRlbnR9LnNoLgotICAJKiBzdW5vczQvaW9jdGxlbnQuc2g6IFdvcmsgYXJvdW5kIHNwcmludGYgdHJvdWJsZXMgd2l0aCBTdW5PUwotIAk0LjEuNCBhbmQgZ2NjIDIuNy4yLgotCi1TdW4gTWF5IDE5IDE3OjE0OjA5IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluOiBBZGQgT1NBUkNIIGNvbmNlcHQgdG8gZmluaXNoCi0JYnVpbGQgc3VwcG9ydCBmb3IgdGhlIGFscGhhLgotCSogTWFrZWZpbGUuaW4sIGxpbnV4L01ha2VmaWxlLmluOiBSZXdyaXRlIGNsZWFuLCBkaXN0Y2xlYW4sCi0JYW5kIG1haW50YWluZXItY2xlYW4gcnVsZXMuCi0JKiBkZWZzLmgsIGlvY3Rsc29ydC5jOiBNYWtlIGlvY3RsIGNvZGUgbWVtYmVyIHVuc2lnbmVkLgotCSogaW9jdGwuYywgaW9jdGxzb3J0LmMgKGNvbXBhcmUpOiBQZXJmb3JtIGV4cGxpY2l0IGNoZWNraW5nCi0JZm9yIGxlc3MsIGdyZWF0ZXIsIGFuZCBlcXVhbCBzaW5jZSBzdWJ0cmFjdGlvbiBvbiB0d28ncwotCWNvbXBsZW1lbnQgbnVtYmVycyBpc24ndCBhbiBvcmRlciByZWxhdGlvbiAoaXQgaXNuJ3QgdHJhbnNpdGl2ZSkhCi0JKiBsaW51eC9NYWtlZmlsZS5pbjogQWRkIHJ1bGVzIGZvciB0aGUgc2lnbmFsZW50LmggZmlsZS4KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQotU3VuIE1heSAxOSAwMToxMjoyOCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMiBpcyByZWxlYXNlZC4KLQotCSogbGludXh7LGFscGhhfS9pb2N0bGVudC5zaDogVHdlYWsgZm9yIHJlY2VudCBrZXJuZWxzLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi0JKiBkZWZzLmggKFNVUFBPUlRFRF9QRVJTT05BTElURVMsIERFRkFVTFRfUEVSU09OQUxJVFkpOiBOZXcuCi0JKiBzeXNjYWxsLmMgKHNldF9wZXJzb25hbGl0eSk6IE5ldy4KLQkqIHN0cmFjZS5jIChtYWluKTogQ2FsbCBzZXRfcGVyc29uYWxpdHkuCi0gCSogZGVmcy5oLCBzeXNjYWxsLmMsIGlvY3RsLmMsIHNpZ25hbC5jOiBNYWtlIHN5c2VudCwgZXJybm9lbnQsCi0gCWlvY3RsZW50LCBhbmQgc2lnbmFsZW50IGluZGlyZWN0IHBvaW50ZXJzIGFuZCByZWRpcmVjdCB0aGVtCi0JYmFzZWQgb24gcGVyc29uYWxpdHkuCi0JKiB7c3Vub3M0LHN2cjQsbGludXh7LC9hbHBoYX19L3NpZ25hbGVudC5oOiBOZXcgZmlsZXMuCi0JU3VnZ2VzdGVkIGJ5IFRvbSBEeWFzIDx0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1Pi4KLQotCSogdXRpbC5jICh1cGVlayk6IEhhbmRsZSBjYXNlIHdoZXJlIHB0cmFjZSByZXR1cm5zIGEgbG9uZwotCWFuZCBzaXplb2YobG9uZykgIT0gc2l6ZW9mKGludCkuCi0JRnJvbSBSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgotCi1GcmkgTWF5IDE3IDIxOjAzOjM2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjExIGlzIHJlbGVhc2VkLgotCi0JKiBtYW55IGZpbGVzOiBGaXggbW9yZSBwcmludGYgd2FybmluZ3MgZm9yIG90aGVyIHBsYXRmb3Jtcy4KLQotCSogaXBjLmMgKHN5c19tc2dyY3YpIFtMSU5VWF06IENvbmRpdGlvbmFsaXplIGRlZmluaXRpb24gb2YgaXBjX3dyYXBwZXIuCi0KLQkqIGxpbnV4L2R1bW15Lmg6IEhhbmRsZSBtaXNzaW5nIGxpYnJhcnkgc3VwcG9ydCBmb3Ige3NlbmQscmVjdn1tc2cuCi0JUmVwb3J0ZWQgYnkgVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYmlnYnVnLmZyYW5rZW4uZGU+LgotCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c191dGltZXMpOiBGaXggYSB0eXBvIGluIHRoZSBkZWNsYXJhdGlvbi4KLQlGcm9tIFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGJpZ2J1Zy5mcmFua2VuLmRlPi4KLQotRnJpIE1heSAxNyAwMDo1MDowNiAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMCBpcyByZWxlYXNlZC4KLQotCSogTWFrZmlsZS5pbjogQWRkIG9zL2FyY2ggdG8gaW5jbHVkZXMgc28gdGhhdCBhIGdpdmVuIGFyY2gKLQkobGlrZSBhbHBoYSkgY2FuIG92ZXJyaWRlIHRoZSBuYXRpdmUgYXJjaCAobGlrZSBpMzg2KS4KLQkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIHNlbmRtc2cuCi0KLQkqIG5ldC5jOiBNYWtlIHNlbmRtc2cgYW5kIHJlY3Ztc2cgZGVwZW5kZW50IG9uIGFuIGF1dG9jb25mCi0JdGVzdC4gIFJlcG9ydGVkIGJ5IE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KLQotCSogYWNjb25maWcuaCwgY29uZmlndXJlLmluOiBEZXRlY3QgdGhlIGFscGhhLgotCSogaW9jdGwuYzogSGFuZGxlIHRoZSBhbHBoYS4KLQkqIGRlZnMuaDogTWFrZSBzb21lIG1lbWJlcnMgbG9uZyBmb3IgdGhlIGFscGhhLiAgRGVmaW5lCi0Jc29tZSByZWdpc3RlciBuaWNrbmFtZXMuICBBZGQgc3VwcG9ydCBmb3IgV0FJVEVYRUNWRS4KLQkqIGZpbGUuYyBbQUxQSEFdOiBTdXBwb3J0IHRoZSBhbHBoYSBmb3Igc3RhdGZzLiAgQWRkCi0Jb3NmX3N0YXRmcyBhbmQgb3NmX2ZzdGF0ZnMgZm9yIHRoZSBhbHBoYS4gIE1ha2UgZGFtbiBzdXJlCi0JbWFqb3IgYW5kIG1pbm9yIHJlc3VsdHMgYXJlIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIHByaW50Zi4KLQkqIHNpZ25hbC5jLCBzeXNjYWxsLmM6IFN1cHBvcnQgdGhlIGFscGhhLgotCSogcHJvY2Vzcy5jOiBBZGQgYWxwaGEgdXNlciBvZmZzZXRzLgotCSogbW9zdCBmaWxlczogVXNlICVsPyBmb3IgcHJpbnRmIGFyZ3VtZW50cyBzaW5jZQotCW1vc3QgYXJlIG5vdyBsb25ncyBmb3IgdGhlIGFscGhhLgotCSogbGludXgvYWxwaGEve2Vycm5vZW50LmgsaW9jdGxlbnQue2gsc2h9LHN5c2NhbGxlbnQuaH06Ci0JTmV3IGZvciB0aGUgYWxwaGEuCi0JRnJvbSBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4uCi0KLVdlZCBNYXkgMTUgMDA6Mjk6MzcgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuOSBpcyByZWxlYXNlZC4KLQotCSogY29uZmlnLmluLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoOiBVcGdyYWRlIHRvIGF1dG9jb25mIDIuMTAuCi0KLQkqIGxpbnV4L2R1bW15LmgsIGxpbnV4L3N5c2NhbGxlbnQuaCwgbGludXgvc3lzY2FsbC5oOiBBZGQgcmVjZW50Ci0JTGludXgga2VybmVsIHZlcnNpb24gc3lzdGVtIGNhbGxzLgotCi1XZWQgTWFyIDEzIDAxOjAzOjM4IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBpcGMuYyBbU1VOT1M0XTogQWRkIFN1bk9TIHN1cHBvcnQgZm9yIGRlY29kaW5nIElQQyBjYWxscy4KLQkqIHN5c2NhbGwuYyBbU1VOT1M0XTogQ29tcGlsZSBkZWNvZGVfc3ViY2FsbCBvbiBTdW5PUyBhbmQKLQlkZWNvZGUgSVBDIGNhbGxzIHVzaW5nIGl0LgotCSogc3Vub3M0L2R1bW15Lmg6IEFsaWFzIHN5c19zZW1vcCB0byBwcmludGFyZ3MuCi0JKiBzdW5vczQvc3lzY2FsbC5oOiBBZGQgbmV3IHBzZXVkbyBzeXNjYWxscyBmb3IgSVBDLgotCSogc3Vub3M0L3N5c2NhbGxlbnQuaDogSW5jbHVkZSBuZXcgc3ViY2FsbHMgZm9yIElQQy4KLQlGcm9tIE1hdHRoaWFzIFBmYWxsZXIgPGxlb0BkYWNoYXUubWFyY28uZGU+LgotCi1UdWUgRmViIDEzIDIyOjA4OjI1IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjggaXMgcmVsZWFzZWQuCi0KLQkqIHRpbWUuYyBbTElOVVhdOiBFeHBsaWNpdGx5IGluY2x1ZGUgbGludXgvdmVyc2lvbi5oLgotCi0JKiBzdHJhY2UuYyAobWFpbik6IERvbid0IGxldCB0aGVtIGV2ZW4gKnRyeSogdG8KLQlnZXQgc3RyYWNlIHRvIGF0dGFjaCB0byBpdHNlbGYgc2luY2Ugc29tZSBzeXN0ZW1zCi0JZG9uJ3QgaGFuZGxlIHRoaXMgY2FzZSB2ZXJ5IGdyYWNlZnVsbHkuCi0JUmVwb3J0ZWQgYnkgRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBjYWlwLnJ1dGdlcnMuZWR1Pi4KLQotCSogTWFrZWZpbGUuaW4gKGRpc3RjbGVhbik6IEZpeCBpdCBmb3Igc3ViZGlyZWN0b3JpZXMuCi0KLQkqIHN1bm9zNC9zeXNjYWxsZW50LmgsIHN2cjQvc3lzY2FsbGVudC5oOiBGaWxsIGluIHRoZSBuZXcKLQlzeXNfZmxhZ3MgbWVtYmVyIGZvciBlYWNoIGRlZmluZWQgc3lzdGVtIGNhbGwuCi0KLUZyaSBEZWMgIDggMDE6MTc6MjggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGRlZnMuaCAoVFJBQ0VfKik6IE5ldyBmbGFncyB0byBkZXNjcmliZSB3aGF0IGNsYXNzCi0Jb2Ygc3lzdGVtIGNhbGwgZWFjaCBzeXN0ZW0gY2FsbCBpcy4KLQkoc3lzZW50KTogQWRkIHN5c19mbGFncyBtZW1iZXIuCi0JKiBzeXNjYWxsLmMgKHN5c2VudCk6IERlZmluZSAoYW5kIGxhdGVyIHVuZGVmKSBhYmJyZXZpYXRpb25zCi0JZm9yIHRoZSBzeXN0ZW0gY2FsbCBjbGFzcyBmbGFncy4KLQkobG9va3VwX2NsYXNzKTogTmV3IGZ1bmN0aW9uIHRvIHRyYW5zbGF0ZSBzdHJpbmdzIHRvCi0Jc3lzdGVtIGNhbGwgY2xhc3MgZmxhZ3MuCi0JKHF1YWxpZnkpOiBIYW5kbGUgbmV3IHN5c3RlbSBjYWxsIGNsYXNzIG1lY2hhbmlzbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRmlsbCBpbiB0aGUgbmV3IHN5c19mbGFncyBtZW1iZXIKLQlmb3IgZWFjaCBkZWZpbmVkIHN5c3RlbSBjYWxsLgotCi0JKiBkZWZzLmggKHByaW50X3NvY2spOiBSZW1vdmUgcmVkdW5kYW50IGFuZCBub24tSyZSIEMKLQljb21wYXRpYmxlIHByb3RvdHlwZS4gIEZyb20gSnVlcmdlbiBXZWlnZXJ0Ci0JPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPi4KLQotVGh1IERlYyAgNyAwMToxNzo0MCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogbGludXgvaW9jdGxlbnQuc2g6IFR3ZWFrIHRvIGltcHJvdmUgaW9jdGwgYWNjdXJhY3kuCi0JRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCi0KLQkqIHN5c3RlbS5jIChpbmNsdWRlcykgW0xJTlVYXTogQWRkIGxpbnV4L25mcy5oIGZvciByZWNlbnQKLQlrZXJuZWxzLiAgRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCi0KLVdlZCBEZWMgIDYgMjE6NTI6MjggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGZpbGUuYyAoc3ByaW50ZnN0eXBlKTogRW5jbG9zZSBzdHJpbmcgcmVzdWx0IGluIGRvdWJsZQotCXF1b3Rlcy4KLQotCSogdGltZS5jIChzeXNfYWRqdGltZXgpIFtMSU5VWF06IENvbmRpdGlvbmFsaXplCi0JY29uc3RhbnRseSBldm9sdmluZyB0aW1leCBzdHJ1Y3R1cmUuCi0JRnJvbSBBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4uCi0KLQkqIGRlZnMuaCwgc3lzY2FsbC5jLCBzdHJhY2UuYzogUmVuYW1lIHN5c2NhbGwgdG8KLQl0cmFjZV9zeXNjYWxsIGFuZCBjaGFuZ2UgcHJvdG90eXBlIGFuZCBhbGwgY2FsbGVycwotCWJlY2F1c2Ugb2YgYnJva2VuIExpbnV4IHNoYXJlZCBsaWJyYXJpZXMuCi0JRnJvbSBBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4uCi0KLQkqIE1ha2VmaWxlLmluIChjbGVhbik6IENoZWNrIGZvciBhIGZpbGUgd2l0aCB0ZXN0IC1mIG5vdAotCXRlc3QgLWQuICBGcm9tIEFhcm9uIFVja28gPFVDS09AVkFYMS5ST0NLSFVSU1QuRURVPi4KLQotVHVlIFNlcCAyNiAwMjozMjozMSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC43IGlzIHJlbGVhc2VkLgotCi0JKiB1dGlsLmMgKHN0cmluZ19xdW90ZSk6IEZpeCB0aGlua28gd2hpY2ggY2F1c2VkIGNvcmUKLQlkdW1wcyBmb3Igc3RyaW5ncyB3aXRoIHF1b3RlcyBpbiB0aGVtLgotCVJlcG9ydGVkIGJ5IE1hcnR5IExlaXNuZXIgPGxlaXNuZXJAc2RzcC5tYy54ZXJveC5jb20+LgotCi0JKiBsaW51eC9NYWtlZmlsZS5pbiAoZXJybm9lbnQuaCBydWxlKTogR3JhYiBhbGwgZXJybm8uaAotCWZpbGVzIGZyb20gL3Vzci9pbmNsdWRlLCBub3QganVzdCB0aGUgbGludXggb25lLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi0JKiBsaW51eC9lcnJub2VudC5zaDogVG90YWwgcmV3cml0ZSB0byBoYW5kbGUgbW9yZSBpb2N0bHMgd2l0aAotCWZld2VyIGZhbHNlIHBvc2l0aXZlcyBvbiBtb3JlIGtlcm5lbCBmbGF2b3JzLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi1Nb24gU2VwICA0IDAxOjI5OjIyIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjYgaXMgcmVsZWFzZWQuCi0KLQkqIGxpbnV4L2R1bW15LmgsIGxpbnV4L3N5c2NhbGwuaCwgbGludXgvc3lzY2FsbGVudC5oOiBBZGQKLQlzeXNfbXN5bmMuCi0JKiBtZW0uYyAobWN0bF9mdW5jcywgbWN0bF9sb2NrYXMsIHN5c19tY3RsKTogQ29uZGl0aW9uYWxpemUKLQlvbiBNQ19TWU5DIGluc3RlYWQgb2YgSEFWRV9NQ1RMLgotCShtY3RsX3N5bmMpOiBDb25kaXRpb25hbGl6ZSBvbiBNU19BU1lOQyBpbnN0ZWFkIG9mIEhBVkVfTUNUTC4KLQkoc3lzX21zeW5jKTogTmV3IGZ1bmN0aW9uLgotCi1TYXQgU2VwICAyIDEyOjA2OjA0IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBsaW51eC9kdW1teS5oLCBsaW51eC9zeXNjYWxsLmgsIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkCi0Jc3lzX2Zsb2NrIGFuZCBzeXNfZ2V0ZGVudHMuCi0JKiBkZXNjLmMgKGZsb2NrY21kcywgc3lzX2Zsb2NrKTogQ29uZGl0aW9uYWxpemUgb24gTE9DS19TSAotCW5vdCBTVU5PUzQuCi0JKiBmaWxlLmMgKHN5c19nZXRkZW50cyk6IERlZmluZSB1bmNvbmRpdGlvbmFsbHkgYW5kIGhhbmRsZQotCUxJTlVYIGNhc2UuCi0JKiBzdHJhY2UuYyAobWFpbik6IERpc2FsbG93IHVzZXJuYW1lIG9wdGlvbiB1bmxlc3MgYm90aCByZWFsCi0JYW5kIGVmZmVjdGl2ZSB1aWRzIGFyZSByb290LgotCi1XZWQgQXVnIDMwIDAxOjI5OjU4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzdHJhY2UuYyAobWFpbik6IEVuc3VyZSB0aGF0IHJ1bl91aWQgYW5kIHJ1bl9naWQgYXJlCi0JYWx3YXlzIHNldCB0byBzb21ldGhpbmcgbWVhbmluZ2Z1bC4KLQkobWFpbiwgbmV3b3V0ZikgWyFTVlI0XTogU3dhcCByZWFsIGFuZCBlZmZlY3RpdmUgdWlkcyB3aGlsZQotCW9wZW5pbmcgYW55IG91dHB1dCBmaWxlcy4KLQkobWFpbikgWyFTVlI0XTogVHJlYXQgZWZmZWN0aXZlIHVpZCBvZiByb290IGFzIGEgcmVxdWVzdAotCXRvIGhhbmRsZSBzdWlkIGJpbmFyaWVzIGNvcnJlY3RseSB1c2luZyB0aGUgcmVhbCB1aWQgb2YKLQl0aGUgaW52b2tpbmcgdXNlci4KLQotU2F0IEF1ZyAxOSAwMDowNjowOCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogTWFrZWZpbGUuaW46IEFkZCBgfHwgdHJ1ZScgdG8gY2xlYW4gcnVsZSBiZWNhdXNlCi0JYWx0aG91Z2ggR05VIG1ha2UgMy43NCB1c2VzIGBzaCAtYycgdG8gaW52b2tlIGNvbW1hbmRzCi0JZXZlcnkgb3RoZXIgbWFrZSBpbiB0aGUgd29ybGQgdXNlcyBgc2ggLWVjJy4KLQotCSogc3lzY2FsbC5jIChzeXNjYWxsKSBbU1ZSNCwgTUlQU106IFRoZSBmaWZ0aCBhbmQgc3Vic2VxdWVudAotCWFyZ3VtZW50cyBhcHBlYXIgdG8gYmUgc3RvcmVkIG9uIHRoZSBzdGFjaywgbm90IGluIHRoZQotCXJlZ2lzdGVycyBmb2xsb3dpbmcgQTMgKGVtcGlyaWNhbCByZXN1bHQpLgotCi0JKiBkZWZzLmg6IEFkZCBwcm90b3R5cGUgZm9yIHByaW50c29jay4KLQkqIHN2cjQvZHVtbXkuaDogUmVtb3ZlIGdlbmVyaWMgaGFuZGxpbmcgb2Ygc3lzX21vdW50LgotCSogc3lzdGVtLmMgW1NWUjQsIE1JUFNdOiBJbmNsdWRlIHNldmVyYWwgc3lzdGVtIGhlYWRlcnMgdG8gY2xlYW5seQotCWdldCBhY2Nlc3MgdG8gU0dJIG1vdW50IGluZm9ybWF0aW9uLgotCShtb3VudF9mbGFncywgbmZzX2ZsYWdzKSBbU1ZSNCwgTUlQU106IE5ldyBvYmplY3RzLgotCShzeXNfbW91bnQpIFtTVlI0LCBNSVBTXTogTmV3IGZ1bmN0aW9uLgotCShzeXNfbW91bnQpIFtTVlI0LCAhTUlQU106IE5ldyBmdW5jdGlvbi4KLQotVHVlIEp1bCAgNCAwMDozMDozNCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC41IGlzIHJlbGVhc2VkLgotCi0JKiBkZXNjLmMsIHJlc291cmNlLmMsIHN0cmFjZS5jLCBzeXNjYWxsLmMsIHRpbWUuYzogQ2FzdCB0dl9zZWMgYW5kCi0gCXR2X3VzZWMgbWVtYmVycyB0byBsb25nIHdoZW4gdXNpbmcgcHJpbnRmLgotCi0JKiBpcGMuYzogT21pdCBkZWZpbmUgb2YgX19LRVJORUxfXy4KLQkoe01TRyxTRU0sU0hNfV97U1RBVCxJTkZPfSk6IEV4cGxpY2l0bHkgZGVmaW5lIHRob3NlIHRoaW5ncyB3ZQotIAl3YW50IHdoaWNoIF9fS0VSTkVMX18gdXNlZCB0byBwcm92aWRlLgotCShzeXNfbXNncmN2KTogQ2hhbmdlIHJlZmVyZW5jZSB0byBpcGNfa2x1ZGdlIHN0cnVjdHVyZSB0bwotCWxvb2stYWxpa2UgaXBjX3dyYXBwZXIgdG8gYXZvaWQgZGVwZW5kZW5jZSBvbiBfX0tFUk5FTF9fLgotCi0JbWVtLmMgKG1tYXBfZmxhZ3MpIFtNQVBfe0dST1dTRE9XTixERU5ZV1JJVEUsRVhFQ1VUQUJMRX1dOiBBZGQKLSAJTGludXggc3BlY2lmaWMgb3B0aW9ucy4KLQotCXN5c2NhbGwuYzogVXNlIFNZU19FUlJMSVNUX0RFQ0xBUkVEIGluc3RlYWQgb2YgZ3Vlc3NpbmcuCi0gIAlbRXtSRVNUQVJUe1NZUyxOT3tJTlRSLEhBTkR9fSxOT0lPQ1RMQ01EfV06IEV4cGxpY2l0bHkgZGVmaW5lCi0gCWluc3RlYWQgb2YgZGVwZW5kaW5nIG9mIF9fS0VSTkVMX18uCi0KLQl0ZXJtLmM6IENhc3QgY197aSxvLGMsbH1mbGFnIHRvIGxvbmcgd2hlbiB1c2luZyBwcmludGYuCi0KLVR1ZSBKdW4gIDYgMDA6Mjc6NDggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGFjbG9jYWwubTQgKEFDX0RFQ0xfU1lTX0VSUkxJU1QsIEFDX0RFQ0xfX1NZU19TSUdMSVNUKTogTmV3LgotCSogY29uZmlndXJlLmluOiBDYWxsIEFDX0RFQ0xfU1lTX0VSUkxJU1QsIEFDX0RFQ0xfU1lTX1NJR0xJU1QsCi0JYW5kIEFDX0RFQ0xfX1NZU19TSUdMSVNULgotCSogYWNjb25maWcuaCAoU1lTX0VSUkxJU1RfREVDTEFSRUQpOiBOZXcuCi0JKiBzdHJhY2UuYyAoc3RyZXJyb3IpOiBVc2UgU1lTX0VSUkxJU1RfREVDTEFSRUQuCi0JKHN0cnNpZ25hbCk6IFVzZSBTWVNfU0lHTElTVF9ERUNMQVJFRC4KLQotCW5ldC5jIChzeXNfc29ja2V0KTogT21pdCBpbmFkdmVydGVudCBzdXJwbHVzIGNvbW1hIHdoZW4KLQlwcm90b2NvbCBmYW1pbHkgaXNuJ3QgUEZfSU5FVC4KLQotCXV0aWwuYyAoZHVtcHN0cik6IEZpeCBpbmNvcnJlY3QgcHJpbnRpbmcgb2Ygb25lIHRvbyBtYW55Ci0JY2hhcmFjdGVycyB3aGVuIHRoZSBsZW5ndGggaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMuCi0JUmVwb3J0ZWQgYnkgSnVlcmdlbiBXZWlnZXJ0Ci0JPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPi4KLQotVGh1IE1heSAgNCAyMzozNzo0NyAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogaW9jdGwuYyAoY29tcGFyZSk6IENoYW5nZSBwcm90b3R5cGUgdG8gbWF0Y2ggUE9TSVggcXNvcnQuCi0JKiBzaWduYWwuYyAoc2lnaXNoYW5kbGVkKSBbU1ZSNF06IE9taXQgZXZlcnl0aGluZyBhZnRlciByZXR1cm4uCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtTVlI0XTogQnJlYWsgb3V0IG9mIGZvciBsb29wIGluc3RlYWQgb2YKLQlyZXR1cm5pbmcgd2hlbiBmaW5pc2hlZCBzbyBmaW5hbCByZXR1cm4gc3RhdGVtZW50IGlzIGV4ZWN1dGVkLgotCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogQWRkIG1vcmUgU1lTX3dhaXQqIHZhcmlhdGlvbnMuCi0JKHN5c2NhbGwpIFtMSU5VWF06IENvcnJlY3QgdHlwbyB3aGljaCBjb21tZW50ZWQgb3V0IHRoZSBNNjhLCi0JYXJndW1lbnQgdG8gaWZkZWYuCi0JKiB1dGlsLmMgKHByaW50c3RyKTogQ2FzdCB1bnNpZ25lZCBjaGFyIHBvaW50ZXIgYXJndW1lbnQKLQl0byBjaGFyIHBvaW50ZXIgaW4gdW1vdmVzdHIgY2FsbC4KLQkoZHVtcHN0cik6IExpa2V3aXNlIGZvciB1bW92ZW4uCi0KLVdlZCBNYXkgIDMgMDE6MTA6NTYgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuNCBpcyByZWxlYXNlZC4KLQotCSogc2lnbmFsLmMgKHN5c19zaWdibG9jayk6IE1vdmUgYWZ0ZXIgdGhlIGRlZmluaXRpb24gb2YKLQlzeXNfc2lnc2V0bWFzayB0aGF0IGl0IGNhbGxzIHRvIGF2b2lkIGFuIGltcGxpY2l0IGRlY2xhcmF0aW9uLgotCSogc3RyZWFtLmMgKHRyYW5zcG9ydF91c2VyX29wdGlvbnMsIHRyYW5zcG9ydF9zZXJ2ZXJfb3B0aW9ucyk6Ci0JT25seSBuZWVkZWQgaWYgVElfQklORCBpcyBkZWZpbmVkLgotCSogY29uZmlndXJlLmluOiBBZGQgLVduby1pbXBsaWNpdCB0byBXQVJORkxBR1Mgb24gU3VuT1MgNC54LgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmspIFtTVlI0XTogRml4IGEgdHlwbyB0aGF0IG9taXR0ZWQKLQl0aGUgdGNwIGFyZ3VlbWVudCBmcm9tIHRoZSBjYWxsIHRvIGV4aXRpbmcuICBBZGQgZ2V0cnZhbDIKLQljaGVjayBzbyBubyBmb3JrIHByb2Nlc3NpbmcgaXMgZG9uZSBpbiB0aGUgY2hpbGQuCi0JKHByaW50d2FpdG4pOiBJbml0aWFsaXplIGV4aXRlZCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyBkZWZpbmVkCi0JZm9yIGFsbCBmbG93cyBvZiBleGVjdXRpb24uCi0KLVR1ZSBNYXkgIDIgMjI6Mzk6NDIgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGxpbnV4L2R1bW15Lmg6IEFkZCBhbGlhc2VzIGZvciBzeXNmcywgcGVyc29uYWxpdHksIGFmc19zeXNjYWxsLAotCXNldGZzdWlkLCBzZXRmc2dpZCwgYW5kIF9sbHNlZWsgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBwcm90b3R5cGVzIGZvciB0aGVtLgotCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgdGhlbSB0byB0aGUgc3lzY2FsbCBlbnRyaWVzIHRhYmxlLgotCSogc3lzdGVtLmMgKGhlYWRlcnMpIFtMSU5VWF06IEluY2x1ZGUgbGludXgvdW5pc3RkLmggdG8gZ2V0IF9fTlJfKgotCWRlZmluZXMgYW5kIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW51eC9wZXJzb25hbGl0eS5oIGlmCi0JX19OUl9wZXJzb25hbGl0eSBpcyBkZWZpbmVkLgotCShwZXJzb25hbGl0eV9vcHRpb25zKSBbTElOVVhdOiBOZXcgdGFibGUuCi0JKHN5c19wZXJzb25hbGl0eSkgW0xJTlVYXTogTmV3IGZ1bmN0aW9uLgotCi1UdWUgTWF5ICAyIDAwOjIwOjM5IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFshU1ZSNF06IENoYW5nZSBmb3JldmVyIGxvb3AgdG8gb25lIHByZWRpY2F0ZWQKLQlvbiB0aGUgbnVtYmVyIG9mIHRyYWNlZCBwcm9jZXNzZXMgc28gdGhhdCB3ZSBjYW4gaGF2ZSB1bnRyYWNlZAotCWNoaWxkcmVuIChlLmcuIHZpYSBwb3BlbikuCi0KLQkqIHN0cmFjZSAobWFpbikgWyFTVlI0XTogQ2FsbCBmYWtlX2V4ZWN2ZSB0byBnZXQgdGhlIGFjdHVhbAotCWV4ZWMgYW5kIGl0cyBhcmd1bWVudHMgaW50byB0aGUgdHJhY2UuCi0JKGVudmlyb24pOiBEZWNsYXJlIGl0LgotCSogcHJvY2Vzcy5jIChmYWtlX2V4ZWN2ZSk6IE5ldyBmdW5jdGlvbi4KLQkoaGVhZGVycyk6IEluY2x1ZGUgc3lzL3N5c2NhbGwuaCB0byBnZXQgU1lTXyogZGVmaW5lcy4KLQotCSogcHJvY2Vzcy5jIChzeXNfZXhlY3YsIHN5c19leGVjdmUpOiBTdXJyb3VuZCBhcmd1bWVudCBhbm5vdGF0aW9ucwotCXdpdGggQyBjb21tZW50IGRlbGltaXRlcnMuCi0JKHByaW50YXJndiwgcHJpbnRhcmdjKTogVGhlIGFyZyB2ZWN0b3IgaXMgYW4gYXJyYXkgb2YgY2hhciBwb2ludGVycwotCW5vdCBpbnRzLgotCi0JKiBzdHJhY2UuYyAocHJpbnRsZWFkZXIpOiBBbHNvIGNoZWNrIGZvciBtdWx0aXBsZSAtcCBhcmd1bWVudHMKLQl3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gcHJpbnQgdGhlIHBpZCBmaWVsZC4KLQotCSogc3RyYWNlLmMgKHN0cmVycm9yKSBbIUhBVkVfU1RSRVJST1JdOiBOZXcgZnVuY3Rpb24uCi0JKiBkZWZzLmggKHN0cmVycm9yLCBzdHJzaWduYWwpOiBBZGQgdGhlc2UgcHJvdG90eXBlcyBpZiB3ZSBwcm92aWRlCi0JdGhlIGZ1bmN0aW9ucy4KLQkqIGNvbmZpZ3VyZS5pbiAoQUNfQ0hFQ0tfRlVOQ1MpOiBBZGQgc3RyZXJyb3IuCi0KLQkqIHN0cmFjZS5jIChtYWluLCBwcm9jX3BvbGxlcik6IEFkZCBTSUdQSVBFIHRvIHRoZSBsaXN0IG9mIGNhdWdodAotCWFuZCBibG9ja2VkIHNpZ25hbHMuCi0KLQkqIHN0cmFjZS5jIChtYWluKTogQWRkIHVzZXJuYW1lIG9wdGlvbi4gIFZlcmlmeSB0aGV5IGFyZSByb290IGJlZm9yZQotCWxldHRpbmcgdGhlbSB1c2UgaXQuICBMb29rIHVwIHRoZSBpZHMgaW4gdGhlIHBhc3N3b3JkIGZpbGUuICBTZXQKLQl0aGVtIGp1c3QgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcHJvZ3JhbS4KLQlGcm9tIFJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4uCi0KLVNhdCBBcHIgMjkgMDA6MDk6NTYgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMyBpcyByZWxlYXNlZC4KLQotCSogc3lzdGVtLmMgKG1vdW50X2ZsYWdzKSBbTElOVVhdOiBPbWl0IGR1cGxpY2F0ZWQgTVNfTk9TVUlEIGVudHJ5LgotCUZyb20gUmV1YmVuIFN1bW5lciA8cmFzdW1uZXJAdW5kZXJncmFkLm1hdGgudXdhdGVybG9vLmNhPi4KLQotCSogc3RyYWNlLmMgKG91dGZuYW1lKTogSW5pdGlhbGl6ZSB0byBOVUxMLgotCShtYWluKTogRGVmZXIgb3V0cHV0IGZpbGUgcHJvY2Vzc2luZyB1bnRpbCBhZnRlciBhcmd1bWVudHMuCi0JQWxsb3cgZWl0aGVyIGEgcGlwZSBvciBhIGJhbmcgZm9yIGNvbW1hbmQgYXJndW1lbnRzLgotCUNoZWNrIGlmIG91dGZuYW1lIGlzIE5VTEwgaW5zdGVhZCBvZiBjaGVja2luZyBvdXRmIGZvciBzdGRlcnIuCi0JUmVpbml0aWFsaXplIGVhY2ggc3RhcnR1cCBUQ0IncyBvdXRmIHRvIGZpeCAtcC8tbyBvcmRlcmluZyBidWcuCi0JKGRyb3B0Y2IpOiBSZXNldCBjbG9zZSBUQ0IncyBvdXRmIHRvIE5VTEwgaW5zdGVhZCBvZiBzdGRlcnIuCi0JKHRwcmludGYpOiBBdm9pZCBjYWxsaW5nIHZmcHJpbnRmIGlmIG91dGYgaXMgTlVMTC4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBVc2UgcG9wZW4gaWYgLW8gYXJndW1lbnQgYmVnaW5zIHdpdGggYSBwaXBlLgotCUZyb20gTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4uCi0KLQkqIHByb2Nlc3MuYyAocHJpbnRzdGF0dXMpOiBGaXggYSB0eXBvIHdoZXJlIFdJRlNJR05BTEVEIHdhcyBtZWFudAotCWJ1dCBXSUZTVE9QUEVEIHdhcyB1c2VkLgotCi0JKiBNYWtlZmlsZS5pbjogQWRkIGFuIEVYVFJBX0RFRlMgdmFyaWFibGUgYW5kIHVzZSBpdCBpbiB0aGUgLmMubwotCXJ1bGUgdG8gcHJldmVudCB0aGUgY29tbWVudCBmcm9tIGJlaW5nIHVudHJ1ZS4KLQotRnJpIEFwciAyOCAyMjowMTo1NiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogc3RyYWNlLmMgKHN5c19leGl0KTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX2V4aXQuCi0JKHN5c19mb3JrKTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX2ZvcmsuCi0JKHN5c19leGVjdiwgc3lzX2V4ZWN2ZSk6IE1vdmUgZm9sbG93IGZvcmsgY29kZSB0byBpbnRlcm5hbF9leGVjLgotCShzeXNfd2FpdHBpZCwgc3lzX3dhaXQ0KTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX3dhaXQuCi0JKHZmb3JraW5nKTogUmVtb3ZlIHRoaXMgc3RhdGljIHZhcmlhYmxlIGFuZCBjaGVjayBzY25vIGluCi0JaW50ZXJuYWxfZm9yayBpbnN0ZWFkLgotCShpbnRlcm5hbF9leGl0LCBpbnRlcm5hbF9mb3JrLCBpbnRlcm5hbF9leGVjLCBpbnRlcm5hbF93YWl0KTogTmV3Ci0JZnVuY3Rpb25zLgotCSogZGVmcy5oOiBBZGQgcHJvdG90eXBlcyBmb3IgdGhlIG5ldyBpbnRlcm5hbF8qIGZ1bmN0aW9ucy4KLQkqIHN5c2NhbGwuYyAoc3lzY2FsbCk6IE1vdmUgc3lzY2FsbCBlbnRlcmluZyB0cmFjZSBxdWFsaWZpZXIgY2hlY2sKLQlhbmQgcmVwcmludCBjaGVja2luZyBhZnRlciBjb250ZXh0IGRlY29kaW5nIGFuZCBwcmVjZWRlIHRoZW0gd2l0aAotCWEgY2FsbCB0byBpbnRlcm5hbF9zeXNjYWxsLiAgUHJlY2VkZSBzeXNjYWxsIGV4aXRpbmcgdHJhY2UKLQlxdWFsaWZpZXIgY2hlY2sgd2l0aCBhIGNhbGwgdG8gaW50ZXJuYWxfc3lzY2FsbC4KLQkoaW50ZXJuYWxfc3lzY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQotCSogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTWFrZSBzY25vIHNpZ25lZC4KLQkqIHN0cmFjZS5jIChzeXNjYWxsKSBNYWtlIHVfZXJyb3Igc2lnbmVkLgotCVtMSU5VWCwgSTM4Nl06IEF2b2lkIHVuc2lnbmVkIGNhc3QgaW4gZWF4IGNoZWNrLgotCSogc3lzY2FsbC5jIChzeXNfaW5kaXIpOiBNYWtlIGksIHNjbm8sIGFuZCBuYXJncyBzaWduZWQuCi0JKiBkZXNjLmMgKHN5c19zZWxlY3QpOiBNYWtlIGN1bWxlbiB1bnNpZ25lZAotCi1Nb24gQXByIDI0IDIzOjUyOjQ3IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBuZXQuYyAoc29ja3R5cGVzKTogQWRkIFNPQ0tfUEFDS0VULgotCi1TdW4gQXByICAyIDIzOjUwOjM5IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBNYWtlZmlsZSAoY2xlYW4pOiBDaGVjayBleHBsaWNpdGx5IGZvciBhIE1ha2VmaWxlIGluIHN1YmRpcnMKLQliZWZvcmUgcnVubmluZyBtYWtlIGluIHRoZW0uCi0KLVN1biBNYXIgMjYgMTI6Mzc6MjEgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHN0cmFjZS5jIFtNSVBTXSAocHJvY19vcGVuKTogQ29uZGl0aW9uYWxpemUgcnVuIG9uIE1JUFMuCi0JW01JUFNdIChkZXRhY2gpOiBJbml0aWFsaXplIGVycm9yIGZvciBNSVBTIGNhc2UuCi0JKHRyYWNlKTogSW5pdGlhbGl6ZSBpb2N0bF9yZXN1bHQgYW5kIGlvY3RsX2Vycm5vIGZvciBvdmVybHkgaGVscGZ1bAotCWNvbXBpbGVycy4KLQkqIHN5c2NhbGwuYyAoZGVjb2RlX3N1YmNhbGwpOiBNb3ZlIHZhcmlhYmxlIGkgaW50byBjb25kaXRpb25hbHMKLQl0aGF0IHVzZSB1c2UgaXQuCi0JKiBzeXN0ZW0uYyAoc3lzc2dpX29wdGlvbnMpOiBDb25kaXRpb25hbGl6ZSBTR0lfUkVDVkxNU0cgYW5kCi0JU0dJX1NFVF9GUERFQlVHIHRoYXQgU0dJIGRlY2lkZWQgdG8gZHJvcC4gIEkgZG9uJ3QgaGF2ZSB0aGUgc3RvbWFjaAotCXRvIGNoYW5nZSB0aGVtIGFsbC4KLQkqIHRlcm0uYyAodGVybV9pb2N0bCk6IEZvcmNlIFtjX1tpb2NsXWZsYWdzIG1lbWJlcnMgdG8gbG9uZyBiZWZvcmUKLQlwcmludGluZyBzaW5jZSB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHNpemUgb2YgdGhlaXIgdHlwZSBpcy4KLQkqIHV0aWwuYyBbU1ZSNCwgTUlQU10gKHVtb3Zlbik6IFByZXZlbnQgTUlQUyBmcm9tIHVzaW5nIHByZWFkIGV2ZW4KLQlpZiBhdXRvY29uZiBkZXRlY3RzIGl0IHNpbmNlIGl0IHNlZW1zIHRvIGVpdGhlciBub3Qgd29yayBvciBkbwotCXNvbWV0aGluZyBlbHNlIGVudGlyZWx5IG9uIElyaXggNS4zLgotCi1TdW4gTWFyIDI2IDAwOjAxOjExIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjIgaXMgcmVsZWFzZWQuCi0JKiBsaW51eC9kdW1teS5oOiBNYWtlIHN5c19mY2hkaXIgbGlrZSBzeXNfY2xvc2UgaW5zdGVhZCBvZiBwcmludGFyZ3MKLQlzbyB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3IgYXJnIGlzIGRlY2ltYWwuCi0KLVNhdCBNYXIgMjUgMjI6NTA6MTMgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIG5ldC5jIFtMSU5VWF0gKHByb3RvY29scyk6IEV4cGxpY2l0bHkgZGVmaW5lIGFsbCBJUFBST1RPXyogZW50cmllcwotCWJlY2F1c2Ugb24gTGludXggdGhleSBhcmUgZW51bWVyYXRvcnMuCi0KLQkqIHN5c3RlbS5jIFtMSU5VWF0gKG1vdW50X2ZsYWdzKTogSGFuZGxlIHJlbmFtaW5nIG9mIE1TX1NZTkMgdG8KLQlNU19TWU5DSFJPTk9VUy4KLQotCSogdXRpbC5jIChwcmludHh2YWwpOiBXaGVuIHRoZXJlIGlzIG5vIHRyYW5zbGF0aW9uLCBwcmludCB0aGUgYWN0dWFsCi0JbnVtYmVyIGZpcnN0IGFuZCB0aGUgdGhlIGRlZmF1bHQgdmFsdWUgYXMgYSBDIGNvbW1lbnQuCi0KLQkqIG5ldC5jIChzeXNfc2VuZCwgc3lzX3NlbmR0bywgc3lzX3NlbmRtc2csIHN5c19nZXRzb2Nrb3B0LAotCXN5c19zZXRzb2Nrb3B0KTogQ2hhbmdlIGZpcnN0IGFyZ3VtZW50IGZyb20gdW5zaWduZWQgdG8gc2lnbmVkIHRvCi0JY2F0ZXIgdG8gdGhlIGZyZXF1ZW50IHByYWN0aWNlIG9mIGNhbGxpbmcgc3lzdGVtIGNhbGxzIHdpdGggYSBmaWxlCi0JZGVzY3JpcHRvciBvZiAtMS4KLQkqIG1lbS5jIChzeXNfbW1hcCk6IExpa2V3aXNlLgotCi1TdW4gTWFyIDE5IDEzOjUzOjUyIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChzaWduYWxlbnQpOiBIYW5kbGUgb2xkIGFuZCBuZXcgdmFsdWVzIG9mIFNJR0lPLgotCi1TdW4gRGVjIDExIDIyOjUxOjUxIDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEgaXMgcmVsZWFzZWQuCi0JKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhY2xvY2FsLm00OiBDaGFuZ2VzIGZvciBhdXRvY29uZiAyLjAuCi0JKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gdGhlIEZTRi4KLQkqIGluc3RhbGwtc2g6IE5ldyBmcm9tIHRoZSBGU0YuCi0KLU1vbiBEZWMgIDUgMjA6NTE6MjkgMTk5NCAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIE1ha2VmaWxlLmluOiBBZGQgbTY4ayBhcmNoLgotCSogYWNjb25maWcuaCAoTTY4Syk6IEFkZCBtNjhrIGRlZmluZS4KLQkqIGNvbmZpZ3VyZS5pbjogQWRkIGRldGVjdGlvbiBvZiBhcmNoIG02OGsuCi0JKiBwcm9jZXNzLmMgW002OEtdIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKTogU3VwcG9ydCBtNjhrIHJlZ2lzdGVycyBhbmQKLQlvZmZzZXRzLgotCSogc2lnbmFsLmMgW002OEtdIChzaWdjb250ZXh0X3N0cnVjdCk6IFN1cHBvcnQgbTY4ayBzaWdjb250ZXh0Ci0Jc3RydWN0dXJlLgotCVtNNjhLXSAoc3lzX3NpZ3JldHVybik6IFN1cHBvcnQgbTY4ayBzaWdyZXR1cm4gaGFuZGxpbmcuCi0JKiBzeXNjYWxsLmMgW002OEtdIChzeXNjYWxsKTogU3VwcG9ydCBtNjhrIHN5c2NhbGwgbnVtYmVyIHJlZ2lzdGVyCi0JYW5kIGVycm5vIGluIGQwIGluc3RlYWQgb2YgZWF4LgotCSogdXRpbC5jIFtNNjhLXSAoZ2V0cGMsIHByaW50Y2FsbCwgc2V0YnB0LCBjbGVhcmJwdCk6IFN1cHBvcnQgbTY4awotCXByb2dyYW0gY291bnRlciBpbiBQVF9QQyBpbnN0ZWFkIG9mIEVJUC4KLQlbTTY4S10gKExPT1ApOiBTdXBwb3J0IG02OGsgbG9vcCBpbnN0cnVjdGlvbi4KLQlGcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+LgotCi0JKiBtZW0uYyBbTUFQX0FOT05ZTU9VU10gKG1tYXBfZmxhZ3MpOiBDb3JyZWN0IGluYWR2ZXJ0ZW50IHJlZmVyZW5jZQotCXRvIE1BUF9GSVhFRCBpbnN0ZWFkIG9mIE1BUF9BTk9OWU1PVVMuCi0JRnJvbSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KLQotCSogc2lnbmFsLmMgW0xJTlVYXSAoc2lnbmFsZW50KTogU2lnbmFsIDMwIGlzIG5vdyBTSUdQV1IuCi0JRnJvbSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KLQotTW9uIERlYyAgNSAwMTowNTo0NiAxOTk0ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogZGVmcy5oICh0cHJpbnRmKTogRml4IHR5cG8gaW4gbm9uLWdjYyBhbnNpIHByb3RvdHlwZSBmb3IgdHByaW50Zi4KLQlSZXBvcnRlZCBieSBUaGFuaCBNYSA8dG1hQGVuY29yZS5jb20+LgotCi0JKiBzdHJhY2UuYyAoY2xlYW51cCk6IFNlbmQgU0lHQ09OVCBiZWZvcmUgU0lHVEVSTSBiZWNhdXNlIExpbnV4Ci0JMS4xLjYyIGRvZXNuJ3QgY29udGludWUgYSB0cmFjZWQgY2hpbGQgd2hlbiB0aGUgcGFyZW50IGV4aXRzLgotCVJlcG9ydGVkIGJ5IE1hdHQgRGF5IDxtZGF5QGFydGlzb2Z0LmNvbT4uCi0KLQkqIHN5c3RlbS5jIFtMSU5VWF06IEluY2x1ZGUgbmV0aW5ldC9pbi5oIGJlZm9yZSBhcnBhL2luZXQuaC4KLQotCSogdXRpbC5jIChwcmludHN0cik6IEZpeCBsb25nc3RhbmRpbmcgYnVnIGluIG5vdGF0aW5nIHN0cmluZwotCWNvbnRpbnVhdGlvbi4KLQotCSogc3RyYWNlLmMgW1NWUjRdIChwcm9jX29wZW4pOiBTcGVjaWZpY2FsbHkgd2FpdCBmb3IgdGhlIGNoaWxkIHRoZQotCWNoaWxkIHRvIGdvIGludG8gdGhlIGV4ZWN2ZSBzeXNjYWxsIHRvIGF2b2lkIHNwdXJpb3VzIHRyYWNlcy4KLQlbTElOVVhdIChkZXRhY2gpOiBDb25kaXRpb25hbGl6ZSB0aGUgc3RhdHVzIHZhcmlhYmxlLgotCi1TdW4gRGVjICA0IDIzOjIxOjQyIDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBNYWtlZmlsZS5pbjogQWRkIG1pcHMgYXJjaC4KLQkqIGFjY29uZmlnLmggKE1JUFMpOiBBZGQgbWlwcyBkZWZpbmUuCi0JKiBjb25maWd1cmUuaW46IEFkZCBkZXRlY3Rpb24gb2Ygb3BzeXMgaXJpeDUgYW5kIGFyY2ggbWlwcy4gIENoZWNrCi0JZm9yIHByY3RsIGZ1bmN0aW9uLgotCUNoZWNrIGZvciBzeXMvc3lzY29uZmlnLmggaGVhZGVyLgotCSogZGVmcy5oIChNQVhfQVJHUyk6IEJ1bXAgbWF4aW11bSBzeXNjYWxsIGFyZ3VtZW50cyBmcm9tIDggdG8gMzIuCi0JKiBmaWxlLmMgW1NWUjRdOiBJbmNsdWRlIHN5cy9jcmVkLmguCi0JKGFjY2Vzc19mbGFncyk6IFVwZGF0ZSBhY2Nlc3MgZmxhZ3MgZm9yIFNHSS4KLQkoc3ByaW50dGltZSk6IENoYW5nZSB0eXBlIG9mIHNwcmludHRpbWUgYXJndW1lbnQgZnJvbSB1bnNpZ25lZAotCWxvbmcgdG8gdGltZV90LgotCSogcHJvY2Vzcy5jIFtIQVZFX1BSQ1RMXTogSW5jbHVkZSBzeXMvcHJjdGwuaC4KLQlbSEFWRV9QUkNUTF0gKHByY3RsX29wdGlvbnMsIHN5c19wcmN0bCk6IE5ldyBmb3IgU0dJLgotCShwcmludHNpZ2luZm8pOiBDb25kaXRpb25hbGx5IGNvbXBpbGUgU0lfVElNRVIgYW5kIFNJX01FU0dRLgotCUNhc3Qgc2lfYmFuZCBtZW1iZXIgdG8gbG9uZyBiZWZvcmUgcHJpbnRpbmcuCi0JKiBzaWduYWwuYyAoc2lnYWN0X2ZsYWdzKTogQWRkIF9TQV9CU0RDQUxMIGZvciBTR0kuCi0JKHNpZ3Byb2NtYXNrY21kcyk6IEFkZCBTSUdfU0VUTUFTSzMyIGZvciBTR0kuCi0JKiBzdHJhY2UuYyBbU1ZSNF0gW01JUFNdOgotCShmb29iYXIpOiBOZXcgZHVtbXkgc2lnbmFsIGhhbmRsZXIuCi0JKG1haW4pOiBJbnN0YWxsIGEgZHVtbXkgc2lnbmFsIGhhbmRsZXIgaW4gdGhlIGNoaWxkIGJlZm9yZSBwYXVzaW5nCi0JdG8gd29yayBhcm91bmQgYW4gU0dJIGJ1ZyBpbiBQUlNBQk9SVC4KLQkocHJvY19vcGVuKTogU2VuZCBhIGludGVycnVwdCB0byB0aGUgY2hpbGQgaW5zdGVhZCBvZiBhYm9ydGluZyB0aGUKLQlzeXNjYWxsIHdoaWNoIGRvZXNuJ3Qgd29yayBvbiBJcml4NS4yLgotCSogc3ZyNC9kdW1teS5oOiBBZGQgbmV3IHVuZmluaXNoZWQgU0dJIHN5c2NhbGxzCi0JKGUuZy4gc3lzX3N5c21wLCBzeXNfc2dpbmFwLCBldGMuKS4gIEhhbmRsZSBzb21lIFNHSSBzeXNjYWxscyBsaWtlCi0JZXhpc3RpbmcgY2FsbHMgKGUuZy4gc3lzX2tzaWdhY3Rpb24gbGlrZSBzeXNfc2lnYWN0aW9uKS4KLQlQcmludGFyZ3MgZG9lcyB0aGUgcHJpbnQgdGhpbmcgZm9yIHN5c19zZXRob3N0aWQuCi0JKiBzdnI0L3N5c2NhbGwuaDogRGVjbGFyZSBhbGwgbmV3IFNHSSBzeXNjYWxscy4KLQkoU0dJX0tMVURHRSk6IERlZmluZSBzeXNjYWxsIHRhYmxlIHN0YXJ0aW5nIGluZGV4IHRvIGJlIDEgZm9yIFNHSQotCWFuZCBhZGQgaXQgdG8gYWxsIHN1YmNhbGwgZW50cnkgcG9pbnRzLgotCShTWVNfcGdycHN5c19zdWJjYWxsLCBTWVNfc2lnY2FsbF9zdWJjYWxsLCBTWVNfY29udGV4dCk6IERvbid0Ci0JZGVjb2RlIGFzIHN1YmNhbGxzIG9uIE1JUFMuIEluc3RlYWQsIHVzZSB0aGUgbm9ybWFsIHN5c2NhbGxzLgotCSogc3ZyNC9zeXNjYWxsZW50LmggW01JUFNdOiBMZWFkIHN5c2NhbGwgdGFibGUgd2l0aCBhIGR1bW15IGVudHJ5Ci0Jc2luY2UgU0dJIHN5c2NhbGwgbnVtYmVycyBhcmUgb2ZmIGJ5IG9uZS4KLQlbTUlQU10gKHN5c19wZ3Jwc3lzKTogUmVuYW1lIHRvIHN5c19zZXRwZ3JwIG9uIFNHSS4KLQlbTUlQU10gKHN5c194ZW5peCk6IFJlbmFtZSB0byBzeXNfc3lzc2dpIG9uIFNHSS4KLQlbTUlQU10gKHN5c19zeXNtYWNoaW5lKTogUmVuYW1lIHRvIHN5c19zeXNtaXBzIG9uIFNHSS4KLQlbTUlQU106IENvbmRpdGlvbmFsaXplIFNWUjQgZXh0ZW5zaW9uIGludG8gU0dJIGFuZCBTb2xhcmlzIGNsYXNzZXMuCi0JKiBzeXNjYWxsLmMgKGR1bXBpbyk6IFZhbGlkYXRlIGRlc2NyaXB0b3IgYWdhaW5zdCBNQVhfUVVBTFMuCi0JW0hBVkVfUFJfU1lTQ0FMTF0gKHN5c2NhbGwpOiBDb25kaXRpb25hbGl6ZSBTWVNfdmZvcmsuCi0JW01JUFNdIChzeXNjYWxsKTogQWRkIFNHSSBzZWN0aW9uIGZvciBkZWNvZGluZyB1X2Vycm9yIGFuZCB1X3J2YWwuCi0JQWRkIHdvcmthcm91bmQgZm9yIGJyb2tlbiBTR0kgcHJfc3lzYXJnIG9uIHN5c2NhbGwgZW50cnkuCi0JW1NWUjRdIChzeXNjYWxsKTogQ29uZGl0aW9uYWxpemUgc3ViY2FsbCBkZWNvZGluZyBmb3IKLQlTWVNfcHRycHN5c19zdWJjYWxsLCBTWVNfc2lnY2FsbF9zdWJjYWxsIGFuZCBTWVNfY29udGV4dF9zdWJjYWxsLgotCVtTVlI0XSBbTUlQU10gKGdldHJ2YWwyKTogSGFuZGxlIFNHSS4KLQkqIHN5c2NhbGxlbnQuc2g6IERvcmsgdGhlIHNlZCBsaW5lIHRvIGJlIGNob29zaWVyIGFib3V0IFNZU18gbGluZXMuCi0JKiBzeXN0ZW0uYyBbSEFWRV9TWVNDT05GSUdfSF06IEluY2x1ZGUgc3lzL3N5c2NvbmZpZy5oLgotCVtNSVBTXSAoc3lzc2dpX29wdGlvbnMsIHN5c19zeXNzZ2kpOiBOZXcgZm9yIFNHSS4KZGlmZiAtLWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMmM4NzIyLi4wMDAwMDAwCi0tLSBhL0lOU1RBTEwKKysrIC9kZXYvbnVsbApAQCAtMSwxODEgKzAsMCBAQAotQmFzaWMgSW5zdGFsbGF0aW9uCi09PT09PT09PT09PT09PT09PT0KLQotICAgVGhlc2UgYXJlIGdlbmVyaWMgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KLQotICAgVGhlIGBjb25maWd1cmUnIHNoZWxsIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBjb3JyZWN0IHZhbHVlcyBmb3IKLXZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24uICBJdCB1c2VzCi10aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KLUl0IG1heSBhbHNvIGNyZWF0ZSBvbmUgb3IgbW9yZSBgLmgnIGZpbGVzIGNvbnRhaW5pbmcgc3lzdGVtLWRlcGVuZGVudAotZGVmaW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0Ci15b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGEgZmlsZQotYGNvbmZpZy5jYWNoZScgdGhhdCBzYXZlcyB0aGUgcmVzdWx0cyBvZiBpdHMgdGVzdHMgdG8gc3BlZWQgdXAKLXJlY29uZmlndXJpbmcsIGFuZCBhIGZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0cHV0Ci0odXNlZnVsIG1haW5seSBmb3IgZGVidWdnaW5nIGBjb25maWd1cmUnKS4KLQotICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQotdG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAotZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBhZGRyZXNzIGdpdmVuIGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgotYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIGF0IHNvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScKLWNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLQotICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5pbicgaXMgdXNlZCB0byBjcmVhdGUgYGNvbmZpZ3VyZScgYnkgYSBwcm9ncmFtCi1jYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBvbmx5IG5lZWQgYGNvbmZpZ3VyZS5pbicgaWYgeW91IHdhbnQgdG8gY2hhbmdlCi1pdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbiBvZiBgYXV0b2NvbmYnLgotCi1UaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgotCi0gIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKLSAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLiAgSWYgeW91J3JlCi0gICAgIHVzaW5nIGBjc2gnIG9uIGFuIG9sZCB2ZXJzaW9uIG9mIFN5c3RlbSBWLCB5b3UgbWlnaHQgbmVlZCB0byB0eXBlCi0gICAgIGBzaCAuL2NvbmZpZ3VyZScgaW5zdGVhZCB0byBwcmV2ZW50IGBjc2gnIGZyb20gdHJ5aW5nIHRvIGV4ZWN1dGUKLSAgICAgYGNvbmZpZ3VyZScgaXRzZWxmLgotCi0gICAgIFJ1bm5pbmcgYGNvbmZpZ3VyZScgdGFrZXMgYXdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzIHNvbWUKLSAgICAgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCi0KLSAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KLQotICAzLiBPcHRpb25hbGx5LCB0eXBlIGBtYWtlIGNoZWNrJyB0byBydW4gYW55IHNlbGYtdGVzdHMgdGhhdCBjb21lIHdpdGgKLSAgICAgdGhlIHBhY2thZ2UuCi0KLSAgNC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCi0gICAgIGRvY3VtZW50YXRpb24uCi0KLSAgNS4gWW91IGNhbiByZW1vdmUgdGhlIHByb2dyYW0gYmluYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBmcm9tIHRoZQotICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQotICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKLSAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBjb21wdXRlciksIHR5cGUgYG1ha2UgZGlzdGNsZWFuJy4gIFRoZXJlIGlzCi0gICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQotICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAotICAgICBhbGwgc29ydHMgb2Ygb3RoZXIgcHJvZ3JhbXMgaW4gb3JkZXIgdG8gcmVnZW5lcmF0ZSBmaWxlcyB0aGF0IGNhbWUKLSAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1Db21waWxlcnMgYW5kIE9wdGlvbnMKLT09PT09PT09PT09PT09PT09PT09PQotCi0gICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMgZm9yIGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAotdGhlIGBjb25maWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnCi1pbml0aWFsIHZhbHVlcyBmb3IgdmFyaWFibGVzIGJ5IHNldHRpbmcgdGhlbSBpbiB0aGUgZW52aXJvbm1lbnQuICBVc2luZwotYSBCb3VybmUtY29tcGF0aWJsZSBzaGVsbCwgeW91IGNhbiBkbyB0aGF0IG9uIHRoZSBjb21tYW5kIGxpbmUgbGlrZQotdGhpczoKLSAgICAgQ0M9Yzg5IENGTEFHUz0tTzIgTElCUz0tbHBvc2l4IC4vY29uZmlndXJlCi0KLU9yIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZSBgZW52JyBwcm9ncmFtLCB5b3UgY2FuIGRvIGl0IGxpa2UgdGhpczoKLSAgICAgZW52IENQUEZMQUdTPS1JL3Vzci9sb2NhbC9pbmNsdWRlIExERkxBR1M9LXMgLi9jb25maWd1cmUKLQotQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotICAgWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhlCi1zYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9iamVjdCBmaWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKLW93biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgbXVzdCB1c2UgYSB2ZXJzaW9uIG9mIGBtYWtlJyB0aGF0Ci1zdXBwb3J0cyB0aGUgYFZQQVRIJyB2YXJpYWJsZSwgc3VjaCBhcyBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKLWRpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCi10aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21hdGljYWxseSBjaGVja3MgZm9yIHRoZQotc291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLgotCi0gICBJZiB5b3UgaGF2ZSB0byB1c2UgYSBgbWFrZScgdGhhdCBkb2VzIG5vdCBzdXBwb3J0cyB0aGUgYFZQQVRIJwotdmFyaWFibGUsIHlvdSBoYXZlIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lCi1pbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBwYWNrYWdlIGZvcgotb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlIHJlY29uZmlndXJpbmcgZm9yIGFub3RoZXIKLWFyY2hpdGVjdHVyZS4KLQotSW5zdGFsbGF0aW9uIE5hbWVzCi09PT09PT09PT09PT09PT09PT0KLQotICAgQnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIHRoZSBwYWNrYWdlJ3MgZmlsZXMgaW4KLWAvdXNyL2xvY2FsL2JpbicsIGAvdXNyL2xvY2FsL21hbicsIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeSBhbgotaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCi1vcHRpb24gYC0tcHJlZml4PVBBVEgnLgotCi0gICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVzIGZvcgotYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKLWdpdmUgYGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QQVRIJywgdGhlIHBhY2thZ2Ugd2lsbCB1c2UKLVBBVEggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgotRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyB3aWxsIHN0aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCi0KLSAgIEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKLW9wdGlvbnMgbGlrZSBgLS1iaW5kaXI9UEFUSCcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCi1raW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKLXlvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uCi0KLSAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAotd2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKLW9wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCi0KLU9wdGlvbmFsIEZlYXR1cmVzCi09PT09PT09PT09PT09PT09PQotCi0gICBTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRpb24gdG8gYC0tZW5hYmxlLUZFQVRVUkUnIG9wdGlvbnMgdG8KLWBjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgotVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQotaXMgc29tZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFggV2luZG93IFN5c3RlbSkuICBUaGUKLWBSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKLXBhY2thZ2UgcmVjb2duaXplcy4KLQotICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5Ci1maW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCi15b3UgY2FuIHVzZSB0aGUgYGNvbmZpZ3VyZScgb3B0aW9ucyBgLS14LWluY2x1ZGVzPURJUicgYW5kCi1gLS14LWxpYnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgotCi1TcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQotPT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2FuIG5vdCBmaWd1cmUgb3V0Ci1hdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIGhvc3QgdGhlIHBhY2thZ2UKLXdpbGwgcnVuIG9uLiAgVXN1YWxseSBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQgb3V0LCBidXQgaWYgaXQgcHJpbnRzCi1hIG1lc3NhZ2Ugc2F5aW5nIGl0IGNhbiBub3QgZ3Vlc3MgdGhlIGhvc3QgdHlwZSwgZ2l2ZSBpdCB0aGUKLWAtLWhvc3Q9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQotdHlwZSwgc3VjaCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2l0aCB0aHJlZSBmaWVsZHM6Ci0gICAgIENQVS1DT01QQU5ZLVNZU1RFTQotCi1TZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIGVhY2ggZmllbGQuICBJZgotYGNvbmZpZy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2thZ2UgZG9lc24ndAotbmVlZCB0byBrbm93IHRoZSBob3N0IHR5cGUuCi0KLSAgIElmIHlvdSBhcmUgYnVpbGRpbmcgY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IGNhbiBhbHNvCi11c2UgdGhlIGAtLXRhcmdldD1UWVBFJyBvcHRpb24gdG8gc2VsZWN0IHRoZSB0eXBlIG9mIHN5c3RlbSB0aGV5IHdpbGwKLXByb2R1Y2UgY29kZSBmb3IgYW5kIHRoZSBgLS1idWlsZD1UWVBFJyBvcHRpb24gdG8gc2VsZWN0IHRoZSB0eXBlIG9mCi1zeXN0ZW0gb24gd2hpY2ggeW91IGFyZSBjb21waWxpbmcgdGhlIHBhY2thZ2UuCi0KLVNoYXJpbmcgRGVmYXVsdHMKLT09PT09PT09PT09PT09PT0KLQotICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAoteW91IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzCi1kZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCi1gY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVuCi1gUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQotYENPTkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2NyaXB0LgotQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KLQotT3BlcmF0aW9uIENvbnRyb2xzCi09PT09PT09PT09PT09PT09PT0KLQotICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQKLW9wZXJhdGVzLgotCi1gLS1jYWNoZS1maWxlPUZJTEUnCi0gICAgIFVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSBpbnN0ZWFkIG9mCi0gICAgIGAuL2NvbmZpZy5jYWNoZScuICBTZXQgRklMRSB0byBgL2Rldi9udWxsJyB0byBkaXNhYmxlIGNhY2hpbmcsIGZvcgotICAgICBkZWJ1Z2dpbmcgYGNvbmZpZ3VyZScuCi0KLWAtLWhlbHAnCi0gICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCi0KLWAtLXF1aWV0JwotYC0tc2lsZW50JwotYC1xJwotICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4KLQotYC0tc3JjZGlyPURJUicKLSAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3RvcnkgRElSLiAgVXN1YWxseQotICAgICBgY29uZmlndXJlJyBjYW4gZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRpY2FsbHkuCi0KLWAtLXZlcnNpb24nCi0gICAgIFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCi0gICAgIHNjcmlwdCwgYW5kIGV4aXQuCi0KLWBjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90aGVyLCBub3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4KLQpkaWZmIC0tZ2l0IGEvTU9EVUxFX0xJQ0VOU0VfQlNEIGIvTU9EVUxFX0xJQ0VOU0VfQlNECmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL01PRFVMRV9MSUNFTlNFX0JTRAorKysgL2Rldi9udWxsCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTkwOTI2Li4wMDAwMDAwCi0tLSBhL01ha2VmaWxlLmFtCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLSMgQXV0b21ha2UgaW5wdXQgZm9yIHN0cmFjZS4KLQotYmluX1BST0dSQU1TID0gc3RyYWNlCi1tYW5fTUFOUyA9IHN0cmFjZS4xCi1iaW5fU0NSSVBUUyA9IHN0cmFjZS1ncmFwaAotCi0jIE9TIGlzIG9uZSBvZiBgbGludXgnLCBgc3Vub3M0JywgYHN2cjQnLCBvciBgZnJlZWJzZCcuCi1PUwkJPSBAb3BzeXNACi0jIEFSQ0ggaXMgYGkzODYnLCBgbTY4aycsIGBzcGFyYycsIGV0Yy4KLUFSQ0gJCT0gQGFyY2hACi0KLUFNX0NGTEFHUyA9ICQoV0FSTkZMQUdTKQotSU5DTFVERVMgPSAtSSQoT1MpLyQoQVJDSCkgLUkkKHNyY2RpcikvJChPUykvJChBUkNIKSAtSSQoT1MpIC1JJChzcmNkaXIpLyQoT1MpCi0KLXN0cmFjZV9TT1VSQ0VTID0gc3RyYWNlLmMgc3lzY2FsbC5jIHV0aWwuYyBkZXNjLmMgZmlsZS5jIGlwYy5jIFwKLQkJIGlvLmMgaW9jdGwuYyBtZW0uYyBuZXQuYyBwcm9jZXNzLmMgYmptLmMgXAotCQkgcmVzb3VyY2UuYyBzaWduYWwuYyBzb2NrLmMgc3lzdGVtLmMgdGVybS5jIHRpbWUuYyBcCi0JCSBwcm9jLmMgc3RyZWFtLmMKLW5vaW5zdF9IRUFERVJTID0gZGVmcy5oCi0KLUVYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKSBlcnJub2VudC5zaCBzaWduYWxlbnQuc2ggc3lzY2FsbGVudC5zaCBpb2N0bHNvcnQuYyBcCi0gICAgIAkgICAgIGRlYmlhbi9jaGFuZ2Vsb2cgZGViaWFuL2NvbnRyb2wgZGViaWFuL2NvcHlyaWdodCBkZWJpYW4vcnVsZXMgXAotCSAgICAgc3RyYWNlLnNwZWMgXAotCSAgICAgc3RyYWNlLWdyYXBoIENPUFlSSUdIVCBDUkVESVRTIFBPUlRJTkcgXAotCSAgICAgUkVBRE1FLUNWUyBSRUFETUUtZnJlZWJzZCBSRUFETUUtbGludXggUkVBRE1FLXN1bm9zNCBSRUFETUUtc3ZyNCBcCi0JICAgICBsaW51eC9pb2N0bHNvcnQuYyBsaW51eC9pb2N0bGVudC5zaCBcCi0JICAgICBsaW51eC9pb2N0bGVudC5oIGxpbnV4L2Vycm5vZW50LmggbGludXgvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvc3lzY2FsbC5oIGxpbnV4L3N5c2NhbGxlbnQuaCBsaW51eC9kdW1teS5oIFwKLQkgICAgIGxpbnV4L2FscGhhL2Vycm5vZW50LmggbGludXgvYWxwaGEvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9hbHBoYS9zaWduYWxlbnQuaCBsaW51eC9hbHBoYS9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvaHBwYS9lcnJub2VudC5oIGxpbnV4L2hwcGEvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9ocHBhL3NpZ25hbGVudC5oIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oIGxpbnV4L2lhNjQvZXJybm9lbnQuaCBcCi0JICAgICBsaW51eC9pYTY0L2lvY3RsZW50LmggbGludXgvaWE2NC9zaWduYWxlbnQuaCBcCi0gICAgIAkgICAgIGxpbnV4L21pcHMvaW9jdGxlbnQuc2ggbGludXgvbWlwcy9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L21pcHMvaW9jdGxlbnQuaCBsaW51eC9taXBzL3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3Bvd2VycGMvZXJybm9lbnQuaCBsaW51eC9wb3dlcnBjL2lvY3RsZW50LmggXAotCSAgICAgbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zMzkwL2Vycm5vZW50LmggbGludXgvczM5MC9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L3MzOTAvc2lnbmFsZW50LmggbGludXgvczM5MC9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvczM5MHgvZXJybm9lbnQuaCBsaW51eC9zMzkweC9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L3MzOTB4L3NpZ25hbGVudC5oIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9zaC9zeXNjYWxsZW50LmggbGludXgvc2gvZXJybm9lbnQuaCBcCi0JICAgICBsaW51eC9zaC9pb2N0bGVudC5oIGxpbnV4L3NoL3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL2R1bW15Mi5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL2Vycm5vZW50LmggbGludXgvc3BhcmMvZXJybm9lbnQxLmggXAotCSAgICAgbGludXgvc3BhcmMvaW9jdGxlbnQuaCBsaW51eC9zcGFyYy9pb2N0bGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9zaWduYWxlbnQuaCBsaW51eC9zcGFyYy9zaWduYWxlbnQxLmggXAotCSAgICAgbGludXgvc3BhcmMvc3lzY2FsbC5oIGxpbnV4L3NwYXJjL3N5c2NhbGwxLmggXAotCSAgICAgbGludXgvc3BhcmMvc3lzY2FsbGVudC5oIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmggXAotCSAgICAgbGludXgvc3BhcmMvZ2VuLnBsIGxpbnV4L3NwYXJjL3N5c2NhbGwuaC4yIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvZHVtbXkyLmggbGludXgvc3BhcmM2NC9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmggbGludXgvc3BhcmM2NC9lcnJub2VudDIuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L2lvY3RsZW50LmggbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmggbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsLmggbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmggXAotCSAgICAgbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaCBsaW51eC94ODZfNjQvZ2VudGFiLnBsIFwKLQkgICAgIGxpbnV4L3g4Nl82NC9lcnJub2VudDEuaCBsaW51eC94ODZfNjQvaW9jdGxlbnQxLmggXAotCSAgICAgbGludXgveDg2XzY0L3NpZ25hbGVudDEuaCBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaCBcCi0JICAgICBmcmVlYnNkL2lvY3RsZW50LnNoIFwKLQkgICAgIGZyZWVic2Qvc3lzY2FsbHMuY2F0IGZyZWVic2Qvc3lzY2FsbHMucGwgZnJlZWJzZC9zeXNjYWxscy5wcmludCBcCi0JICAgICBmcmVlYnNkL2kzODYvZXJybm9lbnQuaCBmcmVlYnNkL2kzODYvaW9jdGxlbnQuaCBcCi0JICAgICBmcmVlYnNkL2kzODYvc2lnbmFsZW50LmggXAotCSAgICAgZnJlZWJzZC9pMzg2L3N5c2NhbGwuaCBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oIFwKLQkgICAgIHN1bm9zNC9kdW1teS5oIHN1bm9zNC9lcnJub2VudC5oIFwKLQkgICAgIHN1bm9zNC9pb2N0bGVudC5oIHN1bm9zNC9pb2N0bGVudC5zaCBzdW5vczQvc2lnbmFsZW50LmggXAotCSAgICAgc3Vub3M0L3N5c2NhbGwuaCBzdW5vczQvc3lzY2FsbGVudC5oIFwKLQkgICAgIHN2cjQvZHVtbXkuaCBzdnI0L2Vycm5vZW50Lmggc3ZyNC9pb2N0bGVudC5oIHN2cjQvaW9jdGxlbnQuc2ggXAotCSAgICAgc3ZyNC9zaWduYWxlbnQuaCBzdnI0L3N5c2NhbGwuaCBzdnI0L3N5c2NhbGxlbnQuaAotCi1pZiBNQUlOVEFJTkVSX01PREUKLWlmIExJTlVYCi0KLUlPQ1RMRElSID0gL3Vzci9pbmNsdWRlCi1JT0NUTEFTTSA9IGFzbQotCi1pZiBJMzg2Ci1pb2N0bGVudF9oID0gbGludXgvaW9jdGxlbnQuaAotZWxzZQotaW9jdGxlbnRfaCA9IGxpbnV4LyQoQVJDSCkvaW9jdGxlbnQuaAotZW5kaWYKLQotQlVJTFRfU09VUkNFUyA9ICQoaW9jdGxlbnRfaCkKLQotJChzcmNkaXIpLyQoaW9jdGxlbnRfaCk6IGlvY3Rsc29ydAotCSQoPEQpLyQoPEYpID4gJEAKLWlvY3Rsc29ydDogJChzcmNkaXIpL2xpbnV4L2lvY3Rsc29ydC5jIGlvY3Rscy5oIGlvY3RsZGVmcy5oCi0JJChmaWx0ZXItb3V0IC1JJSwkKExJTksuYykpIC1JLiAtSSQoSU9DVExESVIpICQoZmlsdGVyIC1JJSwkKExJTksuYykpIFwKLQkgIC1vICRAICQ8Ci1pb2N0bHMuaDogJChzcmNkaXIpL2xpbnV4L2lvY3RsZW50LnNoCi0JJChTSEVMTCkgJDwgJChJT0NUTERJUikgJChJT0NUTEFTTSkKLWlvY3RsZGVmcy5oOiBpb2N0bHMuaCA7Ci0KLWVuZGlmCi1lbmRpZgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJlMDY0MS4uMDAwMDAwMAotLS0gYS9NYWtlZmlsZS5pbgorKysgL2Rldi9udWxsCkBAIC0xLDc2MCArMCwwIEBACi0jIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjkuNSBmcm9tIE1ha2VmaWxlLmFtLgotIyBAY29uZmlndXJlX2lucHV0QAotCi0jIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSMgMjAwMywgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0jIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSMgUEFSVElDVUxBUiBQVVJQT1NFLgotCi1AU0VUX01BS0VACi0KLSMgQXV0b21ha2UgaW5wdXQgZm9yIHN0cmFjZS4KLQotCi0KLVNPVVJDRVMgPSAkKHN0cmFjZV9TT1VSQ0VTKQotCi1zcmNkaXIgPSBAc3JjZGlyQAotdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotVlBBVEggPSBAc3JjZGlyQAotcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi1wa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi1wa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLXRvcF9idWlsZGRpciA9IC4KLWFtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLUlOU1RBTEwgPSBASU5TVEFMTEAKLWluc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci1pbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi1pbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLUlOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi10cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi1OT1JNQUxfSU5TVEFMTCA9IDoKLVBSRV9JTlNUQUxMID0gOgotUE9TVF9JTlNUQUxMID0gOgotTk9STUFMX1VOSU5TVEFMTCA9IDoKLVBSRV9VTklOU1RBTEwgPSA6Ci1QT1NUX1VOSU5TVEFMTCA9IDoKLWJ1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi1ob3N0X3RyaXBsZXQgPSBAaG9zdEAKLWJpbl9QUk9HUkFNUyA9IHN0cmFjZSQoRVhFRVhUKQotRElTVF9DT01NT04gPSBSRUFETUUgJChhbV9fY29uZmlndXJlX2RlcHMpICQobm9pbnN0X0hFQURFUlMpIFwKLQkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLQkkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBcCi0JQ2hhbmdlTG9nIElOU1RBTEwgTkVXUyBUT0RPIGNvbmZpZy5ndWVzcyBjb25maWcuc3ViIGRlcGNvbXAgXAotCWluc3RhbGwtc2ggbWlzc2luZyBta2luc3RhbGxkaXJzCi1zdWJkaXIgPSAuCi1BQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci1hbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9hY2luY2x1ZGUubTQgXAotCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi1hbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotCSQoQUNMT0NBTF9NNCkKLWFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTID0gY29uZmlnLnN0YXR1cyBjb25maWcuY2FjaGUgY29uZmlnLmxvZyBcCi0gY29uZmlndXJlLmxpbmVubyBjb25maWd1cmUuc3RhdHVzLmxpbmVubwotbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvbWtpbnN0YWxsZGlycwotQ09ORklHX0hFQURFUiA9IGNvbmZpZy5oCi1DT05GSUdfQ0xFQU5fRklMRVMgPQotYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChiaW5kaXIpIiBcCi0JIiQoREVTVERJUikkKG1hbjFkaXIpIgotYmluUFJPR1JBTVNfSU5TVEFMTCA9ICQoSU5TVEFMTF9QUk9HUkFNKQotUFJPR1JBTVMgPSAkKGJpbl9QUk9HUkFNUykKLWFtX3N0cmFjZV9PQkpFQ1RTID0gc3RyYWNlLiQoT0JKRVhUKSBzeXNjYWxsLiQoT0JKRVhUKSB1dGlsLiQoT0JKRVhUKSBcCi0JZGVzYy4kKE9CSkVYVCkgZmlsZS4kKE9CSkVYVCkgaXBjLiQoT0JKRVhUKSBpby4kKE9CSkVYVCkgXAotCWlvY3RsLiQoT0JKRVhUKSBtZW0uJChPQkpFWFQpIG5ldC4kKE9CSkVYVCkgcHJvY2Vzcy4kKE9CSkVYVCkgXAotCWJqbS4kKE9CSkVYVCkgcmVzb3VyY2UuJChPQkpFWFQpIHNpZ25hbC4kKE9CSkVYVCkgXAotCXNvY2suJChPQkpFWFQpIHN5c3RlbS4kKE9CSkVYVCkgdGVybS4kKE9CSkVYVCkgdGltZS4kKE9CSkVYVCkgXAotCXByb2MuJChPQkpFWFQpIHN0cmVhbS4kKE9CSkVYVCkKLXN0cmFjZV9PQkpFQ1RTID0gJChhbV9zdHJhY2VfT0JKRUNUUykKLXN0cmFjZV9MREFERCA9ICQoTERBREQpCi1iaW5TQ1JJUFRfSU5TVEFMTCA9ICQoSU5TVEFMTF9TQ1JJUFQpCi1TQ1JJUFRTID0gJChiaW5fU0NSSVBUUykKLURFRkFVTFRfSU5DTFVERVMgPSAtSS4gLUkkKHNyY2RpcikgLUkuCi1kZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9kZXBjb21wCi1hbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0JJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotQ0NMRCA9ICQoQ0MpCi1MSU5LID0gJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotU09VUkNFUyA9ICQoc3RyYWNlX1NPVVJDRVMpCi1ESVNUX1NPVVJDRVMgPSAkKHN0cmFjZV9TT1VSQ0VTKQotbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCi1OUk9GRiA9IG5yb2ZmCi1NQU5TID0gJChtYW5fTUFOUykKLUhFQURFUlMgPSAkKG5vaW5zdF9IRUFERVJTKQotRVRBR1MgPSBldGFncwotQ1RBR1MgPSBjdGFncwotRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLWRpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lPTikKLXRvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotYW1fX3JlbW92ZV9kaXN0ZGlyID0gXAotICB7IHRlc3QgISAtZCAkKGRpc3RkaXIpIFwKLSAgICB8fCB7IGZpbmQgJChkaXN0ZGlyKSAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwKLSAgICAgICAgICYmIHJtIC1mciAkKGRpc3RkaXIpOyB9OyB9Ci1ESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIuZ3ogJChkaXN0ZGlyKS50YXIuYnoyCi1HWklQX0VOViA9IC0tYmVzdAotZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAtdHlwZSBmIC1wcmludAotZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50Ci1BQ0xPQ0FMID0gQEFDTE9DQUxACi1BTURFUF9GQUxTRSA9IEBBTURFUF9GQUxTRUAKLUFNREVQX1RSVUUgPSBAQU1ERVBfVFJVRUAKLUFNVEFSID0gQEFNVEFSQAotQVVUT0NPTkYgPSBAQVVUT0NPTkZACi1BVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi1BVVRPTUFLRSA9IEBBVVRPTUFLRUAKLUFXSyA9IEBBV0tACi1DQyA9IEBDQ0AKLUNDREVQTU9ERSA9IEBDQ0RFUE1PREVACi1DRkxBR1MgPSBAQ0ZMQUdTQAotQ1BQID0gQENQUEAKLUNQUEZMQUdTID0gQENQUEZMQUdTQAotQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLURFRlMgPSBAREVGU0AKLURFUERJUiA9IEBERVBESVJACi1FQ0hPX0MgPSBARUNIT19DQAotRUNIT19OID0gQEVDSE9fTkAKLUVDSE9fVCA9IEBFQ0hPX1RACi1FR1JFUCA9IEBFR1JFUEAKLUVYRUVYVCA9IEBFWEVFWFRACi1GUkVFQlNEX0ZBTFNFID0gQEZSRUVCU0RfRkFMU0VACi1GUkVFQlNEX1RSVUUgPSBARlJFRUJTRF9UUlVFQAotSTM4Nl9GQUxTRSA9IEBJMzg2X0ZBTFNFQAotSTM4Nl9UUlVFID0gQEkzODZfVFJVRUAKLUlOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi1JTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi1JTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotTERGTEFHUyA9IEBMREZMQUdTQAotTElCT0JKUyA9IEBMSUJPQkpTQAotTElCUyA9IEBMSUJTQAotTElOVVhfRkFMU0UgPSBATElOVVhfRkFMU0VACi1MSU5VWF9UUlVFID0gQExJTlVYX1RSVUVACi1MVExJQk9CSlMgPSBATFRMSUJPQkpTQAotTUFJTlQgPSBATUFJTlRACi1NQUlOVEFJTkVSX01PREVfRkFMU0UgPSBATUFJTlRBSU5FUl9NT0RFX0ZBTFNFQAotTUFJTlRBSU5FUl9NT0RFX1RSVUUgPSBATUFJTlRBSU5FUl9NT0RFX1RSVUVACi1NQUtFSU5GTyA9IEBNQUtFSU5GT0AKLU9CSkVYVCA9IEBPQkpFWFRACi1QQUNLQUdFID0gQFBBQ0tBR0VACi1QQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLVBBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi1QQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLVBBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi1QQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi1QRVJMID0gQFBFUkxACi1TRVRfTUFLRSA9IEBTRVRfTUFLRUAKLVNIRUxMID0gQFNIRUxMQAotU1RSSVAgPSBAU1RSSVBACi1TVU5PUzRfRkFMU0UgPSBAU1VOT1M0X0ZBTFNFQAotU1VOT1M0X1RSVUUgPSBAU1VOT1M0X1RSVUVACi1TVlI0X0ZBTFNFID0gQFNWUjRfRkFMU0VACi1TVlI0X1RSVUUgPSBAU1ZSNF9UUlVFQAotVkVSU0lPTiA9IEBWRVJTSU9OQAotV0FSTkZMQUdTID0gQFdBUk5GTEFHU0AKLVg4Nl82NF9GQUxTRSA9IEBYODZfNjRfRkFMU0VACi1YODZfNjRfVFJVRSA9IEBYODZfNjRfVFJVRUAKLWFjX2N0X0NDID0gQGFjX2N0X0NDQAotYWNfY3RfU1RSSVAgPSBAYWNfY3RfU1RSSVBACi1hbV9fZmFzdGRlcENDX0ZBTFNFID0gQGFtX19mYXN0ZGVwQ0NfRkFMU0VACi1hbV9fZmFzdGRlcENDX1RSVUUgPSBAYW1fX2Zhc3RkZXBDQ19UUlVFQAotYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi1hbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLWFtX190YXIgPSBAYW1fX3RhckAKLWFtX191bnRhciA9IEBhbV9fdW50YXJACi1hcmNoID0gQGFyY2hACi1iaW5kaXIgPSBAYmluZGlyQAotYnVpbGQgPSBAYnVpbGRACi1idWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLWJ1aWxkX2NwdSA9IEBidWlsZF9jcHVACi1idWlsZF9vcyA9IEBidWlsZF9vc0AKLWJ1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi1kYXRhZGlyID0gQGRhdGFkaXJACi1leGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLWhvc3QgPSBAaG9zdEAKLWhvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLWhvc3RfY3B1ID0gQGhvc3RfY3B1QAotaG9zdF9vcyA9IEBob3N0X29zQAotaG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi1pbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi1pbmZvZGlyID0gQGluZm9kaXJACi1pbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi1saWJkaXIgPSBAbGliZGlyQAotbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotbWFuZGlyID0gQG1hbmRpckAKLW1rZGlyX3AgPSBAbWtkaXJfcEAKLW9sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLW9wc3lzID0gQG9wc3lzQAotcHJlZml4ID0gQHByZWZpeEAKLXByb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLXNiaW5kaXIgPSBAc2JpbmRpckAKLXNoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLW1hbl9NQU5TID0gc3RyYWNlLjEKLWJpbl9TQ1JJUFRTID0gc3RyYWNlLWdyYXBoCi0KLSMgT1MgaXMgb25lIG9mIGBsaW51eCcsIGBzdW5vczQnLCBgc3ZyNCcsIG9yIGBmcmVlYnNkJy4KLU9TID0gQG9wc3lzQAotIyBBUkNIIGlzIGBpMzg2JywgYG02OGsnLCBgc3BhcmMnLCBldGMuCi1BUkNIID0gQGFyY2hACi1BTV9DRkxBR1MgPSAkKFdBUk5GTEFHUykKLUlOQ0xVREVTID0gLUkkKE9TKS8kKEFSQ0gpIC1JJChzcmNkaXIpLyQoT1MpLyQoQVJDSCkgLUkkKE9TKSAtSSQoc3JjZGlyKS8kKE9TKQotc3RyYWNlX1NPVVJDRVMgPSBzdHJhY2UuYyBzeXNjYWxsLmMgdXRpbC5jIGRlc2MuYyBmaWxlLmMgaXBjLmMgXAotCQkgaW8uYyBpb2N0bC5jIG1lbS5jIG5ldC5jIHByb2Nlc3MuYyBiam0uYyBcCi0JCSByZXNvdXJjZS5jIHNpZ25hbC5jIHNvY2suYyBzeXN0ZW0uYyB0ZXJtLmMgdGltZS5jIFwKLQkJIHByb2MuYyBzdHJlYW0uYwotCi1ub2luc3RfSEVBREVSUyA9IGRlZnMuaAotRVhUUkFfRElTVCA9ICQobWFuX01BTlMpIGVycm5vZW50LnNoIHNpZ25hbGVudC5zaCBzeXNjYWxsZW50LnNoIGlvY3Rsc29ydC5jIFwKLSAgICAgCSAgICAgZGViaWFuL2NoYW5nZWxvZyBkZWJpYW4vY29udHJvbCBkZWJpYW4vY29weXJpZ2h0IGRlYmlhbi9ydWxlcyBcCi0JICAgICBzdHJhY2Uuc3BlYyBcCi0JICAgICBzdHJhY2UtZ3JhcGggQ09QWVJJR0hUIENSRURJVFMgUE9SVElORyBcCi0JICAgICBSRUFETUUtQ1ZTIFJFQURNRS1mcmVlYnNkIFJFQURNRS1saW51eCBSRUFETUUtc3Vub3M0IFJFQURNRS1zdnI0IFwKLQkgICAgIGxpbnV4L2lvY3Rsc29ydC5jIGxpbnV4L2lvY3RsZW50LnNoIFwKLQkgICAgIGxpbnV4L2lvY3RsZW50LmggbGludXgvZXJybm9lbnQuaCBsaW51eC9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zeXNjYWxsLmggbGludXgvc3lzY2FsbGVudC5oIGxpbnV4L2R1bW15LmggXAotCSAgICAgbGludXgvYWxwaGEvZXJybm9lbnQuaCBsaW51eC9hbHBoYS9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L2FscGhhL3NpZ25hbGVudC5oIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9ocHBhL2Vycm5vZW50LmggbGludXgvaHBwYS9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L2hwcGEvc2lnbmFsZW50LmggbGludXgvaHBwYS9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvaWE2NC9zeXNjYWxsZW50LmggbGludXgvaWE2NC9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L2lhNjQvaW9jdGxlbnQuaCBsaW51eC9pYTY0L3NpZ25hbGVudC5oIFwKLSAgICAgCSAgICAgbGludXgvbWlwcy9pb2N0bGVudC5zaCBsaW51eC9taXBzL2Vycm5vZW50LmggXAotCSAgICAgbGludXgvbWlwcy9pb2N0bGVudC5oIGxpbnV4L21pcHMvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvbWlwcy9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvcG93ZXJwYy9lcnJub2VudC5oIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9wb3dlcnBjL3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L3MzOTAvZXJybm9lbnQuaCBsaW51eC9zMzkwL2lvY3RsZW50LmggXAotCSAgICAgbGludXgvczM5MC9zaWduYWxlbnQuaCBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9zMzkweC9lcnJub2VudC5oIGxpbnV4L3MzOTB4L2lvY3RsZW50LmggXAotCSAgICAgbGludXgvczM5MHgvc2lnbmFsZW50LmggbGludXgvczM5MHgvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3NoL3N5c2NhbGxlbnQuaCBsaW51eC9zaC9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L3NoL2lvY3RsZW50LmggbGludXgvc2gvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvc2g2NC9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvc3BhcmMvZHVtbXkyLmggXAotCSAgICAgbGludXgvc3BhcmMvZXJybm9lbnQuaCBsaW51eC9zcGFyYy9lcnJub2VudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9pb2N0bGVudC5oIGxpbnV4L3NwYXJjL2lvY3RsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL3NpZ25hbGVudC5oIGxpbnV4L3NwYXJjL3NpZ25hbGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9zeXNjYWxsLmggbGludXgvc3BhcmMvc3lzY2FsbDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9zeXNjYWxsZW50LmggbGludXgvc3BhcmMvc3lzY2FsbGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9nZW4ucGwgbGludXgvc3BhcmMvc3lzY2FsbC5oLjIgXAotCSAgICAgbGludXgvc3BhcmM2NC9kdW1teTIuaCBsaW51eC9zcGFyYzY0L2Vycm5vZW50LmggXAotCSAgICAgbGludXgvc3BhcmM2NC9lcnJub2VudDEuaCBsaW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCBsaW51eC9zcGFyYzY0L2lvY3RsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmggbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3NpZ25hbGVudDEuaCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudDIuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGwuaCBsaW51eC9zcGFyYzY0L3N5c2NhbGwxLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmggbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaCBcCi0JICAgICBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oIGxpbnV4L3g4Nl82NC9nZW50YWIucGwgXAotCSAgICAgbGludXgveDg2XzY0L2Vycm5vZW50MS5oIGxpbnV4L3g4Nl82NC9pb2N0bGVudDEuaCBcCi0JICAgICBsaW51eC94ODZfNjQvc2lnbmFsZW50MS5oIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oIFwKLQkgICAgIGZyZWVic2QvaW9jdGxlbnQuc2ggXAotCSAgICAgZnJlZWJzZC9zeXNjYWxscy5jYXQgZnJlZWJzZC9zeXNjYWxscy5wbCBmcmVlYnNkL3N5c2NhbGxzLnByaW50IFwKLQkgICAgIGZyZWVic2QvaTM4Ni9lcnJub2VudC5oIGZyZWVic2QvaTM4Ni9pb2N0bGVudC5oIFwKLQkgICAgIGZyZWVic2QvaTM4Ni9zaWduYWxlbnQuaCBcCi0JICAgICBmcmVlYnNkL2kzODYvc3lzY2FsbC5oIGZyZWVic2QvaTM4Ni9zeXNjYWxsZW50LmggXAotCSAgICAgc3Vub3M0L2R1bW15Lmggc3Vub3M0L2Vycm5vZW50LmggXAotCSAgICAgc3Vub3M0L2lvY3RsZW50Lmggc3Vub3M0L2lvY3RsZW50LnNoIHN1bm9zNC9zaWduYWxlbnQuaCBcCi0JICAgICBzdW5vczQvc3lzY2FsbC5oIHN1bm9zNC9zeXNjYWxsZW50LmggXAotCSAgICAgc3ZyNC9kdW1teS5oIHN2cjQvZXJybm9lbnQuaCBzdnI0L2lvY3RsZW50Lmggc3ZyNC9pb2N0bGVudC5zaCBcCi0JICAgICBzdnI0L3NpZ25hbGVudC5oIHN2cjQvc3lzY2FsbC5oIHN2cjQvc3lzY2FsbGVudC5oCi0KLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBJT0NUTERJUiA9IC91c3IvaW5jbHVkZQotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQElPQ1RMQVNNID0gYXNtCi1ASTM4Nl9GQUxTRUBATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVAaW9jdGxlbnRfaCA9IGxpbnV4LyQoQVJDSCkvaW9jdGxlbnQuaAotQEkzODZfVFJVRUBATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVAaW9jdGxlbnRfaCA9IGxpbnV4L2lvY3RsZW50LmgKLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBCVUlMVF9TT1VSQ0VTID0gJChpb2N0bGVudF9oKQotYWxsOiAkKEJVSUxUX1NPVVJDRVMpIGNvbmZpZy5oCi0JJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLWFtCi0KLS5TVUZGSVhFUzoKLS5TVUZGSVhFUzogLmMgLm8gLm9iagotYW0tLXJlZnJlc2g6Ci0JQDoKLSQoc3JjZGlyKS9NYWtlZmlsZS5pbjogQE1BSU5UQUlORVJfTU9ERV9UUlVFQCAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0JICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLQkgICAgKiQkZGVwKikgXAotCSAgICAgIGVjaG8gJyBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduICc7IFwKLQkgICAgICBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduICBcCi0JCSYmIGV4aXQgMDsgXAotCSAgICAgIGV4aXQgMTs7IFwKLQkgIGVzYWM7IFwKLQlkb25lOyBcCi0JZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduICBNYWtlZmlsZSc7IFwKLQljZCAkKHRvcF9zcmNkaXIpICYmIFwKLQkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiAgTWFrZWZpbGUKLS5QUkVDSU9VUzogTWFrZWZpbGUKLU1ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLQlAY2FzZSAnJD8nIGluIFwKLQkgICpjb25maWcuc3RhdHVzKikgXAotCSAgICBlY2hvICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAotCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXM7OyBcCi0JICAqKSBcCi0JICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLQkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0JZXNhYzsKLQotJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0JJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIC0tcmVjaGVjawotCi0kKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogQE1BSU5UQUlORVJfTU9ERV9UUlVFQCAkKGFtX19jb25maWd1cmVfZGVwcykKLQljZCAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKLSQoQUNMT0NBTF9NNCk6IEBNQUlOVEFJTkVSX01PREVfVFJVRUAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotCWNkICQoc3JjZGlyKSAmJiAkKEFDTE9DQUwpICQoQUNMT0NBTF9BTUZMQUdTKQotCi1jb25maWcuaDogc3RhbXAtaDEKLQlAaWYgdGVzdCAhIC1mICRAOyB0aGVuIFwKLQkgIHJtIC1mIHN0YW1wLWgxOyBcCi0JICAkKE1BS0UpIHN0YW1wLWgxOyBcCi0JZWxzZSA6OyBmaQotCi1zdGFtcC1oMTogJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0JQHJtIC1mIHN0YW1wLWgxCi0JY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotJChzcmNkaXIpL2NvbmZpZy5oLmluOiBATUFJTlRBSU5FUl9NT0RFX1RSVUVAICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAKLQljZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikKLQlybSAtZiBzdGFtcC1oMQotCXRvdWNoICRACi0KLWRpc3RjbGVhbi1oZHI6Ci0JLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCi1pbnN0YWxsLWJpblBST0dSQU1TOiAkKGJpbl9QUk9HUkFNUykKLQlAJChOT1JNQUxfSU5TVEFMTCkKLQl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQobWtkaXJfcCkgIiQoREVTVERJUikkKGJpbmRpcikiCi0JQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotCSAgcDE9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLQkgIGlmIHRlc3QgLWYgJCRwIFwKLQkgIDsgdGhlbiBcCi0JICAgIGY9YGVjaG8gIiQkcDEiIHwgc2VkICdzLF4uKi8sLDskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJ2A7IFwKLQkgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKGJpblBST0dSQU1TX0lOU1RBTEwpICckJHAnICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0JICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKGJpblBST0dSQU1TX0lOU1RBTEwpICIkJHAiICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiIgfHwgZXhpdCAxOyBcCi0JICBlbHNlIDo7IGZpOyBcCi0JZG9uZQotCi11bmluc3RhbGwtYmluUFJPR1JBTVM6Ci0JQCQoTk9STUFMX1VOSU5TVEFMTCkKLQlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0JICBmPWBlY2hvICIkJHAiIHwgc2VkICdzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLydgOyBcCi0JICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKLQkgIHJtIC1mICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKLQlkb25lCi0KLWNsZWFuLWJpblBST0dSQU1TOgotCS10ZXN0IC16ICIkKGJpbl9QUk9HUkFNUykiIHx8IHJtIC1mICQoYmluX1BST0dSQU1TKQotc3RyYWNlJChFWEVFWFQpOiAkKHN0cmFjZV9PQkpFQ1RTKSAkKHN0cmFjZV9ERVBFTkRFTkNJRVMpIAotCUBybSAtZiBzdHJhY2UkKEVYRUVYVCkKLQkkKExJTkspICQoc3RyYWNlX0xERkxBR1MpICQoc3RyYWNlX09CSkVDVFMpICQoc3RyYWNlX0xEQUREKSAkKExJQlMpCi1pbnN0YWxsLWJpblNDUklQVFM6ICQoYmluX1NDUklQVFMpCi0JQCQoTk9STUFMX0lOU1RBTEwpCi0JdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKG1rZGlyX3ApICIkKERFU1RESVIpJChiaW5kaXIpIgotCUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLQkgIGlmIHRlc3QgLWYgJCRkJCRwOyB0aGVuIFwKLQkgICAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFuc2Zvcm0pJ2A7IFwKLQkgICAgZWNobyAiICQoYmluU0NSSVBUX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0JICAgICQoYmluU0NSSVBUX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKLQkgIGVsc2UgOjsgZmk7IFwKLQlkb25lCi0KLXVuaW5zdGFsbC1iaW5TQ1JJUFRTOgotCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0JQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0JICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAotCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0JICBybSAtZiAiJChERVNURElSKSQoYmluZGlyKS8kJGYiOyBcCi0JZG9uZQotCi1tb3N0bHljbGVhbi1jb21waWxlOgotCS1ybSAtZiAqLiQoT0JKRVhUKQotCi1kaXN0Y2xlYW4tY29tcGlsZToKLQktcm0gLWYgKi50YWIuYwotCi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYmptLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kZXNjLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9maWxlLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pby5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaW9jdGwuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lwYy5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWVtLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9uZXQuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Byb2MuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Byb2Nlc3MuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Jlc291cmNlLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zaWduYWwuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NvY2suUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N0cmFjZS5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3RyZWFtLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zeXNjYWxsLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zeXN0ZW0uUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlcm0uUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3RpbWUuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3V0aWwuUG9AYW1fX3F1b3RlQAotCi0uYy5vOgotQGFtX19mYXN0ZGVwQ0NfVFJVRUAJaWYgJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgIiQoREVQRElSKS8kKi5UcG8iIC1jIC1vICRAICQ8OyBcCi1AYW1fX2Zhc3RkZXBDQ19UUlVFQAl0aGVuIG12IC1mICIkKERFUERJUikvJCouVHBvIiAiJChERVBESVIpLyQqLlBvIjsgZWxzZSBybSAtZiAiJChERVBESVIpLyQqLlRwbyI7IGV4aXQgMTsgZmkKLUBBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLUBBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLUBhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8Ci0KLS5jLm9iajoKLUBhbV9fZmFzdGRlcENDX1RSVUVACWlmICQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICIkKERFUERJUikvJCouVHBvIiAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgOyBcCi1AYW1fX2Zhc3RkZXBDQ19UUlVFQAl0aGVuIG12IC1mICIkKERFUERJUikvJCouVHBvIiAiJChERVBESVIpLyQqLlBvIjsgZWxzZSBybSAtZiAiJChERVBESVIpLyQqLlRwbyI7IGV4aXQgMTsgZmkKLUBBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLUBBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLUBhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKLXVuaW5zdGFsbC1pbmZvLWFtOgotaW5zdGFsbC1tYW4xOiAkKG1hbjFfTUFOUykgJChtYW5fTUFOUykKLQlAJChOT1JNQUxfSU5TVEFMTCkKLQl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKG1rZGlyX3ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKLQlAbGlzdD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFOUyknOyBcCi0JbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rpc3RfbWFuX01BTlMpJzsgXAotCWZvciBpIGluICQkbDI7IGRvIFwKLQkgIGNhc2UgIiQkaSIgaW4gXAotCSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCi0JICBlc2FjOyBcCi0JZG9uZTsgXAotCWZvciBpIGluICQkbGlzdDsgZG8gXAotCSAgaWYgdGVzdCAtZiAkKHNyY2RpcikvJCRpOyB0aGVuIGZpbGU9JChzcmNkaXIpLyQkaTsgXAotCSAgZWxzZSBmaWxlPSQkaTsgZmk7IFwKLQkgIGV4dD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXi4qXFwuLy8nYDsgXAotCSAgY2FzZSAiJCRleHQiIGluIFwKLQkgICAgMSopIDs7IFwKLQkgICAgKikgZXh0PScxJyA7OyBcCi0JICBlc2FjOyBcCi0JICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8vJ2A7IFwKLQkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkIC1lICdzL14uKlwvLy8nYDsgXAotCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgJyQodHJhbnNmb3JtKSdgLiQkZXh0OyBcCi0JICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAotCSAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiOyBcCi0JZG9uZQotdW5pbnN0YWxsLW1hbjE6Ci0JQCQoTk9STUFMX1VOSU5TVEFMTCkKLQlAbGlzdD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFOUyknOyBcCi0JbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rpc3RfbWFuX01BTlMpJzsgXAotCWZvciBpIGluICQkbDI7IGRvIFwKLQkgIGNhc2UgIiQkaSIgaW4gXAotCSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCi0JICBlc2FjOyBcCi0JZG9uZTsgXAotCWZvciBpIGluICQkbGlzdDsgZG8gXAotCSAgZXh0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCi0JICBjYXNlICIkJGV4dCIgaW4gXAotCSAgICAxKikgOzsgXAotCSAgICAqKSBleHQ9JzEnIDs7IFwKLQkgIGVzYWM7IFwKLQkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAotCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCi0JICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKLQkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKLQkgIHJtIC1mICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiOyBcCi0JZG9uZQotCi1JRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0JdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLQkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0JICBkb25lIHwgXAotCSAgJChBV0spICcgICAgeyBmaWxlc1skJDBdID0gMTsgfSBcCi0JICAgICAgIEVORCB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfSdgOyBcCi0JbWtpZCAtZklEICQkdW5pcXVlCi10YWdzOiBUQUdTCi0KLVRBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLQl0YWdzPTsgXAotCWhlcmU9YHB3ZGA7IFwKLQlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0JICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotCSAgZG9uZSB8IFwKLQkgICQoQVdLKSAnICAgIHsgZmlsZXNbJCQwXSA9IDE7IH0gXAotCSAgICAgICBFTkQgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH0nYDsgXAotCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0JICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0JICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0JICAgICQkdGFncyAkJHVuaXF1ZTsgXAotCWZpCi1jdGFnczogQ1RBR1MKLUNUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLQkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0JdGFncz07IFwKLQloZXJlPWBwd2RgOyBcCi0JbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLQl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLQkgIGRvbmUgfCBcCi0JICAkKEFXSykgJyAgICB7IGZpbGVzWyQkMF0gPSAxOyB9IFwKLQkgICAgICAgRU5EIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9J2A7IFwKLQl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLQkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLQkgICAgICQkdGFncyAkJHVuaXF1ZQotCi1HVEFHUzoKLQloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0JICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotCi1kaXN0Y2xlYW4tdGFnczoKLQktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotCi1kaXN0ZGlyOiAkKERJU1RGSUxFUykKLQlAY2FzZSBgc2VkIDE1cSAkKHNyY2RpcikvTkVXU2AgaW4gXAotCSoiJChWRVJTSU9OKSIqKSA6IDs7IFwKLQkqKSBcCi0JICBlY2hvICJORVdTIG5vdCB1cGRhdGVkOyBub3QgcmVsZWFzaW5nIiAxPiYyOyBcCi0JICBleGl0IDE7OyBcCi0JZXNhYwotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCW1rZGlyICQoZGlzdGRpcikKLQkkKG1rZGlyX3ApICQoZGlzdGRpcikvZGViaWFuICQoZGlzdGRpcikvZnJlZWJzZCAkKGRpc3RkaXIpL2ZyZWVic2QvaTM4NiAkKGRpc3RkaXIpL2xpbnV4ICQoZGlzdGRpcikvbGludXgvYWxwaGEgJChkaXN0ZGlyKS9saW51eC9ocHBhICQoZGlzdGRpcikvbGludXgvaWE2NCAkKGRpc3RkaXIpL2xpbnV4L21pcHMgJChkaXN0ZGlyKS9saW51eC9wb3dlcnBjICQoZGlzdGRpcikvbGludXgvczM5MCAkKGRpc3RkaXIpL2xpbnV4L3MzOTB4ICQoZGlzdGRpcikvbGludXgvc2ggJChkaXN0ZGlyKS9saW51eC9zaDY0ICQoZGlzdGRpcikvbGludXgvc3BhcmMgJChkaXN0ZGlyKS9saW51eC9zcGFyYzY0ICQoZGlzdGRpcikvbGludXgveDg2XzY0ICQoZGlzdGRpcikvc3Vub3M0ICQoZGlzdGRpcikvc3ZyNAotCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOyBcCi0JdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7IFwKLQlsaXN0PSckKERJU1RGSUxFUyknOyBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIFwKLQkgIGNhc2UgJCRmaWxlIGluIFwKLQkgICAgJChzcmNkaXIpLyopIGZpbGU9YGVjaG8gIiQkZmlsZSIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLQkgICAgJCh0b3Bfc3JjZGlyKS8qKSBmaWxlPWBlY2hvICIkJGZpbGUiIHwgc2VkICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfCJgOzsgXAotCSAgZXNhYzsgXAotCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotCSAgZGlyPWBlY2hvICIkJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotCSAgaWYgdGVzdCAiJCRkaXIiICE9ICIkJGZpbGUiICYmIHRlc3QgIiQkZGlyIiAhPSAiLiI7IHRoZW4gXAotCSAgICBkaXI9Ii8kJGRpciI7IFwKLQkgICAgJChta2Rpcl9wKSAiJChkaXN0ZGlyKSQkZGlyIjsgXAotCSAgZWxzZSBcCi0JICAgIGRpcj0nJzsgXAotCSAgZmk7IFwKLQkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0JICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLQkgICAgZmk7IFwKLQkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotCSAgZWxzZSBcCi0JICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLQkgICAgfHwgZXhpdCAxOyBcCi0JICBmaTsgXAotCWRvbmUKLQktZmluZCAkKGRpc3RkaXIpIC10eXBlIGQgISAtcGVybSAtNzc3IC1leGVjIGNobW9kIGErcnd4IHt9IFw7IC1vIFwKLQkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKLQkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKLQkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWV4ZWMgJChTSEVMTCkgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30gXDsgXAotCXx8IGNobW9kIC1SIGErciAkKGRpc3RkaXIpCi1kaXN0LWd6aXA6IGRpc3RkaXIKLQl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotZGlzdC1iemlwMjogZGlzdGRpcgotCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0KLWRpc3QtdGFyWjogZGlzdGRpcgotCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCi1kaXN0LXNoYXI6IGRpc3RkaXIKLQlzaGFyICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikuc2hhci5negotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCi1kaXN0LXppcDogZGlzdGRpcgotCS1ybSAtZiAkKGRpc3RkaXIpLnppcAotCXppcCAtcnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCi1kaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCi0JdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLQl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCi0jIFRoaXMgdGFyZ2V0IHVudGFycyB0aGUgZGlzdCBmaWxlIGFuZCB0cmllcyBhIFZQQVRIIGNvbmZpZ3VyYXRpb24uICBUaGVuCi0jIGl0IGd1YXJhbnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29udGFpbmVkIGJ5IG1ha2luZyBhbm90aGVyCi0jIHRhcmZpbGUuCi1kaXN0Y2hlY2s6IGRpc3QKLQljYXNlICckKERJU1RfQVJDSElWRVMpJyBpbiBcCi0JKi50YXIuZ3oqKSBcCi0JICBHWklQPSQoR1pJUF9FTlYpIGd1bnppcCAtYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKLQkqLnRhci5iejIqKSBcCi0JICBidW56aXAyIC1jICQoZGlzdGRpcikudGFyLmJ6MiB8ICQoYW1fX3VudGFyKSA7O1wKLQkqLnRhci5aKikgXAotCSAgdW5jb21wcmVzcyAtYyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAotCSouc2hhci5neiopIFwKLQkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hhciA7O1wKLQkqLnppcCopIFwKLQkgIHVuemlwICQoZGlzdGRpcikuemlwIDs7XAotCWVzYWMKLQljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLQlta2RpciAkKGRpc3RkaXIpL19idWlsZAotCW1rZGlyICQoZGlzdGRpcikvX2luc3QKLQljaG1vZCBhLXcgJChkaXN0ZGlyKQotCWRjX2luc3RhbGxfYmFzZT1gJChhbV9fY2QpICQoZGlzdGRpcikvX2luc3QgJiYgcHdkIHwgc2VkIC1lICdzLF5bXjpcXC9dOltcXC9dLC8sJ2AgXAotCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBcCi0JICAmJiBjZCAkKGRpc3RkaXIpL19idWlsZCBcCi0JICAmJiAuLi9jb25maWd1cmUgLS1zcmNkaXI9Li4gLS1wcmVmaXg9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0JICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZHZpIFwKLQkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKLQkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbGNoZWNrIFwKLQkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAotCSAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrIFwKLQkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKLQkgICYmICh7IFwKLQkgICAgICAgKGNkIC4uLy4uICYmIHVtYXNrIDA3NyAmJiBta2RpciAiJCRkY19kZXN0ZGlyIikgXAotCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAotCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCi0JICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgXAotCSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCi0JICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAxOyB9KSBcCi0JICAmJiBybSAtcmYgIiQkZGNfZGVzdGRpciIgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCi0JICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0Y2xlYW5jaGVjawotCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotCUAoZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyByZWFkeSBmb3IgZGlzdHJpYnV0aW9uOiAiOyBcCi0JICBsaXN0PSckKERJU1RfQVJDSElWRVMpJzsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICQkaTsgZG9uZSkgfCBcCi0JICBzZWQgLWUgJzF7aDtzLy4vPS9nO3A7eDt9JyAtZSAnJCR7cDt4O30nCi1kaXN0dW5pbnN0YWxsY2hlY2s6Ci0JQGNkICQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpcikgXAotCSYmIHRlc3QgYCQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWxlIDEgXAotCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCi0JICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RESVIpIjsgdGhlbiBcCi0JICAgICAgICAgIGVjaG8gIiAgKGNoZWNrIERFU1RESVIgc3VwcG9ydCkiOyBcCi0JICAgICAgICBmaSA7IFwKLQkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgOyBcCi0JICAgICAgICBleGl0IDE7IH0gPiYyCi1kaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCi0JQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCi0JICBlY2hvICJFUlJPUjogZGlzdGNsZWFuY2hlY2sgY2FuIG9ubHkgcnVuIGZyb20gYSBWUEFUSCBidWlsZCIgOyBcCi0JICBleGl0IDEgOyBcCi0JZmkKLQlAdGVzdCBgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1lcSAwIFwKLQkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAotCSAgICAgICAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCi0JICAgICAgIGV4aXQgMTsgfSA+JjIKLWNoZWNrLWFtOiBhbGwtYW0KLWNoZWNrOiAkKEJVSUxUX1NPVVJDRVMpCi0JJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2stYW0KLWFsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChTQ1JJUFRTKSAkKE1BTlMpICQoSEVBREVSUykgY29uZmlnLmgKLWluc3RhbGxkaXJzOgotCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobWFuMWRpcikiOyBkbyBcCi0JICB0ZXN0IC16ICIkJGRpciIgfHwgJChta2Rpcl9wKSAiJCRkaXIiOyBcCi0JZG9uZQotaW5zdGFsbDogJChCVUlMVF9TT1VSQ0VTKQotCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtYW0KLWluc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi1pbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLQotaW5zdGFsbC1hbTogYWxsLWFtCi0JQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLQotaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLWluc3RhbGwtc3RyaXA6Ci0JJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLQkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0JICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi1tb3N0bHljbGVhbi1nZW5lcmljOgotCi1jbGVhbi1nZW5lcmljOgotCi1kaXN0Y2xlYW4tZ2VuZXJpYzoKLQktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLQotbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLQlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0JLXRlc3QgLXogIiQoQlVJTFRfU09VUkNFUykiIHx8IHJtIC1mICQoQlVJTFRfU09VUkNFUykKLWNsZWFuOiBjbGVhbi1hbQotCi1jbGVhbi1hbTogY2xlYW4tYmluUFJPR1JBTVMgY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1hbQotCi1kaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQotCS1ybSAtcmYgLi8kKERFUERJUikKLQktcm0gLWYgTWFrZWZpbGUKLWRpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLXRhZ3MKLQotZHZpOiBkdmktYW0KLQotZHZpLWFtOgotCi1odG1sOiBodG1sLWFtCi0KLWluZm86IGluZm8tYW0KLQotaW5mby1hbToKLQotaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgotCi1pbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC1iaW5TQ1JJUFRTCi0KLWluc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0KLWluc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKLQotaW5zdGFsbGNoZWNrLWFtOgotCi1tYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0JLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0JLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCi0JLXJtIC1yZiAuLyQoREVQRElSKQotCS1ybSAtZiBNYWtlZmlsZQotbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotCi1tb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLQotbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYwotCi1wZGY6IHBkZi1hbQotCi1wZGYtYW06Ci0KLXBzOiBwcy1hbQotCi1wcy1hbToKLQotdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLWJpblNDUklQVFMgXAotCXVuaW5zdGFsbC1pbmZvLWFtIHVuaW5zdGFsbC1tYW4KLQotdW5pbnN0YWxsLW1hbjogdW5pbnN0YWxsLW1hbjEKLQotLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGFtLS1yZWZyZXNoIGNoZWNrIGNoZWNrLWFtIGNsZWFuIFwKLQljbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIGN0YWdzIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBcCi0JZGlzdC1nemlwIGRpc3Qtc2hhciBkaXN0LXRhclogZGlzdC16aXAgZGlzdGNoZWNrIGRpc3RjbGVhbiBcCi0JZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBcCi0JZGlzdGNsZWFuLXRhZ3MgZGlzdGNsZWFuY2hlY2sgZGlzdGRpciBkaXN0dW5pbnN0YWxsY2hlY2sgZHZpIFwKLQlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotCWluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC1iaW5TQ1JJUFRTIGluc3RhbGwtZGF0YSBcCi0JaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1pbmZvIFwKLQlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIGluc3RhbGwtc3RyaXAgXAotCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0JbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotCW1vc3RseWNsZWFuLWdlbmVyaWMgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCBcCi0JdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5QUk9HUkFNUyB1bmluc3RhbGwtYmluU0NSSVBUUyBcCi0JdW5pbnN0YWxsLWluZm8tYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQotCi0KLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUAkKHNyY2RpcikvJChpb2N0bGVudF9oKTogaW9jdGxzb3J0Ci1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSQoPEQpLyQoPEYpID4gJEAKLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bHNvcnQ6ICQoc3JjZGlyKS9saW51eC9pb2N0bHNvcnQuYyBpb2N0bHMuaCBpb2N0bGRlZnMuaAotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQAkkKGZpbHRlci1vdXQgLUklLCQoTElOSy5jKSkgLUkuIC1JJChJT0NUTERJUikgJChmaWx0ZXIgLUklLCQoTElOSy5jKSkgXAotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQAkgIC1vICRAICQ8Ci1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVAaW9jdGxzLmg6ICQoc3JjZGlyKS9saW51eC9pb2N0bGVudC5zaAotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQAkkKFNIRUxMKSAkPCAkKElPQ1RMRElSKSAkKElPQ1RMQVNNKQotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQGlvY3RsZGVmcy5oOiBpb2N0bHMuaCA7Ci0jIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0uTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY0MTQyYi4uMDAwMDAwMAotLS0gYS9ORVdTCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLUNoYW5nZXMgaW4gNC41LjEyCi09PT09PT09PT09PT09PQotKiBCdWcgZml4ZXMuCi0qIEJldHRlciB4ODYtNjQgc3VwcG9ydCBmb3IgSUEzMiBwcm9jZXNzZXMuCi0qIFVwZGF0ZSBQb3dlclBDIHN5c3RlbSBjYWxscy4KLSogQmV0dGVyIHByaW50aW5nIGZvciBMaW51eCBhaW8gc3lzdGVtIGNhbGxzLgotCi1DaGFuZ2VzIGluIDQuNS4xMQotPT09PT09PT09PT09PT0KLSogUXVpY2sgZml4IHJlbGVhc2UgZm9yIGJ1aWxkIGlzc3Vlcy4KLSogT25lIGZpeCBmb3IgTGludXgvQVJNIHN5c3RlbSBjYWxsIHRhYmxlLgotCi1DaGFuZ2VzIGluIDQuNS4xMAotPT09PT09PT09PT09PT0KLSogQnVnIGZpeGVzLgotKiBQcmludCBmYXVsdCBhZGRyZXNzIGZvciBTSUdTRUdWL1NJR0JVUyBzaWduYWxzIHdoZW4gYXZhaWxhYmxlLgotCi1DaGFuZ2VzIGluIDQuNS45Ci09PT09PT09PT09PT09PQotKiBCdWcgZml4ZXMuCi0qIEltcHJvdmUgc29ja2V0IGlvY3RsIHByaW50aW5nLgotKiBVcGRhdGUgTGludXgvSUE2NCBzeXNjYWxsIGxpc3QuCi0qIEZpeCBMaW51eC94ODYtNjQgc3lzY2FsbCBhcmd1bWVudCBleHRyYWN0aW9uIGZvciAzMi1iaXQgcHJvY2Vzc2VzLgotKiBJbXByb3ZlIG1vdW50IGZsYWdzIHByaW50aW5nLgotKiBTdXBwb3J0IHN5bWJvbGljIHByaW50aW5nIG9mIHg4Nl82NCBhcmNoX3ByY3RsIHBhcmFtZXRlcnMuCi0KLUNoYW5nZXMgaW4gNC41LjgKLT09PT09PT09PT09PT09Ci0qIEJ1ZyBmaXhlcy4KLSogVXBkYXRlIHN5c2NhbGwgdGFibGVzIGZvciBBbHBoYSwgQVJNLCBIUFBBLgotKiBTdXBwb3J0IG5ldyBMaW51eCBzeXNjYWxscyBtYmluZCwgc2V0X21lbXBvbGljeSwgZ2V0X21lbXBvbGljeSwgd2FpdGlkLgotKiBTdXBwb3J0IExpbnV4IHN5c2NhbGxzIGZhZHZpc2U2NCwgZmFkdmlzZTY0XzY0LCBhbmQgZXBvbGxfKi4KLSogSW1wcm92ZSBpb2N0bCBjb21tYW5kIG5hbWUgbWF0Y2hpbmcuCi0qIFByaW50IFJUQ18qIGlvY3RsIHN0cnVjdHVyZSBjb250ZW50cy4KLSogU3VwcG9ydCBuZXdlciBSTElNSVRfKiB2YWx1ZXMuCi0qIFByaW50IHN0cnVjdCBjbXNnaGRyIGRldGFpbHMgaW4gc2VuZG1zZy4KLQotQ2hhbmdlcyBpbiA0LjUuNwotPT09PT09PT09PT09PT0KLSogQnVnIGZpeGVzLgotKiBQcmludCBhdHRyaWJ1dGUgdmFsdWVzIGluICp4YXR0ciBzeXN0ZW0gY2FsbHMgb24gTGludXguCi0qIEluY2x1ZGUgcHJlYWQgYW5kIHB3cml0ZSBjYWxscyBpbiAtZSByZWFkIGFuZCAtZSB3cml0ZSB0cmFjaW5nLgotKiBVcGRhdGUgU09fKiBhbmQgSVBfKiB2YWx1ZSBsaXN0cyBhbmQgYWRkIElQVjZfKiB2YWx1ZXMgZm9yIHNvY2tldCBvcHRpb25zLgotKiBQcmludCBjbG9ja190IHZhbHVlcyBzeW1ib2xpY2FsbHkgaW4gTGludXggY2xvY2tfKiBzeXN0ZW0gY2FsbHMuCi0KLUNoYW5nZXMgaW4gNC41LjYKLT09PT09PT09PT09PT09Ci0qIEJ1ZyBmaXhlcywgTGludXggaW9jdGwgdXBkYXRlcy4KLSogRGF2aWQgTWlsbGVyIGNvbnRyaWJ1dGVkIHN1cHBvcnQgZm9yIExpbnV4L1NQQVJDNjQuCi0KLUNoYW5nZXMgaW4gNC41LjUKLT09PT09PT09PT09PT09Ci0qIEp1c3QgYnVnIGZpeGVzLgotCi1DaGFuZ2VzIGluIDQuNS40Ci09PT09PT09PT09PT09PQotKiBVcGRhdGUgTGludXggaW9jdGwgbGlzdHMuCi0qIFVwZGF0ZSBQRl8qIGFuZCBBRl8qIHZhbHVlIGxpc3RzLgotKiBUaGUgNC41LjMgLXAgYmVoYXZpb3IgZm9yIE5QVEwgdGhyZWFkcyBhcHBsaWVzIG9ubHkgdW5kZXIgLWYsIGFuZCBnb3QgZml4ZWQuCi0KLUNoYW5nZXMgaW4gNC41LjMKLT09PT09PT09PT09PT09Ci0qIEJ1ZyBmaXhlcy4KLSogT24gTGludXggdXNpbmcgTlBUTCB0aHJlYWRzLCAtcCB3aWxsIG5vdyBhdHRhY2ggdG8gYWxsIHRocmVhZHMgaW4gYSBwcm9jZXNzLgotKiBIYW5kbGUgbmV3IG1xXyogc3lzdGVtIGNhbGxzIGluIExpbnV4IDIuNi42IGFuZCBsYXRlci4KLQotQ2hhbmdlcyBpbiA0LjUuMgotPT09PT09PT09PT09PT0KLSogQnVnIGZpeGVzLgotKiBSZXBvcnQgc29tZSBuZXcgVk1fKiBiaXQgdmFsdWVzIG9uIExpbnV4LgotKiBCZXR0ZXIgb3V0cHV0IGZvciBMaW51eCBzY2hlZF8qIHN5c3RlbSBjYWxscy4KLQotQ2hhbmdlcyBpbiA0LjUuMQotPT09PT09PT09PT09PT0KLSogQnVnIGZpeGVzLgotKiBEaXNwbGF5IG11bHRpcGxlIGlvY3RsIG5hbWUgbWF0Y2hlcyBvbiBMaW51eC4KLQotQ2hhbmdlcyBpbiA0LjUKLT09PT09PT09PT09PT09Ci0qIE5ldyBwb3J0IHRvIEFNRCdzIHg4Ni02NCBhcmNoaXRlY3R1cmUuIE9uZSBzdHJhY2UgYmluYXJ5IGNhbgotICBoYW5kbGUgYm90aCBuZXcgeDg2LTY0IGFuZCBvbGQgaTM4NiBwcm9jZXNzZXMuCi0qIEZpeGVkIHN1cHBvcnQgZm9yIExGUzY0IGNhbGxzLgotKiBOZXcgc3dpdGNoIC1FIHRvIGFkZC9yZW1vdmUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgY29tbWFuZC4KLSogTWVyZ2VkIHMzOTAvczM5MHggcG9ydC4KLSogVHJhY2UgYW4gdW5ib3VuZGVkIG51bWJlciBvZiBwcm9jZXNzZXMuCi0qIEhhbmRsZSBudW1lcm91cyBuZXcgc3lzdGVtIGNhbGxzIGluIExpbnV4IDIuNSwgYW5kIG5ldyB0aHJlYWRzIHNlbWFudGljcy4KLSogRml4ZWQgYnVncyB3aXRoIGF0dGFjaC9kZXRhY2ggbGVhdmluZyB0aGluZ3Mgc3RvcHBlZC4KLSogRml4ZWQgdHJhY2VkIHByb2Nlc3Mgc2VlaW5nIEVDSElMRCBkZXNwaXRlIGxpdmUsIHRyYWNlZCBjaGlsZHJlbgotICBpbiB3YWl0cGlkIGNhbGxzIHdpdGggV05PSEFORy4KLSogU3R1YXJ0IE1lbmVmeSBjb250cmlidXRlZCBhIHBvcnQgdG8gTGludXgvU0guCi0qIFN0ZXBoZW4gVGhvbWFzIGNvbnRyaWJ1dGVkIGEgcG9ydCB0byBMaW51eC9TSDY0LgotKiBNYW55IG90aGVyIGJ1ZyBmaXhlcy4KLQotQ2hhbmdlcyBpbiA0LjQKLT09PT09PT09PT09PT09Ci0qIEZpeCBMaW51eC9pYTY0IHN1cHBvcnQsIGxvb2tzIGxpa2Ugc29tZW9uZSByZW5hbWVkIGEgZmV3IHRoaW5ncyBvbiB1cwotKiBGaXggdGhlIGlvY3RsIHNldHVwIGZvciBMaW51eCwgdHVybmVkIG91dCBpdCBkaWQgbm90IHJlYWxseSB3b3JrLgotICBJbXByb3ZlIHRoZSBpb2N0bCBleHRyYWN0ZXIgYXMgd2VsbCBzbyB3ZSBkZWNvZGUgc29tZSBtb3JlIG9uZXMuCi0KLUNoYW5nZXMgaW4gNC4zLjEKLT09PT09PT09PT09PT09PT0KLSogY29tcGlsZSBmaXhlcyBmb3IgTGludXgvbWlwcwotCi1DaGFuZ2VzIGluIDQuMwotPT09PT09PT09PT09PT0KLSogTGludXggaWE2NCBhbmQgaHBwYSBwb3J0cyBhZGRlZAotKiBUaGUgdXN1YWwgTGludXggc3lzY2FsbCB1cGRhdGVzIChpbmNsdWRlcyAzMmJpdCB1aWQvZ2lkIHN1cHBvcnQpLAotKiBMaW51eCBpb2N0bCBsaXN0IHVwZGF0ZWQKLSogU3VwcG9ydCBJUHY2IHNjb3BlIGlkcwotKiBGcmVlQlNEL2kzODYgcG9ydCBhZGRlZAotKiBVbml4V2FyZSBhbmQgU29sYXJpcyB1cGRhdGVzCi0qIEJldHRlciBzdXBwb3J0IGZvciB0cmFjaW5nIG11bHRpdGhyZWFkZWQgcHJvY2Vzc2VzIGluIExpbnV4Ci0KLUNoYW5nZXMgaW4gNC4yCi09PT09PT09PT09PT09PQotKiBDb21waWxlcyBvbiBnbGliYzIuMCBzeXN0ZW1zIGFnYWluCi0qIExpbnV4L1MzOTAgcG9ydCBhZGRlZAotKiBUaGUgdXN1YWwgTGludXggc3lzY2FsbCB1cGRhdGVzCi0qIHdlIGNhbiBmb2xsb3cgZm9yayBvbiBhcm0gbm93Ci0KLUNoYW5nZXMgaW4gNC4xCi09PT09PT09PT09PT09PT09Ci0qIExpbnV4L01JUFMgcG9ydCBhZGRlZAotKiBMb3RzIG9mIExpbnV4IHVwZGF0ZXMgYWdhaW4KLSogSW1wcm92ZWQgSVB2NiBzdXBwb3J0Ci0qIEFkZCBzdHJhY2UtZ3JhcGgKLQotQ2hhbmdlcyBpbiA0LjAuMQotPT09PT09PT09PT09PT09PQotKiBNaW5vciBidWdmaXhlcwotKiBDb21waWxlcyBvbiBnbGliYzIuMCBzeXN0ZW1zIGFnYWluCi0KLUNoYW5nZXMgaW4gNC4wCi09PT09PT09PT09PT09PQotKiBHZXQgc3RhdCBzdHJ1Y3R1cmUgcHJvcGVybHkgb24gTGludXggNjRiaXQgYXJjaHMKLSogUGVyc29uYWxpdGllcyB3b3JrIGFnYWluCi0qIENvbXBpbGUgY29ycmVjdGx5IG9uIFN1bk9TIGFnYWluCi0qIElSSVg2NCB1cGRhdGVzCi0qIFNvbGFyaXMgdXBkYXRlcwotCi1DaGFuZ2VzIGluIDMuOTkuMQotPT09PT09PT09PT09PT09PT0KLSogTGludXggKHVsdHJhKXNwYXJjIGZpeGVzCi0qIExpbnV4IGFscGhhIGZpeGVzCi0qIE1pbm9yIGNsZWFudXBzCi0KLUNoYW5nZXMgaW4gMy45OQotPT09PT09PT09PT09PT09Ci0qIE5ldyBtYWludGFpbmVyCi0qIGFkZCBzdXBwb3J0IGZvciBtb3JlIExpbnV4IGFyY2hpdGVjdHVyZXMgKHBvd2VycGMsIHNwYXJjLCBhcm0pCi0qIHN1cHBvcnQgbG90cyBtb3JlIExpbnV4IHN5c2NhbGxzCi0qIGZpeCBzaWduYWwgaGFuZGxpbmcKLSogYWRkIElQWCBhbmQgSVBJUCBzdXBwb3J0Ci0qIGNoZWNrIHN0cmF5IHN5c2NhbGwgYWZ0ZXIgZXhlY3YKLSogZml4IGhhbmdpbmcgY2hpbGRyZW4KLQotQ2hhbmdlcyBpbiB2ZXJzaW9uIDMuMQotPT09PT09PT09PT09PT09PT09PT09PQotCi0qIElyaXg1IGlzIHN1cHBvcnRlZAotKiBMaW51eCA2OGsgaXMgc3VwcG9ydGVkCi0qIExpbnV4IGFscGhhIGlzIHN1cHBvcnRlZAotKiBjb25maWd1cmUgaXMgdXBncmFkZWQgdG8gYXV0b2NvbmYgMi54Ci0qIHVzaW5nIC1mIGluIGNvbWJpbmF0aW9uIHdpdGggLWUgbm93IHdvcmtzIGNvcnJlY3RseQotKiBvdXRwdXQgY2FuIGJlIHBpcGVkIHRvIGEgcHJvZ3JhbQotKiB0cmFjaW5nIHNldHVpZCBwcm9ncmFtcyB3b3JrcyBiZXR0ZXIKLSogaXQgaXMgbm93IHJlYXNvbmFibGUgdG8gaW5zdGFsbCBzdHJhY2Ugc2V0dWlkIHRvIHJvb3QgaW4gc29tZSBjaXJjdW1zdGFuY2VzCi0qIG5ldyB1c2VmdWwgdHJhY2luZyBuYW1lcyBsaWtlIGZpbGUgYW5kIHByb2Nlc3MgdG8gdHJhY2Ugd2hvbGUKLSAgY2xhc3NlcyBvZiBzeXN0ZW0gY2FsbHMsIGUuZy4gLWVmaWxlIHRyYWNlcyBhbGwgc3lzdGVtIGNhbGxzIHRoYXQKLSAgdGFrZSBhIGZpbGUgbmFtZSBhcyBhbiBhcmd1bWVudAotKiBJUEMgY2FsbHMgb24gU3VuT1MgNC4xLnggYXJlIGRlY29kZWQKLSogTGludXggcHJvZ3JhbSBtZW1vcnkgaXMgcmVsaWFibHkgZGVyZWZlcmVuY2VkCi0qIExpbnV4IGRlY29kZXMgYXQgbGVhc3QgdGhlIG5hbWUgb2YgYWxsIHN5c2NhbGxzIGFzIG9mIHByZTIuMC40Ci0qIHZhcmlvdXMgY29zbWV0aWMgY2hhbmdlcyBhbmQgYnVnIGZpeGVzCi0KLUNoYW5nZXMgZnJvbSB2ZXJzaW9ucyAyLnggdG8gdmVyc2lvbiAzLjAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotKiBmaWxlbmFtZSBhcmd1bWVudHMgYXJlIG5laXRoZXIgYWJicmV2aWF0ZWQgbm9yIHN0cmluZ2lmaWVkCi0qIHN0cmluZyBhcmd1bWVudHMgYXJlIG5vdyB0cnVlIEMgc3RyaW5ncyB1c2luZyBvY3RhbCBpbnN0ZWFkIG9mIGhleCBieSBkZWZhdWx0Ci0qIHByZXByb2Nlc3NvciBjb25zdGFudHMgYXJlIG5ldmVyIHNob3J0ZW5lZCAoZS5nLiB3YXMgUkRPTkxZID0+IG5vdyBPX1JET05MWSkKLSogYnkgZGVmYXVsdCB0aGUgb3V0cHV0IGZvciBtdWx0aXBsZSBwcm9jZXNzZXMgbm93IGdvZXMgaW50byBvbmUgZmlsZQotKiBhbGwgc3RydWN0dXJlcywgdmVjdG9ycywgYml0c2V0cywgZXRjLiB1c2UgY29uc2lzdGVudCBvdXRwdXQgZm9ybWF0cwotKiB0aGUgLWMgb3B0aW9uIG5vdyBtZWFucyBjb3VudCBjYWxscywgLWkgZG9lcyB3aGF0IHRoZSBvbGQgLWMgdXNlZCB0byBkbwotCi1OZXcgRmVhdHVyZXMgaW4gdmVyc2lvbiAzLjAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0qIG5vbi1hc2NpaSBzdHJpbmdzIGNhbiBiZSBvcHRpb25hbGx5IHByaW50ZWQgZW50aXJlbHkgaW4gaGV4Ci0qIHRoZSBvdXRwdXQgZm9ybWF0IGlzIHJlYWRhYmxlIHdoZW4gbXV0aXBsZSBwcm9jZXNzZXMgYXJlIGdlbmVyYXRpbmcgb3V0cHV0Ci0qIGV4aXQgdmFsdWVzIGFyZSBwcmludGVkIGluIGFuIGFsaWdubWVudCBjb2x1bW4KLSogaXMgaXMgcG9zc2libGUgdG8gc3VwcHJlc3MgbWVzc2FnZXMgYWJvdXQgYXR0YWNoaW5nIGFuZCBkZXRhY2hpbmcKLSogdmFyaW91cyB0cmFjaW5nIGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9uIGEgcGVyIHN5c2NhbGwvc2lnbmFsL2Rlc2MgYmFzaXMKLSogc2VsZWN0aXZlIHRyYWNpbmcgb2Ygc3lzY2FsbHMKLSogc2VsZWN0aXZlIHByaW50aW5nIG9mIHN5c2NhbGwgc3RydWN0dXJlcwotKiBzZWxlY3RpdmUgYWJicmV2aWF0aW9uIG9mIGxvbmcgc3RydWN0dXJlcyBvbiBhIHBlciBzeXNjYWxsIGJhc2lzCi0qIHNlbGVjdGl2ZSBwcmludGluZyBvZiByYXcgc3lzY2FsbCBhcmd1bWVudHMgYW5kIHJlc3VsdHMKLSogc2VsZWN0aXZlIHRyYWNpbmcgb2Ygc2lnbmFscwotKiBzZWxlY3RpdmUgZHVtcGluZyBvZiBhbGwgSS9PIHJlYWQgZnJvbSBmaWxlIGRlc2NyaXB0b3JzCi0qIHNlbGVjdGl2ZSBkdW1waW5nIG9mIGFsbCBJL08gd3JpdHRlbiB0byBmaWxlIGRlc2NyaXB0b3JzCi0qIG9wdGlvbmFsIGNvdW50aW5nIG9mIHRpbWUsIGNhbGxzLCBhbmQgZXJyb3JzIGZvciBlYWNoIHN5c2NhbGwKZGlmZiAtLWdpdCBhL1BPUlRJTkcgYi9QT1JUSU5HCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWY0Y2U0Li4wMDAwMDAwCi0tLSBhL1BPUlRJTkcKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi1JIGFtIGZyZXF1ZW50bHkgYXNrZWQgdG8gcG9ydCBzdHJhY2UgdG8gYSBnaXZlbiBwbGF0Zm9ybS4gIExlc3MKLWZyZXF1ZW50bHkgSSBhbSBhc2tlZCBob3cgb25lIHdvdWxkIGdvIGFib3V0IHBvcnRpbmcgc3RyYWNlIHRvIGEgZ2l2ZW4KLXBsYXRmb3JtLiA6LSkgU2luY2UgSSBoYXZlIHBvcnRlZCBzdHJhY2UgdG8gYSBmZXcgcGxhdGZvcm1zIGFscmVhZHkgSQotaGF2ZSBzb21lIGFkdmljZSB0byB0aGUgd291bGQtYmUgc3RyYWNlIHBvcnRlci4KLQotVGhlIG51bWJlciBvbmUgcXVlc3Rpb24gaXMgYGBEb2VzIHRoZSBuYXRpdmUgb3BlcmF0aW5nIHN1cHBvcnQgYQotY29uY2VwdCB3aGljaCBlbmFibGVzIGV2ZW4gdGhlIG1lcmUgcG9zc2liaWxpdHkgb2YgdHJhY2luZz8nJy4gIFNvIGZhcgotSSBoYXZlIHNlZW4gdHdvIG1lY2hhbmlzbXMgd2hpY2ggc3VwcG9ydCBzeXN0ZW0gY2FsbCB0cmFjaW5nLiAgVGhleQotYXJlIHRoZSBTdW5PUyBvcmlnaW5hdGVkIGZlYXR1cmUgb2YgdGhlIFBUUkFDRV9TWVNDQUxMIGFyZ3VtZW50IHRvIHRoZQotcHRyYWNlIHN5c3RlbSBjYWxsIGFuZCB0aGUgUElPQ1NFTlRSWS9QSU9DU0VYSVQgaW9jdGwgZm9yIHRoZSAvcHJvYwotZmlsZXN5c3RlbSB1bmRlciBTeXN0ZW0gViByZWxlYXNlIDQgc3R5bGUgVW5peCBkZXJpdmVkIHN5c3RlbXMuICBUaGVyZQotbWF5IGJlIG90aGVycyAoc3VyZWx5IGEgYmV0dGVyIG9uZSBjb3VsZCBiZSBkZXZpc2VkIDotKSBidXQgaW5ub3ZhdGlvbgotaXMgYSByYXJlIGNvbW1vZGl0eSBzbyB1bmxlc3Mgb25lIG9mIHRoZXNlIGlzIHN1cHBvcnRlZCB5b3UgbWF5IGJlCi1TT0wuCi0KLVRoZXJlZm9yZSB0aGUgZmlyc3Qgc3RlcCBpcyB0byB0cnkgYG1hbiAyIHB0cmFjZScgYW5kIGBtYW4gNCBwcm9jJyB0bwotc2VlIGlmIHRoZXJlIGlzIGV2ZW4gYSBnbGltbWVyIG9mIGhvcGUuICBXaXRob3V0IGFzc2lzdGFuY2UgZnJvbSB0aGUKLW9wZXJhdGluZyBzeXN0ZW0sIHN5c3RlbSBjYWxsIHRyYWNpbmcgaXMgYSBsb3N0IGNhdXNlLiAgSWYgdGhlcmUgaXMgYQotbmF0aXZlIHN5c3RlbSBjYWxsIHRyYWNpbmcgcHJvZ3JhbSAoaG93ZXZlciBwYXRoZXRpYyBpdCBtaWdodCBiZSA6LSksCi15b3UgbWF5IGJlIGFibGUgdG8gdXNlIGl0IHRvIHRyYWNlIGl0c2VsZiB0byBkZXRlcm1pbmUgd2hhdCBtZWNoYW5pc20KLWl0IGlzIHVzaW5nIGZvciB0cmFjaW5nIHRoZSBzeXN0ZW0gY2FsbHMgb2YgYW5vdGhlciBwcm9jZXNzLiAgSWYgdGhlCi1pbnRlcmZhY2UgaXMgZG9jdW1lbnRlZCB5b3Ugc2hvdWxkIGJlIGEgaGFwcHkgY2FtcGVyLiAgT3RoZXJ3aXNlLAotdW5sZXNzIHlvdSBjYW4gdG9sZXJhdGUgdGhlIHRob3VnaHQgb2YgbWFueSB0aGFua2xlc3MgaG91cnMKLXNpbmdsZS1zdGVwcGluZyBpbiBhIGRlYnVnZ2VyIHdpdGggbGl0dGxlIG9yIG5vdGhpbmcgdG8gc2hvdyBmb3IgaXQsCi15b3Ugc2hvdWxkIGNvbnNpZGVyIG90aGVyIHRhc2tzIHRvIGRpc3RyYWN0IHlvdSBmcm9tIHlvdXIgZnJpZW5kcywKLWZhbWlseSwgZWR1Y2F0aW9uLCBqb2IsIHNwb3VzZSBhbmQvb3Igc2lnbmlmaWNhbnQgb3RoZXIuCi0KLUlmIHlvdSBoYXZlIGFycml2ZWQgaGVyZSwgeW91ciBPUyBzaG91bGQgaGF2ZSBwdHJhY2Ugb3IgcHJvYyBvciB5b3UKLXNob3VsZCBoYXZlIGEgaGlnaCB0b2xlcmFuY2UgZm9yIHBhaW4uICBUaGVuIGFnYWluLCBjdXJpb3VzIGJ1dAotZGV0YWNoZWQgcmVhZGVycyBhcmUgaW52aXRlZCB0byBjb250aW51ZSB3aXRoIGxpdHRsZSB0byByaXNrIGJ1dAotYm9yZWRvbS4gIElmIHRoZSBtZWNoYW5pc20gaXMgbmVpdGhlciBwdHJhY2Ugbm9yIHByb2MgdGhlbiBleGFtaW5lIGhvdwotaXQgaXMgaW50ZW5kZWQgdG8gd29yayBhbmQgc2VlIGhvdyB3ZWxsIGl0IGZpdHMgd2l0aCB3aGF0IHN0cmFjZQotYWxyZWFkeSBkb2VzLiAgSWYgaXQgZml0cywgZmluZSwgYWRkIGEgZmV3IG1vcmUgaWZkZWZzLiAgSWYgdGhlcmUgaXMgYQotZ3Jvc3MgbWlzbWF0Y2gsIHdyaXRlIGEgd2hvbGUgbmV3IGV2ZW50IGxvb3AuCi0KLUF0IHRoaXMgcG9pbnQgeW91IGFyZSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhyZWUgdGhpbmdzOiBob3cgaXMKLXRoZSBzcGVjaWZpYyBzeXN0ZW0gY2FsbCBjb21tdW5pY2F0ZWQsIGhvdyBhcmUgc3lzdGVtIGNhbGwgYXJndW1lbnRzCi1oYW5kbGVkLCBhbmQgaG93IGlzIGVycm5vIGhhbmRsZWQuICBUaGVzZSB0aGluZ3MgY2FuIHVzdWFsbHkgYmUKLXJlc29sdmVkIGluIGEgZGF5IG9yIHR3byB1c2luZyBhIGRlY2VudCBhc3NlbWJseSBsZXZlbCBkZWJ1Z2dlciBhbmQKLXNvbWUgZWR1Y2F0ZWQgZ3Vlc3N3b3JrLiAgRm9yIGV4YW1wbGUsIHNldCBhIGJyZWFrcG9pbnQgb24gYHJlYWQnLgotVGhlbiBkaXNhc3NlbWJsZSB0aGUgY29kZSBhbmQgc2VlIHdoZXJlIHRoZSBhcmd1bWVudHMgZ28uICBEbyB0aGV5IGdvCi1vbiB0aGUgc3RhY2s/ICBEbyB0aGV5IGdvIGludG8gcmVnaXN0ZXJzPyAgU29tZSBjb21iaW5hdGlvbiBvZiB0aGUKLXR3bz8gIEZpbmQgdGhlIHBvaW50IHdoZXJlIHRoZSB0cmFuc2l0aW9uIGZyb20gdXNlciBtb2RlIHRvIGtlcm5lbAotbW9kZSBpcyBtYWRlLiAgQ2FuIHlvdSBpZGVudGlmeSB0aGUgYXJndW1lbnRzIGF0IHRoaXMgcG9pbnQ/ICBXaGVuIHRoZQotY2FsbCByZXR1cm5zIHdoZXJlIGRvZXMgZXJybm8gZ28/ICBJbnRvIGEgc3BlY2lmaWMgcmVnaXN0ZXI/ICBJbnRvIGEKLWdsb2JhbCB2YXJpYWJsZT8KLQotTmV4dCB5b3UgbmVlZCB0byBkZXRlcm1pbmUgaG93IHRvIGRlY29kZSBudW1lcmljIHN5c3RlbSBjYWxsIG51bWJlcnMKLWludG8gc3lzdGVtIGNhbGwgbmFtZXMgKHN5c2NhbGxlbnQuaCksIGVycm5vIHZhbHVlcyBpbnRvIGVycm5vIG5hbWVzCi0oZXJybm9lbnQuaCkgYW5kIGlvY3RsIHZhbHVlcyBpbnRvIGlvY3RsIG5hbWVzIChpb2N0bGVudC5oKS4gIE9mdGVuCi10aGlzIGZyYWdpbGUgc3RlcCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1hc3NhZ2luZyBzeXN0ZW0gaGVhZGVyIGZpbGVzCi13aXRoIGFkIGhvYyBzaGVsbCBzY3JpcHRzLiAgRXhwZWN0IHlvdXIgc2NyaXB0cyB0byBicmVhayB3aXRoIGV2ZXJ5Ci1kb3QgcmV2IG9mIGVhY2ggT1MgcmVsZWFzZS4KLQotRmluYWxseSwgb25jZSB5b3UgaGF2ZSB0aGUgYmFzaWMgZnJhbWV3b3JrIGluIHdoaWNoIHN5c3RlbSBjYWxscyBhbmQKLXRoZWlyIGFyZ3VtZW50cyBjYW4gYmUgZGVjb2RlZCwgeW91IG11c3QgZG8gdGhlIGRpcnR5IHdvcmsgb2YgZGVjb2RpbmcKLWV2ZXJ5IHVzZWZ1bCBjYWxsLiAgU29tZSBtYXkgYmUgc2ltaWxhciBvciBpZGVudGljYWwgdG8gbGlrZS1uYW1lZAotY2FsbHMgaW4gb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMuICBHbyBhaGVhZCBhbmQgdHdlYWsgd2hhdCBpcyB0aGVyZQotdG8gYWNoaWV2ZSB3aGF0IHlvdSB3YW50LiAgSWYgdGhlcmUgaXMgbW9yZSBkaWZmZXJlbmNlIHRoYW4gc2ltaWxhcml0eSwKLXRoZW4ganVzdCB3cml0ZSB5b3VyIG93biB2ZXJzaW9uIG9mIGl0IHVzaW5nIG9uZSBvZiB0aGUgZXhpc3RpbmcKLWltcGxlbWVudGF0aW9ucyBmb3IgaWRlYXMuCi0KLVRoZSBmaXJzdCBvcmRlciBvZiBkZWNvZGluZyBpcyB0aGUgZ2VuZXJhdGlvbiBvZiBzdWl0YWJsZSBzeXN0ZW0gY2FsbCwKLWVycm5vLCBpb2N0bCBhbmQgc2lnbmFsIHRhYmxlcy4gIFNhbXBsZSBzY3JpcHRzIGFyZSBpbmNsdWRlZCB0byBhc3Npc3QKLXdpdGggdGhlIGdlbmVyYXRpb24gb2YgYSBmaXJzdCBwYXNzIGF0IHRoZXNlIHRhYmxlcy4KLQotR29vZCBsdWNrIGFuZCBmZWVsIGZyZWUgdG8gY29udGFjdCBtZSBiZWZvcmUgYW5kL29yIGR1cmluZyBhbnkgbWFqb3IKLXByb2plY3QuCi0KLVJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxNGNlZGUuLjAwMDAwMDAKLS0tIGEvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGhpcyBpcyBzdHJhY2UgNC4wLCBhIHN5c3RlbSBjYWxsIHRyYWNlciBmb3IgU3VuT1MgNC54LCBMaW51eCwgU3lzdGVtCi1WIHJlbGVhc2UgNCwgU29sYXJpcyAyLnggYW5kIElyaXggNS54LiAgc3RyYWNlIGlzIHJlbGVhc2VkIHVuZGVyIGEKLUJlcmtlbGV5LXN0eWxlIGxpY2Vuc2UgYXQgdGhlIHJlcXVlc3Qgb2YgUGF1bCBLcmFuZW5idXJnOyBzZWUgdGhlIGZpbGUKLUNPUFlSSUdIVCBmb3IgZGV0YWlscy4KLQotUmVhZCB0aGUgSU5TVEFMTCBmaWxlIGZvciBnZW5lcmljIGluc3RydWN0aW9ucyBvbiBob3cgdG8gaW5zdGFsbAotc3RyYWNlLiAgSWYgY29uZmlndXJlIGNhbm5vdCBndWVzcyB5b3VyIHN5c3RlbSBjb25maWd1cmF0aW9uLCB5b3UgY2FuCi1zcGVjaWZ5IGl0IG9uIHRoZSBjb21tYW5kIGxpbmUgYWZ0ZXIgdGhlIG90aGVyIG9wdGlvbnMgbGlrZSB0aGlzOgotCi0JLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBpNDg2LWxpbnV4Ci0KLUEgc2luZ2xlIHN1bm9zNC4xIGJpbmFyeSBzaG91bGQgd29yayBvbiBhbGwgdGhlIHN1bjQsIHN1bjRjIGFuZCBzdW40bQota2VybmVsIGFyY2hpdGVjdHVyZXMuICBMZXQgbWUga25vdyBpZiBzdW40ZCBkb2Vzbid0IHdvcmsuICBPdGhlcgotaTQ4Ni0qLXN5c3Y0IHN5c3RlbXMgbWF5IHdvcmsgd2l0aCBsaXR0bGUgb3Igbm8gdHdlYWtpbmcuCi0KLVNlZSB0aGUgZmlsZSBORVdTIGZvciBpbmZvcm1hdGlvbiBvbiB3aGF0IGhhcyBjaGFuZ2VkIGluIHJlY2VudAotdmVyc2lvbnMuCi0KLVNlZSB0aGUgZmlsZSBQT1JUSU5HIGlmIHlvdSBsaWtlIHN0cmFjZSBidXQgaXQgZG9lc24ndCB3b3JrIG9uIGFuCi1vcGVyYXRpbmcgc3lzdGVtIHlvdSB1c2UgZnJlcXVlbnRseS4KLQotU2VlIHRoZSBmaWxlIENSRURJVFMgdG8gc2VlIHdobyBoYXMgY29udHJpYnV0ZWQgdG8gc3RyYWNlLgotCi1TZWUgdGhlIGZpbGUgVE9ETyBpZiB5b3UgZmVlbCBsaWtlIGhlbHBpbmcgb3V0LgotCi1Zb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygc3RyYWNlIGZyb20gaXRzIGhvbWVwYWdlIGF0Ci1odHRwOi8vd3d3LmxpYWNzLm5sL353aWNoZXJ0L3N0cmFjZS8gLgotCi1QbGVhc2Ugc2VuZCBidWcgcmVwb3J0cyBhbmQgZW5oYW5jZW1lbnRzIHRvIHRoZSBzdHJhY2UKLW1haWxpbmdsaXN0IGF0IHN0cmFjZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQsIG9yIGRpcmVjdGx5IHRvCi1XaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCmRpZmYgLS1naXQgYS9SRUFETUUtQW5kcm9pZCBiL1JFQURNRS1BbmRyb2lkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTNhM2MxLi4wMDAwMDAwCi0tLSBhL1JFQURNRS1BbmRyb2lkCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotU3RlcHMgdG8gYnVpbGQgZnJvbSBvcmlnaW5hbCBzb3VyY2U6Ci0KLTEpIGFwcGx5IGFybS1lYWJpLnBhdGNoIGZyb20gRGViaWFuIGJ1ZyB0cmFja2VyCi0KLTIpIHJ1biBjb25maWd1cmUgYXMgZm9sbG93cwotLi9jb25maWd1cmUgQ0ZMQUdTPS1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gLi9jb25maWd1cmUgIC0tcHJlZml4PS9kYXRhLyAtLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudQotCi0obm90ZSB0aGlzIHVzZXMgdGhlIGRlc2t0b3AgZ2NjIGFuZCBnbGliYyBoZWFkZXJzKQotCi0zKSBGdXJ0aGVyIG1vZGlmaWNhdGlvbnMgYXMgY2hhbmdlIGhpc3Rvcnkgd2lsbCBzaG93Ci0KZGlmZiAtLWdpdCBhL1JFQURNRS1saW51eCBiL1JFQURNRS1saW51eApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJmOTc3OS4uMDAwMDAwMAotLS0gYS9SRUFETUUtbGludXgKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0KLVN0cmFjZSBoYXMgYmVlbiBwb3J0ZWQgYnkgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci10byBydW4gb24gTGludXggc3lzdGVtcy4gIFNpbmNlIHRoZW4gaXQgaGFzIGJlZW4gZ3JlYXRseSBtb2RpZmllZAotYnkgdmFyaW91cyBvdGhlciBwZW9wbGUuCi0KLUlmIHlvdSB3YW50IHRvIGNvbXBpbGUgc3RyYWNlIG9uIGEgTGludXggc3lzdGVtIHBsZWFzZSBtYWtlIHN1cmUgdGhhdAoteW91IHVzZSByZWNlbnQga2VybmVsIGhlYWRlcnMuIFN0cmFjZSBuZWVkcyB0aG9zZSB0byBnZXQgdGhlIHByb3BlciBkYXRhCi1zdHJ1Y3R1cmVzIGFuZCBjb25zdGF0bnMgdXNlZCBieSB0aGUga2VybmVsLCBzaW5jZSB0aGVzZSBjYW4gYmUKLWRpZmZlcmVudCBmcm9tIHRoZSBzdHJ1Y3R1cmVzIHRoYXQgdGhlIEMgbGlicmFyeSB1c2VzLiBDdXJyZW50bHkgeW91Ci13aWxsIG5lZWQgYXQgbGVhc3QgYSAyLjIuNyBvciBuZXdlciBrZXJuZWwuIAotCi1UbyBjb21wbGljYXRlIHRoaW5ncyBhIGJpdCBmdXJ0aGVyIHN0cmFjZSBtaWdodCBub3QgY29tcGlsZSBpZiB5b3UgYXJlCi11c2luZyBkZXZlbG9wbWVudCBrZXJuZWxzLiBUaGVzZSB0ZW5kIHRvIGhhdmUgaGVhZGVycyB0aGF0IGNvbmZsaWN0IHdpdGgKLXRoZSBoZWFkZXJzIGZyb20gbGliYyB3aGljaCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSB0aGVtLgotCi1UaGVyZSBhcmUgdGhyZWUgd2F5cyB0byBjb21waWxlIHN0cmFjZSB3aXRoIG90aGVyIGtlcm5lbCBoZWFkZXJzOgotKiBTcGVjaWZ5IHRoZSBsb2NhdGlvbiBpbiBDRkxBR1Mgd2hlbiBydW5uaW5nIGNvbmZpZ3VyZQotCi0gICAgIENGTEFHUz0tSS91c3Ivc3JjL2xpbnV4L2luY2x1ZGUgLi9jb25maWd1cmUKLQotKiB5b3UgY2FuIHRlbGwgbWFrZSB3aGVyZSB5b3VyIGtlcm5lbCBzb3VyY2VzIGFyZS4gRm9yIGV4YW1wbGUgaWYgeW91Ci0gIGhhdmUgeW91ciBrZXJuZWxzb3VyY2UgaW4gL3Vzci9zcmMvbGludXgsIHlvdSBjYW4gaW52b2tlIG1ha2UgbGlrZQotICB0aGlzOgotCi0gICAgIG1ha2UgQ0ZMQUdTPSJcJENGTEFHUyAtSS91c3Ivc3JjL2xpbnV4L2luY2x1ZGUiCi0KLSAgKHRoZSBleHRyYSBcJENGTEFHUyBpcyB0aGVyZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgYW55IENGTEFHUwotICBzZXR0aW5ncyB0aGF0IGNvbmZpZ3VyZSBoYXMgZm91bmQpLgotCi0qIHlvdSBjYW4gbGluayAvdXNyL2luY2x1ZGUvbGludXggYW5kIC91c3IvaW5jbHVkZS9hc20gdG8gdGhlCi0gIGNvcnJlc3BvbmRpbmcgZGlyZWN0b3JpZXMgaW4geW91ciBrZXJuZWwgc291cmNlLXRyZWUuCi0KZGlmZiAtLWdpdCBhL1RPRE8gYi9UT0RPCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDZhOGU4Li4wMDAwMDAwCi0tLSBhL1RPRE8KKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0tLSBuZXcgZW50cmllcyBmcm9tIHd0YQotKiBjbG9uZSBkb2Vzbid0IHdvcms7IGNsb25lZCBwcm9jZXNzZXMgY2FuIGhhbmcKLSogcGFydGlhbGx5IGRvbmU6IGZpbmlzaCB1cCBjaGFuZ2Vfc3lzY2FsbCB1c2luZyBuZXcgc2V0YXJncwotKiBkbyBzZXRhcmdzIGZvciBub24taWE2NAotKiBnZW5lcmF0ZSBzeXNjYWxsZW50LmggZnJvbSB0aGUga2VybmVsIHNvdXJjZXMgKGFzbS91bmlzdGQuaCkKLSogdXBkYXRlIGxpbnV4L3NwYXJjIHN5c2NhbGwgZW50cmllczsgTGludXggbWVzc2VkIHRoaW5ncyB1cCBieSBvdmVycmlkaW5nCi0gIGFsbCBraW5kcyBvZiBTdW5PUyBlbnRyaWVzCi0qIHN5bmNocm9uaXplIGxpbnV4LyoqL3N5c2NhbGxlbnQuaCwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYSBzeXNjYWwgaXNuJ3QKLSAgY29uc2lzdGVudCBhY3Jvc3MgZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMKLQotLS0gb2xkIGVudHJpZXMgZnJvbSBqcnMKLWF0dGVtcHQgcmVvcGVuIG9mIC9wcm9jIGZpbGUgaWYgd2UgZ2V0IEVBR0FJTiBmcm9tIGFueSAvcHJvYyBpb2N0bAota2lsbCBwcm9jcyB3ZSBlcnJvciBvdXQgb2Ygb24gc3ZyNAotZW5jbG9zZSAidG90YWwgeCBkZW50cyIgaW4gYSBjb21tZW50Ci1kZWNsYXJlIGdldHRpbWVvZmRheSBhbmQgcHJlYWQgZm9yIHNvbGFyaXMyCi11cGRhdGUgYXV0b21hdGljIHJlbWFraW5nIG9mIGF1dG9jb25mIHRhcmdldHMKLUkgZG9uJ3QgbGlrZSBydW4gb24gbGFzdCBjbG9zZSwgY2hhbmdlIGl0PwotcGFyc2UgbG9uZyBvcHRpb25zPwotY291bnQgc2lnbmFscyB0b28gd2l0aCAtYwotdHJlYXQgYXR0YWNoLCBkZXRhY2ggbWVzc2FnZXMgbGlrZSBzaWduYWxzCi1hZGQgcHJlYWQsIHB3cml0ZSB0byBJL08gZHVtcGluZwotYWRkIHN5c3RlbSBhc3Npc3QgZm9yIHF1YWxpZmllcnMgb24gc3ZyNAotY2hhbmdlIHByaW50Y2FsbCB0byBnZXRjYWxsZXIgYW5kIGZpeCBmb3IgbGludXggYW5kIHN2cjQKLWZpeCBmb3JrIGhhbmcgZm9yIHN2cjQgd2l0aG91dCBwb2xsYWJsZSBwcm9jZnMKLXByaW50IGV2ZW50cyBvbiBlbnRyeSB0byBhbmQgcmV2ZW50cyBvbiBleGl0IGZyb20gcG9sbAotbW9uaXRvciBwcm9jZnMgb3BlbiBhbmQgcmVsZWFzZSB0aGUgb3RoZXIgY2hpbGQgaWYgdGhlIHByb2Nlc3Mgd2FudHMgdG8gb3duIGl0Ci1maXggaW5jb3JyZWN0IHN5c2NhbGwgbnVtYmVyIGlmIGV4aXQgd2l0aG91dCBlbnRyeSBvbiBzdnI0IHdpdGhvdXQgcHJfc3lzY2FsbAotZml4IGNsZWFuIHRhcmdldHMgc28gY29uZmlnLmggYW5kIGNvbmZpZy5zdGF0dXMgY2FuIGJlIHJlbW92ZWQKLWlnbm9yZSBmYXVsdHMgd2hpY2ggb2NjdXIgYmVmb3JlIGV4ZWMKLWxvb2sgZm9yIG1vcmUgaW9jdGxzIG9uIHNvbGFyaXMsIHVzZWQgaW4gbnNsb29rdXAgZm9yIGV4YW1wbGUKLWNvbnNpZGVyIGFkZGluZyBiYWNrdHJhY2Ugc3VwcG9ydAotY29uc2lkZXIgYWRkaW5nIGdlbmVyYWwgcHVycG9zZSBpbnRlcnByZXRlcgpkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlLm00IGIvYWNpbmNsdWRlLm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBjYTA5Li4wMDAwMDAwCi0tLSBhL2FjaW5jbHVkZS5tNAorKysgL2Rldi9udWxsCkBAIC0xLDI4MSArMCwwIEBACi1kbmwKLWRubCBUaGlzIGZpbGUgY29udGFpbnMgbWFjcm9zIHVzZWQgaW4gY29uZmlndXJlLmFjLgotZG5sIGF1dG9tYWtlIHVzZXMgdGhpcyBmaWxlIHRvIGdlbmVyYXRlIGFjbG9jYWwubTQsIHdoaWNoIGlzIHVzZWQgYnkgYXV0b2NvbmYuCi1kbmwKLQotZG5sICMjIyBBIG1hY3JvIHRvIGZpbmQgdGhlIGluY2x1ZGUgZGlyZWN0b3J5LCB1c2VmdWwgZm9yIGNyb3NzLWNvbXBpbGluZy4KLUFDX0RFRlVOKFtBQ19JTkNMVURFRElSXSwKLVtBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi1BQ19TVUJTVChpbmNsdWRlZGlyKQotQUNfTVNHX0NIRUNLSU5HKGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5KQotaW5jbHVkZWRpcj0vdXNyL2luY2x1ZGUKLWlmIHRlc3QgLW4gIiRHQ0MiCi10aGVuCi0JPmNvbmZ0ZXN0LmMKLQluZXdfaW5jbHVkZWRpcj1gCi0JCSRDQyAtdiAtRSBjb25mdGVzdC5jIDI+JjEgfCAkQVdLICcKLQkJCS9eRW5kIG9mIHNlYXJjaCBsaXN0LyB7IHByaW50IGxhc3Q7IGV4aXQgfQotCQkJeyBsYXN0ID0gWyRdMSB9Ci0JCScKLQlgCi0Jcm0gLWYgY29uZnRlc3QuYwotCWlmIHRlc3QgLW4gIiRuZXdfaW5jbHVkZWRpciIgJiYgdGVzdCAtZCAiJG5ld19pbmNsdWRlZGlyIgotCXRoZW4KLQkJaW5jbHVkZWRpcj0kbmV3X2luY2x1ZGVkaXIKLQlmaQotZmkKLUFDX01TR19SRVNVTFQoJGluY2x1ZGVkaXIpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gc2V0IGdjYyB3YXJuaW5nIGZsYWdzLgotZGVmaW5lKEFDX1dBUk5GTEFHUywKLVtBQ19TVUJTVChXQVJORkxBR1MpCi1pZiB0ZXN0IC16ICIkV0FSTkZMQUdTIgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIElmIHdlJ3JlIHVzaW5nIGdjYyB3ZSB3YW50IHdhcm5pbmcgZmxhZ3MuCi0JCVdBUk5GTEFHUz0tV2FsbAotCWZpCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB3ZSBoYXZlIGEgIk1QIiB0eXBlIHByb2NmcwotQUNfREVGVU4oW0FDX01QX1BST0NGU10sCi1bQUNfTVNHX0NIRUNLSU5HKGZvciBNUCBwcm9jZnMpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfbXBfcHJvY2ZzLAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci0KLW1haW4oKQotewotCWludCBwaWQ7Ci0JY2hhciBwcm9jWzMyXTsKLQlGSUxFICpjdGw7Ci0JRklMRSAqc3RhdHVzOwotCWludCBjbWQ7Ci0Jc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKLQotCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7Ci0JCXBhdXNlKCk7Ci0JCWV4aXQoMCk7Ci0JfQotCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7Ci0JaWYgKChjdGwgPSBmb3Blbihwcm9jLCAidyIpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0Jc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLQlpZiAoKHN0YXR1cyA9IGZvcGVuIChwcm9jLCAiciIpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0JY21kID0gUENTVE9QOwotCWlmICh3cml0ZSAoZmlsZW5vIChjdGwpLCAmY21kLCBzaXplb2YgY21kKSA8IDApCi0JCWdvdG8gZmFpbDsKLQlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKLQkJZ290byBmYWlsOwotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDApOwotZmFpbDoKLQlraWxsKHBpZCwgU0lHS0lMTCk7Ci0JZXhpdCgxKTsKLX0KLV1dKV0sW2FjX2N2X21wX3Byb2Nmcz15ZXNdLFthY19jdl9tcF9wcm9jZnM9bm9dLFsKLSMgR3Vlc3Mgb3IgcHVudC4KLWNhc2UgIiRob3N0X29zIiBpbgotc3ZyNC4yKnxzdnI1KikKLQlhY19jdl9tcF9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfbXBfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X21wX3Byb2NmcykKLWlmIHRlc3QgIiRhY19jdl9tcF9wcm9jZnMiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX01QX1BST0NGU10sIDEsCi1bRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4KLUkuRS4gL2Rldi94eHgvY3RsLCAvZGV2L3h4eC9zdGF0dXMuCi1BbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy5dKQotZmkKLV0pCi0KLWRubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgcHJvY2ZzIGlzIHBvbGxhYmxlLgotQUNfREVGVU4oW0FDX1BPTExBQkxFX1BST0NGU10sCi1bQUNfTVNHX0NIRUNLSU5HKGZvciBwb2xsYWJsZSBwcm9jZnMpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfcG9sbGFibGVfcHJvY2ZzLAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KLSNpbmNsdWRlIDxwb2xsLmg+Ci0KLSNpZmRlZiBIQVZFX01QX1BST0NGUwotI2RlZmluZSBQSU9DU1RPUAlQQ1NUT1AKLSNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQotI2RlZmluZSBQUk9DCQkiL3Byb2MvJWQvY3RsIgotI2RlZmluZSBQUk9DX01PREUJInciCi1pbnQgSU9DVEwgKGludCBmZCwgaW50IGNtZCwgaW50IGFyZykgewotCXJldHVybiB3cml0ZSAoZmQsICZjbWQsIHNpemVvZiBjbWQpOwotfQotI2Vsc2UKLSNkZWZpbmUgUE9MTFdBTlQJUE9MTFBSSQotI2RlZmluZQlQUk9DCQkiL3Byb2MvJWQiCi0jZGVmaW5lIFBST0NfTU9ERQkicisiCi0jZGVmaW5lIElPQ1RMCQlpb2N0bAotI2VuZGlmCi0KLW1haW4oKQotewotCWludCBwaWQ7Ci0JY2hhciBwcm9jWzMyXTsKLQlGSUxFICpwZnA7Ci0Jc3RydWN0IHBvbGxmZCBwZmQ7Ci0KLQlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgewotCQlwYXVzZSgpOwotCQlleGl0KDApOwotCX0KLQlzcHJpbnRmKHByb2MsIFBST0MsIHBpZCk7Ci0JaWYgKChwZnAgPSBmb3Blbihwcm9jLCBQUk9DX01PREUpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0JaWYgKElPQ1RMKGZpbGVubyhwZnApLCBQSU9DU1RPUCwgTlVMTCkgPCAwKQotCQlnb3RvIGZhaWw7Ci0JcGZkLmZkID0gZmlsZW5vKHBmcCk7Ci0JcGZkLmV2ZW50cyA9IFBPTExXQU5UOwotCWlmIChwb2xsKCZwZmQsIDEsIDApIDwgMCkKLQkJZ290byBmYWlsOwotCWlmICghKHBmZC5yZXZlbnRzICYgUE9MTFdBTlQpKQotCQlnb3RvIGZhaWw7Ci0Ja2lsbChwaWQsIFNJR0tJTEwpOwotCWV4aXQoMCk7Ci1mYWlsOgotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDEpOwotfQotXV0pXSxbYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllc10sW2FjX2N2X3BvbGxhYmxlX3Byb2Nmcz1ub10sWwotIyBHdWVzcyBvciBwdW50LgotY2FzZSAiJGhvc3Rfb3MiIGluCi1zb2xhcmlzMip8aXJpeDUqfHN2cjQuMnV3KnxzdnI1KikKLQlhY19jdl9wb2xsYWJsZV9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X3BvbGxhYmxlX3Byb2NmcykKLWlmIHRlc3QgIiRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX1BPTExBQkxFX1BST0NGU10sIDEsCi1bRGVmaW5lIGlmIHlvdSBoYXZlIFNWUjQgYW5kIHRoZSBwb2xsIHN5c3RlbSBjYWxsIHdvcmtzIG9uIC9wcm9jIGZpbGVzLl0pCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGhhcyBhIHByX3N5c2NhbGwgbWVtYmVyLgotQUNfREVGVU4oW0FDX1NUUlVDVF9QUl9TWVNDQUxMXSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIHByX3N5c2NhbGwgaW4gc3RydWN0IHByc3RhdHVzKQotQUNfQ0FDSEVfVkFMKGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsLAotW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPl1dLCBbWyNpZmRlZiBIQVZFX01QX1BST0NGUwotcHN0YXR1c190IHM7Ci1zLnByX2x3cC5wcl9zeXNjYWxsCi0jZWxzZQotcHJzdGF0dXNfdCBzOwotcy5wcl9zeXNjYWxsCi0jZW5kaWZdXSldLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD15ZXNdLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD1ub10pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsKQotaWYgdGVzdCAiJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9QUl9TWVNDQUxMXSwgMSwKLVtEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuXSkKLWZpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgc3RhdDY0IGlzIGRlZmluZWQuCi1BQ19ERUZVTihbQUNfU1RBVDY0XSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN0YXQ2NCBpbiAoYXNtfHN5cykvc3RhdC5oKQotQUNfQ0FDSEVfVkFMKGFjX2N2X3R5cGVfc3RhdDY0LAotW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWZdXSwgW1tzdHJ1Y3Qgc3RhdDY0IHN0O11dKV0sW2FjX2N2X3R5cGVfc3RhdDY0PXllc10sW2FjX2N2X3R5cGVfc3RhdDY0PW5vXSldKQotQUNfTVNHX1JFU1VMVCgkYWNfY3ZfdHlwZV9zdGF0NjQpCi1pZiB0ZXN0ICIkYWNfY3ZfdHlwZV9zdGF0NjQiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX1NUQVQ2NF0sIDEsCi1bRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC5dKQotZmkKLV0pCi0KLWRubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgb2ZmX3QgaXMgYSBsb25nIGxvbmcKLUFDX0RFRlVOKFtBQ19PRkZfVF9JU19MT05HX0xPTkddLAotW0FDX01TR19DSEVDS0lORyhmb3IgbG9uZyBsb25nIG9mZl90KQotQUNfQ0FDSEVfVkFMKGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90LAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotbWFpbiAoKSB7Ci0JaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotCSAgICBzaXplb2YgKG9mZl90KSA+IHNpemVvZiAobG9uZykpCi0JICAgIHJldHVybiAwOwotCXJldHVybiAxOwotfQotXV0pXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9eWVzXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90KQotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfT0ZGX1RdLCAxLCBbRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLl0pCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcKLUFDX0RFRlVOKFtBQ19STElNX1RfSVNfTE9OR19MT05HXSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxvbmcgbG9uZyBybGltX3QpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90LAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci1tYWluICgpIHsKLQlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotCSAgICBzaXplb2YgKHJsaW1fdCkgPiBzaXplb2YgKGxvbmcpKQotCSAgICByZXR1cm4gMDsKLQlyZXR1cm4gMTsKLX0KLV1dKV0sW2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdD15ZXNdLFthY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi1dKV0pCi1BQ19NU0dfUkVTVUxUKCRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QpCi1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfUkxJTV9UXSwgMSwgW0RlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuXSkKLWZpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIGVuZGlhbm5lc3Mgb2YgbG9uZyBsb25nCi1BQ19ERUZVTihbQUNfTElUVExFX0VORElBTl9MT05HX0xPTkddLAotW0FDX01TR19DSEVDS0lORyhmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZywKLVtBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWwotaW50IG1haW4gKCkgewotCXVuaW9uIHsKLQkJbG9uZyBsb25nIGxsOwotCQlsb25nIGwgWzJdOwotCX0gdTsKLQl1LmxsID0gMHgxMjM0NTY3ODsKLQlpZiAodS5sWzBdID09IDB4MTIzNDU2NzgpCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotXV0pXSxbYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz15ZXNdLFthY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPW5vXSxbIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmcpCi1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZyIgPSB5ZXMKLXRoZW4KLQlBQ19ERUZJTkUoW0hBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkddLCAxLAotW0RlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi5dKQotZmkKLV0pCmRpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVmMzE1OC4uMDAwMDAwMAotLS0gYS9hY2xvY2FsLm00CisrKyAvZGV2L251bGwKQEAgLTEsODkyICswLDAgQEAKLSMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAxLjkuNSAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotIyAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0jIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLQotIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEF1dG9tYWtlIFguWSB0cmFjZXMgdGhpcyBtYWNybyB0byBlbnN1cmUgYWNsb2NhbC5tNCBoYXMgYmVlbgotIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFguWS4KLUFDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwgW2FtX19hcGlfdmVyc2lvbj0iMS45Il0pCi0KLSMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIENhbGwgQU1fQVVUT01BS0VfVkVSU0lPTiBzbyBpdCBjYW4gYmUgdHJhY2VkLgotIyBUaGlzIGZ1bmN0aW9uIGlzIEFDX1JFUVVJUkVkIGJ5IEFDX0lOSVRfQVVUT01BS0UuCi1BQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi0JIFtBTV9BVVRPTUFLRV9WRVJTSU9OKFsxLjkuNV0pXSkKLQotIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotCi0jIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBGb3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRzCi0jICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCi0jIGAkc3JjZGlyJywgYCRzcmNkaXIvLi4nLCBvciBgJHNyY2Rpci8uLi8uLicuCi0jCi0jIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKLSMgdG9vbCBmcm9tIHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChhbmQKLSMgdGhlcmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCi0jIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQotIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhlIHRvcAotIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKLSMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KLSMKLSMgJGFjX2F1eF9kaXIvbWlzc2luZwotIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCi0jICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcKLSMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCi0jICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCi0jICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9kaXIKLSMKLSMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKLSMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBidWlsZCB0aGlzIGlzIHVzdWFsbHkKLSMgaGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdoZW4geW91Ci0jIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCi0jCi0jIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nLAotIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKLSMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGlyIiA6ICIkc3JjZGlyLy8qXCguKlwpImAKLSMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCi0jICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0jIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29uZmlndXJlLCBiZWNhdXNlCi0jIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCi0jIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KLSMgY29uZmlndXJlLCBhbmQgY291bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19hdXhfZGlyLgotIwotIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4KLSMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFic29sdXRlIHBhdGhzIHByZXZlbnQgYQotIyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCi0KLUFDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0sCi1bZG5sIFJlbHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KLUFDX1BSRVJFUShbMi41MF0pZG5sCi0jIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi1hbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi1dKQotCi0jIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDcKLQotIyBBTV9DT05ESVRJT05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCi1BQ19ERUZVTihbQU1fQ09ORElUSU9OQUxdLAotW0FDX1BSRVJFUSgyLjUyKWRubAotIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCi0JWyQxXSwgW0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAotQUNfU1VCU1QoWyQxX1RSVUVdKQotQUNfU1VCU1QoWyQxX0ZBTFNFXSkKLWlmICQyOyB0aGVuCi0gICQxX1RSVUU9Ci0gICQxX0ZBTFNFPScjJwotZWxzZQotICAkMV9UUlVFPScjJwotICAkMV9GQUxTRT0KLWZpCi1BQ19DT05GSUdfQ09NTUFORFNfUFJFKAotW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgotICBBQ19NU0dfRVJST1IoW1tjb25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCi1maV0pXSkKLQotCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCA4Ci0KLSMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0jIHdyaXR0ZW4gaW4gY2xlYXIsIGluIHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2FsLm00LAotIyB3aWxsIHRoaW5rIGl0IHNlZXMgYSAqdXNlKiwgYW5kIHRoZXJlZm9yZSB3aWxsIHRyaWdnZXIgYWxsIGl0J3MKLSMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotIyBDQyBldGMuIGluIHRoZSBNYWtlZmlsZSwgd2lsbCBhc2sgZm9yIGFuIEFDX1BST0dfQ0MgdXNlLi4uCi0KLQotIyBfQU1fREVQRU5ERU5DSUVTKE5BTUUpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotIyBOQU1FIGlzICJDQyIsICJDWFgiLCAiR0NKIiwgb3IgIk9CSkMiLgotIyBXZSB0cnkgYSBmZXcgdGVjaG5pcXVlcyBhbmQgdXNlIHRoYXQgdG8gc2V0IGEgc2luZ2xlIGNhY2hlIHZhcmlhYmxlLgotIwotIyBXZSBkb24ndCBBQ19SRVFVSVJFIHRoZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRlciB3YXMKLSMgbW9kaWZpZWQgdG8gaW52b2tlIF9BTV9ERVBFTkRFTkNJRVMoQ0MpOyB3ZSB3b3VsZCBoYXZlIGEgY2lyY3VsYXIKLSMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotIyBqdXN0IHJlbHkgb24gQUNfUFJPR19DQy4KLUFDX0RFRlVOKFtfQU1fREVQRU5ERU5DSUVTXSwKLVtBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKLUFDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSlkbmwKLUFDX1JFUVVJUkUoW0FNX01BS0VfSU5DTFVERV0pZG5sCi1BQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotCi1pZmVsc2UoWyQxXSwgQ0MsICAgW2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD1dLAotICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0iJEdDSiIgIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCi0gICAgICAgICAgICAgICAgICAgW2RlcGNjPSIkJDEiICAgYW1fY29tcGlsZXJfbGlzdD1dKQotCi1BQ19DQUNIRV9DSEVDSyhbZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2NdLAotICAgICAgICAgICAgICAgW2FtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSwKLVtpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0gICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotICAjIGluIEQnLgotICBta2RpciBjb25mdGVzdC5kaXIKLSAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSAgY2QgY29uZnRlc3QuZGlyCi0gICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0gICMgZGlyZWN0b3J5LgotICBta2RpciBzdWIKLQotICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0gIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0gICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSAgZmkKLSAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0gICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0gICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSAgICAjCi0gICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgotICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotICAgIDogPiBzdWIvY29uZnRlc3QuYwotICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwotICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCi0gICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSAgICBkb25lCi0gICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgotCi0gICAgY2FzZSAkZGVwbW9kZSBpbgotICAgIG5vc2lkZWVmZmVjdCkKLSAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCi0JY29udGludWUKLSAgICAgIGVsc2UKLQlicmVhawotICAgICAgZmkKLSAgICAgIDs7Ci0gICAgbm9uZSkgYnJlYWsgOzsKLSAgICBlc2FjCi0gICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0gICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKLSAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KLSAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKLSAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0gICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMgXAotICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgotICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKLSAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6Ci0gICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0gICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotICAgICAgICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotICAgICAgICBicmVhawotICAgICAgZmkKLSAgICBmaQotICBkb25lCi0KLSAgY2QgLi4KLSAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotZWxzZQotICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi1maQotXSkKLUFDX1NVQlNUKFskMURFUE1PREVdLCBbZGVwbW9kZT0kYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdKQotQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0gIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0gICYmIHRlc3QgIiRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzXSkKLV0pCi0KLQotIyBBTV9TRVRfREVQRElSCi0jIC0tLS0tLS0tLS0tLS0KLSMgQ2hvb3NlIGEgZGlyZWN0b3J5IG5hbWUgZm9yIGRlcGVuZGVuY3kgZmlsZXMuCi0jIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotQUNfREVGVU4oW0FNX1NFVF9ERVBESVJdLAotW0FDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCi1BQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi1dKQotCi0KLSMgQU1fREVQX1RSQUNLCi0jIC0tLS0tLS0tLS0tLQotQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCi1bQUNfQVJHX0VOQUJMRShkZXBlbmRlbmN5LXRyYWNraW5nLAotWyAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAotICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi1pZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKLSAgQU1ERVBCQUNLU0xBU0g9J1wnCi1maQotQU1fQ09ORElUSU9OQUwoW0FNREVQXSwgW3Rlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhub10pCi1BQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKQotXSkKLQotIyBHZW5lcmF0ZSBjb2RlIHRvIHNldCB1cCBkZXBlbmRlbmN5IHRyYWNraW5nLiAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jc2VyaWFsIDMKLQotIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1BQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLVtmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAotICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKLSAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgotICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgotICBkb25lCi1kb25lCi1dKSMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0KLQotIyBBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JFUVVJUkUuCi0jCi0jIFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKLSMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVzIGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAotIyBuZWVkIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGUgZGVwZW5kZW5jeSBoYW5kbGluZyBjb2RlLgotQUNfREVGVU4oW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLVtBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKLSAgICAgW3Rlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCi0gICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKLV0pCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDgKLQotIyBBTV9DT05GSUdfSEVBREVSIGlzIG9ic29sZXRlLiAgSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgQUNfQ09ORklHX0hFQURFUlMuCi1BVV9ERUZVTihbQU1fQ09ORklHX0hFQURFUl0sIFtBQ19DT05GSUdfSEVBREVSUygkQCldKQotCi0jIERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDEyCi0KLSMgVGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVkIGlmCi0jIHlvdXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGEgYmlnIGRlYWwuCi0KLSMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKLSMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQotIyBjYWxsIChwcmUgYXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCi0jIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQotIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgotIyBXZSBzdXBwb3J0IGJvdGggY2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKLSMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKLSMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRvY29uZgotIyByZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0LgotQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAotW0FDX1BSRVJFUShbMi41OF0pZG5sCi1kbmwgQXV0b2NvbmYgd2FudHMgdG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdwotZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCi1tNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlkbmwKLUFDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAotQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKLSMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAotaWYgdGVzdCAiYGNkICRzcmNkaXIgJiYgcHdkYCIgIT0gImBwd2RgIiAmJgotICAgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KLSAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQotZmkKLQotIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi1pZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgotICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KLSAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0gIGVsc2UKLSAgICBDWUdQQVRIX1c9ZWNobwotICBmaQotZmkKLUFDX1NVQlNUKFtDWUdQQVRIX1ddKQotCi0jIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCi1kbmwgRGlzdGluZ3Vpc2ggYmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KLW00X2lmdmFsKFskMl0sCi1bbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0pZG5sCi0gQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAotIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAotW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAotIEFDX1NVQlNUKFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RBUk5BTUUnXSlkbmwKLSBBQ19TVUJTVChbVkVSU0lPTl0sIFsnQUNfUEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKLQotX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSwsCi1bQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9mIHBhY2thZ2VdKQotIEFDX0RFRklORV9VTlFVT1RFRChWRVJTSU9OLCAiJFZFUlNJT04iLCBbVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZV0pXSlkbmwKLQotIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRzLgotQUNfUkVRVUlSRShbQU1fU0FOSVRZX0NIRUNLXSlkbmwKLUFDX1JFUVVJUkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKLUFNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9ufSkKLUFNX01JU1NJTkdfUFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYpCi1BTV9NSVNTSU5HX1BST0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKLUFNX01JU1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQotQU1fTUlTU0lOR19QUk9HKE1BS0VJTkZPLCBtYWtlaW5mbykKLUFNX1BST0dfSU5TVEFMTF9TSAotQU1fUFJPR19JTlNUQUxMX1NUUklQCi1BQ19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KLSMgc29tZSBwbGF0Zm9ybXMuCi1BQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi1BQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKLUFDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCi1fQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSAgICAgICAgICAgICAgW19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCi0JICAgICAgCQkgICAgIFtfQU1fUFJPR19UQVIoW3Y3XSldKV0pCi1fQU1fSUZfT1BUSU9OKFtuby1kZXBlbmRlbmNpZXNdLCwKLVtBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DQ10sCi0gICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDQyldLAotICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19DQ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfQ0NdKVtfQU1fREVQRU5ERU5DSUVTKENDKV0pXSlkbmwKLUFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0gICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSwKLSAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNfUFJPR19DWFhdKVtfQU1fREVQRU5ERU5DSUVTKENYWCldKV0pZG5sCi1dKQotXSkKLQotCi0jIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0jIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgotIyB0aGF0IGlzIGdlbmVyYXRlZC4gIFRoZSBzdGFtcCBmaWxlcyBhcmUgbnVtYmVyZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbmFtZXMuCi0KLSMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKLSMgbG9vcCB3aGVyZSBjb25maWcuc3RhdHVzIGNyZWF0ZXMgdGhlIGhlYWRlcnMsIHNvIHdlIGNhbiBnZW5lcmF0ZQotIyBvdXIgc3RhbXAgZmlsZXMgdGhlcmUuCi1BQ19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCi1bIyBDb21wdXRlICQxJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgotX2FtX3N0YW1wX2NvdW50PTEKLWZvciBfYW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbwotICBjYXNlICRfYW1faGVhZGVyIGluCi0gICAgJDEgfCAkMToqICkKLSAgICAgIGJyZWFrIDs7Ci0gICAgKiApCi0gICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7Ci0gIGVzYWMKLWRvbmUKLWVjaG8gInRpbWVzdGFtcCBmb3IgJDEiID5gQVNfRElSTkFNRShbJDFdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3VudF0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfSU5TVEFMTF9TSAotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGVmaW5lICRpbnN0YWxsX3NoLgotQUNfREVGVU4oW0FNX1BST0dfSU5TVEFMTF9TSF0sCi1bQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotaW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIiRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQotQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotCi0jIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgMgotCi0jIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCi0jIHdpdGggYSBsZWFkaW5nIGRvdC4gIEZvciBpbnN0YW5jZSBNUy1ET1MgZG9lc24ndC4KLUFDX0RFRlVOKFtBTV9TRVRfTEVBRElOR19ET1RdLAotW3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCi1ta2RpciAudHN0IDI+L2Rldi9udWxsCi1pZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSAgYW1fX2xlYWRpbmdfZG90PS4KLWVsc2UKLSAgYW1fX2xlYWRpbmdfZG90PV8KLWZpCi1ybWRpciAudHN0IDI+L2Rldi9udWxsCi1BQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSldKQotCi0jIEFkZCAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgb3B0aW9uIHRvIGNvbmZpZ3VyZS4gICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0jIEZyb20gSmltIE1leWVyaW5nCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk4LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDQKLQotQUNfREVGVU4oW0FNX01BSU5UQUlORVJfTU9ERV0sCi1bQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlc10pCi0gIGRubCBtYWludGFpbmVyLW1vZGUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAotICBBQ19BUkdfRU5BQkxFKG1haW50YWluZXItbW9kZSwKLVsgIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSAgZW5hYmxlIG1ha2UgcnVsZXMgYW5kIGRlcGVuZGVuY2llcyBub3QgdXNlZnVsCi0JCQkgIChhbmQgc29tZXRpbWVzIGNvbmZ1c2luZykgdG8gdGhlIGNhc3VhbCBpbnN0YWxsZXJdLAotICAgICAgVVNFX01BSU5UQUlORVJfTU9ERT0kZW5hYmxldmFsLAotICAgICAgVVNFX01BSU5UQUlORVJfTU9ERT1ubykKLSAgQUNfTVNHX1JFU1VMVChbJFVTRV9NQUlOVEFJTkVSX01PREVdKQotICBBTV9DT05ESVRJT05BTChNQUlOVEFJTkVSX01PREUsIFt0ZXN0ICRVU0VfTUFJTlRBSU5FUl9NT0RFID0geWVzXSkKLSAgTUFJTlQ9JE1BSU5UQUlORVJfTU9ERV9UUlVFCi0gIEFDX1NVQlNUKE1BSU5UKWRubAotXQotKQotCi1BVV9ERUZVTihbam1fTUFJTlRBSU5FUl9NT0RFXSwgW0FNX01BSU5UQUlORVJfTU9ERV0pCi0KLSMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCAzCi0KLSMgQU1fTUFLRV9JTkNMVURFKCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0KLSMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLUFDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAotW2FtX21ha2U9JHtNQUtFLW1ha2V9Ci1jYXQgPiBjb25maW5jIDw8ICdFTkQnCi1hbV9fZG9pdDoKLQlAZWNobyBkb25lCi0uUEhPTlk6IGFtX19kb2l0Ci1FTkQKLSMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4KLUFDX01TR19DSEVDS0lORyhbZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZV0pCi1hbV9faW5jbHVkZT0iIyIKLWFtX19xdW90ZT0KLV9hbV9yZXN1bHQ9bm9uZQotIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLWVjaG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKLSMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKLSMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KLSMgSW4gcGFydGljdWxhciB3ZSBkb24ndCBsb29rIGF0IGBebWFrZTonIGJlY2F1c2UgR05VIG1ha2UgbWlnaHQKLSMgYmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCi0jIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KLWlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnaW5nIGRpcmVjdG9yeSdgIiA9ICJkb25lIjsgdGhlbgotICAgYW1fX2luY2x1ZGU9aW5jbHVkZQotICAgYW1fX3F1b3RlPQotICAgX2FtX3Jlc3VsdD1HTlUKLWZpCi0jIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLWlmIHRlc3QgIiRhbV9faW5jbHVkZSIgPSAiIyI7IHRoZW4KLSAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KLSAgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCi0gICAgICBhbV9fcXVvdGU9IlwiIgotICAgICAgX2FtX3Jlc3VsdD1CU0QKLSAgIGZpCi1maQotQUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKLUFDX1NVQlNUKFthbV9fcXVvdGVdKQotQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQotcm0gLWYgY29uZmluYyBjb25mbWYKLV0pCi0KLSMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKLSMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgNAotCi0jIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAotW0FDX1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCi0kMT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KLUFDX1NVQlNUKCQxKV0pCi0KLQotIyBBTV9NSVNTSU5HX0hBU19SVU4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tCi0jIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBpdCBzdXBwb3J0cyAtLXJ1bi4KLSMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgotQUNfREVGVU4oW0FNX01JU1NJTkdfSEFTX1JVTl0sCi1bQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotdGVzdCB4IiR7TUlTU0lORytzZXR9IiA9IHhzZXQgfHwgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0jIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLWlmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0gIGFtX21pc3NpbmdfcnVuPSIkTUlTU0lORyAtLXJ1biAiCi1lbHNlCi0gIGFtX21pc3NpbmdfcnVuPQotICBBQ19NU0dfV0FSTihbYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmddKQotZmkKLV0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfTUtESVJfUAotIyAtLS0tLS0tLS0tLS0tLS0KLSMgQ2hlY2sgd2hldGhlciBgbWtkaXIgLXAnIGlzIHN1cHBvcnRlZCwgZmFsbGJhY2sgdG8gbWtpbnN0YWxsZGlycyBvdGhlcndpc2UuCi0jCi0jIEF1dG9tYWtlIDEuOCB1c2VkIGBta2RpciAtbSAwNzU1IC1wIC0tJyB0byBlbnN1cmUgdGhhdCBkaXJlY3RvcmllcwotIyBjcmVhdGVkIGJ5IGBtYWtlIGluc3RhbGwnIGFyZSBhbHdheXMgd29ybGQgcmVhZGFibGUsIGV2ZW4gaWYgdGhlCi0jIGluc3RhbGxlciBoYXBwZW5zIHRvIGhhdmUgYW4gb3Zlcmx5IHJlc3RyaWN0aXZlIHVtYXNrIChlLmcuIDA3NykuCi0jIFRoaXMgd2FzIGEgbWlzdGFrZS4gIFRoZXJlIGFyZSBhdCBsZWFzdCB0d28gcmVhc29ucyB3aHkgd2UgbXVzdCBub3QKLSMgdXNlIGAtbSAwNzU1JzoKLSMgICAtIGl0IGNhdXNlcyBzcGVjaWFsIGJpdHMgbGlrZSBTR0lEIHRvIGJlIGlnbm9yZWQsCi0jICAgLSBpdCBtYXkgYmUgdG9vIHJlc3RyaWN0aXZlIChzb21lIHNldHVwcyBleHBlY3QgNzc1IGRpcmVjdG9yaWVzKS4KLSMKLSMgRG8gbm90IHVzZSAtbSAwNzU1IGFuZCBsZXQgcGVvcGxlIGNob29zZSB3aGF0ZXZlciB0aGV5IGV4cGVjdCBieQotIyBzZXR0aW5nIHVtYXNrLgotIwotIyBXZSBjYW5ub3QgYWNjZXB0IGFueSBpbXBsZW1lbnRhdGlvbiBvZiBgbWtkaXInIHRoYXQgcmVjb2duaXplcyBgLXAnLgotIyBTb21lIGltcGxlbWVudGF0aW9ucyAoc3VjaCBhcyBTb2xhcmlzIDgncykgYXJlIG5vdCB0aHJlYWQtc2FmZTogaWYgYQotIyBwYXJhbGxlbCBtYWtlIHRyaWVzIHRvIHJ1biBgbWtkaXIgLXAgYS9iJyBhbmQgYG1rZGlyIC1wIGEvYycKLSMgY29uY3VycmVudGx5LCBib3RoIHZlcnNpb24gY2FuIGRldGVjdCB0aGF0IGEvIGlzIG1pc3NpbmcsIGJ1dCBvbmx5Ci0jIG9uZSBjYW4gY3JlYXRlIGl0IGFuZCB0aGUgb3RoZXIgd2lsbCBlcnJvciBvdXQuICBDb25zZXF1ZW50bHkgd2UKLSMgcmVzdHJpY3Qgb3Vyc2VsdmVzIHRvIEdOVSBtYWtlICh1c2luZyB0aGUgLS12ZXJzaW9uIG9wdGlvbiBlbnN1cmVzCi0jIHRoaXMuKQotQUNfREVGVU4oW0FNX1BST0dfTUtESVJfUF0sCi1baWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgotICAjIFdlIHVzZWQgdG8ga2VlcGluZyB0aGUgYC4nIGFzIGZpcnN0IGFyZ3VtZW50LCBpbiBvcmRlciB0bwotICAjIGFsbG93ICQobWtkaXJfcCkgdG8gYmUgdXNlZCB3aXRob3V0IGFyZ3VtZW50LiAgQXMgaW4KLSAgIyAgICQobWtkaXJfcCkgJChzb21lZGlyKQotICAjIHdoZXJlICQoc29tZWRpcikgaXMgY29uZGl0aW9uYWxseSBkZWZpbmVkLiAgSG93ZXZlciB0aGlzIGlzIHdyb25nCi0gICMgZm9yIHR3byByZWFzb25zOgotICAjICAxLiBpZiB0aGUgcGFja2FnZSBpcyBpbnN0YWxsZWQgYnkgYSB1c2VyIHdobyBjYW5ub3Qgd3JpdGUgYC4nCi0gICMgICAgIG1ha2UgaW5zdGFsbCB3aWxsIGZhaWwsCi0gICMgIDIuIHRoZSBhYm92ZSBjb21tZW50IHNob3VsZCBtb3N0IGNlcnRhaW5seSByZWFkCi0gICMgICAgICQobWtkaXJfcCkgJChERVNURElSKSQoc29tZWRpcikKLSAgIyAgICAgc28gaXQgZG9lcyBub3Qgd29yayB3aGVuICQoc29tZWRpcikgaXMgdW5kZWZpbmVkIGFuZAotICAjICAgICAkKERFU1RESVIpIGlzIG5vdC4KLSAgIyAgVG8gc3VwcG9ydCB0aGUgbGF0dGVyIGNhc2UsIHdlIGhhdmUgdG8gd3JpdGUKLSAgIyAgICAgdGVzdCAteiAiJChzb21lZGlyKSIgfHwgJChta2Rpcl9wKSAkKERFU1RESVIpJChzb21lZGlyKSwKLSAgIyAgc28gdGhlIGAuJyB0cmljayBpcyBwb2ludGxlc3MuCi0gIG1rZGlyX3A9J21rZGlyIC1wIC0tJwotZWxzZQotICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAotICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgIyBkaXJlY3RvcmllcyB0byBjcmVhdGUsIGFuZCB0aGVuIGFib3J0IGJlY2F1c2UgYC4nIGFscmVhZHkKLSAgIyBleGlzdHMuCi0gIGZvciBkIGluIC4vLXAgLi8tLXZlcnNpb247Ci0gIGRvCi0gICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICBkb25lCi0gICMgJChta2luc3RhbGxkaXJzKSBpcyBkZWZpbmVkIGJ5IEF1dG9tYWtlIGlmIG1raW5zdGFsbGRpcnMgZXhpc3RzLgotICBpZiB0ZXN0IC1mICIkYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIjsgdGhlbgotICAgIG1rZGlyX3A9JyQobWtpbnN0YWxsZGlycyknCi0gIGVsc2UKLSAgICBta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1kJwotICBmaQotZmkKLUFDX1NVQlNUKFtta2Rpcl9wXSldKQotCi0jIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCAzCi0KLSMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi1bW19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKLQotIyBfQU1fU0VUX09QVElPTihOQU1FKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2V0IG9wdGlvbiBOQU1FLiAgUHJlc2VudGx5IHRoYXQgb25seSBtZWFucyBkZWZpbmluZyBhIGZsYWcgZm9yIHRoaXMgb3B0aW9uLgotQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLVttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKLQotIyBfQU1fU0VUX09QVElPTlMoT1BUSU9OUykKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBPUFRJT05TIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgQXV0b21ha2Ugb3B0aW9ucy4KLUFDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAotW0FDX0ZPUkVBQ0goW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0KLSMgX0FNX0lGX09QVElPTihPUFRJT04sIElGLVNFVCwgW0lGLU5PVC1TRVRdKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgotQUNfREVGVU4oW19BTV9JRl9PUFRJT05dLAotW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0KLSMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuICAgIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKLSMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgNAotCi0jIEFNX1NBTklUWV9DSEVDSwotIyAtLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotW0FDX01TR19DSEVDS0lORyhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lXSkKLSMgSnVzdCBpbiBjYXNlCi1zbGVlcCAxCi1lY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKLSMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKLSMgZGlyZWN0b3J5KS4KLWlmICgKLSAgIHNldCBYIGBscyAtTHQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0gICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgotICAgICAgIyAtTCBkaWRuJ3Qgd29yay4KLSAgICAgIHNldCBYIGBscyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAotICAgZmkKLSAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKLSAgIGlmIHRlc3QgIiRbKl0iICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKLSAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0KLSAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KLSAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KLSAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudF0pCi0gICBmaQotCi0gICB0ZXN0ICIkWzJdIiA9IGNvbmZ0ZXN0LmZpbGUKLSAgICkKLXRoZW4KLSAgICMgT2suCi0gICA6Ci1lbHNlCi0gICBBQ19NU0dfRVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2tdKQotZmkKLUFDX01TR19SRVNVTFQoeWVzKV0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgT25lIGlzc3VlIHdpdGggdmVuZG9yIGBpbnN0YWxsJyAoZXZlbiBHTlUpIGlzIHRoYXQgeW91IGNhbid0Ci0jIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotIyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJvbm1lbnRzLCB3aGVyZSB0aGUgYnVpbGQncyBzdHJpcAotIyBpcyB1bmxpa2VseSB0byBoYW5kbGUgdGhlIGhvc3QncyBiaW5hcmllcy4KLSMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotIyBhbHdheXMgdXNlIGluc3RhbGwtc2ggaW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcsIGFuZCBpbml0aWFsaXplCi0jIFNUUklQUFJPRyB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgU1RSSVAgdmFyaWFibGUgKHNldCBieSB0aGUgdXNlcikuCi1BQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLVtBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU0hdKWRubAotIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCi0jIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0jIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCi0jIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgotZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLWlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCi0gIEFDX0NIRUNLX1RPT0woW1NUUklQXSwgW3N0cmlwXSwgOikKLWZpCi1JTlNUQUxMX1NUUklQX1BST0dSQU09Ilwke1NIRUxMfSBcJChpbnN0YWxsX3NoKSAtYyAtcyIKLUFDX1NVQlNUKFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCi0KLSMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDIKLQotIyBfQU1fUFJPR19UQVIoRk9STUFUKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgotIyBGT1JNQVQgc2hvdWxkIGJlIG9uZSBvZiBgdjcnLCBgdXN0YXInLCBvciBgcGF4Jy4KLSMKLSMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKLSMgd3JpdGluZyB0byBzdGRvdXQgYSBGT1JNQVQtdGFyYmFsbCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkKLSMgJHRhcmRpci4KLSMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKLSMKLSMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAotIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgotIyAgICAgJChhbV9fdW50YXIpIDwgcmVzdWx0LnRhcgotQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCi1bIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotQU1fTUlTU0lOR19QUk9HKFtBTVRBUl0sIFt0YXJdKQotbTRfaWYoWyQxXSwgW3Y3XSwKLSAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCi0gICAgIFttNF9jYXNlKFskMV0sIFt1c3Rhcl0sLCBbcGF4XSwsCi0gICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQotQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQotIyBMb29wIG92ZXIgYWxsIGtub3duIG1ldGhvZHMgdG8gY3JlYXRlIGEgdGFyIGFyY2hpdmUgdW50aWwgb25lIHdvcmtzLgotX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKLV9hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Ci0jIERvIG5vdCBmb2xkIHRoZSBhYm92ZSB0d28gbGluZSBpbnRvIG9uZSwgYmVjYXVzZSBUcnU2NCBzaCBhbmQKLSMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KLWZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCi1kbwotICBjYXNlICRfYW1fdG9vbCBpbgotICBnbnV0YXIpCi0gICAgZm9yIF9hbV90YXIgaW4gdGFyIGdudXRhciBndGFyOwotICAgIGRvCi0gICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhawotICAgIGRvbmUKLSAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKLSAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKLSAgICBhbV9fdW50YXI9IiRfYW1fdGFyIC14ZiAtIgotICAgIDs7Ci0gIHBsYWludGFyKQotICAgICMgTXVzdCBza2lwIEdOVSB0YXI6IGlmIGl0IGRvZXMgbm90IHN1cHBvcnQgLS1mb3JtYXQ9IGl0IGRvZXNuJ3QgY3JlYXRlCi0gICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KLSAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCi0gICAgYW1fX3Rhcj0ndGFyIGNoZiAtICIkJHRhcmRpciInCi0gICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCi0gICAgYW1fX3VudGFyPSd0YXIgeGYgLScKLSAgICA7OwotICBwYXgpCi0gICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCi0gICAgYW1fX3Rhcl89J3BheCAtTCAteCAkMSAtdyAiJHRhcmRpciInCi0gICAgYW1fX3VudGFyPSdwYXggLXInCi0gICAgOzsKLSAgY3BpbykKLSAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSAgICBhbV9fdW50YXI9J2NwaW8gLWkgLUggJDEgLWQnCi0gICAgOzsKLSAgbm9uZSkKLSAgICBhbV9fdGFyPWZhbHNlCi0gICAgYW1fX3Rhcl89ZmFsc2UKLSAgICBhbV9fdW50YXI9ZmFsc2UKLSAgICA7OwotICBlc2FjCi0KLSAgIyBJZiB0aGUgdmFsdWUgd2FzIGNhY2hlZCwgc3RvcCBub3cuICBXZSBqdXN0IHdhbnRlZCB0byBoYXZlIGFtX190YXIKLSAgIyBhbmQgYW1fX3VudGFyIHNldC4KLSAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCi0KLSAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCi0gIHJtIC1yZiBjb25mdGVzdC5kaXIKLSAgbWtkaXIgY29uZnRlc3QuZGlyCi0gIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKLSAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKLSAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgotICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCi0gICAgZ3JlcCBHcmVwTWUgY29uZnRlc3QuZGlyL2ZpbGUgPi9kZXYvbnVsbCAyPiYxICYmIGJyZWFrCi0gIGZpCi1kb25lCi1ybSAtcmYgY29uZnRlc3QuZGlyCi0KLUFDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKLUFDX01TR19SRVNVTFQoWyRhbV9jdl9wcm9nX3Rhcl8kMV0pXSkKLUFDX1NVQlNUKFthbV9fdGFyXSkKLUFDX1NVQlNUKFthbV9fdW50YXJdKQotXSkgIyBfQU1fUFJPR19UQVIKLQotbTRfaW5jbHVkZShbYWNpbmNsdWRlLm00XSkKZGlmZiAtLWdpdCBhL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmggYi9hbmRyb2lkL2FyY2gvYXJtL2NvbmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTk4OWFmLi4wMDAwMDAwCi0tLSBhL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MjIgKzAsMCBAQAotLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8KLS8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBBbHBoYSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgQUxQSEEgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4gKi8KLSNkZWZpbmUgQVJNIDEKLQotLyogRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotLyogI3VuZGVmIEZSRUVCU0QgKi8KLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBzZXQgYnkgYGdldGdyb3VwcycuIFVzdWFsbHkKLSAgIHRoaXMgaXMgZWl0aGVyIGBpbnQnIG9yIGBnaWRfdCcuICovCi0jZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3JlZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0FTTV9SRUdfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zaWdjb250ZXh0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zeXNtaXBzLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfQVNNX1NZU01JUFNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHN5c19lcnJsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgX3N5c19zaWdsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkZW50cycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9HRVRERU5UUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX2luZGV4dG9uYW1lJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5ldF9udG9wJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvY3Rscy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0lPQ1RMU19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGliYWlvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfTElCQUlPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KLS8qICN1bmRlZiBIQVZFX0xJQk5TTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2ljbXAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pZl9wYWNrZXQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2luNi5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLQotLyogRGVmaW5lIGlmIGxvbmcgbG9uZyBpcyBsaXR0bGUtZW5kaWFuLiAqLwotI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZycuICovCi0jZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLQotLyogRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UICovCi0KLS8qIERlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuICovCi0vKiAjdW5kZWYgSEFWRV9MT05HX0xPTkdfUkxJTV9UICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWN0bCcgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9NQ1RMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4gSS5FLiAvZGV2L3h4eC9jdGwsCi0gICAvZGV2L3h4eC9zdGF0dXMuIEFsc28gaW1wbGllcyB0aGF0IHlvdSBoYXZlIHRoZSBwcl9sd3AgbWVtYmVyIGluIHByc3RhdHVzLgotICAgKi8KLS8qICN1bmRlZiBIQVZFX01QX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwotLyogI3VuZGVmIEhBVkVfTkRJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3AuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC91ZHAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBTVlI0IGFuZCB0aGUgcG9sbCBzeXN0ZW0gY2FsbCB3b3JrcyBvbiAvcHJvYyBmaWxlcy4gKi8KLS8qICN1bmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmN0bCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUFJDVEwgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9QUkVBRCAxCi0KLS8qIERlZmluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGluIHN5cy9wcm9jZnMuaCBoYXMgYSBwcl9zeXNjYWxsIG1lbWJlci4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9QUl9TWVNDQUxMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VuZG1zZycgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0VORE1TRyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWN0aW9uJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnaW5mb190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnX2F0b21pY190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotCi0vKiBEZWZpbmUgaWYgc3RhdDY0IGlzIGF2YWlsYWJsZSBpbiBhc20vc3RhdC5oLiAqLwotI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RETElCX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmVycm9yJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ryb3B0cy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJzaWduYWwnIGZ1bmN0aW9uLiAqLwotLy9BTkRST0lECi0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci0jaWZkZWYgX19CSU9OSUNfXwotI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi0jZW5kaWYKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBpYTY0X2ZwcmVnJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9JQTY0X0ZQUkVHICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtc2dfY29udHJvbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbXNnaGRyJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBvcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX09QVEhEUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2FjbGNudCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9BQ0xDTlQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsa3NpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYmxvY2tzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZmxhZ3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZzdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2dlbicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9HRU4gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2xldmVsJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0xFVkVMICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9yZGV2JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYEFDQ0VQVE9SX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX0FDQ0VQVE9SX0lEICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBRVUVVRV9wdHInIGlzIG1lbWJlciBvZiBgc3RydWN0IFRfY29ubl9yZXMnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfUVVFVUVfUFRSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdF9vcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfT1BUSERSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdXNlcl9kZXNjJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYWNsLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0FDTF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Fpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19BSU9fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9hc3luY2guaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQVNZTkNIX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY29uZi5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19DT05GX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRElSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZG9vci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19ET09SX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZXBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMSAKLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfTkRJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25zY3N5cy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19OU0NTWVNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotLy9BTkRST0lECi0vLyNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0cmVhbS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19TVFJFQU1fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNjb25maWcuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfU1lTQ09ORklHX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGloZHIuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfVElIRFJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aXVzZXIuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfVElVU0VSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91aW8uaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdmZzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dGVybWlvLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYF9zeXNfc2lnbGlzdCcgZnVuY3Rpb24uICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIEhQUEEgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgaTM4NiBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgSTM4NiAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBJQTY0ICovCi0KLS8qIERlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uICovCi0jZGVmaW5lIExJTlVYIDEKLQotLyogRGVmaW5lIGZvciB0aGUgbTY4ayBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgTTY4SyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbiA8bWtkZXYuaD4uCi0gICAqLwotLyogI3VuZGVmIE1BSk9SX0lOX01LREVWICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluCi0gICA8c3lzbWFjcm9zLmg+LiAqLwotLyogI3VuZGVmIE1BSk9SX0lOX1NZU01BQ1JPUyAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBNSVBTIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBNSVBTICovCi0KLS8qIE5hbWUgb2YgcGFja2FnZSAqLwotI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwotI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotCi0vKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotCi0vKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotCi0vKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotCi0vKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLQotLyogRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUE9XRVJQQyAqLwotCi0vKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoYGludCcgb3IgYHZvaWQnKS4gKi8KLSNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi0KLS8qIERlZmluZSBmb3IgdGhlIFMzOTAgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFMzOTAgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFMzOTBYICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTSCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTSDY0ICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTUEFSQyAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTUEFSQzY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTUEFSQzY0ICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBgU19JUyonIG1hY3JvcyBpbiA8c3lzL3N0YXQuaD4gZG8gbm90IHdvcmsgcHJvcGVybHkuICovCi0vKiAjdW5kZWYgU1RBVF9NQUNST1NfQlJPS0VOICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotI2RlZmluZSBTVERDX0hFQURFUlMgMQotCi0vKiBEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLS8qICN1bmRlZiBTVU5PUzQgKi8KLQotLyogRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uIG9mCi0gICBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLiBPbmx5Ci0gICB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNCBpbiB0aGUKLSAgIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS4gKi8KLS8qICN1bmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFN5c3RlbSBWIHJlbGVhc2UgNCBvcGVyYXRpbmcgc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlCi0gICBTb2xhcmlzIDIueCBvciBJcml4IDUueC4gKi8KLS8qICN1bmRlZiBTVlI0ICovCi0KLS8qIERlZmluZSBmb3IgVW5peFdhcmUgc3lzdGVtcy4gKi8KLS8qICN1bmRlZiBVTklYV0FSRSAqLwotCi0vKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCi0jZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLQotLyogRGVmaW5lIGZvciB0aGUgQU1EIHg4Ni02NCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgWDg2XzY0ICovCi0KLS8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KLSNpZm5kZWYgX0dOVV9TT1VSQ0UKLSMgZGVmaW5lIF9HTlVfU09VUkNFIDEKLSNlbmRpZgotCi0vKiBEZWZpbmUgdG8gZW1wdHkgaWYgYGNvbnN0JyBkb2VzIG5vdCBjb25mb3JtIHRvIEFOU0kgQy4gKi8KLS8qICN1bmRlZiBjb25zdCAqLwotCi0vKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KLS8qICN1bmRlZiBnaWRfdCAqLwotCi0vKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCi0vKiAjdW5kZWYgbW9kZV90ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotLyogI3VuZGVmIHVpZF90ICovCmRpZmYgLS1naXQgYS9hbmRyb2lkL2FyY2gveDg2L2NvbmZpZy5oIGIvYW5kcm9pZC9hcmNoL3g4Ni9jb25maWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJkYWExNy4uMDAwMDAwMAotLS0gYS9hbmRyb2lkL2FyY2gveDg2L2NvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIzICswLDAgQEAKLS8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovCi0vKiBjb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgQWxwaGEgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIEFMUEhBICovCi0KLS8qIERlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgQVJNICovCi0KLS8qIERlZmluZSBmb3IgdGhlIEZyZWVCU0Qgb3BlcmF0aW5nIHN5c3RlbS4gKi8KLS8qICN1bmRlZiBGUkVFQlNEICovCi0KLS8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgc2V0IGJ5IGBnZXRncm91cHMnLiBVc3VhbGx5Ci0gICB0aGlzIGlzIGVpdGhlciBgaW50JyBvciBgZ2lkX3QnLiAqLwotI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9yZWcuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9BU01fUkVHX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc2lnY29udGV4dC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc3lzbWlwcy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0FTTV9TWVNNSVBTX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfZXJybGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYF9zeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX0RFQ0xfX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfR0VUREVOVFMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9JT0NUTFNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0xJQkFJT19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCi0vKiAjdW5kZWYgSEFWRV9MSUJOU0wgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi0KLS8qIERlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi4gKi8KLSNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcnLiAqLwotI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi0KLS8qIERlZmluZSBpZiBvZmZfdCBpcyBhIGxvbmcgbG9uZy4gKi8KLS8qICN1bmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVCAqLwotCi0vKiBEZWZpbmUgaWYgcmxpbV90IGlzIGEgbG9uZyBsb25nLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX1JMSU1fVCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jdGwnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfTUNUTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIFNWUjQgTVAgdHlwZSBwcm9jZnMuIEkuRS4gL2Rldi94eHgvY3RsLAotICAgL2Rldi94eHgvc3RhdHVzLiBBbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9NUF9QUk9DRlMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KLS8qICN1bmRlZiBIQVZFX05ESVJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgU1ZSNCBhbmQgdGhlIHBvbGwgc3lzdGVtIGNhbGwgd29ya3Mgb24gL3Byb2MgZmlsZXMuICovCi0vKiAjdW5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1BPTExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJjdGwnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1BSQ1RMIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUFJFQUQgMQotCi0vKiBEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuCi0gICAqLwotLyogI3VuZGVmIEhBVkVfUFJfU1lTQ0FMTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRtc2cnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ2luZm9fdCcuICovCi0jZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ19hdG9taWNfdCcuICovCi0jZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLQotLyogRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC4gKi8KLSNkZWZpbmUgSEFWRV9TVEFUNjQgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cm9wdHMuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KLS8vQU5EUk9JRAotI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotI2lmZGVmIF9fQklPTklDX18KLSNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotI2VuZGlmCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgaWE2NF9mcHJlZycuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbXNnX2NvbnRyb2wnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1zZ2hkcicuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3Qgb3B0aGRyJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9hY2xjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9ibGtzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsb2NrcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9mc3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9nZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9sZXZlbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfcmRldicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi0KLS8qIERlZmluZSB0byAxIGlmIGBBQ0NFUFRPUl9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19BQ0NFUFRPUl9JRCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgUVVFVUVfcHRyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHRfb3B0aGRyJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHVzZXJfZGVzYycuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FjbC5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19BQ0xfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9haW8uaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQUlPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYXN5bmNoLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0FTWU5DSF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQ09ORl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0RJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rvb3IuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRE9PUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Vwb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRklMSU9fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLS8qICN1bmRlZiBIQVZFX1NZU19ORElSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbnNjc3lzLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX05TQ1NZU19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZWcuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2NvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19TWVNDT05GSUdfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aWhkci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19USUhEUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19USVVTRVJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIGZvciB0aGUgSFBQQSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgSFBQQSAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS4gKi8KLSNkZWZpbmUgSTM4NiAxCi0KLS8qIERlZmluZSBmb3IgdGhlIElBNjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIElBNjQgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgTGludXggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLSNkZWZpbmUgTElOVVggMQotCi0vKiBEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBNNjhLICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluIDxta2Rldi5oPi4KLSAgICovCi0vKiAjdW5kZWYgTUFKT1JfSU5fTUtERVYgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4KLSAgIDxzeXNtYWNyb3MuaD4uICovCi0vKiAjdW5kZWYgTUFKT1JfSU5fU1lTTUFDUk9TICovCi0KLS8qIERlZmluZSBmb3IgdGhlIE1JUFMgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIE1JUFMgKi8KLQotLyogTmFtZSBvZiBwYWNrYWdlICovCi0jZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLQotLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCi0jZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi0KLS8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotCi0vKiBEZWZpbmUgZm9yIHRoZSBQb3dlclBDIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBQT1dFUlBDICovCi0KLS8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLwotI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUzM5MCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTMzkweCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUzM5MFggKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU0ggYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNIICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNINjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNINjQgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNQQVJDICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDNjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNQQVJDNjQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIGBTX0lTKicgbWFjcm9zIGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gKi8KLS8qICN1bmRlZiBTVEFUX01BQ1JPU19CUk9LRU4gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCi0jZGVmaW5lIFNURENfSEVBREVSUyAxCi0KLS8qIERlZmluZSBmb3IgdGhlIFN1bk9TIDQueCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotLyogI3VuZGVmIFNVTk9TNCAqLwotCi0vKiBEZWZpbmUgaWYgeW91IGFyZSBoYXZlIGEgU1BBUkMgd2l0aCBTVU5PUzQgYW5kIHlvdXIgd2FudCBhIHZlcnNpb24gb2YKLSAgIHN0cmFjZSB0aGF0IHdpbGwgd29yayBvbiBzdW40LCBzdW40YyBhbmQgc3VuNG0ga2VybmVsIGFyY2hpdGVjdHVyZXMuIE9ubHkKLSAgIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHN5bWJvbGljIGxpbmsgZnJvbSBtYWNoaW5lIHRvIC91c3IvaW5jbHVkZS9zdW40IGluIHRoZQotICAgY29tcGlsYXRpb24gZGlyZWN0b3J5LiAqLwotLyogI3VuZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZyBzeXN0ZW0gb3IgYSBkZXJpdmF0aXZlIGxpa2UKLSAgIFNvbGFyaXMgMi54IG9yIElyaXggNS54LiAqLwotLyogI3VuZGVmIFNWUjQgKi8KLQotLyogRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLiAqLwotLyogI3VuZGVmIFVOSVhXQVJFICovCi0KLS8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KLSNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotCi0vKiBEZWZpbmUgZm9yIHRoZSBBTUQgeDg2LTY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBYODZfNjQgKi8KLQotLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwotI2lmbmRlZiBfR05VX1NPVVJDRQotIyBkZWZpbmUgX0dOVV9TT1VSQ0UgMQotI2VuZGlmCi0KLS8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwotLyogI3VuZGVmIGNvbnN0ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotLyogI3VuZGVmIGdpZF90ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KLS8qICN1bmRlZiBtb2RlX3QgKi8KLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCi0vKiAjdW5kZWYgdWlkX3QgKi8KZGlmZiAtLWdpdCBhL2FybS1lYWJpLnBhdGNoIGIvYXJtLWVhYmkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzZTI3ZjguLjAwMDAwMDAKLS0tIGEvYXJtLWVhYmkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0yMDA2LTAzLTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgotCi0JKiBwcm9jZXNzLmMgKGNoYW5nZV9zeXNjYWxsKTogQWRkIEFSTSBzdXBwb3J0LgotCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IEhhbmRsZSBBUk0gRUFCSS4KLQotSW5kZXg6IHN0cmFjZS9wcm9jZXNzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzdHJhY2Uub3JpZy9wcm9jZXNzLmMJMjAwNi0wMy0zMCAxNzozNjoxNC4wMDAwMDAwMDAgLTA1MDAKLSsrKyBzdHJhY2UvcHJvY2Vzcy5jCTIwMDYtMDMtMzAgMTc6NDQ6MTYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNjk0LDYgKzY5NCwxNiBAQCBpbnQgbmV3OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAgfCBuZXcpIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgcmV0dXJuIDA7Ci0rI2VsaWYgZGVmaW5lZChBUk0pCi0rICAgICAgIC8qIFNvbWUga2VybmVscyBzdXBwb3J0IHRoaXMsIHNvbWUgKHByZS0yLjYuMTYgb3Igc28pIGRvbid0LiAgKi8KLSsjIGlmbmRlZiBQVFJBQ0VfU0VUX1NZU0NBTEwKLSsjICBkZWZpbmUgUFRSQUNFX1NFVF9TWVNDQUxMIDIzCi0rIyBlbmRpZgotKwotKyAgICAgICBpZiAocHRyYWNlIChQVFJBQ0VfU0VUX1NZU0NBTEwsIHRjcC0+cGlkLCAwLCBuZXcpICE9IDApCi0rCQlyZXR1cm4gLTE7Ci0rCi0rICAgICAgIHJldHVybiAwOwotICNlbHNlCi0gI3dhcm5pbmcgRG8gbm90IGtub3cgaG93IHRvIGhhbmRsZSBjaGFuZ2Vfc3lzY2FsbCBmb3IgdGhpcyBhcmNoaXRlY3R1cmUKLSAjZW5kaWYgLyogYXJjaGl0ZWN0dXJlICovCi1JbmRleDogc3RyYWNlL3N5c2NhbGwuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHN0cmFjZS5vcmlnL3N5c2NhbGwuYwkyMDA2LTAzLTMwIDE3OjM2OjE0LjAwMDAwMDAwMCAtMDUwMAotKysrIHN0cmFjZS9zeXNjYWxsLmMJMjAwNi0wMy0zMCAxNzo0NDoxNi4wMDAwMDAwMDAgLTA1MDAKLUBAIC0xMTA4LDE2ICsxMTA4LDI1IEBAIHN0cnVjdCB0Y2IgKnRjcDsKLSAJCQkJcmV0dXJuIDA7Ci0gCQkJfQotIAotLQkJCWlmICgoc2NubyAmIDB4MGZmMDAwMDApICE9IDB4MGY5MDAwMDApIHsKLS0JCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiB1bmtub3duIHN5c2NhbGwgdHJhcCAweCUwOGx4XG4iLAotLQkJCQkJc2Nubyk7Ci0tCQkJCXJldHVybiAtMTsKLS0JCQl9Ci0rCQkJLyogSGFuZGxlIHRoZSBFQUJJIHN5c2NhbGwgY29udmVudGlvbi4gIFdlIGRvIG5vdAotKwkJCSAgIGJvdGhlciBjb252ZXJ0aW5nIHN0cnVjdHVyZXMgYmV0d2VlbiB0aGUgdHdvCi0rCQkJICAgQUJJcywgYnV0IGJhc2ljIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIHdvcmsgZXZlbgotKwkJCSAgIGlmIHN0cmFjZSBhbmQgdGhlIHRyYWNlZCBwcm9ncmFtIGhhdmUgZGlmZmVyZW50Ci0rCQkJICAgQUJJcy4gICovCi0rCQkJaWYgKHNjbm8gPT0gMHhlZjAwMDAwMCkgewotKwkJCQlzY25vID0gcmVncy5BUk1fcjc7Ci0rCQkJfSBlbHNlIHsKLSsJCQkJaWYgKChzY25vICYgMHgwZmYwMDAwMCkgIT0gMHgwZjkwMDAwMCkgewotKwkJCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiB1bmtub3duIHN5c2NhbGwgdHJhcCAweCUwOGx4XG4iLAotKwkJCQkJCXNjbm8pOwotKwkJCQkJcmV0dXJuIC0xOwotKwkJCQl9Ci0gCi0tCQkJLyoKLS0JCQkgKiBGaXh1cCB0aGUgc3lzY2FsbCBudW1iZXIKLS0JCQkgKi8KLS0JCQlzY25vICY9IDB4MDAwZmZmZmY7Ci0rCQkJCS8qCi0rCQkJCSAqIEZpeHVwIHRoZSBzeXNjYWxsIG51bWJlcgotKwkJCQkgKi8KLSsJCQkJc2NubyAmPSAweDAwMGZmZmZmOwotKwkJCX0KLSAJCX0KLSAKLSAJCWlmICh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkgewpkaWZmIC0tZ2l0IGEvYmptLmMgYi9iam0uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIxNTAxOS4uMDAwMDAwMAotLS0gYS9iam0uYworKysgL2Rldi9udWxsCkBAIC0xLDIwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogYmptLmMsdiAxLjE1IDIwMDUvMDYvMDEgMTk6MDI6Mzcgcm9sYW5kIEV4cCAkCi0gKi8KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpZiBkZWZpbmVkKExJTlVYKQotCi0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLSNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxzeXMvdXNlci5oPgotI2VuZGlmCi0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLQotLyogQml0cyBvZiBtb2R1bGUuZmxhZ3MuICAqLwotCi0jZGVmaW5lIE1PRF9VTklOSVRJQUxJWkVECTAKLSNkZWZpbmUgTU9EX1JVTk5JTkcJCTEKLSNkZWZpbmUgTU9EX0RFTEVURUQJCTIKLSNkZWZpbmUgTU9EX0FVVE9DTEVBTgkJNAotI2RlZmluZSBNT0RfVklTSVRFRCAgCQk4Ci0jZGVmaW5lIE1PRF9VU0VEX09OQ0UJCTE2Ci0jZGVmaW5lIE1PRF9KVVNUX0ZSRUVECQkzMgotI2RlZmluZSBNT0RfSU5JVElBTElaSU5HCTY0Ci0KLS8qIFZhbHVlcyBmb3IgcXVlcnlfbW9kdWxlJ3Mgd2hpY2guICAqLwotCi0jZGVmaW5lIFFNX01PRFVMRVMJMQotI2RlZmluZSBRTV9ERVBTCQkyCi0jZGVmaW5lIFFNX1JFRlMJCTMKLSNkZWZpbmUgUU1fU1lNQk9MUwk0Ci0jZGVmaW5lIFFNX0lORk8JCTUKLQotc3RydWN0IG1vZHVsZV9zeW1ib2wKLXsKLQl1bnNpZ25lZCBsb25nIHZhbHVlOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19OwotCi1zdHJ1Y3QgbW9kdWxlX2luZm8KLXsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JbG9uZyB1c2Vjb3VudDsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3aGljaFtdID0gewotCXsgMCwJCSIwIgkJfSwKLQl7IFFNX01PRFVMRVMsCSJRTV9NT0RVTEVTIgl9LAotCXsgUU1fREVQUywJIlFNX0RFUFMiCX0sCi0JeyBRTV9SRUZTLAkiUU1fUkVGUyIJfSwKLQl7IFFNX1NZTUJPTFMsCSJRTV9TWU1CT0xTIgl9LAotCXsgUU1fSU5GTywJIlFNX0lORk8iCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb2RmbGFnc1tdID0gewotCXsgTU9EX1VOSU5JVElBTElaRUQsCSJNT0RfVU5JTklUSUFMSVpFRCIJfSwKLQl7IE1PRF9SVU5OSU5HLAkJIk1PRF9SVU5OSU5HIgkJfSwKLQl7IE1PRF9ERUxFVEVELAkJIk1PRF9ERUxFVEVEIgkJfSwKLQl7IE1PRF9BVVRPQ0xFQU4sCSJNT0RfQVVUT0NMRUFOIgkJfSwKLQl7IE1PRF9WSVNJVEVELAkJIk1PRF9WSVNJVEVEIgkJfSwKLQl7IE1PRF9VU0VEX09OQ0UsCSJNT0RfVVNFRF9PTkNFIgkJfSwKLQl7IE1PRF9KVVNUX0ZSRUVELAkiTU9EX0pVU1RfRlJFRUQiCX0sCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotaW50Ci1zeXNfcXVlcnlfbW9kdWxlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbCh3aGljaCwgdGNwLT51X2FyZ1sxXSwgIlFNXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoIXZlcmJvc2UodGNwKSkgewotCQkJdHByaW50ZigiJSNseCwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSk7Ci0JCX0gZWxzZSBpZiAodGNwLT51X3J2YWwhPTApIHsKLQkJCXNpemVfdAlyZXQ7Ci0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZyZXQpOwotCQkJdHByaW50ZigiJSNseCwgJWx1LCAlWnUiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLCByZXQpOwotCQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMV09PVFNX0lORk8pIHsKLQkJCXN0cnVjdCBtb2R1bGVfaW5mbwltaTsKLQkJCXNpemVfdAkJCXJldDsKLQkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJm1pKTsKLQkJCXRwcmludGYoInthZGRyZXNzPSUjbHgsIHNpemU9JWx1LCBmbGFncz0iLCBtaS5hZGRyLCBtaS5zaXplKTsKLQkJCXByaW50ZmxhZ3MobW9kZmxhZ3MsIG1pLmZsYWdzLCAiTU9EXz8/PyIpOwotCQkJdHByaW50ZigiLCB1c2Vjb3VudD0lbHV9IiwgbWkudXNlY291bnQpOwotCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmcmV0KTsKLQkJCXRwcmludGYoIiwgJVp1IiwgcmV0KTsKLQkJfSBlbHNlIGlmICgodGNwLT51X2FyZ1sxXT09UU1fTU9EVUxFUykgfHwKLQkJCSAgICAgICAJKHRjcC0+dV9hcmdbMV09PVFNX0RFUFMpIHx8Ci0JCQkgICAgICAgCSh0Y3AtPnVfYXJnWzFdPT1RTV9SRUZTKSkgewotCQkJc2l6ZV90CXJldDsKLQotCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmcmV0KTsKLQkJCXRwcmludGYoInsiKTsKLQkJCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCQljaGFyKglkYXRhCT0gKGNoYXIqKW1hbGxvYyh0Y3AtPnVfYXJnWzNdKTsKLQkJCQljaGFyKgltb2QJPSBkYXRhOwotCQkJCXNpemVfdAlpZHg7Ci0KLQkJCQlpZiAoZGF0YT09TlVMTCkgewotCQkJCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOwotCQkJCQl0cHJpbnRmKCIgLyogJVp1IGVudHJpZXMgKi8gIiwgcmV0KTsKLQkJCQl9IGVsc2UgewotCQkJCQl1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLCBkYXRhKTsKLQkJCQkJZm9yIChpZHg9MDsgaWR4PHJldDsgaWR4KyspIHsKLQkJCQkJCWlmIChpZHghPTApCi0JCQkJCQkJdHByaW50ZigiLCIpOwotCQkJCQkJdHByaW50Zihtb2QpOwotCQkJCQkJbW9kKz1zdHJsZW4obW9kKSsxOwotCQkJCQl9Ci0JCQkJCWZyZWUoZGF0YSk7Ci0JCQkJfQotCQkJfSBlbHNlCi0JCQkJdHByaW50ZigiIC8qICVadSBlbnRyaWVzICovICIsIHJldCk7Ci0JCQl0cHJpbnRmKCJ9LCAlWnUiLCByZXQpOwotCQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMV09PVFNX1NZTUJPTFMpIHsKLQkJCXNpemVfdAlyZXQ7Ci0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZyZXQpOwotCQkJdHByaW50ZigieyIpOwotCQkJaWYgKCFhYmJyZXYodGNwKSkgewotCQkJCWNoYXIqCQkJZGF0YQk9IChjaGFyICopbWFsbG9jKHRjcC0+dV9hcmdbM10pOwotCQkJCXN0cnVjdCBtb2R1bGVfc3ltYm9sKglzeW0JPSAoc3RydWN0IG1vZHVsZV9zeW1ib2wqKWRhdGE7Ci0JCQkJc2l6ZV90CQkJaWR4OwotCi0JCQkJaWYgKGRhdGE9PU5VTEwpIHsKLQkJCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCQkJdHByaW50ZigiIC8qICVadSBlbnRyaWVzICovICIsIHJldCk7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJdW1vdmVuKHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgZGF0YSk7Ci0JCQkJCWZvciAoaWR4PTA7IGlkeDxyZXQ7IGlkeCsrKSB7Ci0JCQkJCQl0cHJpbnRmKCJ7bmFtZT0lcywgdmFsdWU9JWx1fSAiLCBkYXRhKyhsb25nKXN5bS0+bmFtZSwgc3ltLT52YWx1ZSk7Ci0JCQkJCQlzeW0rKzsKLQkJCQkJfQotCQkJCQlmcmVlKGRhdGEpOwotCQkJCX0KLQkJCX0gZWxzZQotCQkJCXRwcmludGYoIiAvKiAlWnUgZW50cmllcyAqLyAiLCByZXQpOwotCQkJdHByaW50ZigifSwgJVpkIiwgcmV0KTsKLQkJfSBlbHNlIHsKLQkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzRdKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfY3JlYXRlX21vZHVsZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiBSVkFMX0hFWDsKLX0KLQotaW50Ci1zeXNfaW5pdF9tb2R1bGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTElOVVggKi8KZGlmZiAtLWdpdCBhL2NvbmZpZy5ndWVzcyBiL2NvbmZpZy5ndWVzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODIyOTQ3MS4uMDAwMDAwMAotLS0gYS9jb25maWcuZ3Vlc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUzICswLDAgQEAKLSMhIC9iaW4vc2gKLSMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KLSMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0jICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLQotdGltZXN0YW1wPScyMDA0LTExLTEyJwotCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Ci0jIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0jIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0jIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0jCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0jCi0jIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0jCi0jIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0jIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0jIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLQotIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0jIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAotIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCi0jCi0jIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KLSMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCi0jIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgotIwotIyBUaGUgcGxhbiBpcyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUgc2NyaXB0cyBpZiB5b3UKLSMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KLQotbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCi0KLXVzYWdlPSJcCi1Vc2FnZTogJDAgW09QVElPTl0KLQotT3V0cHV0IHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgotCi1PcGVyYXRpb24gbW9kZXM6Ci0gIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0Ci0gIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0KLVJlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCi0KLXZlcnNpb249IlwKLUdOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCi0KLU9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNAotRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLVRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi13YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0KLWhlbHA9IgotVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotCi0jIFBhcnNlIGNvbW1hbmQgbGluZQotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAwIDs7Ci0gICAgLS12ZXJzaW9uIHwgLXYgKQotICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OwotICAgIC0taGVscCB8IC0taCogfCAtaCApCi0gICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCAwIDs7Ci0gICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0gICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgotICAgICAgIGJyZWFrIDs7Ci0gICAgLSogKQotICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIgPiYyCi0gICAgICAgZXhpdCAxIDs7Ci0gICAgKiApCi0gICAgICAgYnJlYWsgOzsKLSAgZXNhYwotZG9uZQotCi1pZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0gIGV4aXQgMQotZmkKLQotdHJhcCAnZXhpdCAxJyAxIDIgMTUKLQotIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQotIyBjb21waWxlciB0byBhaWQgaW4gc3lzdGVtIGRldGVjdGlvbiBpcyBkaXNjb3VyYWdlZCBhcyBpdCByZXF1aXJlcwotIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBpcyBhCi0jIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCi0KLSMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKLSMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLQotIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFtLgotCi1zZXRfY2NfZm9yX2J1aWxkPScKLXRyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOwotdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLTogJHtUTVBESVI9L3RtcH0gOwotIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiJFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwKLSB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAotIHsgdG1wPSRUTVBESVIvY2ctJCQgJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSAmJiBlY2hvICJXYXJuaW5nOiBjcmVhdGluZyBpbnNlY3VyZSB0ZW1wIGRpcmVjdG9yeSIgPiYyIDsgfSB8fAotIHsgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsKLWR1bW15PSR0bXAvZHVtbXkgOwotdG1wZmlsZXM9IiRkdW1teS5jICRkdW1teS5vICRkdW1teS5yZWwgJGR1bW15IiA7Ci1jYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCi0gLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7Ci0JZm9yIGMgaW4gY2MgZ2NjIGM4OSBjOTkgOyBkbwotCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0JICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotCSAgZmkgOwotCWRvbmUgOwotCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0JICBDQ19GT1JfQlVJTEQ9bm9fY29tcGlsZXJfZm91bmQgOwotCWZpCi0JOzsKLSAsLCopICAgQ0NfRk9SX0JVSUxEPSRDQyA7OwotICwqLCopICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKLWVzYWMgOycKLQotIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KLSMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQotaWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLQlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKLWZpCi0KLVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgotVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCi1VTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgotVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCi0KLSMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KLQotY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgotICAgICo6TmV0QlNEOio6KikKLQkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgotCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKLQkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQotCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAotCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKLQkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKLQkjIG9iamVjdCBmaWxlIGZvcm1hdC4KLQkjCi0JIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0JIyBwb3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCi0Jc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgotCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAotCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAotCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KLQkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7Ci0JICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7Ci0JICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKLQkgICAgKikgbWFjaGluZT0ke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93biA7OwotCWVzYWMKLQkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKLQkjIHRvIEVMRiByZWNlbnRseSwgb3Igd2lsbCBpbiB0aGUgZnV0dXJlLgotCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KLQkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0JCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQkJaWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKLQkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKLQkJdGhlbgotCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgotCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/Ci0JCSAgICBvcz1uZXRic2QKLQkJZWxzZQotCQkgICAgb3M9bmV0YnNkZWxmCi0JCWZpCi0JCTs7Ci0JICAgICopCi0JICAgICAgICBvcz1uZXRic2QKLQkJOzsKLQllc2FjCi0JIyBUaGUgT1MgcmVsZWFzZQotCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCi0JIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAotCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKLQkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KLQljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgotCSAgICBEZWJpYW4qKQotCQlyZWxlYXNlPSctZ251JwotCQk7OwotCSAgICAqKQotCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAotCQk7OwotCWVzYWMKLQkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKLQkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKLQkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCi0JZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCi0JZXhpdCAwIDs7Ci0gICAgYW1kNjQ6T3BlbkJTRDoqOiopCi0JZWNobyB4ODZfNjQtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGFtaWdhOk9wZW5CU0Q6KjoqKQotCWVjaG8gbTY4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgY2F0czpPcGVuQlNEOio6KikKLQllY2hvIGFybS11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgaHAzMDA6T3BlbkJTRDoqOiopCi0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBsdW5hODhrOk9wZW5CU0Q6KjoqKQotICAgIAllY2hvIG04OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG1hYzY4azpPcGVuQlNEOio6KikKLQllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG1hY3BwYzpPcGVuQlNEOio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG12bWU2OGs6T3BlbkJTRDoqOiopCi0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtdm1lODhrOk9wZW5CU0Q6KjoqKQotCWVjaG8gbTg4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbXZtZXBwYzpPcGVuQlNEOio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIHNnaTpPcGVuQlNEOio6KikKLQllY2hvIG1pcHM2NC11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgc3VuMzpPcGVuQlNEOio6KikKLQllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgICo6T3BlbkJTRDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOmVra29CU0Q6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWFjcHBjOk1pckJTRDoqOiopCi0JZWNobyBwb3dlcnBwYy11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOk1pckJTRDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGFscGhhOk9TRjE6KjoqKQotCWNhc2UgJFVOQU1FX1JFTEVBU0UgaW4KLQkqNC4wKQotCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAotCQk7OwotCSo1LiopCi0JICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotCQk7OwotCWVzYWMKLQkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgotCSMgT1NGLzEgYW5kIFRydTY0IHN5c3RlbXMgcHJvZHVjZWQgc2luY2UgMTk5NS4gIEkgaG9wZSB0aGF0Ci0JIyBjb3ZlcnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQotCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotCUFMUEhBX0NQVV9UWVBFPWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9eICBUaGUgYWxwaGEgXCguKlwpIHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKLQljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCi0JICAgICJFVjQgKDIxMDY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotCSAgICAiRVY0LjUgKDIxMDY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotCSAgICAiTENBNCAoMjEwNjYvMjEwNjgpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7Ci0JICAgICJFVjUgKDIxMTY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1IiA7OwotCSAgICAiRVY1LjYgKDIxMTY0QSkiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7Ci0JICAgICJFVjUuNiAoMjExNjRQQykiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU2IiA7OwotCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NyIgOzsKLQkgICAgIkVWNiAoMjEyNjQpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7Ci0JICAgICJFVjYuNyAoMjEyNjRBKSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKLQkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7Ci0JICAgICJFVjYuOEFMICgyMTI2NEIpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKLQkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY5IiA7OwotCSAgICAiRVY3ICgyMTM2NCkiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKLQkgICAgIkVWNy45ICgyMTM2NEEpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7OwotCWVzYWMKLQkjIEEgUG4ubiB2ZXJzaW9uIGlzIGEgcGF0Y2hlZCB2ZXJzaW9uLgotCSMgQSBWbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCB2ZXJzaW9uLgotCSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0JIyBBIFhuLm4gdmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBiYXNlbGV2ZWwuCi0JIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0JZXhpdCAwIDs7Ci0gICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLQkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0JIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCi0JIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Ci0JZWNobyBhbHBoYS1wYy1pbnRlcml4Ci0JZXhpdCAwIDs7Ci0gICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQotCWVjaG8gYWxwaGEtZGVjLXdpbm50My41Ci0JZXhpdCAwIDs7Ci0gICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCi0JZWNobyBtNjhrLXVua25vd24tc3lzdjQKLQlleGl0IDA7OwotICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcwotCWV4aXQgMCA7OwotICAgICo6W01tXW9ycGhbT29dW1NzXToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcwotCWV4aXQgMCA7OwotICAgICo6T1MvMzkwOio6KikKLQllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCi0JZXhpdCAwIDs7Ci0gICAgKjp6L1ZNOio6KikKLQllY2hvIHMzOTAtaWJtLXp2bW9lCi0JZXhpdCAwIDs7Ci0gICAgKjpPUzQwMDoqOiopCi0gICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLQlleGl0IDAgOzsKLSAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0JZWNobyBhcm0tYWNvcm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMDs7Ci0gICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgwMDA6SEktVVgvTVBQOio6KikKLQllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCi0JZXhpdCAwOzsKLSAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKLQkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgotCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KLQkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKLQllbHNlCi0JCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAotCWZpCi0JZXhpdCAwIDs7Ci0gICAgTklMRSo6KjoqOmRjb3N4KQotCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKLQlleGl0IDAgOzsKLSAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKLQllY2hvIHNwYXJjLWljbC1ueDYKLQlleGl0IDAgOzsKLSAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCi0JY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCi0JICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDcgJiYgZXhpdCAwIDs7Ci0JZXNhYyA7OwotICAgIHN1bjRIOlN1bk9TOjUuKjoqKQotCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0JZXhpdCAwIDs7Ci0gICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKLQllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgIGk4NnBjOlN1bk9TOjUuKjoqKQotCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgIHN1bjQqOlN1bk9TOjYqOiopCi0JIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKLQkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAotCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0JZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLQlleGl0IDAgOzsKLSAgICBzdW40KjpTdW5PUzoqOiopCi0JY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBpbgotCSAgICBTZXJpZXMqfFM0KikKLQkJVU5BTUVfUkVMRUFTRT1gdW5hbWUgLXZgCi0JCTs7Ci0JZXNhYwotCSMgSmFwYW5lc2UgTGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24gbnVtYmVyIGxpa2UgYDQuMS4zLUpMJy4KLQllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAotCWV4aXQgMCA7OwotICAgIHN1bjMqOlN1bk9TOio6KikKLQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIHN1bio6Kjo0LjJCU0Q6KikKLQlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAotCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKLQljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLQkgICAgc3VuMykKLQkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLQkJOzsKLQkgICAgc3VuNCkKLQkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9Ci0JCTs7Ci0JZXNhYwotCWV4aXQgMCA7OwotICAgIGF1c2hwOlN1bk9TOio6KikKLQllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQotICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotICAgICMgImF0YXJpc3QiIG9yICJhdGFyaXN0ZSIgYXQgbGVhc3Qgc2hvdWxkIGhhdmUgYSBwcm9jZXNzb3IKLSAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCi0gICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKLSAgICAjIHRoZSBzeXN0ZW0gbmFtZSAiVE9TIiBkZW5vdGVzIGEgc3lzdGVtIHdoaWNoIGlzIGFjdHVhbGx5IG5vdAotICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAotICAgICMgYmUgbm8gcHJvYmxlbS4KLSAgICBhdGFyaXN0W2VdOipNaU5UOio6KiB8IGF0YXJpc3RbZV06Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikKLSAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQotCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotICAgICAgICBleGl0IDAgOzsKLSAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoqbWludDoqOiogfCAqbWlsYW4qOipUT1M6KjoqKQotICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQotICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay11bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0gICAgICAgIGV4aXQgMCA7OwotICAgIG02OGs6bWFjaHRlbjoqOiopCi0JZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgcG93ZXJwYzptYWNodGVuOio6KikKLQllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBSSVNDKjpNYWNoOio6KikKLQllY2hvIG1pcHMtZGVjLW1hY2hfYnNkNC4zCi0JZXhpdCAwIDs7Ci0gICAgUklTQyo6VUxUUklYOio6KikKLQllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBWQVgqOlVMVFJJWCo6KjoqKQotCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCi0JZWNobyBjbGlwcGVyLWludGVyZ3JhcGgtY2xpeCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtaXBzOio6KjpVTUlQUyB8IG1pcHM6KjoqOlJJU0NvcykKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSNpZmRlZiBfX2NwbHVzcGx1cwotI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICovCi0JaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSNlbHNlCi0JaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107IHsKLSNlbmRpZgotCSNpZiBkZWZpbmVkIChob3N0X21pcHMpICYmIGRlZmluZWQgKE1JUFNFQikKLQkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQotCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotCSNlbmRpZgotCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQpCi0JICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0JI2VuZGlmCi0JI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCi0JICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLQkjZW5kaWYKLQkjZW5kaWYKLQkgIGV4aXQgKC0xKTsKLQl9Ci1FT0YKLQkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyBcCi0JICAmJiAkZHVtbXkgYGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9wJ2AgXAotCSAgJiYgZXhpdCAwCi0JZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKLQllY2hvIHBvd2VycGMtbW90b3JvbGEtcG93ZXJtYXgKLQlleGl0IDAgOzsKLSAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0JZXhpdCAwIDs7Ci0gICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0JZXhpdCAwIDs7Ci0gICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VydW5peAotCWV4aXQgMCA7OwotICAgIG04OGs6Q1gvVVg6Nyo6KikKLQllY2hvIG04OGstaGFycmlzLWN4dXg3Ci0JZXhpdCAwIDs7Ci0gICAgbTg4azoqOjQqOlI0KikKLQllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKLQlleGl0IDAgOzsKLSAgICBtODhrOio6Myo6UjMqKQotCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotCWV4aXQgMCA7OwotICAgIEFWaWlPTjpkZ3V4Oio6KikKLSAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKLSAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLQlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCi0JdGhlbgotCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLQkgICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KLQkgICAgdGhlbgotCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KLQkgICAgZWxzZQotCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KLQkgICAgZmkKLQllbHNlCi0JICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQotCWZpCi0gCWV4aXQgMCA7OwotICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCi0JZWNobyBtODhrLWRvbHBoaW4tc3lzdjMKLQlleGl0IDAgOzsKLSAgICBNODgqOio6UjMqOiopCi0JIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMwotCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotCWV4aXQgMCA7OwotICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKLQlleGl0IDAgOzsKLSAgICBUZWs0M1swLTldWzAtOV06VVRlazoqOiopICMgVGVrdHJvbml4IDQzMDAgc3lzdGVtIHJ1bm5pbmcgVVRlayAoQlNEKQotCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgKjpJUklYKjoqOiopCi0JZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotCWV4aXQgMCA7OwotICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KLQllY2hvIHJvbXAtaWJtLWFpeCAgICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKLQlleGl0IDAgOzsgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJwotICAgIGkqODY6QUlYOio6KikKLQllY2hvIGkzODYtaWJtLWFpeAotCWV4aXQgMCA7OwotICAgIGlhNjQ6QUlYOio6KikKLQlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLQkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLQllbHNlCi0JCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0JZmkKLQllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KLQlleGl0IDAgOzsKLSAgICAqOkFJWDoyOjMpCi0JaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0JCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0KLQkJbWFpbigpCi0JCQl7Ci0JCQlpZiAoIV9fcG93ZXJfcGMoKSkKLQkJCQlleGl0KDEpOwotCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLQkJCWV4aXQoMCk7Ci0JCQl9Ci1FT0YKLQkJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAotCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKLQllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgotCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKLQllbHNlCi0JCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKLQlmaQotCWV4aXQgMCA7OwotICAgICo6QUlYOio6WzQ1XSkKLQlJQk1fQ1BVX0lEPWAvdXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWlsYWJsZSB8IHNlZCAxcSB8IGF3ayAneyBwcmludCAkMSB9J2AKLQlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkJSUJNX0FSQ0g9cnM2MDAwCi0JZWxzZQotCQlJQk1fQVJDSD1wb3dlcnBjCi0JZmkKLQlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLQkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLQllbHNlCi0JCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0JZmkKLQllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0JZXhpdCAwIDs7Ci0gICAgKjpBSVg6KjoqKQotCWVjaG8gcnM2MDAwLWlibS1haXgKLQlleGl0IDAgOzsKLSAgICBpYm1ydDo0LjRCU0Q6Knxyb21wLWlibTpCU0Q6KikKLQllY2hvIHJvbXAtaWJtLWJzZDQuNAotCWV4aXQgMCA7OwotICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCi0JZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotCWV4aXQgMCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVwb3J0OiByb21wLWlibSBCU0QgNC4zCi0gICAgKjpCT1NYOio6KikKLQllY2hvIHJzNjAwMC1idWxsLWJvc3gKLQlleGl0IDAgOzsKLSAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotCWVjaG8gbTY4ay1idWxsLXN5c3YzCi0JZXhpdCAwIDs7Ci0gICAgOTAwMC9bMzRdPz86NC4zYnNkOjEuKjoqKQotCWVjaG8gbTY4ay1ocC1ic2QKLQlleGl0IDAgOzsKLSAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQotCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLQlleGl0IDAgOzsKLSAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCi0JSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCi0JY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLQkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0JICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKLQkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCi0JCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0JCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKLSAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAotICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQotICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCi0gICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7Ci0gICAgICAgICAgICAgICAgICAgIGVzYWMKLQkJZmkKLQkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCi0JCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0JCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMKLQotICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KLQotICAgICAgICAgICAgICBpbnQgbWFpbiAoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLSAgICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKLSAgICAgICAgICAgICAgI2VuZGlmCi0gICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKLSAgICAgICAgICAgICAgCXsKLSAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCi0gICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQotICAgICAgICAgICAgICAJCXsKLSAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOwotICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAJCX0gYnJlYWs7Ci0gICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCi0gICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAl9Ci0gICAgICAgICAgICAgICAgICBleGl0ICgwKTsKLSAgICAgICAgICAgICAgfQotRU9GCi0JCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAotCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQotCQlmaSA7OwotCWVzYWMKLQlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KLQl0aGVuCi0JICAgICMgYXZvaWQgZG91YmxlIGV2YWx1YXRpb24gb2YgJHNldF9jY19mb3JfYnVpbGQKLQkgICAgdGVzdCAtbiAiJENDX0ZPUl9CVUlMRCIgfHwgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtKSB8IGdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAotCSAgICB0aGVuCi0JCUhQX0FSQ0g9ImhwcGEyLjB3IgotCSAgICBlbHNlCi0JCUhQX0FSQ0g9ImhwcGE2NCIKLQkgICAgZmkKLQlmaQotCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0KLQlleGl0IDAgOzsKLSAgICBpYTY0OkhQLVVYOio6KikKLQlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKLQllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9Ci0JZXhpdCAwIDs7Ci0gICAgMzA1MCo6SEktVVg6KjoqKQotCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotCSNpbmNsdWRlIDx1bmlzdGQuaD4KLQlpbnQKLQltYWluICgpCi0JewotCSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKLQkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0Ci0JICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KLQkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkKLQkgICAgewotCSAgICAgIHN3aXRjaCAoY3B1KQotCQl7Ci0JCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLQkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0JCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotCQl9Ci0JICAgIH0KLQkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKLQkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7Ci0JICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOwotCSAgZXhpdCAoMCk7Ci0JfQotRU9GCi0JJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAotCWVjaG8gdW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIKLQlleGl0IDAgOzsKLSAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCi0JZWNobyBocHBhMS4xLWhwLWJzZAotCWV4aXQgMCA7OwotICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCi0JZWNobyBocHBhMS4wLWhwLWJzZAotCWV4aXQgMCA7OwotICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKLQllY2hvIGhwcGExLjAtaHAtbXBlaXgKLQlleGl0IDAgOzsKLSAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6KjoqICkKLQllY2hvIGhwcGExLjEtaHAtb3NmCi0JZXhpdCAwIDs7Ci0gICAgaHA4Pz86T1NGMToqOiopCi0JZWNobyBocHBhMS4wLWhwLW9zZgotCWV4aXQgMCA7OwotICAgIGkqODY6T1NGMToqOiopCi0JaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhlbgotCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxbWsKLQllbHNlCi0JICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjEKLQlmaQotCWV4aXQgMCA7OwotICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKLQllY2hvIGhwcGExLjEtaHAtbGl0ZXMKLQlleGl0IDAgOzsKLSAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQotCWVjaG8gYzEtY29udmV4LWJzZAotICAgICAgICBleGl0IDAgOzsKLSAgICBDMio6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMyKjoqKQotCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0JZmkKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0KjoqKQotCWVjaG8gYzM0LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQotCWVjaG8gYzM4LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDNCo6KikKLQllY2hvIGM0LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQ1JBWSpZLU1QOio6KjoqKQotCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgQ1JBWSpbQS1aXTkwOio6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAotCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAotCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKLQkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgQ1JBWSpUUzoqOio6KikKLQllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotCWV4aXQgMCA7OwotICAgIENSQVkqVDNFOio6KjoqKQotCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotCWV4aXQgMCA7OwotICAgIENSQVkqU1YxOio6KjoqKQotCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgKjpVTklDT1MvbXA6KjoqKQotCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLQlleGl0IDAgOzsKLSAgICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKLQlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAotICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0gICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCi0gICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0gICAgICAgIGV4aXQgMCA7OwotICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAotICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0JZXhpdCAwIDs7Ci0gICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgc3BhcmMqOkJTRC9PUzoqOiopCi0JZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpCU0QvT1M6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpGcmVlQlNEOio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAotCWV4aXQgMCA7OwotICAgIGkqOkNZR1dJTio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCi0JZXhpdCAwIDs7Ci0gICAgaSo6TUlOR1cqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKLQlleGl0IDAgOzsKLSAgICBpKjpQVyo6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgotCWV4aXQgMCA7OwotICAgIHg4NjpJbnRlcml4KjpbMzRdKikKLQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1wuLiovLycKLQlleGl0IDAgOzsKLSAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05UOiopCi0JZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKLQlleGl0IDAgOzsKLSAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKLQkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0JIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKLQkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0JZWNobyBpNTg2LXBjLWludGVyaXgKLQlleGl0IDAgOzsKLSAgICBpKjpVV0lOKjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCi0JZXhpdCAwIDs7Ci0gICAgcCo6Q1lHV0lOKjoqKQotCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCi0JZXhpdCAwIDs7Ci0gICAgcHJlcCo6U3VuT1M6NS4qOiopCi0JZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgICo6R05VOio6KikKLQkjIHRoZSBHTlUgc3lzdGVtCi0JZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0JZXhpdCAwIDs7Ci0gICAgKjpHTlUvKjoqOiopCi0JIyBvdGhlciBzeXN0ZW1zIHdpdGggR05VIGxpYmMgYW5kIHVzZXJsYW5kCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5bXi9dKi8sLCcgfCB0ciAnW0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYC1nbnUKLQlleGl0IDAgOzsKLSAgICBpKjg2Ok1pbml4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLQlleGl0IDAgOzsKLSAgICBhcm0qOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBjcmlzOkxpbnV4Oio6KikKLQllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBjcmlzdjMyOkxpbnV4Oio6KikKLQllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBmcnY6TGludXg6KjoqKQotICAgIAllY2hvIGZydi11bmtub3duLWxpbnV4LWdudQotCWV4aXQgMCA7OwotICAgIGlhNjQ6TGludXg6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotCWV4aXQgMCA7OwotICAgIG0zMnIqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBtNjgqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBtaXBzOkxpbnV4Oio6KikKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLQkjdW5kZWYgQ1BVCi0JI3VuZGVmIG1pcHMKLQkjdW5kZWYgbWlwc2VsCi0JI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLQlDUFU9bWlwc2VsCi0JI2Vsc2UKLQkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQotCUNQVT1taXBzCi0JI2Vsc2UKLQlDUFU9Ci0JI2VuZGlmCi0JI2VuZGlmCi1FT0YKLQlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeQ1BVPWAKLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIgJiYgZXhpdCAwCi0JOzsKLSAgICBtaXBzNjQ6TGludXg6KjoqKQotCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotCSN1bmRlZiBDUFUKLQkjdW5kZWYgbWlwczY0Ci0JI3VuZGVmIG1pcHM2NGVsCi0JI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLQlDUFU9bWlwczY0ZWwKLQkjZWxzZQotCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0JQ1BVPW1pcHM2NAotCSNlbHNlCi0JQ1BVPQotCSNlbmRpZgotCSNlbmRpZgotRU9GCi0JZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCi0JdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiICYmIGV4aXQgMAotCTs7Ci0gICAgcHBjOkxpbnV4Oio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBwcGM2NDpMaW51eDoqOiopCi0JZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBhbHBoYTpMaW51eDoqOiopCi0JY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KLQkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1IDs7Ci0JICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKLQkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLQkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLQkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7Ci0JICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLQkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OwotICAgICAgICBlc2FjCi0Jb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLQlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KLQlleGl0IDAgOzsKLSAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCi0JIyBMb29rIGZvciBDUFUgbGV2ZWwKLQljYXNlIGBncmVwICdeY3B1W15hLXpdKjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYyYCBpbgotCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7Ci0JICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLQkgICopICAgIGVjaG8gaHBwYS11bmtub3duLWxpbnV4LWdudSA7OwotCWVzYWMKLQlleGl0IDAgOzsKLSAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQotCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51eAotCWV4aXQgMCA7OwotICAgIHNoNjQqOkxpbnV4Oio6KikKLSAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgc2gqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICB4ODZfNjQ6TGludXg6KjoqKQotCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgaSo4NjpMaW51eDoqOiopCi0JIyBUaGUgQkZEIGxpbmtlciBrbm93cyB3aGF0IHRoZSBkZWZhdWx0IG9iamVjdCBmaWxlIGZvcm1hdCBpcywgc28KLQkjIGZpcnN0IHNlZSBpZiBpdCB3aWxsIHRlbGwgdXMuIGNkIHRvIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50Ci0JIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgotCSMgU2V0IExDX0FMTD1DIHRvIGVuc3VyZSBsZCBvdXRwdXRzIG1lc3NhZ2VzIGluIEVuZ2xpc2guCi0JbGRfc3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0taGVscCAyPiYxIFwKLQkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czovIWQKLQkJCQkgICAgcy9bIAldWyAJXSovIC9nCi0JCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8vCi0JCQkJICAgIHMvIC4qLy8KLQkJCQkgICAgcCdgCi0gICAgICAgIGNhc2UgIiRsZF9zdXBwb3J0ZWRfdGFyZ2V0cyIgaW4KLQkgIGVsZjMyLWkzODYpCi0JCVRFTlRBVElWRT0iJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnUiCi0JCTs7Ci0JICBhLm91dC1pMzg2LWxpbnV4KQotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWFvdXQiCi0JCWV4aXQgMCA7OwotCSAgY29mZi1pMzg2KQotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCi0JCWV4aXQgMCA7OwotCSAgIiIpCi0JCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgotCQkjIG9uZSB0aGF0IGRvZXMgbm90IGdpdmUgdXMgdXNlZnVsIC0taGVscC4KLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVvbGRsZCIKLQkJZXhpdCAwIDs7Ci0JZXNhYwotCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCi0JZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0JI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0JI2lmZGVmIF9fRUxGX18KLQkjIGlmZGVmIF9fR0xJQkNfXwotCSMgIGlmIF9fR0xJQkNfXyA+PSAyCi0JTElCQz1nbnUKLQkjICBlbHNlCi0JTElCQz1nbnVsaWJjMQotCSMgIGVuZGlmCi0JIyBlbHNlCi0JTElCQz1nbnVsaWJjMQotCSMgZW5kaWYKLQkjZWxzZQotCSNpZmRlZiBfX0lOVEVMX0NPTVBJTEVSCi0JTElCQz1nbnUKLQkjZWxzZQotCUxJQkM9Z251YW91dAotCSNlbmRpZgotCSNlbmRpZgotCSNpZmRlZiBfX2RpZXRsaWJjX18KLQlMSUJDPWRpZXRsaWJjCi0JI2VuZGlmCi1FT0YKLQlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeTElCQz1gCi0JdGVzdCB4IiR7TElCQ30iICE9IHggJiYgZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IiAmJiBleGl0IDAKLQl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIGVjaG8gIiR7VEVOVEFUSVZFfSIgJiYgZXhpdCAwCi0JOzsKLSAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQotCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCi0JIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAotCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0JZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKLQlleGl0IDAgOzsKLSAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQotICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCi0gICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KLSAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAotCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KLSAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lPTn0KLQlleGl0IDAgOzsKLSAgICBpKjg2Ok9TLzI6KjoqKQotCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmlsaXR5Ci0JIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKLQlleGl0IDAgOzsKLSAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKLQlleGl0IDAgOzsKLSAgICBpKjg2OmF0aGVvczoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYXRoZW9zCi0JZXhpdCAwIDs7Ci0JaSo4NjpzeWxsYWJsZToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCi0JZXhpdCAwIDs7Ci0gICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LjAqOiopCi0JZWNobyBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGkqODY6KkRPUzoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKLQlleGl0IDAgOzsKLSAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQotCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8nYAotCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KLQllbHNlCi0JCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9Ci0JZmkKLQlleGl0IDAgOzsKLSAgICBpKjg2Oio6NTpbNzhdKikKLQljYXNlIGAvYmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgotCSAgICAqNDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKLQkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci0JICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7Ci0JZXNhYwotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9OfQotCWV4aXQgMCA7OwotICAgIGkqODY6KjozLjI6KikKLQlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCi0JCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKLQkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKLQllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KLQkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAotCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKLQkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgotCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAotCWVsc2UKLQkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgotCWZpCi0JZXhpdCAwIDs7Ci0gICAgcGM6KjoqOiopCi0JIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6Ci0gICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Ci0gICAgICAgICMgdGhlIHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGkzODYuCi0JZWNobyBpMzg2LXBjLW1zZG9zZGpncHAKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgSW50ZWw6TWFjaDozKjoqKQotCWVjaG8gaTM4Ni1wYy1tYWNoMwotCWV4aXQgMCA7OwotICAgIHBhcmFnb246KjoqOiopCi0JZWNobyBpODYwLWludGVsLW9zZjEKLQlleGl0IDAgOzsKLSAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0Ci0JaWYgZ3JlcCBTdGFyZGVudCAvdXNyL2luY2x1ZGUvc3lzL3VhZG1pbi5oID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLQkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKLQllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCi0JICBlY2hvIGk4NjAtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSAgIyBVbmtub3duIGk4NjAtU1ZSNAotCWZpCi0JZXhpdCAwIDs7Ci0gICAgbWluaSo6Q1RJWDpTWVMqNToqKQotCSMgIm1pbmlmcmFtZSIKLQllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKLQlleGl0IDAgOzsKLSAgICBtYzY4azpVTklYOlNZU1RFTTU6My41MW0pCi0JZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgotCWV4aXQgMCA7OwotICAgIE02ODA/MDpELU5JWDo1LjM6KikKLQllY2hvIG02OGstZGlhYi1kbml4Ci0JZXhpdCAwIDs7Ci0gICAgTTY4KjoqOlIzVls1Njc4XSo6KikKLQl0ZXN0IC1yIC9zeXNWNjggJiYgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JyAmJiBleGl0IDAgOzsKLSAgICAzWzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkKLQlPU19SRUw9JycKLQl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKLQkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAotCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotCSAgJiYgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMAotCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAotCSAgJiYgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMCA7OwotICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQotICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSAgICAgICAgICAmJiBlY2hvIGk0ODYtbmNyLXN5c3Y0ICYmIGV4aXQgMCA7OwotICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQotCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0JZWNobyBtNjhrLWF0YXJpLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCi0JZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICByczYwMDA6THlueE9TOjIuKjoqKQotCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC4wKjoqKQotCWVjaG8gcG93ZXJwYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTTVtCRV1TOlVOSVhfU1Y6KjoqKQotCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCi0JZWNobyBtaXBzLXNuaS1zeXN2NAotCWV4aXQgMCA7OwotICAgIFJNKjpTSU5JWC0qOio6KikKLQllY2hvIG1pcHMtc25pLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgKjpTSU5JWC0qOio6KikKLQlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgotCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotCQllY2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0Ci0JZWxzZQotCQllY2hvIG5zMzJrLXNuaS1zeXN2Ci0JZmkKLQlleGl0IDAgOzsKLSAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAotICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KLSAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAotICAgICAgICBleGl0IDAgOzsKLSAgICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKLQkjIEZyb20gR2VyYWxkIEhld2VzIDxoZXdlc0BvcGVubWFya2V0LmNvbT4uCi0JIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCi0JZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKLQlleGl0IDAgOzsKLSAgICAqOio6KjpGVFgqKQotCSMgRnJvbSBzZWFuZkBzd2RjLnN0cmF0dXMuY29tLgotCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgKjpWT1M6KjoqKQotCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXZvcwotCWV4aXQgMCA7OwotICAgIG1jNjgqOkEvVVg6KjoqKQotCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbmV3cyo6TkVXUy1PUzo2KjoqKQotCWVjaG8gbWlwcy1zb255LW5ld3NvczYKLQlleGl0IDAgOzsKLSAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLQlpZiBbIC1kIC91c3IvbmVjIF07IHRoZW4KLQkgICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLQllbHNlCi0JICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQotCWZpCi0gICAgICAgIGV4aXQgMCA7OwotICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KLQllY2hvIHBvd2VycGMtYmUtYmVvcwotCWV4aXQgMCA7OwotICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KLQllY2hvIHBvd2VycGMtYXBwbGUtYmVvcwotCWV4aXQgMCA7OwotICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCi0JZWNobyBpNTg2LXBjLWJlb3MKLQlleGl0IDAgOzsKLSAgICBTWC00OlNVUEVSLVVYOio6KikKLQllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTWC01OlNVUEVSLVVYOio6KikKLQllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTWC02OlNVUEVSLVVYOio6KikKLQllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQotCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOlJoYXBzb2R5Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpEYXJ3aW46KjoqKQotCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0JY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCi0JICAgICo4NikgVU5BTUVfUFJPQ0VTU09SPWk2ODYgOzsKLQkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKLQllc2FjCi0JZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQotCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCi0JaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgotCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgotCQlVTkFNRV9NQUNISU5FPXBjCi0JZmkKLQllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpRTlg6Kjo0KikKLQllY2hvIGkzODYtcGMtcW54Ci0JZXhpdCAwIDs7Ci0gICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQotCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpOb25TdG9wLVVYOio6KikKLQllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAotCWV4aXQgMCA7OwotICAgIEJTMjAwMDpQT1NJWCo6KjoqKQotCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgotCWV4aXQgMCA7OwotICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpQbGFuOToqOiopCi0JIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2Ci0JIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLQkjIG9wZXJhdGluZyBzeXN0ZW1zLgotCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCi0JICAgIFVOQU1FX01BQ0hJTkU9aTM4NgotCWVsc2UKLQkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCi0JZmkKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQotCWV4aXQgMCA7OwotICAgICo6VE9QUy0xMDoqOiopCi0JZWNobyBwZHAxMC11bmtub3duLXRvcHMxMAotCWV4aXQgMCA7OwotICAgICo6VEVORVg6KjoqKQotCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotCWV4aXQgMCA7OwotICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCi0JZWNobyBwZHAxMC1kZWMtdG9wczIwCi0JZXhpdCAwIDs7Ci0gICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKLQllY2hvIHBkcDEwLXhrbC10b3BzMjAKLQlleGl0IDAgOzsKLSAgICAqOlRPUFMtMjA6KjoqKQotCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKLQlleGl0IDAgOzsKLSAgICAqOklUUzoqOiopCi0JZWNobyBwZHAxMC11bmtub3duLWl0cwotCWV4aXQgMCA7OwotICAgIFNFSToqOio6U0VJVVgpCi0gICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpEcmFnb25GbHk6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKLQlleGl0IDAgOzsKLSAgICAqOipWTVM6KjoqKQotICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCi0JICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgJiYgZXhpdCAwIDs7Ci0JICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyAmJiBleGl0IDAgOzsKLQkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgJiYgZXhpdCAwIDs7Ci0JZXNhYyA7OwotICAgICo6WEVOSVg6KjpTeXNWKQotCWVjaG8gaTM4Ni1wYy14ZW5peAotCWV4aXQgMCA7OwotZXNhYwotCi0jZWNobyAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNvZ25pemVkLiknIDE+JjIKLSNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKLQotZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotY2F0ID4kZHVtbXkuYyA8PEVPRgotI2lmZGVmIF9TRVFVRU5UXwotIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSNlbmRpZgotbWFpbiAoKQotewotI2lmIGRlZmluZWQgKHNvbnkpCi0jaWYgZGVmaW5lZCAoTUlQU0VCKQotICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2VkLAotICAgICBJIGRvbid0IGtub3cuLi4uICAqLwotICBwcmludGYgKCJtaXBzLXNvbnktYnNkXG4iKTsgZXhpdCAoMCk7Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0jaWZkZWYgTkVXU09TNAotICAgICAgICAgICI0IgotI2Vsc2UKLQkgICIiCi0jZW5kaWYKLSAgICAgICAgICk7IGV4aXQgKDApOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCi0gIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXgiKTsgZXhpdCAoMCk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKLSAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZCAoTmVYVCkKLSNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RVUkVfXykKLSNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKLSNlbmRpZgotICBpbnQgdmVyc2lvbjsKLSAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOwotICBpZiAodmVyc2lvbiA8IDQpCi0gICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSAgZWxzZQotICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7Ci0gIGV4aXQgKDApOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotI2lmIGRlZmluZWQgKFVNQVhWKQotICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOwotI2Vsc2UKLSNpZiBkZWZpbmVkIChDTVUpCi0gIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7Ci0jZWxzZQotICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7Ci0jZW5kaWYKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChfXzM4NkJTRF9fKQotICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChzZXF1ZW50KQotI2lmIGRlZmluZWQgKGkzODYpCi0gIHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0jaWYgZGVmaW5lZCAobnMzMjAwMCkKLSAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKLSAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKLQotICAgIHVuYW1lKCZ1bik7Ci0KLSAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0JcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKLSAgICB9Ci0gICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KLQlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOwotICAgIH0KLSAgICBwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZCAodmF4KQotIyBpZiAhZGVmaW5lZCAodWx0cml4KQotIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jICBpZiBkZWZpbmVkIChCU0QpCi0jICAgaWYgQlNEID09IDQzCi0gICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOwotIyAgIGVsc2UKLSMgICAgaWYgQlNEID09IDE5OTAwNgotICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7Ci0jICAgIGVsc2UKLSAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7Ci0jICAgIGVuZGlmCi0jICAgZW5kaWYKLSMgIGVsc2UKLSAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwotIyAgZW5kaWYKLSMgZWxzZQotICAgIHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCi0gIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKLSNlbmRpZgotCi0gIGV4aXQgKDEpOwotfQotRU9GCi0KLSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmICRkdW1teSAmJiBleGl0IDAKLQotIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgotCi10ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxvLSR7U1lTVFlQRX07IGV4aXQgMDsgfQotCi0jIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCi0KLWlmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCi10aGVuCi0gICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KLSAgICBjMSopCi0JZWNobyBjMS1jb252ZXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgYzIqKQotCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0JZmkKLQlleGl0IDAgOzsKLSAgICBjMzQqKQotCWVjaG8gYzM0LWNvbnZleC1ic2QKLQlleGl0IDAgOzsKLSAgICBjMzgqKQotCWVjaG8gYzM4LWNvbnZleC1ic2QKLQlleGl0IDAgOzsKLSAgICBjNCopCi0JZWNobyBjNC1jb252ZXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgZXNhYwotZmkKLQotY2F0ID4mMiA8PEVPRgotJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQotCi1UaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQotdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQotZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0KLSAgICBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8KLQotSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCi1zZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQotcGVydGluZW50IHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRoZSBuZWVkZWQKLWluZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KLQotY29uZmlnLmd1ZXNzIHRpbWVzdGFtcCA9ICR0aW1lc3RhbXAKLQotdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi11bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLXVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0KLS91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCi0vYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0KLWhvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKLS9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAotL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGxgCi0vYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAotL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0vdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbGAKLQotVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KLVVOQU1FX1JFTEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9Ci1VTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19Ci1VTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQotRU9GCi0KLWV4aXQgMQotCi0jIExvY2FsIHZhcmlhYmxlczoKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKLSMgdGltZS1zdGFtcC1lbmQ6ICInIgotIyBFbmQ6CmRpZmYgLS1naXQgYS9jb25maWcuaC5pbiBiL2NvbmZpZy5oLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjA0MjkwLi4wMDAwMDAwCi0tLSBhL2NvbmZpZy5oLmluCisrKyAvZGV2L251bGwKQEAgLTEsNDEyICswLDAgQEAKLS8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBBbHBoYSBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgQUxQSEEKLQotLyogRGVmaW5lIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBBUk0KLQotLyogRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotI3VuZGVmIEZSRUVCU0QKLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBzZXQgYnkgYGdldGdyb3VwcycuIFVzdWFsbHkKLSAgIHRoaXMgaXMgZWl0aGVyIGBpbnQnIG9yIGBnaWRfdCcuICovCi0jdW5kZWYgR0VUR1JPVVBTX1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfQVNNX1JFR19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3NpZ2NvbnRleHQuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9BU01fU0lHQ09OVEVYVF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3N5c21pcHMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9BU01fU1lTTUlQU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX2Vycmxpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI3VuZGVmIEhBVkVfREVDTF9TWVNfRVJSTElTVAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHN5c19zaWdsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSN1bmRlZiBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBfc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI3VuZGVmIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSN1bmRlZiBIQVZFX0RJUkVOVF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfR0VUREVOVFMKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9JRl9JTkRFWFRPTkFNRQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9JTkVUX05UT1AKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX0lOVFRZUEVTX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9JT0NUTFNfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX0xJQkFJT19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCi0jdW5kZWYgSEFWRV9MSUJOU0wKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTElOVVhfSUNNUF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTElOVVhfSUZfUEFDS0VUX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9JTjZfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9QVFJBQ0VfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9VVFNOQU1FX0gKLQotLyogRGVmaW5lIGlmIGxvbmcgbG9uZyBpcyBsaXR0bGUtZW5kaWFuLiAqLwotI3VuZGVmIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZycuICovCi0jdW5kZWYgSEFWRV9MT05HX0xPTkcKLQotLyogRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLiAqLwotI3VuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi0KLS8qIERlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuICovCi0jdW5kZWYgSEFWRV9MT05HX0xPTkdfUkxJTV9UCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWN0bCcgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9NQ1RMCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTUVNT1JZX0gKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4gSS5FLiAvZGV2L3h4eC9jdGwsCi0gICAvZGV2L3h4eC9zdGF0dXMuIEFsc28gaW1wbGllcyB0aGF0IHlvdSBoYXZlIHRoZSBwcl9sd3AgbWVtYmVyIGluIHByc3RhdHVzLgotICAgKi8KLSN1bmRlZiBIQVZFX01QX1BST0NGUwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX01RVUVVRV9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuICovCi0jdW5kZWYgSEFWRV9ORElSX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX05FVElORVRfVENQX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX05FVElORVRfVURQX0gKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIFNWUjQgYW5kIHRoZSBwb2xsIHN5c3RlbSBjYWxsIHdvcmtzIG9uIC9wcm9jIGZpbGVzLiAqLwotI3VuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1BPTExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByY3RsJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1BSQ1RMCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJlYWQnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfUFJFQUQKLQotLyogRGVmaW5lIGlmIHRoZSBwcnN0YXR1cyBzdHJ1Y3R1cmUgaW4gc3lzL3Byb2Nmcy5oIGhhcyBhIHByX3N5c2NhbGwgbWVtYmVyLgotICAgKi8KLSN1bmRlZiBIQVZFX1BSX1NZU0NBTEwKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZW5kbXNnJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1NFTkRNU0cKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU0lHQUNUSU9OCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzaWdpbmZvX3QnLiAqLwotI3VuZGVmIEhBVkVfU0lHSU5GT19UCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzaWdfYXRvbWljX3QnLiAqLwotI3VuZGVmIEhBVkVfU0lHX0FUT01JQ19UCi0KLS8qIERlZmluZSBpZiBzdGF0NjQgaXMgYXZhaWxhYmxlIGluIGFzbS9zdGF0LmguICovCi0jdW5kZWYgSEFWRV9TVEFUNjQKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TVERJTlRfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NURExJQl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU1RSRVJST1IKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RSSU5HU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RSSU5HX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJvcHRzLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RST1BUU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1NUUlNJR05BTAotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IGlhNjRfZnByZWcnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKLQotLyogRGVmaW5lIHRvIDEgaWYgYG1zZ19jb250cm9sJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtc2doZHInLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTAotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IG9wdGhkcicuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfT1BUSERSCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncycuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfUFRfQUxMX1VTRVJfUkVHUwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc2luNl9zY29wZV9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRAotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYWNsY250JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0FDTENOVAotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYmxrc2l6ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9ibG9ja3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9mbGFncycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHUwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZnN0eXBlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZTVFlQRQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZ2VuJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0dFTgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfbGV2ZWwnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X3JkZXYnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFVgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgQUNDRVBUT1JfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IFRfY29ubl9yZXMnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfQUNDRVBUT1JfSUQKLQotLyogRGVmaW5lIHRvIDEgaWYgYFFVRVVFX3B0cicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19RVUVVRV9QVFIKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCB0X29wdGhkcicuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfVF9PUFRIRFIKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCB1c2VyX2Rlc2MnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1VTRVJfREVTQwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9hY2wuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfQUNMX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYWlvLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0FJT19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FzeW5jaC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19BU1lOQ0hfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jb25mLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0NPTkZfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSN1bmRlZiBIQVZFX1NZU19ESVJfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kb29yLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0RPT1JfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9lcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19FUE9MTF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfSU9DVExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0jdW5kZWYgSEFWRV9TWVNfTkRJUl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25zY3N5cy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19OU0NTWVNfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1BPTExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfUFRSQUNFX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1JFR19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19TVEFUX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2NvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19TWVNDT05GSUdfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aWhkci5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19USUhEUl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19USVVTRVJfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19UWVBFU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19VSU9fSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfVkZTX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9URVJNSU9fSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1VOSVNURF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX19TWVNfU0lHTElTVAotCi0vKiBEZWZpbmUgZm9yIHRoZSBIUFBBIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBIUFBBCi0KLS8qIERlZmluZSBmb3IgdGhlIGkzODYgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIEkzODYKLQotLyogRGVmaW5lIGZvciB0aGUgSUE2NCBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgSUE2NAotCi0vKiBEZWZpbmUgZm9yIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotI3VuZGVmIExJTlVYCi0KLS8qIERlZmluZSBmb3IgdGhlIG02OGsgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIE02OEsKLQotLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4gPG1rZGV2Lmg+LgotICAgKi8KLSN1bmRlZiBNQUpPUl9JTl9NS0RFVgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbgotICAgPHN5c21hY3Jvcy5oPi4gKi8KLSN1bmRlZiBNQUpPUl9JTl9TWVNNQUNST1MKLQotLyogRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgTUlQUwotCi0vKiBOYW1lIG9mIHBhY2thZ2UgKi8KLSN1bmRlZiBQQUNLQUdFCi0KLS8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwotI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX05BTUUKLQotLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwotI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCi0KLS8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKLQotLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX1ZFUlNJT04KLQotLyogRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgUE9XRVJQQwotCi0vKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoYGludCcgb3IgYHZvaWQnKS4gKi8KLSN1bmRlZiBSRVRTSUdUWVBFCi0KLS8qIERlZmluZSBmb3IgdGhlIFMzOTAgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIFMzOTAKLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIFMzOTBYCi0KLS8qIERlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTSAotCi0vKiBEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTSDY0Ci0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTUEFSQwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTUEFSQzY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTUEFSQzY0Ci0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBgU19JUyonIG1hY3JvcyBpbiA8c3lzL3N0YXQuaD4gZG8gbm90IHdvcmsgcHJvcGVybHkuICovCi0jdW5kZWYgU1RBVF9NQUNST1NfQlJPS0VOCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotI3VuZGVmIFNURENfSEVBREVSUwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLSN1bmRlZiBTVU5PUzQKLQotLyogRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uIG9mCi0gICBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLiBPbmx5Ci0gICB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNCBpbiB0aGUKLSAgIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS4gKi8KLSN1bmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCi0KLS8qIERlZmluZSBmb3IgdGhlIFN5c3RlbSBWIHJlbGVhc2UgNCBvcGVyYXRpbmcgc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlCi0gICBTb2xhcmlzIDIueCBvciBJcml4IDUueC4gKi8KLSN1bmRlZiBTVlI0Ci0KLS8qIERlZmluZSBmb3IgVW5peFdhcmUgc3lzdGVtcy4gKi8KLSN1bmRlZiBVTklYV0FSRQotCi0vKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCi0jdW5kZWYgVkVSU0lPTgotCi0vKiBEZWZpbmUgZm9yIHRoZSBBTUQgeDg2LTY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBYODZfNjQKLQotLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwotI2lmbmRlZiBfR05VX1NPVVJDRQotIyB1bmRlZiBfR05VX1NPVVJDRQotI2VuZGlmCi0KLS8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwotI3VuZGVmIGNvbnN0Ci0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotI3VuZGVmIGdpZF90Ci0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KLSN1bmRlZiBtb2RlX3QKLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCi0jdW5kZWYgdWlkX3QKZGlmZiAtLWdpdCBhL2NvbmZpZy5sb2cgYi9jb25maWcubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGI3MzJiLi4wMDAwMDAwCi0tLSBhL2NvbmZpZy5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw1NDAxICswLDAgQEAKLVRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi1ydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotCi1JdCB3YXMgY3JlYXRlZCBieSBzdHJhY2UgY29uZmlndXJlIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICAkIC4vY29uZmlndXJlIC0tcHJlZml4PS9kYXRhLyAtLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudQotCi0jIyAtLS0tLS0tLS0gIyMKLSMjIFBsYXRmb3JtLiAjIwotIyMgLS0tLS0tLS0tICMjCi0KLWhvc3RuYW1lID0gc2t5d3JpdGluZy5jb3JwLmdvb2dsZS5jb20KLXVuYW1lIC1tID0geDg2XzY0Ci11bmFtZSAtciA9IDIuNi4xOC41LWdnMTl3b3Jrc3RhdGlvbi1taXhlZDY0LTMyCi11bmFtZSAtcyA9IExpbnV4Ci11bmFtZSAtdiA9ICMxIFNNUCBUdWUgTm92IDIwIDE2OjAyOjUyIFBTVCAyMDA3Ci0KLS91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgotL2Jpbi91bmFtZSAtWCAgICAgPSB1bmtub3duCi0KLS9iaW4vYXJjaCAgICAgICAgICAgICAgPSB4ODZfNjQKLS91c3IvYmluL2FyY2ggLWsgICAgICAgPSB1bmtub3duCi0vdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgotaG9zdGluZm8gICAgICAgICAgICAgICA9IHVua25vd24KLS9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1bmtub3duCi0vdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93bgotL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KLQotUEFUSDogL3Vzci9sb2NhbC9zeW1saW5rcwotUEFUSDogL3Vzci9sb2NhbC9zY3JpcHRzCi1QQVRIOiAvdXNyL2xvY2FsL3NiaW4KLVBBVEg6IC91c3IvbG9jYWwvYmluCi1QQVRIOiAvdXNyL3NiaW4KLVBBVEg6IC91c3IvYmluCi1QQVRIOiAvc2JpbgotUEFUSDogL2JpbgotUEFUSDogL3Vzci9iaW4vWDExCi1QQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluL2Jpbi8KLVBBVEg6IC9ob21lL21rZi9iaW4KLVBBVEg6IC9hbmRyb2lkL2RldmljZS9vdXQvaG9zdC9saW51eC14ODYvYmluCi1QQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluL2FybS1lbGYKLVBBVEg6IC9hbmRyb2lkL2RldmljZS90b29scy9xdG9vbHMKLVBBVEg6IC9hbmRyb2lkL2RldmljZS9wcmVidWlsdC9MaW51eC90b29sY2hhaW4tZWFiaS00LjIuMS9iaW4KLVBBVEg6IC9hbmRyb2lkL2RldmljZS9wcmVidWlsdC9MaW51eC90b29sY2hhaW4tZWFiaS00LjIuMS9iaW4KLQotCi0jIyAtLS0tLS0tLS0tLSAjIwotIyMgQ29yZSB0ZXN0cy4gIyMKLSMjIC0tLS0tLS0tLS0tICMjCi0KLWNvbmZpZ3VyZToxMzU4OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCi1jb25maWd1cmU6MTQxMzogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jCi1jb25maWd1cmU6MTQyNDogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lCi1jb25maWd1cmU6MTQ2NzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToxNTMyOiBjaGVja2luZyBmb3IgZ2F3awotY29uZmlndXJlOjE1NDg6IGZvdW5kIC91c3IvYmluL2dhd2sKLWNvbmZpZ3VyZToxNTU4OiByZXN1bHQ6IGdhd2sKLWNvbmZpZ3VyZToxNTY4OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCi1jb25maWd1cmU6MTU4ODogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToxNzU2OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcwotY29uZmlndXJlOjE3NjU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZToxNzg2OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQotY29uZmlndXJlOjE4MDQ6IHJlc3VsdDogYXJtLXVua25vd24tbGludXgtZ251Ci1jb25maWd1cmU6MTgxMjogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQotY29uZmlndXJlOjE4MjY6IHJlc3VsdDogYXJtLXVua25vd24tbGludXgtZ251Ci1jb25maWd1cmU6MTgzNTogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtCi1jb25maWd1cmU6MTg5NDogcmVzdWx0OiBsaW51eAotY29uZmlndXJlOjE4OTc6IGNoZWNraW5nIGZvciBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlCi1jb25maWd1cmU6MjAyODogcmVzdWx0OiBhcm0KLWNvbmZpZ3VyZToyMTQxOiBjaGVja2luZyBmb3IgZ2NjCi1jb25maWd1cmU6MjE1NzogZm91bmQgL3Vzci9iaW4vZ2NjCi1jb25maWd1cmU6MjE2NzogcmVzdWx0OiBnY2MKLWNvbmZpZ3VyZToyNDExOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uCi1jb25maWd1cmU6MjQxNDogZ2NjIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNQotZ2NjIChHQ0MpIDQuMC4zIChVYnVudHUgNC4wLjMtMXVidW50dTUpCi1Db3B5cmlnaHQgKEMpIDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi1UaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwotd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCi0KLWNvbmZpZ3VyZToyNDE3OiAkPyA9IDAKLWNvbmZpZ3VyZToyNDE5OiBnY2MgLXYgPC9kZXYvbnVsbCA+JjUKLVVzaW5nIGJ1aWx0LWluIHNwZWNzLgotVGFyZ2V0OiBpNDg2LWxpbnV4LWdudQotQ29uZmlndXJlZCB3aXRoOiAuLi9zcmMvY29uZmlndXJlIC12IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxqYXZhLGY5NSxvYmpjLGFkYSx0cmVlbGFuZyAtLXByZWZpeD0vdXNyIC0tZW5hYmxlLXNoYXJlZCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1saWJleGVjZGlyPS91c3IvbGliIC0td2l0aG91dC1pbmNsdWRlZC1nZXR0ZXh0IC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtbmxzIC0tcHJvZ3JhbS1zdWZmaXg9LTQuMCAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS1lbmFibGUtbGlic3RkY3h4LWRlYnVnIC0tZW5hYmxlLWphdmEtYXd0PWd0ay1kZWZhdWx0IC0tZW5hYmxlLWd0ay1jYWlybyAtLXdpdGgtamF2YS1ob21lPS91c3IvbGliL2p2bS9qYXZhLTEuNC4yLWdjai00LjAtMS40LjIuMC9qcmUgLS1lbmFibGUtbXBmciAtLWRpc2FibGUtd2Vycm9yIC0td2l0aC10dW5lPXBlbnRpdW00IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgaTQ4Ni1saW51eC1nbnUKLVRocmVhZCBtb2RlbDogcG9zaXgKLWdjYyB2ZXJzaW9uIDQuMC4zIChVYnVudHUgNC4wLjMtMXVidW50dTUpCi1jb25maWd1cmU6MjQyMjogJD8gPSAwCi1jb25maWd1cmU6MjQyNDogZ2NjIC1WIDwvZGV2L251bGwgPiY1Ci1nY2M6ICctVicgb3B0aW9uIG11c3QgaGF2ZSBhcmd1bWVudAotY29uZmlndXJlOjI0Mjc6ICQ/ID0gMQotY29uZmlndXJlOjI0NTA6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQotY29uZmlndXJlOjI0NTM6IGdjYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6MjQ1NjogJD8gPSAwCi1jb25maWd1cmU6MjUwMjogcmVzdWx0OiBhLm91dAotY29uZmlndXJlOjI1MDc6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKLWNvbmZpZ3VyZToyNTEzOiAuL2Eub3V0Ci1jb25maWd1cmU6MjUxNjogJD8gPSAwCi1jb25maWd1cmU6MjUzMzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToyNTQwOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKLWNvbmZpZ3VyZToyNTQyOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6MjU0NTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwotY29uZmlndXJlOjI1NDc6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6MjU1MDogJD8gPSAwCi1jb25maWd1cmU6MjU3NTogcmVzdWx0OiAKLWNvbmZpZ3VyZToyNTgxOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwotY29uZmlndXJlOjI2MDI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjI2MDU6ICQ/ID0gMAotY29uZmlndXJlOjI2Mjc6IHJlc3VsdDogbwotY29uZmlndXJlOjI2MzE6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgotY29uZmlndXJlOjI2NTU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjI2NjE6ICQ/ID0gMAotY29uZmlndXJlOjI2NjU6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjI2Njg6ICQ/ID0gMAotY29uZmlndXJlOjI2NzE6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjI2NzQ6ICQ/ID0gMAotY29uZmlndXJlOjI2ODc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6MjY5MzogY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZwotY29uZmlndXJlOjI3MTQ6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZToyNzIwOiAkPyA9IDAKLWNvbmZpZ3VyZToyNzI0OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZToyNzI3OiAkPyA9IDAKLWNvbmZpZ3VyZToyNzMwOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZToyNzMzOiAkPyA9IDAKLWNvbmZpZ3VyZToyNzQ0OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjI3NjE6IGNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMKLWNvbmZpZ3VyZToyODMxOiBnY2MgIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6MjgzNzogJD8gPSAwCi1jb25maWd1cmU6Mjg0MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Mjg0NDogJD8gPSAwCi1jb25maWd1cmU6Mjg0NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Mjg1MDogJD8gPSAwCi1jb25maWd1cmU6Mjg2ODogcmVzdWx0OiBub25lIG5lZWRlZAotY29uZmlndXJlOjI4ODY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzoyOiBlcnJvcjogc3ludGF4IGVycm9yIGJlZm9yZSAnbWUnCi1jb25maWd1cmU6Mjg5MjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgI2lmbmRlZiBfX2NwbHVzcGx1cwotfCAgIGNob2tlIG1lCi18ICNlbmRpZgotY29uZmlndXJlOjMwMzY6IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgbWFrZQotY29uZmlndXJlOjMwNjQ6IHJlc3VsdDogR05VCi1jb25maWd1cmU6MzA5MjogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MKLWNvbmZpZ3VyZTozMTgyOiByZXN1bHQ6IGdjYzMKLWNvbmZpZ3VyZTozMjA3OiBjaGVja2luZyBmb3IgcHJpbWFyeSBpbmNsdWRlIGRpcmVjdG9yeQotY29uZmlndXJlOjMyMjU6IHJlc3VsdDogL3Vzci9pbmNsdWRlCi1jb25maWd1cmU6MzI3NDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKLWNvbmZpZ3VyZTozMzA5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTozMzE1OiAkPyA9IDAKLWNvbmZpZ3VyZTozMzQ3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6MTQ6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6MzM1MzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci1jb25maWd1cmU6MzM5MjogcmVzdWx0OiBnY2MgLUUKLWNvbmZpZ3VyZTozNDE2OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTozNDIyOiAkPyA9IDAKLWNvbmZpZ3VyZTozNDU0OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6MTQ6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6MzQ2MDogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci1jb25maWd1cmU6MzUwNTogY2hlY2tpbmcgZm9yIGVncmVwCi1jb25maWd1cmU6MzUxNTogcmVzdWx0OiBncmVwIC1FCi1jb25maWd1cmU6MzUyMTogY2hlY2tpbmcgd2hldGhlciBnY2MgbmVlZHMgLXRyYWRpdGlvbmFsCi1jb25maWd1cmU6MzU2MzogcmVzdWx0OiBubwotY29uZmlndXJlOjM1ODM6IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKLWNvbmZpZ3VyZTozNjM4OiByZXN1bHQ6IC91c3IvYmluL2luc3RhbGwgLWMKLWNvbmZpZ3VyZTozNjQ5OiBjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QKLWNvbmZpZ3VyZTozNzE2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTozNzIyOiAkPyA9IDAKLWNvbmZpZ3VyZTozNzI2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTozNzI5OiAkPyA9IDAKLWNvbmZpZ3VyZTozNzMyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTozNzM1OiAkPyA9IDAKLWNvbmZpZ3VyZTozNzQ2OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjM3NTY6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzCi1jb25maWd1cmU6Mzc4MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Mzc4NzogJD8gPSAwCi1jb25maWd1cmU6Mzc5MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Mzc5NDogJD8gPSAwCi1jb25maWd1cmU6Mzc5NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6MzgwMDogJD8gPSAwCi1jb25maWd1cmU6Mzg4OTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6MzE6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKLWNvbmZpZ3VyZTozODkyOiAkPyA9IDAKLWNvbmZpZ3VyZTozODk0OiAuL2NvbmZ0ZXN0Ci1jb25maWd1cmU6Mzg5NzogJD8gPSAwCi1jb25maWd1cmU6MzkxMjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTozOTMwOiBjaGVja2luZyBmb3IgZGlyZW50LmggdGhhdCBkZWZpbmVzIERJUgotY29uZmlndXJlOjM5NTQ6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjM5NjA6ICQ/ID0gMAotY29uZmlndXJlOjM5NjQ6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjM5Njc6ICQ/ID0gMAotY29uZmlndXJlOjM5NzA6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjM5NzM6ICQ/ID0gMAotY29uZmlndXJlOjM5ODQ6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Mzk5NzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyCi1jb25maWd1cmU6NDAyNzogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo0MDMzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MDM3OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MDQwOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MDQzOiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NDA0NjogJD8gPSAwCi1jb25maWd1cmU6NDExNjogcmVzdWx0OiBub25lIHJlcXVpcmVkCi1jb25maWd1cmU6NDI1MjogY2hlY2tpbmcgd2hldGhlciBzdGF0IGZpbGUtbW9kZSBtYWNyb3MgYXJlIGJyb2tlbgotY29uZmlndXJlOjQzMDA6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3RkbGliLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBzdHJpbmcuaAotY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjQzNDY6ICQ/ID0gMAotY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjQzNTM6ICQ/ID0gMAotY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjQzNTk6ICQ/ID0gMAotY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3IgaW50dHlwZXMuaAotY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjQzNDY6ICQ/ID0gMAotY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjQzNTM6ICQ/ID0gMAotY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjQzNTk6ICQ/ID0gMAotY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHN0ZGludC5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3IgdW5pc3RkLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzODI6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9ibGtzaXplCi1jb25maWd1cmU6NDQwNTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDQxMTogJD8gPSAwCi1jb25maWd1cmU6NDQxNTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDQxODogJD8gPSAwCi1jb25maWd1cmU6NDQyMTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDQyNDogJD8gPSAwCi1jb25maWd1cmU6NDQ4MTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0NDkxOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxvY2tzCi1jb25maWd1cmU6NDUxNDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDUyMDogJD8gPSAwCi1jb25maWd1cmU6NDUyNDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDUyNzogJD8gPSAwCi1jb25maWd1cmU6NDUzMDogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDUzMzogJD8gPSAwCi1jb25maWd1cmU6NDU5MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0NjAwOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYWNsY250Ci1jb25maWd1cmU6NDYyMzogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9hY2xjbnQnCi1jb25maWd1cmU6NDYyOTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoYWNfYWdnci5zdF9hY2xjbnQpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjQ2Njc6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYWNsY250JwotY29uZmlndXJlOjQ2NzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKHNpemVvZiBhY19hZ2dyLnN0X2FjbGNudCkKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDY5OTogcmVzdWx0OiBubwotY29uZmlndXJlOjQ3MDk6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9mbGFncwotY29uZmlndXJlOjQ3MzI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZmxhZ3MnCi1jb25maWd1cmU6NDczODogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoYWNfYWdnci5zdF9mbGFncykKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDc3NjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9mbGFncycKLWNvbmZpZ3VyZTo0NzgyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChzaXplb2YgYWNfYWdnci5zdF9mbGFncykKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDgwODogcmVzdWx0OiBubwotY29uZmlndXJlOjQ4MTg6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9mc3R5cGUKLWNvbmZpZ3VyZTo0ODQxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2ZzdHlwZScKLWNvbmZpZ3VyZTo0ODQ3OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLnN0X2ZzdHlwZSkKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDg4NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9mc3R5cGUnCi1jb25maWd1cmU6NDg5MTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZnN0eXBlKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo0OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NDkyNzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2dlbgotY29uZmlndXJlOjQ5NTA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZ2VuJwotY29uZmlndXJlOjQ5NTY6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKGFjX2FnZ3Iuc3RfZ2VuKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo0OTk0OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2dlbicKLWNvbmZpZ3VyZTo1MDAwOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChzaXplb2YgYWNfYWdnci5zdF9nZW4pCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUwMjY6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo1MDM2OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwKLWNvbmZpZ3VyZTo1MDU5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2xldmVsJwotY29uZmlndXJlOjUwNjU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKGFjX2FnZ3Iuc3RfbGV2ZWwpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUxMDM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfbGV2ZWwnCi1jb25maWd1cmU6NTEwOTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfbGV2ZWwpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUxMzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo1MTQ1OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfcmRldgotY29uZmlndXJlOjUxNjg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjUxNzQ6ICQ/ID0gMAotY29uZmlndXJlOjUxNzg6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjUxODE6ICQ/ID0gMAotY29uZmlndXJlOjUxODQ6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjUxODc6ICQ/ID0gMAotY29uZmlndXJlOjUyNDQ6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NTI1NTogY2hlY2tpbmcgZm9yIHN0YXQ2NCBpbiAoYXNtfHN5cykvc3RhdC5oCi1jb25maWd1cmU6NTI4MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NTI4NzogJD8gPSAwCi1jb25maWd1cmU6NTI5MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NTI5NDogJD8gPSAwCi1jb25maWd1cmU6NTI5NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NTMwMDogJD8gPSAwCi1jb25maWd1cmU6NTMxMjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo1MzI0OiBjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMKLWNvbmZpZ3VyZTo1MzU1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo1MzYxOiAkPyA9IDAKLWNvbmZpZ3VyZTo1MzY1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1MzY4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1MzcxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo1Mzc0OiAkPyA9IDAKLWNvbmZpZ3VyZTo1Mzg1OiByZXN1bHQ6IHZvaWQKLWNvbmZpZ3VyZTo1MzkzOiBjaGVja2luZyBmb3IgdWlkX3QgaW4gc3lzL3R5cGVzLmgKLWNvbmZpZ3VyZTo1NDE2OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjU0MzE6IGNoZWNraW5nIGZvciBtb2RlX3QKLWNvbmZpZ3VyZTo1NDU1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo1NDYxOiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDY1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1NDY4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDcxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo1NDc0OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDg1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjU0OTc6IGNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzCi1jb25maWd1cmU6NTUzNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NTA6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKLWNvbmZpZ3VyZTo1NTM4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NTQwOiAuL2NvbmZ0ZXN0Ci1jb25maWd1cmU6NTU0MzogJD8gPSAwCi1jb25maWd1cmU6NTU3NjogcmVzdWx0OiBnaWRfdAotY29uZmlndXJlOjU1ODQ6IGNoZWNraW5nIHdoZXRoZXIgc3lzL3R5cGVzLmggZGVmaW5lcyBtYWtlZGV2Ci1jb25maWd1cmU6NTYwNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo1NjExOiAkPyA9IDAKLWNvbmZpZ3VyZTo1NjE1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1NjE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NjIxOiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NTYyNDogJD8gPSAwCi1jb25maWd1cmU6NTYzNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo1OTM4OiBjaGVja2luZyBmb3Igc2lnX2F0b21pY190Ci1jb25maWd1cmU6NTk2MzogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NTk2OTogJD8gPSAwCi1jb25maWd1cmU6NTk3MzogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NTk3NjogJD8gPSAwCi1jb25maWd1cmU6NTk3OTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NTk4MjogJD8gPSAwCi1jb25maWd1cmU6NTk5MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MDAzOiBjaGVja2luZyBmb3Igc2lnaW5mb190Ci1jb25maWd1cmU6NjAyODogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjAzNDogJD8gPSAwCi1jb25maWd1cmU6NjAzODogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjA0MTogJD8gPSAwCi1jb25maWd1cmU6NjA0NDogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjA0NzogJD8gPSAwCi1jb25maWd1cmU6NjA1ODogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MDY5OiBjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkCi1jb25maWd1cmU6NjA5NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjEwMTogJD8gPSAwCi1jb25maWd1cmU6NjEwNTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjEwODogJD8gPSAwCi1jb25maWd1cmU6NjExMTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjExNDogJD8gPSAwCi1jb25maWd1cmU6NjE3NDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MTg1OiBjaGVja2luZyBmb3IgbG9uZyBsb25nCi1jb25maWd1cmU6NjIwOTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjIxNTogJD8gPSAwCi1jb25maWd1cmU6NjIxOTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjIyMjogJD8gPSAwCi1jb25maWd1cmU6NjIyNTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjIyODogJD8gPSAwCi1jb25maWd1cmU6NjIzOTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MjUwOiBjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcKLWNvbmZpZ3VyZTo2MjgwOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjYyODM6ICQ/ID0gMAotY29uZmlndXJlOjYyODU6IC4vY29uZnRlc3QKLWNvbmZpZ3VyZTo2Mjg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2MzAzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjYzMTQ6IGNoZWNraW5nIGZvciBsb25nIGxvbmcgb2ZmX3QKLWNvbmZpZ3VyZTo2MzQwOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjYzNDM6ICQ/ID0gMAotY29uZmlndXJlOjYzNDU6IC4vY29uZnRlc3QKLWNvbmZpZ3VyZTo2MzQ4OiAkPyA9IDEKLWNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18IG1haW4gKCkgewotfCAJaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotfCAJICAgIHNpemVvZiAob2ZmX3QpID4gc2l6ZW9mIChsb25nKSkKLXwgCSAgICByZXR1cm4gMDsKLXwgCXJldHVybiAxOwotfCB9Ci18IAotY29uZmlndXJlOjYzNjM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Mzc0OiBjaGVja2luZyBmb3IgbG9uZyBsb25nIHJsaW1fdAotY29uZmlndXJlOjY0MDI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6NjQwNTogJD8gPSAwCi1jb25maWd1cmU6NjQwNzogLi9jb25mdGVzdAotY29uZmlndXJlOjY0MTA6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci18ICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLXwgbWFpbiAoKSB7Ci18IAlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotfCAJICAgIHNpemVvZiAocmxpbV90KSA+IHNpemVvZiAobG9uZykpCi18IAkgICAgcmV0dXJuIDA7Ci18IAlyZXR1cm4gMTsKLXwgfQotfCAKLWNvbmZpZ3VyZTo2NDI1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjQzNjogY2hlY2tpbmcgZm9yIHN0cnVjdCBvcHRoZHIKLWNvbmZpZ3VyZTo2NDYxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NDM6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IG9wdGhkcicgCi1jb25maWd1cmU6NjQ2NzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IG9wdGhkciAqKSAwKQotfCAgIHJldHVybiAwOwotfCBpZiAoc2l6ZW9mIChzdHJ1Y3Qgb3B0aGRyKSkKLXwgICByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo2NDkxOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjUwMjogY2hlY2tpbmcgZm9yIHN0cnVjdCB0X29wdGhkcgotY29uZmlndXJlOjY1Mjc6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzozNjoyNDogZXJyb3I6IHN5cy90aXVzZXIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo0MzogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgdF9vcHRoZHInIAotY29uZmlndXJlOjY1MzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3RpdXNlci5oPgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBpZiAoKHN0cnVjdCB0X29wdGhkciAqKSAwKQotfCAgIHJldHVybiAwOwotfCBpZiAoc2l6ZW9mIChzdHJ1Y3QgdF9vcHRoZHIpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjY1NTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc2lnYWN0aW9uCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc3RyZXJyb3IKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBzdHJzaWduYWwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBwcmVhZAotY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6NjcxODogJD8gPSAwCi1jb25maWd1cmU6NjcyMjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjcyNTogJD8gPSAwCi1jb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAotY29uZmlndXJlOjY3MzE6ICQ/ID0gMAotY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIHN5c19zaWdsaXN0Ci1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgX3N5c19zaWdsaXN0Ci1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgZ2V0ZGVudHMKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotL3RtcC9jY0k0eWJVby5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Y29uZnRlc3QuYzooLnRleHQrMHgyMik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGRlbnRzJwotL3RtcC9jY0k0eWJVby5vOiguZGF0YSsweDApOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRkZW50cycKLWNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCi1jb25maWd1cmU6NjcxODogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18IC8qIERlZmluZSBnZXRkZW50cyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldGRlbnRzLgotfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLXwgI2RlZmluZSBnZXRkZW50cyBpbm5vY3VvdXNfZ2V0ZGVudHMKLXwgCi18IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLXwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0ZGVudHMgKCk7IGJlbG93LgotfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLXwgCi18ICNpZmRlZiBfX1NURENfXwotfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgotfCAjZWxzZQotfCAjIGluY2x1ZGUgPGFzc2VydC5oPgotfCAjZW5kaWYKLXwgCi18ICN1bmRlZiBnZXRkZW50cwotfCAKLXwgLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLXwgI2lmZGVmIF9fY3BsdXNwbHVzCi18IGV4dGVybiAiQyIKLXwgewotfCAjZW5kaWYKLXwgLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotfCBjaGFyIGdldGRlbnRzICgpOwotfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCi18ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi18ICNpZiBkZWZpbmVkIChfX3N0dWJfZ2V0ZGVudHMpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2dldGRlbnRzKQotfCBjaG9rZSBtZQotfCAjZWxzZQotfCBjaGFyICgqZikgKCkgPSBnZXRkZW50czsKLXwgI2VuZGlmCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCB9Ci18ICNlbmRpZgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCByZXR1cm4gZiAhPSBnZXRkZW50czsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIG1jdGwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotL3RtcC9jY09SWTRxdi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Y29uZnRlc3QuYzooLnRleHQrMHgyMik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1jdGwnCi0vdG1wL2NjT1JZNHF2Lm86KC5kYXRhKzB4MCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1jdGwnCi1jb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwotY29uZmlndXJlOjY3MTg6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAvKiBEZWZpbmUgbWN0bCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG1jdGwuCi18ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwotfCAjZGVmaW5lIG1jdGwgaW5ub2N1b3VzX21jdGwKLXwgCi18IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLXwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWN0bCAoKTsgYmVsb3cuCi18ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi18ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotfCAKLXwgI2lmZGVmIF9fU1REQ19fCi18ICMgaW5jbHVkZSA8bGltaXRzLmg+Ci18ICNlbHNlCi18ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci18ICNlbmRpZgotfCAKLXwgI3VuZGVmIG1jdGwKLXwgCi18IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCBleHRlcm4gIkMiCi18IHsKLXwgI2VuZGlmCi18IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKLXwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLXwgY2hhciBtY3RsICgpOwotfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCi18ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi18ICNpZiBkZWZpbmVkIChfX3N0dWJfbWN0bCkgfHwgZGVmaW5lZCAoX19zdHViX19fbWN0bCkKLXwgY2hva2UgbWUKLXwgI2Vsc2UKLXwgY2hhciAoKmYpICgpID0gbWN0bDsKLXwgI2VuZGlmCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCB9Ci18ICNlbmRpZgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCByZXR1cm4gZiAhPSBtY3RsOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjY3NDM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgcHJjdGwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBzZW5kbXNnCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgaW5ldF9udG9wCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgaWZfaW5kZXh0b25hbWUKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9yZWcuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9yZWcuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9yZWcuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2ZpbGlvLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgxOjIzOiBlcnJvcjogc3lzL2ZpbGlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2ZpbGlvLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9maWxpby5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjQ3OjIzOiBlcnJvcjogc3lzL2ZpbGlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvZmlsaW8uaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9maWxpby5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9hY2wuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODE6MjE6IGVycm9yOiBzeXMvYWNsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2FjbC5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvYWNsLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDc6MjE6IGVycm9yOiBzeXMvYWNsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvYWNsLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvYWNsLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2FzeW5jaC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MToyNDogZXJyb3I6IHN5cy9hc3luY2guaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvYXN5bmNoLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9hc3luY2guaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0NzoyNDogZXJyb3I6IHN5cy9hc3luY2guaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy9hc3luY2guaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9hc3luY2guaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvZG9vci5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MToyMjogZXJyb3I6IHN5cy9kb29yLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2Rvb3IuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2Rvb3IuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0NzoyMjogZXJyb3I6IHN5cy9kb29yLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvZG9vci5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL2Rvb3IuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzdHJvcHRzLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzdHJvcHRzLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzdHJvcHRzLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9jb25mLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjIyOiBlcnJvcjogc3lzL2NvbmYuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2NvbmYuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2NvbmYuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyMjogZXJyb3I6IHN5cy9jb25mLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL2NvbmYuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9jb25mLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3N0cmVhbS5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MjoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvc3RyZWFtLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDg6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL3N0cmVhbS5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy90aWhkci5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MjoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3RpaGRyLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy90aWhkci5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy90aXVzZXIuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODI6MjQ6IGVycm9yOiBzeXMvdGl1c2VyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3RpdXNlci5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjQ4OjI0OiBlcnJvcjogc3lzL3RpdXNlci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy90aXVzZXIuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvc3lzY29uZmlnLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjI3OiBlcnJvcjogc3lzL3N5c2NvbmZpZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvc3lzY29uZmlnLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9zeXNjb25maWcuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyNzogZXJyb3I6IHN5cy9zeXNjb25maWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3lzY29uZmlnLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvc3lzY29uZmlnLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgaW9jdGxzLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjIwOiBlcnJvcjogaW9jdGxzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPGlvY3Rscy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBpb2N0bHMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyMDogZXJyb3I6IGlvY3Rscy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGlvY3Rscy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgaW9jdGxzLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2lvY3RsLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvaW9jdGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9pb2N0bC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvcHRyYWNlLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvcHRyYWNlLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvcHRyYWNlLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHRlcm1pby5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgdGVybWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciB0ZXJtaW8uaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgbGludXgvcHRyYWNlLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaW51eC9wdHJhY2UuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGxpbnV4L3B0cmFjZS5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBhc20vcmVnLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjg2OjIxOiBlcnJvcjogYXNtL3JlZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8YXNtL3JlZy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBhc20vcmVnLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NTI6MjE6IGVycm9yOiBhc20vcmVnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFzbS9yZWcuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGFzbS9yZWcuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvdWlvLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvdWlvLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9haW8uaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODc6MjE6IGVycm9yOiBzeXMvYWlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2Fpby5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvYWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NTM6MjE6IGVycm9yOiBzeXMvYWlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvYWlvLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvYWlvLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgcG9sbC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgcG9sbC5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25maWd1cmU6Njg1NTogJD8gPSAwCi1jb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgcG9sbC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvcG9sbC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3BvbGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9wb2xsLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy92ZnMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy92ZnMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy92ZnMuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgYXNtL3N5c21pcHMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTA6MjU6IGVycm9yOiBhc20vc3lzbWlwcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxhc20vc3lzbWlwcy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBhc20vc3lzbWlwcy5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjU2OjI1OiBlcnJvcjogYXNtL3N5c21pcHMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxhc20vc3lzbWlwcy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgYXNtL3N5c21pcHMuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBsaW51eC91dHNuYW1lLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaW51eC91dHNuYW1lLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBsaW51eC91dHNuYW1lLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9uc2NzeXMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTE6MjQ6IGVycm9yOiBzeXMvbnNjc3lzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvbnNjc3lzLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9uc2NzeXMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo1NzoyNDogZXJyb3I6IHN5cy9uc2NzeXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL25zY3N5cy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL25zY3N5cy5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIG1xdWV1ZS5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgbXF1ZXVlLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBtcXVldWUuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2Vwb2xsLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvZXBvbGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9lcG9sbC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBsaWJhaW8uaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTM6MjA6IGVycm9yOiBsaWJhaW8uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPGxpYmFpby5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaWJhaW8uaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo1OToyMDogZXJyb3I6IGxpYmFpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxsaWJhaW8uaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGxpYmFpby5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9pY21wLmgKLWNvbmZpZ3VyZTo2OTUyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2OTU4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTYyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2OTY1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2OTcxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTgyOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9pbjYuaAotY29uZmlndXJlOjY5NTI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY5NTg6ICQ/ID0gMAotY29uZmlndXJlOjY5NjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY5NjU6ICQ/ID0gMAotY29uZmlndXJlOjY5Njg6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY5NzE6ICQ/ID0gMAotY29uZmlndXJlOjY5ODI6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkzNzogY2hlY2tpbmcgZm9yIGxpbnV4L25ldGxpbmsuaAotY29uZmlndXJlOjY5NTI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY5NTg6ICQ/ID0gMAotY29uZmlndXJlOjY5NjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY5NjU6ICQ/ID0gMAotY29uZmlndXJlOjY5Njg6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY5NzE6ICQ/ID0gMAotY29uZmlndXJlOjY5ODI6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkzNzogY2hlY2tpbmcgZm9yIGxpbnV4L2lmX3BhY2tldC5oCi1jb25maWd1cmU6Njk1MjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Njk1ODogJD8gPSAwCi1jb25maWd1cmU6Njk2MjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Njk2NTogJD8gPSAwCi1jb25maWd1cmU6Njk2ODogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Njk3MTogJD8gPSAwCi1jb25maWd1cmU6Njk4MjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2OTk3OiBjaGVja2luZyBmb3IgYXNtL3NpZ2NvbnRleHQuaAotY29uZmlndXJlOjcwMTM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjcwMTk6ICQ/ID0gMAotY29uZmlndXJlOjcwMjM6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjcwMjY6ICQ/ID0gMAotY29uZmlndXJlOjcwMjk6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjcwMzI6ICQ/ID0gMAotY29uZmlndXJlOjcwNDM6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NzA1OTogY2hlY2tpbmcgZm9yIG5ldGluZXQvdGNwLmgKLWNvbmZpZ3VyZTo3MDc1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo3MDgxOiAkPyA9IDAKLWNvbmZpZ3VyZTo3MDg1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo3MDg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo3MDkxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo3MDk0OiAkPyA9IDAKLWNvbmZpZ3VyZTo3MTA1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjcwNTk6IGNoZWNraW5nIGZvciBuZXRpbmV0L3VkcC5oCi1jb25maWd1cmU6NzA3NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NzA4MTogJD8gPSAwCi1jb25maWd1cmU6NzA4NTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NzA4ODogJD8gPSAwCi1jb25maWd1cmU6NzA5MTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NzA5NDogJD8gPSAwCi1jb25maWd1cmU6NzEwNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo3MTE3OiBjaGVja2luZyBmb3IgTVAgcHJvY2ZzCi1jb25maWd1cmU6NzE3OTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6Nzg6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3BzdGF0dXMnIGlzbid0IGtub3duCi1jb25mdGVzdC5jOjgyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCi1jb25mdGVzdC5jOjkwOiBlcnJvcjogJ1BDU1RPUCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCi1jb25mdGVzdC5jOjkwOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQotY29uZnRlc3QuYzo5MDogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQotY29uZnRlc3QuYzo5Njogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JwotY29uZmlndXJlOjcxODI6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaW5jbHVkZSA8c2lnbmFsLmg+Ci18ICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci18IAotfCBtYWluKCkKLXwgewotfCAJaW50IHBpZDsKLXwgCWNoYXIgcHJvY1szMl07Ci18IAlGSUxFICpjdGw7Ci18IAlGSUxFICpzdGF0dXM7Ci18IAlpbnQgY21kOwotfCAJc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKLXwgCi18IAlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgewotfCAJCXBhdXNlKCk7Ci18IAkJZXhpdCgwKTsKLXwgCX0KLXwgCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7Ci18IAlpZiAoKGN0bCA9IGZvcGVuKHByb2MsICJ3IikpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLXwgCWlmICgoc3RhdHVzID0gZm9wZW4gKHByb2MsICJyIikpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJY21kID0gUENTVE9QOwotfCAJaWYgKHdyaXRlIChmaWxlbm8gKGN0bCksICZjbWQsIHNpemVvZiBjbWQpIDwgMCkKLXwgCQlnb3RvIGZhaWw7Ci18IAlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKLXwgCQlnb3RvIGZhaWw7Ci18IAlraWxsKHBpZCwgU0lHS0lMTCk7Ci18IAlleGl0KDApOwotfCBmYWlsOgotfCAJa2lsbChwaWQsIFNJR0tJTEwpOwotfCAJZXhpdCgxKTsKLXwgfQotfCAKLWNvbmZpZ3VyZTo3MjAyOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NzIxMzogY2hlY2tpbmcgZm9yIHBvbGxhYmxlIHByb2NmcwotY29uZmlndXJlOjcyOTA6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjk3OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCi1jb25mdGVzdC5jOjEwMjogZXJyb3I6ICdQSU9DU1RPUCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCi1jb25mdGVzdC5jOjEwMjogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKLWNvbmZ0ZXN0LmM6MTAyOiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCi1jb25mdGVzdC5jOjExMTogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JwotY29uZmlndXJlOjcyOTM6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaW5jbHVkZSA8c2lnbmFsLmg+Ci18ICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci18ICNpbmNsdWRlIDxzeXMvc3Ryb3B0cy5oPgotfCAjaW5jbHVkZSA8cG9sbC5oPgotfCAKLXwgI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCi18ICNkZWZpbmUgUElPQ1NUT1AJUENTVE9QCi18ICNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQotfCAjZGVmaW5lIFBST0MJCSIvcHJvYy8lZC9jdGwiCi18ICNkZWZpbmUgUFJPQ19NT0RFCSJ3IgotfCBpbnQgSU9DVEwgKGludCBmZCwgaW50IGNtZCwgaW50IGFyZykgewotfCAJcmV0dXJuIHdyaXRlIChmZCwgJmNtZCwgc2l6ZW9mIGNtZCk7Ci18IH0KLXwgI2Vsc2UKLXwgI2RlZmluZSBQT0xMV0FOVAlQT0xMUFJJCi18ICNkZWZpbmUJUFJPQwkJIi9wcm9jLyVkIgotfCAjZGVmaW5lIFBST0NfTU9ERQkicisiCi18ICNkZWZpbmUgSU9DVEwJCWlvY3RsCi18ICNlbmRpZgotfCAKLXwgbWFpbigpCi18IHsKLXwgCWludCBwaWQ7Ci18IAljaGFyIHByb2NbMzJdOwotfCAJRklMRSAqcGZwOwotfCAJc3RydWN0IHBvbGxmZCBwZmQ7Ci18IAotfCAJaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLXwgCQlwYXVzZSgpOwotfCAJCWV4aXQoMCk7Ci18IAl9Ci18IAlzcHJpbnRmKHByb2MsIFBST0MsIHBpZCk7Ci18IAlpZiAoKHBmcCA9IGZvcGVuKHByb2MsIFBST0NfTU9ERSkpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJaWYgKElPQ1RMKGZpbGVubyhwZnApLCBQSU9DU1RPUCwgTlVMTCkgPCAwKQotfCAJCWdvdG8gZmFpbDsKLXwgCXBmZC5mZCA9IGZpbGVubyhwZnApOwotfCAJcGZkLmV2ZW50cyA9IFBPTExXQU5UOwotfCAJaWYgKHBvbGwoJnBmZCwgMSwgMCkgPCAwKQotfCAJCWdvdG8gZmFpbDsKLXwgCWlmICghKHBmZC5yZXZlbnRzICYgUE9MTFdBTlQpKQotfCAJCWdvdG8gZmFpbDsKLXwgCWtpbGwocGlkLCBTSUdLSUxMKTsKLXwgCWV4aXQoMCk7Ci18IGZhaWw6Ci18IAlraWxsKHBpZCwgU0lHS0lMTCk7Ci18IAlleGl0KDEpOwotfCB9Ci18IAotY29uZmlndXJlOjczMTM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3MzI1OiBjaGVja2luZyBmb3Igc3RydWN0IG1zZ2hkci5tc2dfY29udHJvbAotY29uZmlndXJlOjczNDk6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjczNTU6ICQ/ID0gMAotY29uZmlndXJlOjczNTk6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjczNjI6ICQ/ID0gMAotY29uZmlndXJlOjczNjU6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjczNjg6ICQ/ID0gMAotY29uZmlndXJlOjc0MjY6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NzQzNzogY2hlY2tpbmcgZm9yIHByX3N5c2NhbGwgaW4gc3RydWN0IHByc3RhdHVzCi1jb25maWd1cmU6NzQ2NDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjc2OiBlcnJvcjogJ3Byc3RhdHVzX3QnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3ByX3N5c2NhbGwnCi1jb25maWd1cmU6NzQ3MDogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18ICNpZmRlZiBIQVZFX01QX1BST0NGUwotfCBwc3RhdHVzX3QgczsKLXwgcy5wcl9sd3AucHJfc3lzY2FsbAotfCAjZWxzZQotfCBwcnN0YXR1c190IHM7Ci18IHMucHJfc3lzY2FsbAotfCAjZW5kaWYKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo3NDk1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NzUwNzogY2hlY2tpbmcgZm9yIHN0cnVjdCBUX2Nvbm5fcmVzLlFVRVVFX3B0cgotY29uZmlndXJlOjc1MzI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo2NzoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzo2ODoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZpZ3VyZTo3NTM4OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLXwgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLXwgCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLlFVRVVFX3B0cikKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NzU3ODogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjY3OjI0OiBlcnJvcjogc3lzL3N0cmVhbS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOjY4OjIzOiBlcnJvcjogc3lzL3RpaGRyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCi1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZmlndXJlOjc1ODQ6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KLXwgI2luY2x1ZGUgPHN5cy90aWhkci5oPgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKLXwgaWYgKHNpemVvZiBhY19hZ2dyLlFVRVVFX3B0cikKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NzYxMDogcmVzdWx0OiBubwotY29uZmlndXJlOjc2MjA6IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZAotY29uZmlndXJlOjc2NDU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo2NzoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzo2ODoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZpZ3VyZTo3NjUxOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLXwgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLXwgCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLkFDQ0VQVE9SX2lkKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo3NjkxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6Njc6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZ0ZXN0LmM6Njg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCi1jb25maWd1cmU6NzY5NzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3IuQUNDRVBUT1JfaWQpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc3MjM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3NzM1OiBjaGVja2luZyBmb3Igc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Ci1jb25maWd1cmU6Nzc2MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Nzc2NjogJD8gPSAwCi1jb25maWd1cmU6Nzc3MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Nzc3MzogJD8gPSAwCi1jb25maWd1cmU6Nzc3NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Nzc3OTogJD8gPSAwCi1jb25maWd1cmU6Nzc5MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo3ODAyOiBjaGVja2luZyBmb3Igc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MKLWNvbmZpZ3VyZTo3ODI3OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnIAotY29uZmlndXJlOjc4MzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MgKikgMCkKLXwgICByZXR1cm4gMDsKLXwgaWYgKHNpemVvZiAoc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc4NTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3ODY3OiBjaGVja2luZyBmb3Igc3RydWN0IGlhNjRfZnByZWcKLWNvbmZpZ3VyZTo3ODkyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGlhNjRfZnByZWcnIAotY29uZmlndXJlOjc4OTg6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IGlhNjRfZnByZWcgKikgMCkKLXwgICByZXR1cm4gMDsKLXwgaWYgKHNpemVvZiAoc3RydWN0IGlhNjRfZnByZWcpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc5MjI6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3OTM0OiBjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYwotY29uZmlndXJlOjc5NTk6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjc5NjU6ICQ/ID0gMAotY29uZmlndXJlOjc5Njk6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjc5NzI6ICQ/ID0gMAotY29uZmlndXJlOjc5NzU6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjc5Nzg6ICQ/ID0gMAotY29uZmlndXJlOjc5ODk6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODAwMTogY2hlY2tpbmcgd2hldGhlciBzeXNfZXJybGlzdCBpcyBkZWNsYXJlZAotY29uZmlndXJlOjgwMjU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjgwMzE6ICQ/ID0gMAotY29uZmlndXJlOjgwMzU6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjgwMzg6ICQ/ID0gMAotY29uZmlndXJlOjgwNDE6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjgwNDQ6ICQ/ID0gMAotY29uZmlndXJlOjgwNTU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODA3MzogY2hlY2tpbmcgd2hldGhlciBzeXNfc2lnbGlzdCBpcyBkZWNsYXJlZAotY29uZmlndXJlOjgwOTg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjgxMDQ6ICQ/ID0gMAotY29uZmlndXJlOjgxMDg6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjgxMTE6ICQ/ID0gMAotY29uZmlndXJlOjgxMTQ6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjgxMTc6ICQ/ID0gMAotY29uZmlndXJlOjgxMjg6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODE0NDogY2hlY2tpbmcgd2hldGhlciBfc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQKLWNvbmZpZ3VyZTo4MTY5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo4MTc1OiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTc5OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo4MTgyOiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTg1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo4MTg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTk5OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjgyMjA6IGNoZWNraW5nIGZvciBwZXJsCi1jb25maWd1cmU6ODIzODogZm91bmQgL3Vzci9iaW4vcGVybAotY29uZmlndXJlOjgyNTA6IHJlc3VsdDogL3Vzci9iaW4vcGVybAotY29uZmlndXJlOjg0MTg6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwotCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBSdW5uaW5nIGNvbmZpZy5zdGF0dXMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotCi0gIENPTkZJR19GSUxFUyAgICA9IAotICBDT05GSUdfSEVBREVSUyAgPSAKLSAgQ09ORklHX0xJTktTICAgID0gCi0gIENPTkZJR19DT01NQU5EUyA9IAotICAkIC4vY29uZmlnLnN0YXR1cyAKLQotb24gc2t5d3JpdGluZy5jb3JwLmdvb2dsZS5jb20KLQotY29uZmlnLnN0YXR1czo3MTY6IGNyZWF0aW5nIE1ha2VmaWxlCi1jb25maWcuc3RhdHVzOjgyMDogY3JlYXRpbmcgY29uZmlnLmgKLWNvbmZpZy5zdGF0dXM6MTIyNjogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLQotYWNfY3ZfYnVpbGQ9YXJtLXVua25vd24tbGludXgtZ251Ci1hY19jdl9idWlsZF9hbGlhcz1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2NfY29tcGlsZXJfZ251PXllcwotYWNfY3ZfY19jb25zdD15ZXMKLWFjX2N2X2Vudl9DQ19zZXQ9Ci1hY19jdl9lbnZfQ0NfdmFsdWU9Ci1hY19jdl9lbnZfQ0ZMQUdTX3NldD1zZXQKLWFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLwotYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KLWFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KLWFjX2N2X2Vudl9DUFBfc2V0PQotYWNfY3ZfZW52X0NQUF92YWx1ZT0KLWFjX2N2X2Vudl9MREZMQUdTX3NldD0KLWFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQotYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD1zZXQKLWFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0KLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPQotYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9Ci1hY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQotYWNfY3ZfZXhlZXh0PQotYWNfY3ZfZnVuY19fc3lzX3NpZ2xpc3Q9eWVzCi1hY19jdl9mdW5jX2dldGRlbnRzPW5vCi1hY19jdl9mdW5jX2lmX2luZGV4dG9uYW1lPXllcwotYWNfY3ZfZnVuY19pbmV0X250b3A9eWVzCi1hY19jdl9mdW5jX21jdGw9bm8KLWFjX2N2X2Z1bmNfcHJjdGw9eWVzCi1hY19jdl9mdW5jX3ByZWFkPXllcwotYWNfY3ZfZnVuY19zZW5kbXNnPXllcwotYWNfY3ZfZnVuY19zaWdhY3Rpb249eWVzCi1hY19jdl9mdW5jX3N0cmVycm9yPXllcwotYWNfY3ZfZnVuY19zdHJzaWduYWw9eWVzCi1hY19jdl9mdW5jX3N5c19zaWdsaXN0PXllcwotYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD15ZXMKLWFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdD15ZXMKLWFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdD15ZXMKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9eWVzCi1hY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdD1ubwotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi1hY19jdl9oZWFkZXJfYXNtX3JlZ19oPW5vCi1hY19jdl9oZWFkZXJfYXNtX3NpZ2NvbnRleHRfaD15ZXMKLWFjX2N2X2hlYWRlcl9hc21fc3lzbWlwc19oPW5vCi1hY19jdl9oZWFkZXJfZGlyZW50X2RpcmVudF9oPXllcwotYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCi1hY19jdl9oZWFkZXJfaW9jdGxzX2g9bm8KLWFjX2N2X2hlYWRlcl9saWJhaW9faD1ubwotYWNfY3ZfaGVhZGVyX2xpbnV4X2ljbXBfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9pZl9wYWNrZXRfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9pbjZfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9uZXRsaW5rX2g9eWVzCi1hY19jdl9oZWFkZXJfbGludXhfcHRyYWNlX2g9eWVzCi1hY19jdl9oZWFkZXJfbGludXhfdXRzbmFtZV9oPXllcwotYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwotYWNfY3ZfaGVhZGVyX21xdWV1ZV9oPXllcwotYWNfY3ZfaGVhZGVyX25ldGluZXRfdGNwX2g9eWVzCi1hY19jdl9oZWFkZXJfbmV0aW5ldF91ZHBfaD15ZXMKLWFjX2N2X2hlYWRlcl9wb2xsX2g9eWVzCi1hY19jdl9oZWFkZXJfc3RhdF9icm9rZW49bm8KLWFjX2N2X2hlYWRlcl9zdGRjPXllcwotYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcwotYWNfY3ZfaGVhZGVyX3N0ZGxpYl9oPXllcwotYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwotYWNfY3ZfaGVhZGVyX3N0cmluZ3NfaD15ZXMKLWFjX2N2X2hlYWRlcl9zdHJvcHRzX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX2FjbF9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2Fpb19oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2FzeW5jaF9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2NvbmZfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c19kb29yX2g9bm8KLWFjX2N2X2hlYWRlcl9zeXNfZXBvbGxfaD15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfZmlsaW9faD1ubwotYWNfY3ZfaGVhZGVyX3N5c19pb2N0bF9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19uc2NzeXNfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c19wb2xsX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3B0cmFjZV9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19yZWdfaD15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19zdHJlYW1faD1ubwotYWNfY3ZfaGVhZGVyX3N5c19zeXNjb25maWdfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c190aWhkcl9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX3RpdXNlcl9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX3R5cGVzX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldj15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfdWlvX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3Zmc19oPXllcwotYWNfY3ZfaGVhZGVyX3Rlcm1pb19oPXllcwotYWNfY3ZfaGVhZGVyX3VuaXN0ZF9oPXllcwotYWNfY3ZfaG9zdD1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2hvc3RfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251Ci1hY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQ9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sPXllcwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZD15ZXMKLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQ9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplPXllcwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz15ZXMKLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncz1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsPW5vCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldj15ZXMKLWFjX2N2X21wX3Byb2Nmcz1ubwotYWNfY3Zfb2JqZXh0PW8KLWFjX2N2X3BhdGhfUEVSTD0vdXNyL2Jpbi9wZXJsCi1hY19jdl9wYXRoX2luc3RhbGw9Jy91c3IvYmluL2luc3RhbGwgLWMnCi1hY19jdl9wb2xsYWJsZV9wcm9jZnM9bm8KLWFjX2N2X3Byb2dfQVdLPWdhd2sKLWFjX2N2X3Byb2dfQ1BQPSdnY2MgLUUnCi1hY19jdl9wcm9nX2FjX2N0X0NDPWdjYwotYWNfY3ZfcHJvZ19jY19nPXllcwotYWNfY3ZfcHJvZ19jY19zdGRjPQotYWNfY3ZfcHJvZ19lZ3JlcD0nZ3JlcCAtRScKLWFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsPW5vCi1hY19jdl9wcm9nX21ha2VfbWFrZV9zZXQ9eWVzCi1hY19jdl9zZWFyY2hfb3BlbmRpcj0nbm9uZSByZXF1aXJlZCcKLWFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsPW5vCi1hY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCi1hY19jdl90eXBlX21vZGVfdD15ZXMKLWFjX2N2X3R5cGVfc2lnX2F0b21pY190PXllcwotYWNfY3ZfdHlwZV9zaWdpbmZvX3Q9eWVzCi1hY19jdl90eXBlX3NpZ25hbD12b2lkCi1hY19jdl90eXBlX3N0YXQ2ND15ZXMKLWFjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0PXllcwotYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz1ubwotYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyPW5vCi1hY19jdl90eXBlX3N0cnVjdF9wdF9hbGxfdXNlcl9yZWdzPW5vCi1hY19jdl90eXBlX3N0cnVjdF90X29wdGhkcj1ubwotYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjPXllcwotYWNfY3ZfdHlwZV91aWRfdD15ZXMKLWFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPWdjYzMKLQotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotCi1BQ0xPQ0FMPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOScKLUFNREVQQkFDS1NMQVNIPSdcJwotQU1ERVBfRkFMU0U9JyMnCi1BTURFUF9UUlVFPScnCi1BTVRBUj0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gdGFyJwotQVVUT0NPTkY9JyR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwotQVVUT0hFQURFUj0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b2hlYWRlcicKLUFVVE9NQUtFPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvbWFrZS0xLjknCi1BV0s9J2dhd2snCi1DQz0nZ2NjJwotQ0NERVBNT0RFPSdkZXBtb2RlPWdjYzMnCi1DRkxBR1M9Jy1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8nCi1DUFA9J2djYyAtRScKLUNQUEZMQUdTPScnCi1DWUdQQVRIX1c9J2VjaG8nCi1ERUZTPSctREhBVkVfQ09ORklHX0gnCi1ERVBESVI9Jy5kZXBzJwotRUNIT19DPScnCi1FQ0hPX049Jy1uJwotRUNIT19UPScnCi1FR1JFUD0nZ3JlcCAtRScKLUVYRUVYVD0nJwotRlJFRUJTRF9GQUxTRT0nJwotRlJFRUJTRF9UUlVFPScjJwotSTM4Nl9GQUxTRT0nJwotSTM4Nl9UUlVFPScjJwotSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLUlOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKLUlOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwotSU5TVEFMTF9TVFJJUF9QUk9HUkFNPScke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zJwotTERGTEFHUz0nJwotTElCT0JKUz0nJwotTElCUz0nJwotTElOVVhfRkFMU0U9JyMnCi1MSU5VWF9UUlVFPScnCi1MVExJQk9CSlM9JycKLU1BSU5UPScjJwotTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnCi1NQUlOVEFJTkVSX01PREVfVFJVRT0nIycKLU1BS0VJTkZPPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycKLU9CSkVYVD0nbycKLVBBQ0tBR0U9J3N0cmFjZScKLVBBQ0tBR0VfQlVHUkVQT1JUPScnCi1QQUNLQUdFX05BTUU9J3N0cmFjZScKLVBBQ0tBR0VfU1RSSU5HPSdzdHJhY2UgNC41LjEyJwotUEFDS0FHRV9UQVJOQU1FPSdzdHJhY2UnCi1QQUNLQUdFX1ZFUlNJT049JzQuNS4xMicKLVBBVEhfU0VQQVJBVE9SPSc6JwotUEVSTD0nL3Vzci9iaW4vcGVybCcKLVNFVF9NQUtFPScnCi1TSEVMTD0nL2Jpbi9zaCcKLVNUUklQPScnCi1TVU5PUzRfRkFMU0U9JycKLVNVTk9TNF9UUlVFPScjJwotU1ZSNF9GQUxTRT0nJwotU1ZSNF9UUlVFPScjJwotVkVSU0lPTj0nNC41LjEyJwotV0FSTkZMQUdTPSctV2FsbCcKLVg4Nl82NF9GQUxTRT0nJwotWDg2XzY0X1RSVUU9JyMnCi1hY19jdF9DQz0nZ2NjJwotYWNfY3RfU1RSSVA9JycKLWFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCi1hbV9fZmFzdGRlcENDX1RSVUU9JycKLWFtX19pbmNsdWRlPSdpbmNsdWRlJwotYW1fX2xlYWRpbmdfZG90PScuJwotYW1fX3F1b3RlPScnCi1hbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIicKLWFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLWFyY2g9J2FybScKLWJpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwotYnVpbGQ9J2FybS11bmtub3duLWxpbnV4LWdudScKLWJ1aWxkX2FsaWFzPSdhcm0tdW5rbm93bi1saW51eC1nbnUnCi1idWlsZF9jcHU9J2FybScKLWJ1aWxkX29zPSdsaW51eC1nbnUnCi1idWlsZF92ZW5kb3I9J3Vua25vd24nCi1kYXRhZGlyPScke3ByZWZpeH0vc2hhcmUnCi1leGVjX3ByZWZpeD0nJHtwcmVmaXh9JwotaG9zdD0nYXJtLXVua25vd24tbGludXgtZ251JwotaG9zdF9hbGlhcz0nJwotaG9zdF9jcHU9J2FybScKLWhvc3Rfb3M9J2xpbnV4LWdudScKLWhvc3RfdmVuZG9yPSd1bmtub3duJwotaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwotaW5mb2Rpcj0nJHtwcmVmaXh9L2luZm8nCi1pbnN0YWxsX3NoPScvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvaW5zdGFsbC1zaCcKLWxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwotbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLWxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCi1tYW5kaXI9JyR7cHJlZml4fS9tYW4nCi1ta2Rpcl9wPSdta2RpciAtcCAtLScKLW9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKLW9wc3lzPSdsaW51eCcKLXByZWZpeD0nL2RhdGEvJwotcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwotc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKLXNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwotc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKLXRhcmdldF9hbGlhcz0nJwotCi0jIyAtLS0tLS0tLS0tLSAjIwotIyMgY29uZmRlZnMuaC4gIyMKLSMjIC0tLS0tLS0tLS0tICMjCi0KLSNkZWZpbmUgQVJNIDEKLSNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLSNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAxCi0jZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLSNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi0jZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLSNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLSNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLSNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLSNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi0jZGVmaW5lIEhBVkVfUE9MTF9IIDEKLSNkZWZpbmUgSEFWRV9QUkNUTCAxCi0jZGVmaW5lIEhBVkVfUFJFQUQgMQotI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi0jZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLSNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi0jZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0jZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLSNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLSNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi0jZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgTElOVVggMQotI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi0jZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLSNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi0jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLSNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotI2RlZmluZSBfR05VX1NPVVJDRSAxCi0KLWNvbmZpZ3VyZTogZXhpdCAwCmRpZmYgLS1naXQgYS9jb25maWcuc3RhdHVzIGIvY29uZmlnLnN0YXR1cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMjQ1N2U3Yy4uMDAwMDAwMAotLS0gYS9jb25maWcuc3RhdHVzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxNyArMCwwIEBACi0jISAvYmluL3NoCi0jIEdlbmVyYXRlZCBieSBjb25maWd1cmUuCi0jIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLQotZGVidWc9ZmFsc2UKLWFjX2NzX3JlY2hlY2s9ZmFsc2UKLWFjX2NzX3NpbGVudD1mYWxzZQotU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLWV4ZWMgNj4mMQotCi0jIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCi0jIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KLWV4ZWMgNT4+Y29uZmlnLmxvZwotewotICBlY2hvCi0gIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0jIyBSdW5uaW5nICRhc19tZS4gIyMKLV9BU0JPWAotfSA+JjUKLWNhdCA+JjUgPDxfQ1NFT0YKLQotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0gIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0gIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSAgJCAkMCAkQAotCi1fQ1NFT0YKLWVjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1Ci1lY2hvID4mNQotY29uZmlnX2ZpbGVzPSIgTWFrZWZpbGUiCi1jb25maWdfaGVhZGVycz0iIGNvbmZpZy5oIgotY29uZmlnX2NvbW1hbmRzPSIgZGVwZmlsZXMiCi0KLWFjX2NzX3VzYWdlPSJcCi1cYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKLWN1cnJlbnQgY29uZmlndXJhdGlvbi4KLQotVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KLQotICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwotICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0JCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLQkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLQotQ29uZmlndXJhdGlvbiBmaWxlczoKLSRjb25maWdfZmlsZXMKLQotQ29uZmlndXJhdGlvbiBoZWFkZXJzOgotJGNvbmZpZ19oZWFkZXJzCi0KLUNvbmZpZ3VyYXRpb24gY29tbWFuZHM6Ci0kY29uZmlnX2NvbW1hbmRzCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgotYWNfY3NfdmVyc2lvbj0iXAotc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyCi1jb25maWd1cmVkIGJ5IC4vY29uZmlndXJlLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCi0gIHdpdGggb3B0aW9ucyBcIictLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251J1wiCi0KLUNvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLVRoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKLXNyY2Rpcj0uCi1JTlNUQUxMPSIvdXNyL2Jpbi9pbnN0YWxsIC1jIgotIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKLSMgdmFsdWUuICBCeSB3ZSBuZWVkIHRvIGtub3cgaWYgZmlsZXMgd2VyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCi1hY19uZWVkX2RlZmF1bHRzPToKLXdoaWxlIHRlc3QgJCMgIT0gMAotZG8KLSAgY2FzZSAkMSBpbgotICAtLSo9KikKLSAgICBhY19vcHRpb249YGV4cHIgIngkMSIgOiAneFwoW149XSpcKT0nYAotICAgIGFjX29wdGFyZz1gZXhwciAieCQxIiA6ICd4W149XSo9XCguKlwpJ2AKLSAgICBhY19zaGlmdD06Ci0gICAgOzsKLSAgLSopCi0gICAgYWNfb3B0aW9uPSQxCi0gICAgYWNfb3B0YXJnPSQyCi0gICAgYWNfc2hpZnQ9c2hpZnQKLSAgICA7OwotICAqKSAjIFRoaXMgaXMgbm90IGFuIG9wdGlvbiwgc28gdGhlIHVzZXIgaGFzIHByb2JhYmx5IGdpdmVuIGV4cGxpY2l0Ci0gICAgICMgYXJndW1lbnRzLgotICAgICBhY19vcHRpb249JDEKLSAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0gIGVzYWMKLQotICBjYXNlICRhY19vcHRpb24gaW4KLSAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KLSAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0gICAgYWNfY3NfcmVjaGVjaz06IDs7Ci0gIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCi0gICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKLSAgLS1oZSB8IC0taCkKLSAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKLSAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKLSAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0gICAgZGVidWc9OiA7OwotICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotICAgICRhY19zaGlmdAotICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0gICAgJGFjX3NoaWZ0Ci0gICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCi0gICAgYWNfY3Nfc2lsZW50PTogOzsKLQotICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0gIC0qKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0KLSAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIgOzsKLQotICBlc2FjCi0gIHNoaWZ0Ci1kb25lCi0KLWFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQotCi1pZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0gIGV4ZWMgNj4vZGV2L251bGwKLSAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLWZpCi0KLWlmICRhY19jc19yZWNoZWNrOyB0aGVuCi0gIGVjaG8gInJ1bm5pbmcgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAiICctLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251JyAkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIgPiY2Ci0gIGV4ZWMgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAnLS1wcmVmaXg9L2RhdGEvJyAnLS1idWlsZD1hcm0tdW5rbm93bi1saW51eC1nbnUnICdDRkxBR1M9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLycgJ2J1aWxkX2FsaWFzPWFybS11bmtub3duLWxpbnV4LWdudScgJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi1maQotCi0jCi0jIElOSVQtQ09NTUFORFMgc2VjdGlvbi4KLSMKLQotQU1ERVBfVFJVRT0iIiBhY19hdXhfZGlyPSIuIgotCi1mb3IgYWNfY29uZmlnX3RhcmdldCBpbiAkYWNfY29uZmlnX3RhcmdldHMKLWRvCi0gIGNhc2UgIiRhY19jb25maWdfdGFyZ2V0IiBpbgotICAjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4KLSAgIk1ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSAgImRlcGZpbGVzIiApIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKLSAgImNvbmZpZy5oIiApIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmgiIDs7Ci0gICopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLSAgZXNhYwotZG9uZQotCi0jIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCi0jIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKLSMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCi1pZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgotICB0ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcwotICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycwotICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotZmkKLQotIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0jIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBwdXQgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgotIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KLSRkZWJ1ZyB8fAotewotICB0cmFwICdleGl0X3N0YXR1cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMnIDAKLSAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLX0KLQotIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0KLXsKLSAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiLi9jb25mc3RhdFhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgotICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotfSAgfHwKLXsKLSAgdG1wPS4vY29uZnN0YXQkJC0kUkFORE9NCi0gICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkKLX0gfHwKLXsKLSAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH0KLX0KLQotCi0jCi0jIENPTkZJR19GSUxFUyBzZWN0aW9uLgotIwotCi0jIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KLSMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotaWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7IHRoZW4KLSAgIyBQcm90ZWN0IGFnYWluc3QgYmVpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4gY29uZmlnLnN0YXR1cy4KLSAgc2VkICdzLyxAL0BALzsgcy9ALC9AQC87IHMvLDt0IHQkL0A7dCB0LzsgL0A7dCB0JC9zL1tcXCYsXS9cXCYvZzsKLSAgIHMvQEAvLEAvOyBzL0BAL0AsLzsgcy9AO3QgdCQvLDt0IHQvJyA+JHRtcC9zdWJzLnNlZCA8PFxDRU9GCi1zLEBTSEVMTEAsL2Jpbi9zaCw7dCB0Ci1zLEBQQVRIX1NFUEFSQVRPUkAsOiw7dCB0Ci1zLEBQQUNLQUdFX05BTUVALHN0cmFjZSw7dCB0Ci1zLEBQQUNLQUdFX1RBUk5BTUVALHN0cmFjZSw7dCB0Ci1zLEBQQUNLQUdFX1ZFUlNJT05ALDQuNS4xMiw7dCB0Ci1zLEBQQUNLQUdFX1NUUklOR0Asc3RyYWNlIDQuNS4xMiw7dCB0Ci1zLEBQQUNLQUdFX0JVR1JFUE9SVEAsLDt0IHQKLXMsQGV4ZWNfcHJlZml4QCwke3ByZWZpeH0sO3QgdAotcyxAcHJlZml4QCwvZGF0YS8sO3QgdAotcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAscyx4LHgsLDt0IHQKLXMsQGJpbmRpckAsJHtleGVjX3ByZWZpeH0vYmluLDt0IHQKLXMsQHNiaW5kaXJALCR7ZXhlY19wcmVmaXh9L3NiaW4sO3QgdAotcyxAbGliZXhlY2RpckAsJHtleGVjX3ByZWZpeH0vbGliZXhlYyw7dCB0Ci1zLEBkYXRhZGlyQCwke3ByZWZpeH0vc2hhcmUsO3QgdAotcyxAc3lzY29uZmRpckAsJHtwcmVmaXh9L2V0Yyw7dCB0Ci1zLEBzaGFyZWRzdGF0ZWRpckAsJHtwcmVmaXh9L2NvbSw7dCB0Ci1zLEBsb2NhbHN0YXRlZGlyQCwke3ByZWZpeH0vdmFyLDt0IHQKLXMsQGxpYmRpckAsJHtleGVjX3ByZWZpeH0vbGliLDt0IHQKLXMsQGluY2x1ZGVkaXJALC91c3IvaW5jbHVkZSw7dCB0Ci1zLEBvbGRpbmNsdWRlZGlyQCwvdXNyL2luY2x1ZGUsO3QgdAotcyxAaW5mb2RpckAsJHtwcmVmaXh9L2luZm8sO3QgdAotcyxAbWFuZGlyQCwke3ByZWZpeH0vbWFuLDt0IHQKLXMsQGJ1aWxkX2FsaWFzQCxhcm0tdW5rbm93bi1saW51eC1nbnUsO3QgdAotcyxAaG9zdF9hbGlhc0AsLDt0IHQKLXMsQHRhcmdldF9hbGlhc0AsLDt0IHQKLXMsQERFRlNALC1ESEFWRV9DT05GSUdfSCw7dCB0Ci1zLEBFQ0hPX0NALCw7dCB0Ci1zLEBFQ0hPX05ALC1uLDt0IHQKLXMsQEVDSE9fVEAsLDt0IHQKLXMsQExJQlNALCw7dCB0Ci1zLEBJTlNUQUxMX1BST0dSQU1ALCR7SU5TVEFMTH0sO3QgdAotcyxASU5TVEFMTF9TQ1JJUFRALCR7SU5TVEFMTH0sO3QgdAotcyxASU5TVEFMTF9EQVRBQCwke0lOU1RBTEx9IC1tIDY0NCw7dCB0Ci1zLEBDWUdQQVRIX1dALGVjaG8sO3QgdAotcyxAUEFDS0FHRUAsc3RyYWNlLDt0IHQKLXMsQFZFUlNJT05ALDQuNS4xMiw7dCB0Ci1zLEBBQ0xPQ0FMQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOSw7dCB0Ci1zLEBBVVRPQ09ORkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b2NvbmYsO3QgdAotcyxAQVVUT01BS0VALCR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuOSw7dCB0Ci1zLEBBVVRPSEVBREVSQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvaGVhZGVyLDt0IHQKLXMsQE1BS0VJTkZPQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbyw7dCB0Ci1zLEBpbnN0YWxsX3NoQCwvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvaW5zdGFsbC1zaCw7dCB0Ci1zLEBTVFJJUEAsLDt0IHQKLXMsQGFjX2N0X1NUUklQQCwsO3QgdAotcyxASU5TVEFMTF9TVFJJUF9QUk9HUkFNQCwke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zLDt0IHQKLXMsQG1rZGlyX3BALG1rZGlyIC1wIC0tLDt0IHQKLXMsQEFXS0AsZ2F3ayw7dCB0Ci1zLEBTRVRfTUFLRUAsLDt0IHQKLXMsQGFtX19sZWFkaW5nX2RvdEAsLiw7dCB0Ci1zLEBBTVRBUkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gdGFyLDt0IHQKLXMsQGFtX190YXJALCR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiLDt0IHQKLXMsQGFtX191bnRhckAsJHtBTVRBUn0geGYgLSw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfVFJVRUAsIyw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfRkFMU0VALCw7dCB0Ci1zLEBNQUlOVEAsIyw7dCB0Ci1zLEBidWlsZEAsYXJtLXVua25vd24tbGludXgtZ251LDt0IHQKLXMsQGJ1aWxkX2NwdUAsYXJtLDt0IHQKLXMsQGJ1aWxkX3ZlbmRvckAsdW5rbm93biw7dCB0Ci1zLEBidWlsZF9vc0AsbGludXgtZ251LDt0IHQKLXMsQGhvc3RALGFybS11bmtub3duLWxpbnV4LWdudSw7dCB0Ci1zLEBob3N0X2NwdUAsYXJtLDt0IHQKLXMsQGhvc3RfdmVuZG9yQCx1bmtub3duLDt0IHQKLXMsQGhvc3Rfb3NALGxpbnV4LWdudSw7dCB0Ci1zLEBvcHN5c0AsbGludXgsO3QgdAotcyxAYXJjaEAsYXJtLDt0IHQKLXMsQExJTlVYX1RSVUVALCw7dCB0Ci1zLEBMSU5VWF9GQUxTRUAsIyw7dCB0Ci1zLEBJMzg2X1RSVUVALCMsO3QgdAotcyxASTM4Nl9GQUxTRUAsLDt0IHQKLXMsQFg4Nl82NF9UUlVFQCwjLDt0IHQKLXMsQFg4Nl82NF9GQUxTRUAsLDt0IHQKLXMsQFNVTk9TNF9UUlVFQCwjLDt0IHQKLXMsQFNVTk9TNF9GQUxTRUAsLDt0IHQKLXMsQFNWUjRfVFJVRUAsIyw7dCB0Ci1zLEBTVlI0X0ZBTFNFQCwsO3QgdAotcyxARlJFRUJTRF9UUlVFQCwjLDt0IHQKLXMsQEZSRUVCU0RfRkFMU0VALCw7dCB0Ci1zLEBDQ0AsZ2NjLDt0IHQKLXMsQENGTEFHU0AsLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyw7dCB0Ci1zLEBMREZMQUdTQCwsO3QgdAotcyxAQ1BQRkxBR1NALCw7dCB0Ci1zLEBhY19jdF9DQ0AsZ2NjLDt0IHQKLXMsQEVYRUVYVEAsLDt0IHQKLXMsQE9CSkVYVEAsbyw7dCB0Ci1zLEBERVBESVJALC5kZXBzLDt0IHQKLXMsQGFtX19pbmNsdWRlQCxpbmNsdWRlLDt0IHQKLXMsQGFtX19xdW90ZUAsLDt0IHQKLXMsQEFNREVQX1RSVUVALCw7dCB0Ci1zLEBBTURFUF9GQUxTRUAsIyw7dCB0Ci1zLEBBTURFUEJBQ0tTTEFTSEAsXCw7dCB0Ci1zLEBDQ0RFUE1PREVALGRlcG1vZGU9Z2NjMyw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX1RSVUVALCw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwjLDt0IHQKLXMsQFdBUk5GTEFHU0AsLVdhbGwsO3QgdAotcyxAQ1BQQCxnY2MgLUUsO3QgdAotcyxARUdSRVBALGdyZXAgLUUsO3QgdAotcyxAUEVSTEAsL3Vzci9iaW4vcGVybCw7dCB0Ci1zLEBMSUJPQkpTQCwsO3QgdAotcyxATFRMSUJPQkpTQCwsO3QgdAotQ0VPRgotCi0gICMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCi0gICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotICBhY19tYXhfc2VkX2xpbmVzPTQ4Ci0gIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgotICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfbW9yZV9saW5lcz06Ci0gIGFjX3NlZF9jbWRzPQotICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KLSAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotICAgIGVsc2UKLSAgICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKLSAgICBmaQotICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgotICAgICAgYWNfbW9yZV9saW5lcz1mYWxzZQotICAgIGVsc2UKLSAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bwotICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHByb2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQotICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgotICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgotICAgICAgKGVjaG8gJzp0Ci0gIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCi0gICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0JYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLSAgICAgIGVsc2UKLQlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgotICAgICAgZmkKLSAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCi0gICAgICBhY19iZWc9JGFjX2VuZAotICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKLSAgICBmaQotICBkb25lCi0gIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSAgICBhY19zZWRfY21kcz1jYXQKLSAgZmkKLWZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLQotZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICAjIENvbXB1dGUgQHNyY2RpckAsIEB0b3Bfc3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGlyZWN0b3JpZXMuCi0gIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYWNfZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KLSAgICBta2RpciAtcCAiJGFjX2RpciIKLSAgZWxzZQotICAgIGFzX2Rpcj0iJGFjX2RpciIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICBhY19idWlsZGRpcj0uCi0KLWlmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCi1lbHNlCi0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLWZpCi0KLWNhc2UgJHNyY2RpciBpbgotICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0gICAgYWNfc3JjZGlyPS4KLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotICAgICAgIGFjX3RvcF9zcmNkaXI9LgotICAgIGVsc2UKLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0gICAgZmkgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0gICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0gICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKLWVzYWMKLQotIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCi0jIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgotY2FzZSBgcHdkYCBpbgotLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0qKQotICBjYXNlICIkYWNfZGlyIiBpbgotICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0qKQotICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KLSAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfc3JjZGlyIGluCi0gIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgotICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0gICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLQotCi0gIGNhc2UgJElOU1RBTEwgaW4KLSAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRkaXIkSU5TVEFMTCA7OwotICBlc2FjCi0KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0gICAgcm0gLWYgIiRhY19maWxlIgotICBmaQotICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAotICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6Ci0gICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgotICAgIGNvbmZpZ3VyZV9pbnB1dD0KLSAgZWxzZQotICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAiCi0gIGZpCi0gIGNvbmZpZ3VyZV9pbnB1dD0kY29uZmlndXJlX2lucHV0IkdlbmVyYXRlZCBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKLQkJCQkgICAgIHNlZCAncywuKi8sLCdgIGJ5IGNvbmZpZ3VyZS4iCi0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgc2VkICIvXlsJIF0qVlBBVEhbCSBdKj0vewotcy86KlwkKHNyY2Rpcik6Ki86LzsKLXMvOipcJHtzcmNkaXJ9OiovOi87Ci1zLzoqQHNyY2RpckA6Ki86LzsKLXMvXlwoW149XSo9WwkgXSpcKToqL1wxLzsKLXMvOiokLy87Ci1zL15bXj1dKj1bCSBdKiQvLzsKLX0KLQotOnQKLS9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKLXMsQGNvbmZpZ3VyZV9pbnB1dEAsJGNvbmZpZ3VyZV9pbnB1dCw7dCB0Ci1zLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAotcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAotcyxAdG9wX3NyY2RpckAsJGFjX3RvcF9zcmNkaXIsO3QgdAotcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0Ci1zLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKLXMsQGFic19idWlsZGRpckAsJGFjX2Fic19idWlsZGRpciw7dCB0Ci1zLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAotcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAotcyxASU5TVEFMTEAsJGFjX0lOU1RBTEwsO3QgdAotIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvc3RkaW4KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIG12ICR0bXAvb3V0ICRhY19maWxlCi0gIGVsc2UKLSAgICBjYXQgJHRtcC9vdXQKLSAgICBybSAtZiAkdG1wL291dAotICBmaQotCi1kb25lCi0KLSMKLSMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgotIwotCi0jIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQotIyBOQU1FIGlzIHRoZSBjcHAgbWFjcm8gYmVpbmcgZGVmaW5lZCBhbmQgVkFMVUUgaXMgdGhlIHZhbHVlIGl0IGlzIGJlaW5nIGdpdmVuLgotIwotIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgotYWNfZEE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qZGVmaW5lWwkgXVsJIF0qXCknCi1hY19kQj0nWwkgXS4qJCxcMSNcMicKLWFjX2RDPScgJwotYWNfZEQ9Jyw7dCcKLSMgYWNfdSB0dXJucyAiI3VuZGVmIE5BTUUiIHdpdGhvdXQgdHJhaWxpbmcgYmxhbmtzIGludG8gIiNkZWZpbmUgTkFNRSBWQUxVRSIuCi1hY191QT0ncyxeXChbCSBdKlwpI1woWwkgXSpcKXVuZGVmXChbCSBdWwkgXSpcKScKLWFjX3VCPSckLFwxI1wyZGVmaW5lXDMnCi1hY191Qz0nICcKLWFjX3VEPScsO3QnCi0KLWZvciBhY19maWxlIGluIDogJENPTkZJR19IRUFERVJTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSAjIERvIHF1b3RlICRmLCB0byBwcmV2ZW50IERPUyBwYXRocyBmcm9tIGJlaW5nIElGUydkLgotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgIyBSZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlcy4KLSAgc2VkICdzL1sJIF0qJC8vJyAkYWNfZmlsZV9pbnB1dHMgPiR0bXAvaW4KLQotICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVjZXNzYXJ5LgotICBpZiBncmVwICJeWwkgXSojWwkgXSpkZWZpbmUiICR0bXAvaW4gPi9kZXYvbnVsbDsgdGhlbgotICAjIElmIHRoZXJlIGFyZSBubyBkZWZpbmVzLCB3ZSBtYXkgaGF2ZSBhbiBlbXB0eSBpZi9maQotICA6Ci0gIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKLS9eWwkgXSojWwkgXSpkZWZpbmUvIWIKLXQgY2xyCi06IGNscgotJHthY19kQX1QQUNLQUdFX05BTUUke2FjX2RCfVBBQ0tBR0VfTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1RBUk5BTUUke2FjX2RCfVBBQ0tBR0VfVEFSTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1ZFUlNJT04ke2FjX2RCfVBBQ0tBR0VfVkVSU0lPTiR7YWNfZEN9IjQuNS4xMiIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1NUUklORyR7YWNfZEJ9UEFDS0FHRV9TVFJJTkcke2FjX2RDfSJzdHJhY2UgNC41LjEyIiR7YWNfZER9Ci0ke2FjX2RBfVBBQ0tBR0VfQlVHUkVQT1JUJHthY19kQn1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfZEN9IiIke2FjX2REfQotJHthY19kQX1QQUNLQUdFJHthY19kQn1QQUNLQUdFJHthY19kQ30ic3RyYWNlIiR7YWNfZER9Ci0ke2FjX2RBfVZFUlNJT04ke2FjX2RCfVZFUlNJT04ke2FjX2RDfSI0LjUuMTIiJHthY19kRH0KLSR7YWNfZEF9TElOVVgke2FjX2RCfUxJTlVYJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9QVJNJHthY19kQn1BUk0ke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1fR05VX1NPVVJDRSR7YWNfZEJ9X0dOVV9TT1VSQ0Uke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1TVERDX0hFQURFUlMke2FjX2RCfVNURENfSEVBREVSUyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfRElSRU5UX0gke2FjX2RCfUhBVkVfRElSRU5UX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NZU19UWVBFU19IJHthY19kQn1IQVZFX1NZU19UWVBFU19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfU1RBVF9IJHthY19kQn1IQVZFX1NZU19TVEFUX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NURExJQl9IJHthY19kQn1IQVZFX1NURExJQl9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJJTkdfSCR7YWNfZEJ9SEFWRV9TVFJJTkdfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTUVNT1JZX0gke2FjX2RCfUhBVkVfTUVNT1JZX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUklOR1NfSCR7YWNfZEJ9SEFWRV9TVFJJTkdTX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lOVFRZUEVTX0gke2FjX2RCfUhBVkVfSU5UVFlQRVNfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RESU5UX0gke2FjX2RCfUhBVkVfU1RESU5UX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1VOSVNURF9IJHthY19kQn1IQVZFX1VOSVNURF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY19kQn1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyR7YWNfZEJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX2RCfUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RBVDY0JHthY19kQn1IQVZFX1NUQVQ2NCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfVJFVFNJR1RZUEUke2FjX2RCfVJFVFNJR1RZUEUke2FjX2RDfXZvaWQke2FjX2REfQotJHthY19kQX1HRVRHUk9VUFNfVCR7YWNfZEJ9R0VUR1JPVVBTX1Qke2FjX2RDfWdpZF90JHthY19kRH0KLSR7YWNfZEF9SEFWRV9TSUdfQVRPTUlDX1Qke2FjX2RCfUhBVkVfU0lHX0FUT01JQ19UJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TSUdJTkZPX1Qke2FjX2RCfUhBVkVfU0lHSU5GT19UJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQke2FjX2RCfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9MT05HX0xPTkcke2FjX2RCfUhBVkVfTE9OR19MT05HJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEJ9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU0lHQUNUSU9OJHthY19kQn1IQVZFX1NJR0FDVElPTiR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RSRVJST1Ike2FjX2RCfUhBVkVfU1RSRVJST1Ike2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlNJR05BTCR7YWNfZEJ9SEFWRV9TVFJTSUdOQUwke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1BSRUFEJHthY19kQn1IQVZFX1BSRUFEJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEJ9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX19TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9Ci1DRU9GCi0gIHNlZCAtZiAkdG1wL2RlZmluZXMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKLS9eWwkgXSojWwkgXSpkZWZpbmUvIWIKLXQgY2xyCi06IGNscgotJHthY19kQX1IQVZFX1BSQ1RMJHthY19kQn1IQVZFX1BSQ1RMJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TRU5ETVNHJHthY19kQn1IQVZFX1NFTkRNU0cke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lORVRfTlRPUCR7YWNfZEJ9SEFWRV9JTkVUX05UT1Ake2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQn1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfUkVHX0gke2FjX2RCfUhBVkVfU1lTX1JFR19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJPUFRTX0gke2FjX2RCfUhBVkVfU1RST1BUU19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEJ9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1lTX1BUUkFDRV9IJHthY19kQn1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfVEVSTUlPX0gke2FjX2RCfUhBVkVfVEVSTUlPX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQn1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfVUlPX0gke2FjX2RCfUhBVkVfU1lTX1VJT19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9QT0xMX0gke2FjX2RCfUhBVkVfUE9MTF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfUE9MTF9IJHthY19kQn1IQVZFX1NZU19QT0xMX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NZU19WRlNfSCR7YWNfZEJ9SEFWRV9TWVNfVkZTX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX1VUU05BTUVfSCR7YWNfZEJ9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX01RVUVVRV9IJHthY19kQn1IQVZFX01RVUVVRV9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEJ9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTElOVVhfSUNNUF9IJHthY19kQn1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTElOVVhfSU42X0gke2FjX2RCfUhBVkVfTElOVVhfSU42X0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX05FVExJTktfSCR7YWNfZEJ9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQn1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY19kQn1IQVZFX0FTTV9TSUdDT05URVhUX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX05FVElORVRfVENQX0gke2FjX2RCfUhBVkVfTkVUSU5FVF9UQ1BfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfZEJ9SEFWRV9ORVRJTkVUX1VEUF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY19kQn1IQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCR7YWNfZEJ9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX2RCfUhBVkVfU1RSVUNUX1VTRVJfREVTQyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfZEJ9SEFWRV9ERUNMX1NZU19FUlJMSVNUJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfU1lTX1NJR0xJU1Qke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQ30xJHthY19kRH0KLUNFT0YKLSAgc2VkIC1mICR0bXAvZGVmaW5lcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9pbgotICBtdiAkdG1wL291dCAkdG1wL2luCi0KLSAgZmkgIyBncmVwCi0KLSAgIyBIYW5kbGUgYWxsIHRoZSAjdW5kZWYgdGVtcGxhdGVzCi0gIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgotL15bCSBdKiNbCSBdKnVuZGVmLyFiCi10IGNscgotOiBjbHIKLSR7YWNfdUF9UEFDS0FHRV9OQU1FJHthY191Qn1QQUNLQUdFX05BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9UQVJOQU1FJHthY191Qn1QQUNLQUdFX1RBUk5BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9WRVJTSU9OJHthY191Qn1QQUNLQUdFX1ZFUlNJT04ke2FjX3VDfSI0LjUuMTIiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9TVFJJTkcke2FjX3VCfVBBQ0tBR0VfU1RSSU5HJHthY191Q30ic3RyYWNlIDQuNS4xMiIke2FjX3VEfQotJHthY191QX1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfdUJ9UEFDS0FHRV9CVUdSRVBPUlQke2FjX3VDfSIiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRSR7YWNfdUJ9UEFDS0FHRSR7YWNfdUN9InN0cmFjZSIke2FjX3VEfQotJHthY191QX1WRVJTSU9OJHthY191Qn1WRVJTSU9OJHthY191Q30iNC41LjEyIiR7YWNfdUR9Ci0ke2FjX3VBfUxJTlVYJHthY191Qn1MSU5VWCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUFSTSR7YWNfdUJ9QVJNJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9X0dOVV9TT1VSQ0Uke2FjX3VCfV9HTlVfU09VUkNFJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9U1REQ19IRUFERVJTJHthY191Qn1TVERDX0hFQURFUlMke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0RJUkVOVF9IJHthY191Qn1IQVZFX0RJUkVOVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUJ9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1NUQVRfSCR7YWNfdUJ9SEFWRV9TWVNfU1RBVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVERMSUJfSCR7YWNfdUJ9SEFWRV9TVERMSUJfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSSU5HX0gke2FjX3VCfUhBVkVfU1RSSU5HX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX01FTU9SWV9IJHthY191Qn1IQVZFX01FTU9SWV9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJJTkdTX0gke2FjX3VCfUhBVkVfU1RSSU5HU19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JTlRUWVBFU19IJHthY191Qn1IQVZFX0lOVFRZUEVTX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NURElOVF9IJHthY191Qn1IQVZFX1NURElOVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9VTklTVERfSCR7YWNfdUJ9SEFWRV9VTklTVERfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSR7YWNfdUJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX3VCfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWJHthY191Qn1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NUQVQ2NCR7YWNfdUJ9SEFWRV9TVEFUNjQke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1SRVRTSUdUWVBFJHthY191Qn1SRVRTSUdUWVBFJHthY191Q312b2lkJHthY191RH0KLSR7YWNfdUF9R0VUR1JPVVBTX1Qke2FjX3VCfUdFVEdST1VQU19UJHthY191Q31naWRfdCR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0lHX0FUT01JQ19UJHthY191Qn1IQVZFX1NJR19BVE9NSUNfVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0lHSU5GT19UJHthY191Qn1IQVZFX1NJR0lORk9fVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY191Qn1IQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfTE9OR19MT05HJHthY191Qn1IQVZFX0xPTkdfTE9ORyR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VCfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NJR0FDVElPTiR7YWNfdUJ9SEFWRV9TSUdBQ1RJT04ke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NUUkVSUk9SJHthY191Qn1IQVZFX1NUUkVSUk9SJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJTSUdOQUwke2FjX3VCfUhBVkVfU1RSU0lHTkFMJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9QUkVBRCR7YWNfdUJ9SEFWRV9QUkVBRCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VCfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9fU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQotQ0VPRgotICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgotL15bCSBdKiNbCSBdKnVuZGVmLyFiCi10IGNscgotOiBjbHIKLSR7YWNfdUF9SEFWRV9QUkNUTCR7YWNfdUJ9SEFWRV9QUkNUTCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0VORE1TRyR7YWNfdUJ9SEFWRV9TRU5ETVNHJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JTkVUX05UT1Ake2FjX3VCfUhBVkVfSU5FVF9OVE9QJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUJ9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1JFR19IJHthY191Qn1IQVZFX1NZU19SRUdfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RST1BUU19IJHthY191Qn1IQVZFX1NUUk9QVFNfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VCfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9TWVNfUFRSQUNFX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1RFUk1JT19IJHthY191Qn1IQVZFX1RFUk1JT19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1VJT19IJHthY191Qn1IQVZFX1NZU19VSU9fSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfUE9MTF9IJHthY191Qn1IQVZFX1BPTExfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1BPTExfSCR7YWNfdUJ9SEFWRV9TWVNfUE9MTF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TWVNfVkZTX0gke2FjX3VCfUhBVkVfU1lTX1ZGU19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX3VCfUhBVkVfTElOVVhfVVRTTkFNRV9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9NUVVFVUVfSCR7YWNfdUJ9SEFWRV9NUVVFVUVfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VCfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JQ01QX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0xJTlVYX0lONl9IJHthY191Qn1IQVZFX0xJTlVYX0lONl9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX3VCfUhBVkVfTElOVVhfTkVUTElOS19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfQVNNX1NJR0NPTlRFWFRfSCR7YWNfdUJ9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9ORVRJTkVUX1RDUF9IJHthY191Qn1IQVZFX05FVElORVRfVENQX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX05FVElORVRfVURQX0gke2FjX3VCfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCR7YWNfdUJ9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX3VCfUhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfVVNFUl9ERVNDJHthY191Qn1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0RFQ0xfU1lTX0VSUkxJU1Qke2FjX3VCfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfREVDTF9TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUN9MSR7YWNfdUR9Ci1zLF5bCSBdKiNbCSBdKnVuZGVmWwkgXVsJIF0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAotQ0VPRgotICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0gICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCi0gICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAotICBlbHNlCi0gICAgZWNobyAiLyogJGFjX2ZpbGUuICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCi0gIGZpCi0gIGNhdCAkdG1wL2luID4+JHRtcC9jb25maWcuaAotICBybSAtZiAkdG1wL2luCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLSAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmlnLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQotZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9Ci0gICAgZWxzZQotICAgICAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19maWxlIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KLSAgICBta2RpciAtcCAiJGFjX2RpciIKLSAgZWxzZQotICAgIGFzX2Rpcj0iJGFjX2RpciIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICAgcm0gLWYgJGFjX2ZpbGUKLSAgICAgIG12ICR0bXAvY29uZmlnLmggJGFjX2ZpbGUKLSAgICBmaQotICBlbHNlCi0gICAgY2F0ICR0bXAvY29uZmlnLmgKLSAgICBybSAtZiAkdG1wL2NvbmZpZy5oCi0gIGZpCi0jIENvbXB1dGUgJGFjX2ZpbGUncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi1fYW1fc3RhbXBfY291bnQ9MQotZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0gIGNhc2UgJF9hbV9oZWFkZXIgaW4KLSAgICAkYWNfZmlsZSB8ICRhY19maWxlOiogKQotICAgICAgYnJlYWsgOzsKLSAgICAqICkKLSAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKLSAgZXNhYwotZG9uZQotZWNobyAidGltZXN0YW1wIGZvciAkYWNfZmlsZSIgPmAoZGlybmFtZSAkYWNfZmlsZSkgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgkYWNfZmlsZSA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCRhY19maWxlIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgkYWNfZmlsZSA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgkYWNfZmlsZSB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKLWRvbmUKLQotIwotIyBDT05GSUdfQ09NTUFORFMgc2VjdGlvbi4KLSMKLWZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5EUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gIGFjX2Rlc3Q9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgCi0gIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZGVzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19kZXN0IiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gIGFjX2J1aWxkZGlyPS4KLQotaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0gICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLWVsc2UKLSAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQotZmkKLQotY2FzZSAkc3JjZGlyIGluCi0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSAgICBhY19zcmNkaXI9LgotICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCi0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0gICAgZWxzZQotICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKLSAgICBmaSA7OwotICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4Ci0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotZXNhYwotCi0jIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKLSMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCi1jYXNlIGBwd2RgIGluCi0uKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSopCi0gIGNhc2UgIiRhY19kaXIiIGluCi0gIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0gICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSopCi0gIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgotICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY19zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY190b3Bfc3JjZGlyIGluCi0gIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotCi0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKLWVjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQotICBjYXNlICRhY19kZXN0IGluCi0gICAgZGVwZmlsZXMgKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gKGRpcm5hbWUgIiRtZiIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRtZiIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCi0gIGVsc2UKLSAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0gICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCi0gIGRvbmUKLWRvbmUKLSA7OwotICBlc2FjCi1kb25lCi0KLXsgKGV4aXQgMCk7IGV4aXQgMDsgfQpkaWZmIC0tZ2l0IGEvY29uZmlnLnN1YiBiL2NvbmZpZy5zdWIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDk4N2IxN2QuLjAwMDAwMDAKLS0tIGEvY29uZmlnLnN1YgorKysgL2Rldi9udWxsCkBAIC0xLDE1NjYgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0jICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAotIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLXRpbWVzdGFtcD0nMjAwNC0xMS0zMCcKLQotIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0jIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKLSMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSMKLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLQotIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0jIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0KLSMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0jIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KLSMKLSMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCi0jIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVudC4KLSMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCi0jIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCi0KLSMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCi0jIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotIyB0aGF0IGFyZSBtZWFuaW5nZnVsIHdpdGggKmFueSogR05VIHNvZnR3YXJlLgotIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucwotIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKLSMgYSBmYWlsdXJlIHRvIHN1cHBvcnQgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZyb20gYSBtZWFuaW5nbGVzcwotIyBjb25maWd1cmF0aW9uLgotCi0jIFRoZSBnb2FsIG9mIHRoaXMgZmlsZSBpcyB0byBtYXAgYWxsIHRoZSB2YXJpb3VzIHZhcmlhdGlvbnMgb2YgYSBnaXZlbgotIyBtYWNoaW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgotIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotIyBvciBpbiBzb21lIGNhc2VzLCB0aGUgbmV3ZXIgZm91ci1wYXJ0IGZvcm06Ci0jCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQotIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCi0KLW1lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAotCi11c2FnZT0iXAotVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKLSAgICAgICAkMCBbT1BUSU9OXSBBTElBUwotCi1DYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCi0KLU9wZXJhdGlvbiBtb2RlczoKLSAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKLQotUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLQotdmVyc2lvbj0iXAotR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0KLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNAotRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLVRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi13YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0KLWhlbHA9IgotVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotCi0jIFBhcnNlIGNvbW1hbmQgbGluZQotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAwIDs7Ci0gICAgLS12ZXJzaW9uIHwgLXYgKQotICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OwotICAgIC0taGVscCB8IC0taCogfCAtaCApCi0gICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCAwIDs7Ci0gICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0gICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgotICAgICAgIGJyZWFrIDs7Ci0gICAgLSogKQotICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIKLSAgICAgICBleGl0IDEgOzsKLQotICAgICpsb2NhbCopCi0gICAgICAgIyBGaXJzdCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMuCi0gICAgICAgZWNobyAkMQotICAgICAgIGV4aXQgMDs7Ci0KLSAgICAqICkKLSAgICAgICBicmVhayA7OwotICBlc2FjCi1kb25lCi0KLWNhc2UgJCMgaW4KLSAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCi0gICAgZXhpdCAxOzsKLSAxKSA7OwotICopIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgotICAgIGV4aXQgMTs7Ci1lc2FjCi0KLSMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KLSMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlvbnMuCi1tYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKLWNhc2UgJG1heWJlX29zIGluCi0gIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWRpZXRsaWJjIHwgbGludXgtdWNsaWJjKiB8IHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IFwKLSAga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQotICAgIG9zPS0kbWF5YmVfb3MKLSAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAotICAgIDs7Ci0gICopCi0gICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAotICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotICAgIHRoZW4gb3M9YGVjaG8gJDEgfCBzZWQgJ3MvLiotLy0vJ2AKLSAgICBlbHNlIG9zPTsgZmkKLSAgICA7OwotZXNhYwotCi0jIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KLSMjIyB0aGF0IHRoaW5ncyBsaWtlIGNvbmZpZy5zdWIgZGVjc3RhdGlvbi0zMTAwIHdvcmsuICBXZSBhbHNvCi0jIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCi0jIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KLWNhc2UgJG9zIGluCi0JLXN1bipvcyopCi0JCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotCQk7OwotCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCi0JLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0JLXVuaWNvbSogfCAtaWJtKiB8IC1uZXh0IHwgLWhwIHwgLWlzaSogfCAtYXBvbGxvIHwgLWFsdG9zKiB8IFwKLQktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAotCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0JLWhhcnJpcyB8IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0gfCAtbnMgfCAtbWFzc2NvbXAgfCBcCi0JLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSkKLQkJb3M9Ci0JCWJhc2ljX21hY2hpbmU9JDEKLQkJOzsKLQktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLQkJb3M9Ci0JCWJhc2ljX21hY2hpbmU9JDEKLQkJOzsKLQktc2NvdXQpCi0JCTs7Ci0JLXdycykKLQkJb3M9LXZ4d29ya3MKLQkJYmFzaWNfbWFjaGluZT0kMQotCQk7OwotCS1jaG9ydXNvcyopCi0JCW9zPS1jaG9ydXNvcwotCQliYXNpY19tYWNoaW5lPSQxCi0JCTs7Ci0gCS1jaG9ydXNyZGIpCi0gCQlvcz0tY2hvcnVzcmRiCi0JCWJhc2ljX21hY2hpbmU9JDEKLSAJCTs7Ci0JLWhpdXgqKQotCQlvcz0taGl1eHdlMgotCQk7OwotCS1zY281KQotCQlvcz0tc2NvMy4ydjUKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY280KQotCQlvcz0tc2NvMy4ydjQKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY28zLjIuWzQtOV0qKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLQkJOzsKLQktc2NvMy4ydls0LTldKikKLQkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY28qKQotCQlvcz0tc2NvMy4ydjIKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS11ZGsqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWlzYykKLQkJb3M9LWlzYzIuMgotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWNsaXgqKQotCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotCQk7OwotCS1pc2MqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWx5bngqKQotCQlvcz0tbHlueG9zCi0JCTs7Ci0JLXB0eCopCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAotCQk7OwotCS13aW5kb3dzbnQqKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCi0JCTs7Ci0JLXBzb3MqKQotCQlvcz0tcHNvcwotCQk7OwotCS1taW50IHwgLW1pbnRbMC05XSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotCQlvcz0tbWludAotCQk7OwotZXNhYwotCi0jIERlY29kZSBhbGlhc2VzIGZvciBjZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJpbmF0aW9ucy4KLWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KLQkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLgotCSMgU29tZSBhcmUgb21pdHRlZCBoZXJlIGJlY2F1c2UgdGhleSBoYXZlIHNwZWNpYWwgbWVhbmluZ3MgYmVsb3cuCi0JMTc1MGEgfCA1ODAgXAotCXwgYTI5ayBcCi0JfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2N10gXAotCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCi0JfCBhbTMzXzIuMCBcCi0JfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgXAotCXwgYzR4IHwgY2xpcHBlciBcCi0JfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotCXwgZnIzMCB8IGZydiBcCi0JfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCi0JfCBpcDJrIHwgaXEyMDAwIFwKLQl8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayB8IG1heHEgfCBtY29yZSBcCi0JfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKLQl8IG1pcHMxNiBcCi0JfCBtaXBzNjQgfCBtaXBzNjRlbCBcCi0JfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAotCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKLQl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKLQl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMwMGVsIFwKLQl8IG1pcHM2NHZyNTAwMCB8IG1pcHM2NHZyNTAwMGVsIFwKLQl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKLQl8IG1pcHNpc2EzMnIyIHwgbWlwc2lzYTMycjJlbCBcCi0JfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCi0JfCBtaXBzaXNhNjRyMiB8IG1pcHNpc2E2NHIyZWwgXAotCXwgbWlwc2lzYTY0c2IxIHwgbWlwc2lzYTY0c2IxZWwgXAotCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKLQl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCi0JfCBtbjEwMjAwIHwgbW4xMDMwMCBcCi0JfCBtc3A0MzAgXAotCXwgbnMxNmsgfCBuczMyayBcCi0JfCBvcGVucmlzYyB8IG9yMzIgXAotCXwgcGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKLQl8IHBvd2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSB8IHBwY2JlIFwKLQl8IHB5cmFtaWQgXAotCXwgc2ggfCBzaFsxMjM0XSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0JfCBzaDY0IHwgc2g2NGxlIFwKLQl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIFwKLQl8IHN0cm9uZ2FybSBcCi0JfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAotCXwgdjg1MCB8IHY4NTBlIFwKLQl8IHdlMzJrIFwKLQl8IHg4NiB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKLQl8IHo4aykKLQkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0JCTs7Ci0JbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyKQotCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KLQkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0JCW9zPS1ub25lCi0JCTs7Ci0JbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCi0JCTs7Ci0KLQkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJwotCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4KLQlpKjg2IHwgeDg2XzY0KQotCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwotCSAgOzsKLQkjIE9iamVjdCBpZiBtb3JlIHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgotCSotKi0qKQotCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKLQkJZXhpdCAxCi0JCTs7Ci0JIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFtZS4KLQk1ODAtKiBcCi0JfCBhMjlrLSogXAotCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCi0JfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAotCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0JfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKLQl8IGF2ci0qIFwKLQl8IGJzMjAwMC0qIFwKLQl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwgYzU0eC0qIHwgYzU1eC0qIHwgYzZ4LSogXAotCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKLQl8IGQxMHYtKiB8IGQzMHYtKiB8IGRseC0qIFwKLQl8IGVseHNpLSogXAotCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAotCXwgaDgzMDAtKiB8IGg4NTAwLSogXAotCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKLQl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0JfCBpcDJrLSogfCBpcTIwMDAtKiBcCi0JfCBtMzJyLSogfCBtMzJybGUtKiBcCi0JfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAotCXwgbTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIFwKLQl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKLQl8IG1pcHMxNi0qIFwKLQl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCi0JfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKLQl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAotCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKLQl8IG1pcHM2NHZyNDMwMC0qIHwgbWlwczY0dnI0MzAwZWwtKiBcCi0JfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAotCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKLQl8IG1pcHNpc2EzMnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotCXwgbWlwc2lzYTY0LSogfCBtaXBzaXNhNjRlbC0qIFwKLQl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAotCXwgbWlwc2lzYTY0c2IxLSogfCBtaXBzaXNhNjRzYjFlbC0qIFwKLQl8IG1pcHNpc2E2NHNyNzFrLSogfCBtaXBzaXNhNjRzcjcxa2VsLSogXAotCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCi0JfCBtbWl4LSogXAotCXwgbXNwNDMwLSogXAotCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCi0JfCBvcmlvbi0qIFwKLQl8IHBkcDEwLSogfCBwZHAxMS0qIHwgcGotKiB8IHBqbC0qIHwgcG4tKiB8IHBvd2VyLSogXAotCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKLQl8IHB5cmFtaWQtKiBcCi0JfCByb21wLSogfCByczYwMDAtKiBcCi0JfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGJlLSogXAotCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCi0JfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM4NngtKiB8IHNwYXJjbGV0LSogfCBzcGFyY2xpdGUtKiBcCi0JfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKLQl8IHRhaG9lLSogfCB0aHVtYi0qIFwKLQl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIFwKLQl8IHRyb24tKiBcCi0JfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAotCXwgd2UzMmstKiBcCi0JfCB4ODYtKiB8IHg4Nl82NC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAotCXwgeHN0b3JteTE2LSogfCB4dGVuc2EtKiBcCi0JfCB5bXAtKiBcCi0JfCB6OGstKikKLQkJOzsKLQkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFuZCBhbGlhc2VzIHdoaWNoIHN0YW5kCi0JIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KLQkzODZic2QpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS1ic2QKLQkJOzsKLQkzYjEgfCA3MzAwIHwgNzMwMC1hdHQgfCBhdHQtNzMwMCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0Ci0JCTs7Ci0JM2IqKQotCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAotCQk7OwotCWEyOWtoaWYpCi0JCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLQkJb3M9LXVkaQotCQk7OwotICAgIAlhYmFjdXMpCi0JCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KLQkJOzsKLQlhZG9iZTY4aykKLQkJYmFzaWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKLQkJb3M9LXNjb3V0Ci0JCTs7Ci0JYWxsaWFudCB8IGZ4ODApCi0JCWJhc2ljX21hY2hpbmU9Zng4MC1hbGxpYW50Ci0JCTs7Ci0JYWx0b3MgfCBhbHRvczMwNjgpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hbHRvcwotCQk7OwotCWFtMjlrKQotCQliYXNpY19tYWNoaW5lPWEyOWstbm9uZQotCQlvcz0tYnNkCi0JCTs7Ci0JYW1kNjQpCi0JCWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCi0JCTs7Ci0JYW1kNjQtKikKLQkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlhbWRhaGwpCi0JCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAotCQlvcz0tc3lzdgotCQk7OwotCWFtaWdhIHwgYW1pZ2EtKikKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLQkJOzsKLQlhbWlnYW9zIHwgYW1pZ2Fkb3MpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0JCW9zPS1hbWlnYW9zCi0JCTs7Ci0JYW1pZ2F1bml4IHwgYW1peCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0JYXBvbGxvNjgpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KLQkJb3M9LXN5c3YKLQkJOzsKLQlhcG9sbG82OGJzZCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwotCQlvcz0tYnNkCi0JCTs7Ci0JYXV4KQotCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKLQkJb3M9LWF1eAotCQk7OwotCWJhbGFuY2UpCi0JCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAotCQlvcz0tZHluaXgKLQkJOzsKLQljOTApCi0JCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCWNvbnZleC1jMSkKLQkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNvbnZleC1jMikKLQkJYmFzaWNfbWFjaGluZT1jMi1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNvbnZleC1jMzIpCi0JCWJhc2ljX21hY2hpbmU9YzMyLWNvbnZleAotCQlvcz0tYnNkCi0JCTs7Ci0JY29udmV4LWMzNCkKLQkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0JCW9zPS1ic2QKLQkJOzsKLQljb252ZXgtYzM4KQotCQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNyYXkgfCBqOTApCi0JCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCWNyYXludikKLQkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQotCQlvcz0tdW5pY29zbXAKLQkJOzsKLQljcjE2YykKLQkJYmFzaWNfbWFjaGluZT1jcjE2Yy11bmtub3duCi0JCW9zPS1lbGYKLQkJOzsKLQljcmRzIHwgdW5vcykKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMKLQkJOzsKLQljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhmcyopCi0JCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCi0JCTs7Ci0JY3JpcyB8IGNyaXMtKiB8IGV0cmF4KikKLQkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKLQkJOzsKLQljcngpCi0JCWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KLQkJb3M9LWVsZgotCQk7OwotCWRhMzAgfCBkYTMwLSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1kYTMwCi0JCTs7Ci0JZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRuKQotCQliYXNpY19tYWNoaW5lPW1pcHMtZGVjCi0JCTs7Ci0JZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQotCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotCQlvcz0tdG9wczEwCi0JCTs7Ci0JZGVjc3lzdGVtMjAqIHwgZGVjMjAqKQotCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotCQlvcz0tdG9wczIwCi0JCTs7Ci0JZGVsdGEgfCAzMzAwIHwgbW90b3JvbGEtMzMwMCB8IG1vdG9yb2xhLWRlbHRhIFwKLQkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLW1vdG9yb2xhCi0JCTs7Ci0JZGVsdGE4OCkKLQkJYmFzaWNfbWFjaGluZT1tODhrLW1vdG9yb2xhCi0JCW9zPS1zeXN2MwotCQk7OwotCWRqZ3BwKQotCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLQkJb3M9LW1zZG9zZGpncHAKLQkJOzsKLQlkcHgyMCB8IGRweDIwLSopCi0JCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLQkJb3M9LWJvc3gKLQkJOzsKLQlkcHgyKiB8IGRweDIqLWJ1bGwpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0JCW9zPS1zeXN2MwotCQk7OwotCWVibW9uMjlrKQotCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0JCW9zPS1lYm1vbgotCQk7OwotCWVseHNpKQotCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCi0JCW9zPS1ic2QKLQkJOzsKLQllbmNvcmUgfCB1bWF4IHwgbW1heCkKLQkJYmFzaWNfbWFjaGluZT1uczMyay1lbmNvcmUKLQkJOzsKLQllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgotCQlvcz0tb3NlCi0JCTs7Ci0JZngyODAwKQotCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAotCQk7OwotCWdlbml4KQotCQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCi0JCTs7Ci0JZ21pY3JvKQotCQliYXNpY19tYWNoaW5lPXRyb24tZ21pY3JvCi0JCW9zPS1zeXN2Ci0JCTs7Ci0JZ28zMikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS1nbzMyCi0JCTs7Ci0JaDMwNTByKiB8IGhpdXgqKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQotCQlvcz0taGl1eHdlMgotCQk7OwotCWg4MzAwaG1zKQotCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKLQkJb3M9LWhtcwotCQk7OwotCWg4MzAweHJheSkKLQkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0JCW9zPS14cmF5Ci0JCTs7Ci0JaDg1MDBobXMpCi0JCWJhc2ljX21hY2hpbmU9aDg1MDAtaGl0YWNoaQotCQlvcz0taG1zCi0JCTs7Ci0JaGFycmlzKQotCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0JCW9zPS1zeXN2MwotCQk7OwotCWhwMzAwLSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotCQk7OwotCWhwMzAwYnNkKQotCQliYXNpY19tYWNoaW5lPW02OGstaHAKLQkJb3M9LWJzZAotCQk7OwotCWhwMzAwaHB1eCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0JCW9zPS1ocHV4Ci0JCTs7Ci0JaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1bMC05XSkKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0JCTs7Ci0JaHA5azJbMC05XVswLTldIHwgaHA5azMxWzAtOV0pCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCi0JCTs7Ci0JaHA5azNbMi05XVswLTldKQotCQliYXNpY19tYWNoaW5lPW02OGstaHAKLQkJOzsKLQlocDlrNlswLTldWzAtOV0gfCBocDZbMC05XVswLTldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLQkJOzsKLQlocDlrN1swLTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotCQk7OwotCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQotCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJOzsKLQlocDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3OF05IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCi0JCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotCQk7OwotCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJOzsKLQlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLQkJOzsKLQlocHBhLW5leHQpCi0JCW9zPS1uZXh0c3RlcDMKLQkJOzsKLQlocHBhb3NmKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJb3M9LW9zZgotCQk7OwotCWhwcHJvKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJb3M9LXByb2VsZgotCQk7OwotCWkzNzAtaWJtKiB8IGlibSopCi0JCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KLQkJOzsKLSMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPwotCWkqODZ2MzIpCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotCQlvcz0tc3lzdjMyCi0JCTs7Ci0JaSo4NnY0KikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0JCW9zPS1zeXN2NAotCQk7OwotCWkqODZ2KQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLQkJb3M9LXN5c3YKLQkJOzsKLQlpKjg2c29sMikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0JCW9zPS1zb2xhcmlzMgotCQk7OwotCWkzODZtYWNoKQotCQliYXNpY19tYWNoaW5lPWkzODYtbWFjaAotCQlvcz0tbWFjaAotCQk7OwotCWkzODYtdnN0YSB8IHZzdGEpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS12c3RhCi0JCTs7Ci0JaXJpcyB8IGlyaXM0ZCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLXNnaQotCQljYXNlICRvcyBpbgotCQkgICAgLWlyaXgqKQotCQkJOzsKLQkJICAgICopCi0JCQlvcz0taXJpeDQKLQkJCTs7Ci0JCWVzYWMKLQkJOzsKLQlpc2k2OCB8IGlzaSkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQotCQlvcz0tc3lzdgotCQk7OwotCW04OGstb21yb24qKQotCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KLQkJOzsKLQltYWdudW0gfCBtMzIzMCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKLQkJb3M9LXN5c3YKLQkJOzsKLQltZXJsaW4pCi0JCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawotCQlvcz0tc3lzdgotCQk7OwotCW1pbmd3MzIpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotCQlvcz0tbWluZ3czMgotCQk7OwotCW1pbmlmcmFtZSkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotCQk7OwotCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQotCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKLQkJb3M9LW1pbnQKLQkJOzsKLQltaXBzMyotKikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKLQkJOzsKLQltaXBzMyopCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgLXVua25vd24KLQkJOzsKLQltb25pdG9yKQotCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JbW9ycGhvcykKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KLQkJb3M9LW1vcnBob3MKLQkJOzsKLQltc2RvcykKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS1tc2RvcwotCQk7OwotCW12cykKLQkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotCQlvcz0tbXZzCi0JCTs7Ci0JbmNyMzAwMCkKLQkJYmFzaWNfbWFjaGluZT1pNDg2LW5jcgotCQlvcz0tc3lzdjQKLQkJOzsKLQluZXRic2QzODYpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS1uZXRic2QKLQkJOzsKLQluZXR3aW5kZXIpCi0JCWJhc2ljX21hY2hpbmU9YXJtdjRsLXJlYmVsCi0JCW9zPS1saW51eAotCQk7OwotCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgwMCB8IG5ld3M5MDApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1zb255Ci0JCW9zPS1uZXdzb3MKLQkJOzsKLQluZXdzMTAwMCkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQotCQlvcz0tbmV3c29zCi0JCTs7Ci0JbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQotCQliYXNpY19tYWNoaW5lPW1pcHMtc29ueQotCQlvcz0tbmV3c29zCi0JCTs7Ci0JbmVjdjcwKQotCQliYXNpY19tYWNoaW5lPXY3MC1uZWMKLQkJb3M9LXN5c3YKLQkJOzsKLQluZXh0IHwgbSotbmV4dCApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1uZXh0Ci0JCWNhc2UgJG9zIGluCi0JCSAgICAtbmV4dHN0ZXAqICkKLQkJCTs7Ci0JCSAgICAtbnMyKikKLQkJICAgICAgb3M9LW5leHRzdGVwMgotCQkJOzsKLQkJICAgICopCi0JCSAgICAgIG9zPS1uZXh0c3RlcDMKLQkJCTs7Ci0JCWVzYWMKLQkJOzsKLQluaDMwMDApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLQkJb3M9LWN4dXgKLQkJOzsKLQluaFs0NV0wMDApCi0JCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKLQkJb3M9LWN4dXgKLQkJOzsKLQluaW5keTk2MCkKLQkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0JCW9zPS1uaW5keQotCQk7OwotCW1vbjk2MCkKLQkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0JCW9zPS1tb245NjAKLQkJOzsKLQlub25zdG9wdXgpCi0JCWJhc2ljX21hY2hpbmU9bWlwcy1jb21wYXEKLQkJb3M9LW5vbnN0b3B1eAotCQk7OwotCW5wMSkKLQkJYmFzaWNfbWFjaGluZT1ucDEtZ291bGQKLQkJOzsKLQluc3ItdGFuZGVtKQotCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KLQkJOzsKLQlvcDUwbi0qIHwgb3A2MGMtKikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQotCQlvcz0tcHJvZWxmCi0JCTs7Ci0Jb3IzMiB8IG9yMzItKikKLQkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KLQkJb3M9LWNvZmYKLQkJOzsKLQlvczQwMCkKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQotCQlvcz0tb3M0MDAKLQkJOzsKLQlPU0U2ODAwMCB8IG9zZTY4MDAwKQotCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotCQlvcz0tb3NlCi0JCTs7Ci0Jb3M2OGspCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCi0JCW9zPS1vczY4awotCQk7OwotCXBhLWhpdGFjaGkpCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCi0JCW9zPS1oaXV4d2UyCi0JCTs7Ci0JcGFyYWdvbikKLQkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCi0JCW9zPS1vc2YKLQkJOzsKLQlwYmQpCi0JCWJhc2ljX21hY2hpbmU9c3BhcmMtdHRpCi0JCTs7Ci0JcGJiKQotCQliYXNpY19tYWNoaW5lPW02OGstdHRpCi0JCTs7Ci0JcGM1MzIgfCBwYzUzMi0qKQotCQliYXNpY19tYWNoaW5lPW5zMzJrLXBjNTMyCi0JCTs7Ci0JcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQotCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLQkJOzsKLQlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotCQk7OwotCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQotCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLQkJOzsKLQlwZW50aXVtNCkKLQkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0JCTs7Ci0JcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQotCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0zLSopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBlbnRpdW00LSopCi0JCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBuKQotCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0JCTs7Ci0JcG93ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCi0JCTs7Ci0JcHBjKQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotCQk7OwotCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgotCQk7OwotCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCi0JCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0JCTs7Ci0JcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KLQkJOzsKLQlwcGM2NC0qKSBiYXNpY19tYWNoaW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0JCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtdW5rbm93bgotCQk7OwotCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQotCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0JCTs7Ci0JcHMyKQotCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCi0JCTs7Ci0JcHczMikKLQkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KLQkJb3M9LXB3MzIKLQkJOzsKLQlyb202OGspCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLQkJb3M9LWNvZmYKLQkJOzsKLQlybVs0Nl0wMCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKLQkJOzsKLQlydHBjIHwgcnRwYy0qKQotCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCi0JCTs7Ci0JczM5MCB8IHMzOTAtKikKLQkJYmFzaWNfbWFjaGluZT1zMzkwLWlibQotCQk7OwotCXMzOTB4IHwgczM5MHgtKikKLQkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KLQkJOzsKLQlzYTI5MjAwKQotCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0JCW9zPS11ZGkKLQkJOzsKLQlzYjEpCi0JCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KLQkJOzsKLQlzYjFlbCkKLQkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCi0JCTs7Ci0Jc2VpKQotCQliYXNpY19tYWNoaW5lPW1pcHMtc2VpCi0JCW9zPS1zZWl1eAotCQk7OwotCXNlcXVlbnQpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0JCTs7Ci0Jc2gpCi0JCWJhc2ljX21hY2hpbmU9c2gtaGl0YWNoaQotCQlvcz0taG1zCi0JCTs7Ci0Jc2g2NCkKLQkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KLQkJOzsKLQlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQotCQliYXNpY19tYWNoaW5lPXNwYXJjbGl0ZS13cnMKLQkJb3M9LXZ4d29ya3MKLQkJOzsKLQlzcHM3KQotCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAotCQlvcz0tc3lzdjIKLQkJOzsKLQlzcHVyKQotCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotCQk7OwotCXN0MjAwMCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotCQk7OwotCXN0cmF0dXMpCi0JCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0JCW9zPS1zeXN2NAotCQk7OwotCXN1bjIpCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgotCQk7OwotCXN1bjJvczMpCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgotCQlvcz0tc3Vub3MzCi0JCTs7Ci0Jc3VuMm9zNCkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCi0JCW9zPS1zdW5vczQKLQkJOzsKLQlzdW4zb3MzKQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCW9zPS1zdW5vczMKLQkJOzsKLQlzdW4zb3M0KQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCW9zPS1zdW5vczQKLQkJOzsKLQlzdW40b3MzKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQlvcz0tc3Vub3MzCi0JCTs7Ci0Jc3VuNG9zNCkKLQkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLQkJb3M9LXN1bm9zNAotCQk7OwotCXN1bjRzb2wyKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQlvcz0tc29sYXJpczIKLQkJOzsKLQlzdW4zIHwgc3VuMy0qKQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCTs7Ci0Jc3VuNCkKLQkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLQkJOzsKLQlzdW4zODYgfCBzdW4zODZpIHwgcm9hZHJ1bm5lcikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgotCQk7OwotCXN2MSkKLQkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQotCQlvcz0tdW5pY29zCi0JCTs7Ci0Jc3ltbWV0cnkpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0JCW9zPS1keW5peAotCQk7OwotCXQzZSkKLQkJYmFzaWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5Ci0JCW9zPS11bmljb3MKLQkJOzsKLQl0OTApCi0JCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCXRpYzU0eCB8IGM1NHgqKQotCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JdGljNTV4IHwgYzU1eCopCi0JCWJhc2ljX21hY2hpbmU9dGljNTV4LXVua25vd24KLQkJb3M9LWNvZmYKLQkJOzsKLQl0aWM2eCB8IGM2eCopCi0JCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgotCQlvcz0tY29mZgotCQk7OwotCXR4MzkpCi0JCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgotCQk7OwotCXR4MzllbCkKLQkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KLQkJOzsKLQl0b2FkMSkKLQkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLQkJb3M9LXRvcHMyMAotCQk7OwotCXRvd2VyIHwgdG93ZXItMzIpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1uY3IKLQkJOzsKLQl0cGYpCi0JCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0JCW9zPS10cGYKLQkJOzsKLQl1ZGkyOWspCi0JCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLQkJb3M9LXVkaQotCQk7OwotCXVsdHJhMykKLQkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotCQlvcz0tc3ltMQotCQk7OwotCXY4MTAgfCBuZWN2ODEwKQotCQliYXNpY19tYWNoaW5lPXY4MTAtbmVjCi0JCW9zPS1ub25lCi0JCTs7Ci0JdmF4dikKLQkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0JCW9zPS1zeXN2Ci0JCTs7Ci0Jdm1zKQotCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLQkJb3M9LXZtcwotCQk7OwotCXZwcCp8dnh8dngtKikKLQkJYmFzaWNfbWFjaGluZT1mMzAxLWZ1aml0c3UKLQkJOzsKLQl2eHdvcmtzOTYwKQotCQliYXNpY19tYWNoaW5lPWk5NjAtd3JzCi0JCW9zPS12eHdvcmtzCi0JCTs7Ci0Jdnh3b3JrczY4KQotCQliYXNpY19tYWNoaW5lPW02OGstd3JzCi0JCW9zPS12eHdvcmtzCi0JCTs7Ci0Jdnh3b3JrczI5aykKLQkJYmFzaWNfbWFjaGluZT1hMjlrLXdycwotCQlvcz0tdnh3b3JrcwotCQk7OwotCXc2NSopCi0JCWJhc2ljX21hY2hpbmU9dzY1LXdkYwotCQlvcz0tbm9uZQotCQk7OwotCXc4OWstKikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKLQkJb3M9LXByb2VsZgotCQk7OwotCXhib3gpCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotCQlvcz0tbWluZ3czMgotCQk7OwotCXhwcyB8IHhwczEwMCkKLQkJYmFzaWNfbWFjaGluZT14cHMxMDAtaG9uZXl3ZWxsCi0JCTs7Ci0JeW1wKQotCQliYXNpY19tYWNoaW5lPXltcC1jcmF5Ci0JCW9zPS11bmljb3MKLQkJOzsKLQl6OGstKi1jb2ZmKQotCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3duCi0JCW9zPS1zaW0KLQkJOzsKLQlub25lKQotCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQotCQlvcz0tbm9uZQotCQk7OwotCi0jIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCi0jIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZhY3R1cmVyLCBpbiBvdGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0Jdzg5aykKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKLQkJOzsKLQlvcDUwbikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQotCQk7OwotCW9wNjBjKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0JCTs7Ci0Jcm9tcCkKLQkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotCQk7OwotCW1taXgpCi0JCWJhc2ljX21hY2hpbmU9bW1peC1rbnV0aAotCQk7OwotCXJzNjAwMCkKLQkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCi0JCTs7Ci0JdmF4KQotCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLQkJOzsKLQlwZHAxMCkKLQkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAotCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25vd24KLQkJOzsKLQlwZHAxMSkKLQkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLQkJOzsKLQl3ZTMyaykKLQkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLQkJOzsKLQlzaDMgfCBzaDQgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCi0JCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgotCQk7OwotCXNoNjQpCi0JCWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0JCTs7Ci0Jc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQk7OwotCWN5ZHJhKQotCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKLQkJOzsKLQlvcmlvbikKLQkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKLQkJOzsKLQlvcmlvbjEwNSkKLQkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAotCQk7OwotCW1hYyB8IG1wdyB8IG1hYy1tcHcpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotCQk7OwotCXBtYWMgfCBwbWFjLW1wdykKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCi0JCTs7Ci0JKi11bmtub3duKQotCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGluZSBuYW1lLgotCQk7OwotCSopCi0JCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotCQlleGl0IDEKLQkJOzsKLWVzYWMKLQotIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCi1jYXNlICRiYXNpY19tYWNoaW5lIGluCi0JKi1kaWdpdGFsKikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCi0JCTs7Ci0JKi1jb21tb2RvcmUqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAotCQk7OwotCSopCi0JCTs7Ci1lc2FjCi0KLSMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgotCi1pZiBbIHgiJG9zIiAhPSB4IiIgXQotdGhlbgotY2FzZSAkb3MgaW4KLSAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKLSAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KLQkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLQktc29sYXJpczEgfCAtc29sYXJpczEuKikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAotCQk7OwotCS1zb2xhcmlzKQotCQlvcz0tc29sYXJpczIKLQkJOzsKLQktc3ZyNCopCi0JCW9zPS1zeXN2NAotCQk7OwotCS11bml4d2FyZSopCi0JCW9zPS1zeXN2NC4ydXcKLQkJOzsKLQktZ251L2xpbnV4KikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKLQkJOzsKLQkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgotCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCi0JIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLQkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0JLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAotCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLXN1bm9zIHwgLXN1bm9zWzM0XSpcCi0JICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKLQkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKLQkgICAgICB8IC1hb3MqIFwKLQkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAotCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAotCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIHwgLW9wZW5ic2QqIFwKLQkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKLQkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3RlcCogfCAtY3h1eCogfCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCi0JICAgICAgfCAtcHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiogfCAtdnN0YSogXAotCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1eCogXAotCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIFwKLQkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCi0JICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC11Y2xpYmMqIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKLQkgICAgICB8IC1pbnRlcml4KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAotCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAotCSAgICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAotCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxtb3MqIHwgLXVjbGludXgqIHwgLW51Y2xldXMqIFwKLQkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKLQkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSopCi0JIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotCQk7OwotCS1xbngqKQotCQljYXNlICRiYXNpY19tYWNoaW5lIGluCi0JCSAgICB4ODYtKiB8IGkqODYtKikKLQkJCTs7Ci0JCSAgICAqKQotCQkJb3M9LW50byRvcwotCQkJOzsKLQkJZXNhYwotCQk7OwotCS1udG8tcW54KikKLQkJOzsKLQktbnRvKikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCi0JCTs7Ci0JLXNpbSB8IC1lczE4MDAqIHwgLWhtcyogfCAteHJheSB8IC1vczY4ayogfCAtbm9uZSogfCAtdjg4ciogXAotCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogXAotCSAgICAgIHwgLW1hY29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAtbW9uOTYwKiB8IC1sbmV3cyopCi0JCTs7Ci0JLW1hYyopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xtYWN8bWFjb3N8J2AKLQkJOzsKLQktbGludXgtZGlldGxpYmMpCi0JCW9zPS1saW51eC1kaWV0bGliYwotCQk7OwotCS1saW51eCopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xsaW51eHxsaW51eC1nbnV8J2AKLQkJOzsKLQktc3Vub3M1KikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNXxzb2xhcmlzMnwnYAotCQk7OwotCS1zdW5vczYqKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M2fHNvbGFyaXMzfCdgCi0JCTs7Ci0JLW9wZW5lZCopCi0JCW9zPS1vcGVuZWRpdGlvbgotCQk7OwotICAgICAgICAtb3M0MDAqKQotCQlvcz0tb3M0MDAKLQkJOzsKLQktd2luY2UqKQotCQlvcz0td2luY2UKLQkJOzsKLQktb3Nmcm9zZSopCi0JCW9zPS1vc2Zyb3NlCi0JCTs7Ci0JLW9zZiopCi0JCW9zPS1vc2YKLQkJOzsKLQktdXRlayopCi0JCW9zPS1ic2QKLQkJOzsKLQktZHluaXgqKQotCQlvcz0tYnNkCi0JCTs7Ci0JLWFjaXMqKQotCQlvcz0tYW9zCi0JCTs7Ci0JLWF0aGVvcyopCi0JCW9zPS1hdGhlb3MKLQkJOzsKLQktc3lsbGFibGUqKQotCQlvcz0tc3lsbGFibGUKLQkJOzsKLQktMzg2YnNkKQotCQlvcz0tYnNkCi0JCTs7Ci0JLWN0aXgqIHwgLXV0cyopCi0JCW9zPS1zeXN2Ci0JCTs7Ci0JLW5vdmEqKQotCQlvcz0tcnRtay1ub3ZhCi0JCTs7Ci0JLW5zMiApCi0JCW9zPS1uZXh0c3RlcDIKLQkJOzsKLQktbnNrKikKLQkJb3M9LW5zawotCQk7OwotCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KLQktc2luaXg1LiopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCi0JCTs7Ci0JLXNpbml4KikKLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0gICAgICAgIC10cGYqKQotCQlvcz0tdHBmCi0JCTs7Ci0JLXRyaXRvbiopCi0JCW9zPS1zeXN2MwotCQk7OwotCS1vc3MqKQotCQlvcz0tc3lzdjMKLQkJOzsKLQktc3ZyNCkKLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0JLXN2cjMpCi0JCW9zPS1zeXN2MwotCQk7OwotCS1zeXN2cjQpCi0JCW9zPS1zeXN2NAotCQk7OwotCSMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIgLXN5c3ZyNC4KLQktc3lzdiopCi0JCTs7Ci0JLW9zZSopCi0JCW9zPS1vc2UKLQkJOzsKLQktZXMxODAwKikKLQkJb3M9LW9zZQotCQk7OwotCS14ZW5peCkKLQkJb3M9LXhlbml4Ci0JCTs7Ci0JLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKLQkJb3M9LW1pbnQKLQkJOzsKLQktYXJvcyopCi0JCW9zPS1hcm9zCi0JCTs7Ci0JLWthb3MqKQotCQlvcz0ta2FvcwotCQk7OwotCS16dm1vZSkKLQkJb3M9LXp2bW9lCi0JCTs7Ci0JLW5vbmUpCi0JCTs7Ci0JKikKLQkJIyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBvZiAkb3MuCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCi0JCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgotCQlleGl0IDEKLQkJOzsKLWVzYWMKLWVsc2UKLQotIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgotIyBUaGUgdmFsdWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkgc2hpcHMgb3V0IHRoZSBkb29yIHdpdGggdGhlaXIKLSMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KLQotIyBOb3RlIHRoYXQgaWYgeW91J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJFUiIgaGVyZSAoc2F5LAotIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAotIyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCi0jIHdpbGwgc2lnbmFsIGFuIGVycm9yIHNheWluZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcKLSMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0KLWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KLQkqLWFjb3JuKQotCQlvcz0tcmlzY2l4MS4yCi0JCTs7Ci0JYXJtKi1yZWJlbCkKLQkJb3M9LWxpbnV4Ci0JCTs7Ci0JYXJtKi1zZW1pKQotCQlvcz0tYW91dAotCQk7OwotICAgIGM0eC0qIHwgdGljNHgtKikKLSAgICAgICAgb3M9LWNvZmYKLSAgICAgICAgOzsKLQkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCi0JcGRwMTAtKikKLQkJb3M9LXRvcHMyMAotCQk7OwotCXBkcDExLSopCi0JCW9zPS1ub25lCi0JCTs7Ci0JKi1kZWMgfCB2YXgtKikKLQkJb3M9LXVsdHJpeDQuMgotCQk7OwotCW02OCotYXBvbGxvKQotCQlvcz0tZG9tYWluCi0JCTs7Ci0JaTM4Ni1zdW4pCi0JCW9zPS1zdW5vczQuMC4yCi0JCTs7Ci0JbTY4MDAwLXN1bikKLQkJb3M9LXN1bm9zMwotCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBidXQgd2FzIG5vdCB0aGUKLQkJIyBkZWZhdWx0LgotCQkjIG9zPS1zdW5vczQKLQkJOzsKLQltNjgqLWNpc2NvKQotCQlvcz0tYW91dAotCQk7OwotCW1pcHMqLWNpc2NvKQotCQlvcz0tZWxmCi0JCTs7Ci0JbWlwcyotKikKLQkJb3M9LWVsZgotCQk7OwotCW9yMzItKikKLQkJb3M9LWNvZmYKLQkJOzsKLQkqLXR0aSkJIyBtdXN0IGJlIGJlZm9yZSBzcGFyYyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgotCQlvcz0tc3lzdjMKLQkJOzsKLQlzcGFyYy0qIHwgKi1zdW4pCi0JCW9zPS1zdW5vczQuMS4xCi0JCTs7Ci0JKi1iZSkKLQkJb3M9LWJlb3MKLQkJOzsKLQkqLWlibSkKLQkJb3M9LWFpeAotCQk7OwotICAgIAkqLWtudXRoKQotCQlvcz0tbW1peHdhcmUKLQkJOzsKLQkqLXdlYykKLQkJb3M9LXByb2VsZgotCQk7OwotCSotd2luYm9uZCkKLQkJb3M9LXByb2VsZgotCQk7OwotCSotb2tpKQotCQlvcz0tcHJvZWxmCi0JCTs7Ci0JKi1ocCkKLQkJb3M9LWhwdXgKLQkJOzsKLQkqLWhpdGFjaGkpCi0JCW9zPS1oaXV4Ci0JCTs7Ci0JaTg2MC0qIHwgKi1hdHQgfCAqLW5jciB8ICotYWx0b3MgfCAqLW1vdG9yb2xhIHwgKi1jb252ZXJnZW50KQotCQlvcz0tc3lzdgotCQk7OwotCSotY2JtKQotCQlvcz0tYW1pZ2FvcwotCQk7OwotCSotZGcpCi0JCW9zPS1kZ3V4Ci0JCTs7Ci0JKi1kb2xwaGluKQotCQlvcz0tc3lzdjMKLQkJOzsKLQltNjhrLWNjdXIpCi0JCW9zPS1ydHUKLQkJOzsKLQltODhrLW9tcm9uKikKLQkJb3M9LWx1bmEKLQkJOzsKLQkqLW5leHQgKQotCQlvcz0tbmV4dHN0ZXAKLQkJOzsKLQkqLXNlcXVlbnQpCi0JCW9zPS1wdHgKLQkJOzsKLQkqLWNyZHMpCi0JCW9zPS11bm9zCi0JCTs7Ci0JKi1ucykKLQkJb3M9LWdlbml4Ci0JCTs7Ci0JaTM3MC0qKQotCQlvcz0tbXZzCi0JCTs7Ci0JKi1uZXh0KQotCQlvcz0tbmV4dHN0ZXAzCi0JCTs7Ci0JKi1nb3VsZCkKLQkJb3M9LXN5c3YKLQkJOzsKLQkqLWhpZ2hsZXZlbCkKLQkJb3M9LWJzZAotCQk7OwotCSotZW5jb3JlKQotCQlvcz0tYnNkCi0JCTs7Ci0JKi1zZ2kpCi0JCW9zPS1pcml4Ci0JCTs7Ci0JKi1zaWVtZW5zKQotCQlvcz0tc3lzdjQKLQkJOzsKLQkqLW1hc3Njb21wKQotCQlvcz0tcnR1Ci0JCTs7Ci0JZjMwWzAxXS1mdWppdHN1IHwgZjcwMC1mdWppdHN1KQotCQlvcz0tdXhwdgotCQk7OwotCSotcm9tNjhrKQotCQlvcz0tY29mZgotCQk7OwotCSotKmJ1ZykKLQkJb3M9LWNvZmYKLQkJOzsKLQkqLWFwcGxlKQotCQlvcz0tbWFjb3MKLQkJOzsKLQkqLWF0YXJpKikKLQkJb3M9LW1pbnQKLQkJOzsKLQkqKQotCQlvcz0tbm9uZQotCQk7OwotZXNhYwotZmkKLQotIyBIZXJlIHdlIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBrbm93IHRoZSBvcywgYW5kIHRoZSBDUFUgdHlwZSwgYnV0IG5vdCB0aGUKLSMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCi12ZW5kb3I9dW5rbm93bgotY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotCSotdW5rbm93bikKLQkJY2FzZSAkb3MgaW4KLQkJCS1yaXNjaXgqKQotCQkJCXZlbmRvcj1hY29ybgotCQkJCTs7Ci0JCQktc3Vub3MqKQotCQkJCXZlbmRvcj1zdW4KLQkJCQk7OwotCQkJLWFpeCopCi0JCQkJdmVuZG9yPWlibQotCQkJCTs7Ci0JCQktYmVvcyopCi0JCQkJdmVuZG9yPWJlCi0JCQkJOzsKLQkJCS1ocHV4KikKLQkJCQl2ZW5kb3I9aHAKLQkJCQk7OwotCQkJLW1wZWl4KikKLQkJCQl2ZW5kb3I9aHAKLQkJCQk7OwotCQkJLWhpdXgqKQotCQkJCXZlbmRvcj1oaXRhY2hpCi0JCQkJOzsKLQkJCS11bm9zKikKLQkJCQl2ZW5kb3I9Y3JkcwotCQkJCTs7Ci0JCQktZGd1eCopCi0JCQkJdmVuZG9yPWRnCi0JCQkJOzsKLQkJCS1sdW5hKikKLQkJCQl2ZW5kb3I9b21yb24KLQkJCQk7OwotCQkJLWdlbml4KikKLQkJCQl2ZW5kb3I9bnMKLQkJCQk7OwotCQkJLW12cyogfCAtb3BlbmVkKikKLQkJCQl2ZW5kb3I9aWJtCi0JCQkJOzsKLQkJCS1vczQwMCopCi0JCQkJdmVuZG9yPWlibQotCQkJCTs7Ci0JCQktcHR4KikKLQkJCQl2ZW5kb3I9c2VxdWVudAotCQkJCTs7Ci0JCQktdHBmKikKLQkJCQl2ZW5kb3I9aWJtCi0JCQkJOzsKLQkJCS12eHNpbSogfCAtdnh3b3JrcyogfCAtd2luZGlzcyopCi0JCQkJdmVuZG9yPXdycwotCQkJCTs7Ci0JCQktYXV4KikKLQkJCQl2ZW5kb3I9YXBwbGUKLQkJCQk7OwotCQkJLWhtcyopCi0JCQkJdmVuZG9yPWhpdGFjaGkKLQkJCQk7OwotCQkJLW1wdyogfCAtbWFjb3MqKQotCQkJCXZlbmRvcj1hcHBsZQotCQkJCTs7Ci0JCQktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQotCQkJCXZlbmRvcj1hdGFyaQotCQkJCTs7Ci0JCQktdm9zKikKLQkJCQl2ZW5kb3I9c3RyYXR1cwotCQkJCTs7Ci0JCWVzYWMKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKLQkJOzsKLWVzYWMKLQotZWNobyAkYmFzaWNfbWFjaGluZSRvcwotZXhpdCAwCi0KLSMgTG9jYWwgdmFyaWFibGVzOgotIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0jIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgotIyB0aW1lLXN0YW1wLWVuZDogIiciCi0jIEVuZDoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggN2RjZGZiMC4uMDAwMDAwMAotLS0gYS9jb25maWd1cmUKKysrIC9kZXYvbnVsbApAQCAtMSw5NzMwICswLDAgQEAKLSMhIC9iaW4vc2gKLSMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBzdHJhY2UgNC41LjEyLgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLQotIyBOYW1lIG9mIHRoZSBob3N0LgotIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKLSMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgotYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCi0KLWV4ZWMgNj4mMQotCi0jCi0jIEluaXRpYWxpemF0aW9ucy4KLSMKLWFjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLWFjX2NvbmZpZ19saWJvYmpfZGlyPS4KLWNyb3NzX2NvbXBpbGluZz1ubwotc3ViZGlycz0KLU1GTEFHUz0KLU1BS0VGTEFHUz0KLVNIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0KLSMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KLSMgVGhpcyB2YXJpYWJsZSBzZWVtcyBvYnNvbGV0ZS4gIEl0IHNob3VsZCBwcm9iYWJseSBiZSByZW1vdmVkLCBhbmQKLSMgb25seSBhY19tYXhfc2VkX2xpbmVzIHNob3VsZCBiZSB1c2VkLgotOiAke2FjX21heF9oZXJlX2xpbmVzPTM4fQotCi0jIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLVBBQ0tBR0VfTkFNRT0nc3RyYWNlJwotUEFDS0FHRV9UQVJOQU1FPSdzdHJhY2UnCi1QQUNLQUdFX1ZFUlNJT049JzQuNS4xMicKLVBBQ0tBR0VfU1RSSU5HPSdzdHJhY2UgNC41LjEyJwotUEFDS0FHRV9CVUdSRVBPUlQ9JycKLQotYWNfdW5pcXVlX2ZpbGU9InN0cmFjZS5jIgotIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgotYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaWYgSEFWRV9TWVNfVFlQRVNfSAotIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNlbmRpZgotI2lmIEhBVkVfU1lTX1NUQVRfSAotIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2VuZGlmCi0jaWYgU1REQ19IRUFERVJTCi0jIGluY2x1ZGUgPHN0ZGxpYi5oPgotIyBpbmNsdWRlIDxzdGRkZWYuaD4KLSNlbHNlCi0jIGlmIEhBVkVfU1RETElCX0gKLSMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotIyBlbmRpZgotI2VuZGlmCi0jaWYgSEFWRV9TVFJJTkdfSAotIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLSMgIGluY2x1ZGUgPG1lbW9yeS5oPgotIyBlbmRpZgotIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSNlbmRpZgotI2lmIEhBVkVfU1RSSU5HU19ICi0jIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSNlbmRpZgotI2lmIEhBVkVfSU5UVFlQRVNfSAotIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotI2Vsc2UKLSMgaWYgSEFWRV9TVERJTlRfSAotIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci0jIGVuZGlmCi0jZW5kaWYKLSNpZiBIQVZFX1VOSVNURF9ICi0jIGluY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmIgotCi1hY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFBBQ0tBR0UgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sgU0VUX01BS0UgYW1fX2xlYWRpbmdfZG90IEFNVEFSIGFtX190YXIgYW1fX3VudGFyIE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlOVCBidWlsZCBidWlsZF9jcHUgYnVpbGRfdmVuZG9yIGJ1aWxkX29zIGhvc3QgaG9zdF9jcHUgaG9zdF92ZW5kb3IgaG9zdF9vcyBvcHN5cyBhcmNoIExJTlVYX1RSVUUgTElOVVhfRkFMU0UgSTM4Nl9UUlVFIEkzODZfRkFMU0UgWDg2XzY0X1RSVUUgWDg2XzY0X0ZBTFNFIFNVTk9TNF9UUlVFIFNVTk9TNF9GQUxTRSBTVlI0X1RSVUUgU1ZSNF9GQUxTRSBGUkVFQlNEX1RSVUUgRlJFRUJTRF9GQUxTRSBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIERFUERJUiBhbV9faW5jbHVkZSBhbV9fcXVvdGUgQU1ERVBfVFJVRSBBTURFUF9GQUxTRSBBTURFUEJBQ0tTTEFTSCBDQ0RFUE1PREUgYW1fX2Zhc3RkZXBDQ19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0UgV0FSTkZMQUdTIENQUCBFR1JFUCBQRVJMIExJQk9CSlMgTFRMSUJPQkpTJwotYWNfc3Vic3RfZmlsZXM9JycKLQotIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotYWNfaW5pdF9oZWxwPQotYWNfaW5pdF92ZXJzaW9uPWZhbHNlCi0jIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb3B0aW9ucywgd2l0aAotIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgotY2FjaGVfZmlsZT0vZGV2L251bGwKLWV4ZWNfcHJlZml4PU5PTkUKLW5vX2NyZWF0ZT0KLW5vX3JlY3Vyc2lvbj0KLXByZWZpeD1OT05FCi1wcm9ncmFtX3ByZWZpeD1OT05FCi1wcm9ncmFtX3N1ZmZpeD1OT05FCi1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAotc2lsZW50PQotc2l0ZT0KLXNyY2Rpcj0KLXZlcmJvc2U9Ci14X2luY2x1ZGVzPU5PTkUKLXhfbGlicmFyaWVzPU5PTkUKLQotIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9wdGlvbnMuCi0jIFRoZXNlIGFyZSBsZWZ0IHVuZXhwYW5kZWQgc28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19wcmVmaXg9L2ZvbyIKLSMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4Ci0jIGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCi0jIFVzZSBicmFjZXMgaW5zdGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwgZXRjLiBhbHNvIGFjY2VwdCB0aGVtLgotYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCi1zYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwotbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLWRhdGFkaXI9JyR7cHJlZml4fS9zaGFyZScKLXN5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCi1zaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKLWxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCi1saWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKLWluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwotb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwotaW5mb2Rpcj0nJHtwcmVmaXh9L2luZm8nCi1tYW5kaXI9JyR7cHJlZml4fS9tYW4nCi0KLWFjX3ByZXY9Ci1mb3IgYWNfb3B0aW9uCi1kbwotICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0gICAgZXZhbCAiJGFjX3ByZXY9XCRhY19vcHRpb24iCi0gICAgYWNfcHJldj0KLSAgICBjb250aW51ZQotICBmaQotCi0gIGFjX29wdGFyZz1gZXhwciAieCRhY19vcHRpb24iIDogJ3hbXj1dKj1cKC4qXCknYAotCi0gICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0KLSAgY2FzZSAkYWNfb3B0aW9uIGluCi0KLSAgLWJpbmRpciB8IC0tYmluZGlyIHwgLS1iaW5kaSB8IC0tYmluZCB8IC0tYmluIHwgLS1iaSkKLSAgICBhY19wcmV2PWJpbmRpciA7OwotICAtYmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotICAgIGJpbmRpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLSAgICBhY19wcmV2PWJ1aWxkX2FsaWFzIDs7Ci0gIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWlsPSogfCAtLWJ1aT0qIHwgLS1idT0qKQotICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLQotICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCi0gIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotICAgIGFjX3ByZXY9Y2FjaGVfZmlsZSA7OwotICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKLSAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSAgICBjYWNoZV9maWxlPSRhY19vcHRhcmcgOzsKLQotICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotICAgIGNhY2hlX2ZpbGU9Y29uZmlnLmNhY2hlIDs7Ci0KLSAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQgfCAtLWRhdGEgfCAtLWRhdCB8IC0tZGEpCi0gICAgYWNfcHJldj1kYXRhZGlyIDs7Ci0gIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSogfCAtLWRhdGE9KiB8IC0tZGF0PSogXAotICB8IC0tZGE9KikKLSAgICBkYXRhZGlyPSRhY19vcHRhcmcgOzsKLQotICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSopCi0gICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwpJ2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgICBhY19mZWF0dXJlPWBlY2hvICRhY19mZWF0dXJlIHwgc2VkICdzLy0vXy9nJ2AKLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9bm8iIDs7Ci0KLSAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLSAgICBhY19mZWF0dXJlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGV4cHIgIngkYWNfZmVhdHVyZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZSB8IHNlZCAncy8tL18vZydgCi0gICAgY2FzZSAkYWNfb3B0aW9uIGluCi0gICAgICAqPSopIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotICAgICAgKikgYWNfb3B0YXJnPXllcyA7OwotICAgIGVzYWMKLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9JyRhY19vcHRhcmcnIiA7OwotCi0gIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKLSAgfCAtLWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4ZWMtcCB8IC0tZXhlYy0gXAotICB8IC0tZXhlYyB8IC0tZXhlIHwgLS1leCkKLSAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0gIC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwgLS1leGVjLXByZWZpPSogXAotICB8IC0tZXhlYy1wcmVmPSogfCAtLWV4ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1wPSogfCAtLWV4ZWMtPSogXAotICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSAgICBleGVjX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0KLSAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLWdhcy4KLSAgICB3aXRoX2dhcz15ZXMgOzsKLQotICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC1oKQotICAgIGFjX2luaXRfaGVscD1sb25nIDs7Ci0gIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSAgICBhY19pbml0X2hlbHA9cmVjdXJzaXZlIDs7Ci0gIC1oZWxwPXMqIHwgLS1oZWxwPXMqIHwgLS1oZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKLSAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLQotICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKLSAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKLSAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKLSAgICBob3N0X2FsaWFzPSRhY19vcHRhcmcgOzsKLQotICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0gIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1pbmNsIHwgLS1pbmMpCi0gICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Ci0gIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0gIHwgLS1pbmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9KikKLSAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLQotICAtaW5mb2RpciB8IC0taW5mb2RpciB8IC0taW5mb2RpIHwgLS1pbmZvZCB8IC0taW5mbyB8IC0taW5mKQotICAgIGFjX3ByZXY9aW5mb2RpciA7OwotICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotICAgIGluZm9kaXI9JGFjX29wdGFyZyA7OwotCi0gIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0gICAgYWNfcHJldj1saWJkaXIgOzsKLSAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0tbGliZGk9KiB8IC0tbGliZD0qKQotICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMgXAotICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSAgICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKLSAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKLSAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0gICAgbGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaSB8IC0tbG9jYWxzdGF0ZWQgXAotICB8IC0tbG9jYWxzdGF0ZSB8IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCBcCi0gIHwgLS1sb2NhbHMgfCAtLWxvY2FsIHwgLS1sb2NhIHwgLS1sb2MgfCAtLWxvKQotICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotICAtbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaT0qIHwgLS1sb2NhbHN0YXRlZD0qIFwKLSAgfCAtLWxvY2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiBcCi0gIHwgLS1sb2NhbHM9KiB8IC0tbG9jYWw9KiB8IC0tbG9jYT0qIHwgLS1sb2M9KiB8IC0tbG89KikKLSAgICBsb2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKLQotICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQotICAgIGFjX3ByZXY9bWFuZGlyIDs7Ci0gIC1tYW5kaXI9KiB8IC0tbWFuZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikKLSAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwotCi0gIC1uZnAgfCAtLW5mcCB8IC0tbmYpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSAgICB3aXRoX2ZwPW5vIDs7Ci0KLSAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSAgfCAtLW5vLWNyIHwgLS1uby1jIHwgLW4pCi0gICAgbm9fY3JlYXRlPXllcyA7OwotCi0gIC1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW8gfCAtLW5vLXJlY3Vyc2kgXAotICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8tcmVjdSB8IC0tbm8tcmVjIHwgLS1uby1yZSB8IC0tbm8tcikKLSAgICBub19yZWN1cnNpb249eWVzIDs7Ci0KLSAgLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaSB8IC0tb2xkaW5jbHVkZWQgXAotICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSAgfCAtLW9sZGluIHwgLS1vbGRpIHwgLS1vbGQgfCAtLW9sIHwgLS1vKQotICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7OwotICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKLSAgfCAtLW9sZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1PSogfCAtLW9sZGluY2w9KiB8IC0tb2xkaW5jPSogXAotICB8IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQotICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotCi0gIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCi0gICAgYWNfcHJldj1wcmVmaXggOzsKLSAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQotICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Ci0KLSAgLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaSB8IC0tcHJvZ3JhbS1wcmVmIFwKLSAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFtLXApCi0gICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotICAtcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaT0qIFwKLSAgfCAtLXByb2dyYW0tcHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0qKQotICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLQotICAtcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAotICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSAgICBhY19wcmV2PXByb2dyYW1fc3VmZml4IDs7Ci0gIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAotICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0gICAgcHJvZ3JhbV9zdWZmaXg9JGFjX29wdGFyZyA7OwotCi0gIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2YgXAotICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKLSAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA7OwotICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS09KiBcCi0gIHwgLS1wcm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotICB8IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCi0gIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKLSAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLQotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSAgICBzaWxlbnQ9eWVzIDs7Ci0KLSAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0gICAgYWNfcHJldj1zYmluZGlyIDs7Ci0gIC1zYmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCi0gIHwgLS1zYmk9KiB8IC0tc2I9KikKLSAgICBzYmluZGlyPSRhY19vcHRhcmcgOzsKLQotICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSAgfCAtLXNoYXJlZHN0YXRlZCB8IC0tc2hhcmVkc3RhdGUgfCAtLXNoYXJlZHN0YXQgfCAtLXNoYXJlZHN0YSBcCi0gIHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwgLS1zaGFyZSB8IC0tc2hhciBcCi0gIHwgLS1zaGEgfCAtLXNoKQotICAgIGFjX3ByZXY9c2hhcmVkc3RhdGVkaXIgOzsKLSAgLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGk9KiBcCi0gIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0gIHwgLS1zaGFyZWRzdD0qIHwgLS1zaGFyZWRzPSogfCAtLXNoYXJlZD0qIHwgLS1zaGFyZT0qIHwgLS1zaGFyPSogXAotICB8IC0tc2hhPSogfCAtLXNoPSopCi0gICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotCi0gIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCi0gICAgYWNfcHJldj1zaXRlIDs7Ci0gIC1zaXRlPSogfCAtLXNpdGU9KiB8IC0tc2l0PSopCi0gICAgc2l0ZT0kYWNfb3B0YXJnIDs7Ci0KLSAgLXNyY2RpciB8IC0tc3JjZGlyIHwgLS1zcmNkaSB8IC0tc3JjZCB8IC0tc3JjIHwgLS1zcikKLSAgICBhY19wcmV2PXNyY2RpciA7OwotICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotICAgIHNyY2Rpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAotICB8IC0tc3lzY29uIHwgLS1zeXNjbyB8IC0tc3lzYyB8IC0tc3lzIHwgLS1zeSkKLSAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKLSAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKLSAgfCAtLXN5c2Nvbj0qIHwgLS1zeXNjbz0qIHwgLS1zeXNjPSogfCAtLXN5cz0qIHwgLS1zeT0qKQotICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OwotCi0gIC10YXJnZXQgfCAtLXRhcmdldCB8IC0tdGFyZ2UgfCAtLXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCi0gICAgYWNfcHJldj10YXJnZXRfYWxpYXMgOzsKLSAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotICAgIHRhcmdldF9hbGlhcz0kYWNfb3B0YXJnIDs7Ci0KLSAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSAgICB2ZXJib3NlPXllcyA7OwotCi0gIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0gICAgYWNfaW5pdF92ZXJzaW9uPTogOzsKLQotICAtd2l0aC0qIHwgLS13aXRoLSopCi0gICAgYWNfcGFja2FnZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGgtXChbXj1dKlwpJ2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19wYWNrYWdlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfcGFja2FnZSIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvLS9fL2cnYAotICAgIGNhc2UgJGFjX29wdGlvbiBpbgotICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSAgICAgICopIGFjX29wdGFyZz15ZXMgOzsKLSAgICBlc2FjCi0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT0nJGFjX29wdGFyZyciIDs7Ci0KLSAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qKQotICAgIGFjX3BhY2thZ2U9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3BhY2thZ2UiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZSB8IHNlZCAncy8tL18vZydgCi0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT1ubyIgOzsKLQotICAtLXgpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgotICAgIHdpdGhfeD15ZXMgOzsKLQotICAteC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlIHwgLS14LWluY2x1ZCB8IC0teC1pbmNsdSBcCi0gIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCi0gICAgYWNfcHJldj14X2luY2x1ZGVzIDs7Ci0gIC14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgtaW5jbHU9KiBcCi0gIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9KikKLSAgICB4X2luY2x1ZGVzPSRhY19vcHRhcmcgOzsKLQotICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotICB8IC0teC1saWJyYXIgfCAtLXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkgfCAtLXgtbCkKLSAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7Ci0gIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSAgfCAtLXgtbGlicmFyPSogfCAtLXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAtLXgtbGk9KiB8IC0teC1sPSopCi0gICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OwotCi0gIC0qKSB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgIDs7Ci0KLSAgKj0qKQotICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19lbnZ2YXIiIDogIi4qW15fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYAotICAgIGV2YWwgIiRhY19lbnZ2YXI9JyRhY19vcHRhcmcnIgotICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0KLSAgKikKLSAgICAjIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0gICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiB5b3Ugc2hvdWxkIHVzZSAtLWJ1aWxkLCAtLWhvc3QsIC0tdGFyZ2V0IiA+JjIKLSAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSAgICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogaW52YWxpZCBob3N0IHR5cGU6ICRhY19vcHRpb24iID4mMgotICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxpYXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KLSAgICA7OwotCi0gIGVzYWMKLWRvbmUKLQotaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0gIGFjX29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKLSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi0jIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBwYXRocy4KLWZvciBhY192YXIgaW4gZXhlY19wcmVmaXggcHJlZml4Ci1kbwotICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKLSAgY2FzZSAkYWNfdmFsIGluCi0gICAgW1xcLyRdKiB8ID86W1xcL10qIHwgTk9ORSB8ICcnICkgOzsKLSAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0gIGVzYWMKLWRvbmUKLQotIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCi1mb3IgYWNfdmFyIGluIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIFwKLQkgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKLWRvCi0gIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotICBjYXNlICRhY192YWwgaW4KLSAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLSAgZXNhYwotZG9uZQotCi0jIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0jIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0Yy4KLSMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLWJ1aWxkPSRidWlsZF9hbGlhcwotaG9zdD0kaG9zdF9hbGlhcwotdGFyZ2V0PSR0YXJnZXRfYWxpYXMKLQotIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotaWYgdGVzdCAieCRob3N0X2FsaWFzIiAhPSB4OyB0aGVuCi0gIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgotICAgIGNyb3NzX2NvbXBpbGluZz1tYXliZQotICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KLSAgICBJZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZC4iID4mMgotICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCi0gICAgY3Jvc3NfY29tcGlsaW5nPXllcwotICBmaQotZmkKLQotYWNfdG9vbF9wcmVmaXg9Ci10ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMtCi0KLXRlc3QgIiRzaWxlbnQiID0geWVzICYmIGV4ZWMgNj4vZGV2L251bGwKLQotCi0jIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCi1pZiB0ZXN0IC16ICIkc3JjZGlyIjsgdGhlbgotICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcwotICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gaXRzIHBhcmVudC4KLSAgYWNfY29uZmRpcj1gKGRpcm5hbWUgIiQwIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJDAiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkMCIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIHNyY2Rpcj0kYWNfY29uZmRpcgotICBpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KLSAgICBzcmNkaXI9Li4KLSAgZmkKLWVsc2UKLSAgYWNfc3JjZGlyX2RlZmF1bHRlZD1ubwotZmkKLWlmIHRlc3QgISAtciAkc3JjZGlyLyRhY191bmlxdWVfZmlsZTsgdGhlbgotICBpZiB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5ZXM7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJGFjX2NvbmZkaXIgb3IgLi4iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gIGVsc2UKLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgZmkKLWZpCi0oY2QgJHNyY2RpciAmJiB0ZXN0IC1yIC4vJGFjX3VuaXF1ZV9maWxlKSAyPi9kZXYvbnVsbCB8fAotICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1zcmNkaXI9YGVjaG8gIiRzcmNkaXIiIHwgc2VkICdzJVwoW15cXC9dXClbXFwvXSokJVwxJSdgCi1hY19lbnZfYnVpbGRfYWxpYXNfc2V0PSR7YnVpbGRfYWxpYXMrc2V0fQotYWNfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPSRidWlsZF9hbGlhcwotYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0ke2J1aWxkX2FsaWFzK3NldH0KLWFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKLWFjX2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotYWNfZW52X2hvc3RfYWxpYXNfdmFsdWU9JGhvc3RfYWxpYXMKLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9JGhvc3RfYWxpYXMKLWFjX2Vudl90YXJnZXRfYWxpYXNfc2V0PSR7dGFyZ2V0X2FsaWFzK3NldH0KLWFjX2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcwotYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9JHt0YXJnZXRfYWxpYXMrc2V0fQotYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0kdGFyZ2V0X2FsaWFzCi1hY19lbnZfQ0Nfc2V0PSR7Q0Mrc2V0fQotYWNfZW52X0NDX3ZhbHVlPSRDQwotYWNfY3ZfZW52X0NDX3NldD0ke0NDK3NldH0KLWFjX2N2X2Vudl9DQ192YWx1ZT0kQ0MKLWFjX2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KLWFjX2Vudl9DRkxBR1NfdmFsdWU9JENGTEFHUwotYWNfY3ZfZW52X0NGTEFHU19zZXQ9JHtDRkxBR1Mrc2V0fQotYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdTCi1hY19lbnZfTERGTEFHU19zZXQ9JHtMREZMQUdTK3NldH0KLWFjX2Vudl9MREZMQUdTX3ZhbHVlPSRMREZMQUdTCi1hY19jdl9lbnZfTERGTEFHU19zZXQ9JHtMREZMQUdTK3NldH0KLWFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPSRMREZMQUdTCi1hY19lbnZfQ1BQRkxBR1Nfc2V0PSR7Q1BQRkxBR1Mrc2V0fQotYWNfZW52X0NQUEZMQUdTX3ZhbHVlPSRDUFBGTEFHUwotYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0ke0NQUEZMQUdTK3NldH0KLWFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKLWFjX2Vudl9DUFBfc2V0PSR7Q1BQK3NldH0KLWFjX2Vudl9DUFBfdmFsdWU9JENQUAotYWNfY3ZfZW52X0NQUF9zZXQ9JHtDUFArc2V0fQotYWNfY3ZfZW52X0NQUF92YWx1ZT0kQ1BQCi0KLSMKLSMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLSMKLWlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCi0gICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCi0gIGNhdCA8PF9BQ0VPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgc3RyYWNlIDQuNS4xMiB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCi0KLVVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgotCi1UbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBDQywgQ0ZMQUdTLi4uKSwgc3BlY2lmeSB0aGVtIGFzCi1WQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgotCi1EZWZhdWx0cyBmb3IgdGhlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KLQotQ29uZmlndXJhdGlvbjoKLSAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKLSAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQotICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLSAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcwotICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCi0gIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCi0gIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCi0gICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotCi1fQUNFT0YKLQotICBjYXQgPDxfQUNFT0YKLUluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCi0JCQkgIFskYWNfZGVmYXVsdF9wcmVmaXhdCi0gIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0JCQkgIFtQUkVGSVhdCi0KLUJ5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgotXGAkYWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNpZnkKLWFuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCi1mb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgotCi1Gb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KLQotRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSAgLS1iaW5kaXI9RElSICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLSAgLS1zYmluZGlyPURJUiAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KLSAgLS1saWJleGVjZGlyPURJUiAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNdCi0gIC0tZGF0YWRpcj1ESVIgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvc2hhcmVdCi0gIC0tc3lzY29uZmRpcj1ESVIgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNdCi0gIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KLSAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCi0gIC0tbGliZGlyPURJUiAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KLSAgLS1pbmNsdWRlZGlyPURJUiAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCi0gIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KLSAgLS1pbmZvZGlyPURJUiAgICAgICAgICBpbmZvIGRvY3VtZW50YXRpb24gW1BSRUZJWC9pbmZvXQotICAtLW1hbmRpcj1ESVIgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtQUkVGSVgvbWFuXQotX0FDRU9GCi0KLSAgY2F0IDw8XF9BQ0VPRgotCi1Qcm9ncmFtIG5hbWVzOgotICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAgICAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0gIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotICAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotCi1TeXN0ZW0gdHlwZXM6Ci0gIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0gIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQotX0FDRU9GCi1maQotCi1pZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIHN0cmFjZSA0LjUuMTI6Ijs7Ci0gICBlc2FjCi0gIGNhdCA8PFxfQUNFT0YKLQotT3B0aW9uYWwgRmVhdHVyZXM6Ci0gIC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKLSAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotICAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAotCQkJICAoYW5kIHNvbWV0aW1lcyBjb25mdXNpbmcpIHRvIHRoZSBjYXN1YWwgaW5zdGFsbGVyCi0gIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKLSAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKLQotU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gIENDICAgICAgICAgIEMgY29tcGlsZXIgY29tbWFuZAotICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0gIExERkxBR1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQotICAgICAgICAgICAgICBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGxpYiBkaXI+Ci0gIENQUEZMQUdTICAgIEMvQysrIHByZXByb2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYgeW91IGhhdmUKLSAgICAgICAgICAgICAgaGVhZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+Ci0gIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29yCi0KLVVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi1pdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3JhbXMgd2l0aCBub25zdGFuZGFyZCBuYW1lcy9sb2NhdGlvbnMuCi0KLV9BQ0VPRgotZmkKLQotaWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgotICAjIElmIHRoZXJlIGFyZSBzdWJkaXJzLCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgotICBhY19wb3BkaXI9YHB3ZGAKLSAgZm9yIGFjX2RpciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYgY29udGludWUKLSAgICB0ZXN0IC1kICRhY19kaXIgfHwgY29udGludWUKLSAgICBhY19idWlsZGRpcj0uCi0KLWlmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCi1lbHNlCi0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLWZpCi0KLWNhc2UgJHNyY2RpciBpbgotICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0gICAgYWNfc3JjZGlyPS4KLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotICAgICAgIGFjX3RvcF9zcmNkaXI9LgotICAgIGVsc2UKLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0gICAgZmkgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0gICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0gICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKLWVzYWMKLQotIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCi0jIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgotY2FzZSBgcHdkYCBpbgotLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0qKQotICBjYXNlICIkYWNfZGlyIiBpbgotICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0qKQotICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KLSAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfc3JjZGlyIGluCi0gIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgotICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0gICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLQotICAgIGNkICRhY19kaXIKLSAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZTsgb3RoZXJ3aXNlIGdldCBDeWdudXMgc3R5bGUgY29uZmlndXJlLgotICAgIGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251OyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251ICAtLWhlbHA9cmVjdXJzaXZlCi0gICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlOyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUgIC0taGVscD1yZWN1cnNpdmUKLSAgICBlbGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuYWMgfHwKLQkgICB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmluOyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkYWNfY29uZmlndXJlIC0taGVscAotICAgIGVsc2UKLSAgICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogbm8gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBpcyBpbiAkYWNfZGlyIiA+JjIKLSAgICBmaQotICAgIGNkICRhY19wb3BkaXIKLSAgZG9uZQotZmkKLQotdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAwCi1pZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0gIGNhdCA8PFxfQUNFT0YKLXN0cmFjZSBjb25maWd1cmUgNC41LjEyCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkKLQotQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLWdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLV9BQ0VPRgotICBleGl0IDAKLWZpCi1leGVjIDU+Y29uZmlnLmxvZwotY2F0ID4mNSA8PF9BQ0VPRgotVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKLXJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCi0KLUl0IHdhcyBjcmVhdGVkIGJ5IHN0cmFjZSAkYXNfbWUgNC41LjEyLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotCi0gICQgJDAgJEAKLQotX0FDRU9GCi17Ci1jYXQgPDxfQVNVTkFNRQotIyMgLS0tLS0tLS0tICMjCi0jIyBQbGF0Zm9ybS4gIyMKLSMjIC0tLS0tLS0tLSAjIwotCi1ob3N0bmFtZSA9IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi11bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLXVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0KLS91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25gCi0KLS9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLWhvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS9iaW4vbWFjaGluZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLQotX0FTVU5BTUUKLQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBlY2hvICJQQVRIOiAkYXNfZGlyIgotZG9uZQotCi19ID4mNQotCi1jYXQgPiY1IDw8X0FDRU9GCi0KLQotIyMgLS0tLS0tLS0tLS0gIyMKLSMjIENvcmUgdGVzdHMuICMjCi0jIyAtLS0tLS0tLS0tLSAjIwotCi1fQUNFT0YKLQotCi0jIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgotIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0jIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KLSMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KLSMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgotYWNfY29uZmlndXJlX2FyZ3M9Ci1hY19jb25maWd1cmVfYXJnczA9Ci1hY19jb25maWd1cmVfYXJnczE9Ci1hY19zZXA9Ci1hY19tdXN0X2tlZXBfbmV4dD1mYWxzZQotZm9yIGFjX3Bhc3MgaW4gMSAyCi1kbwotICBmb3IgYWNfYXJnCi0gIGRvCi0gICAgY2FzZSAkYWNfYXJnIGluCi0gICAgLW5vLWNyZWF0ZSB8IC0tbm8tYyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7OwotICAgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0gICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0gICAgICBjb250aW51ZSA7OwotICAgICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxeXCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQotICAgICAgYWNfYXJnPWBlY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotICAgIGVzYWMKLSAgICBjYXNlICRhY19wYXNzIGluCi0gICAgMSkgYWNfY29uZmlndXJlX2FyZ3MwPSIkYWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLSAgICAyKQotICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmlndXJlX2FyZ3MxICckYWNfYXJnJyIKLSAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMgR290IHZhbHVlLCBiYWNrIHRvIG5vcm1hbC4KLSAgICAgIGVsc2UKLQljYXNlICRhY19hcmcgaW4KLQkgICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAotCSAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAotCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVyYiogXAotCSAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSogfCAtLXgpCi0JICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgotCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNvbnRpbnVlIDs7Ci0JICAgIGVzYWMKLQkgICAgOzsKLQkgIC0qICkgYWNfbXVzdF9rZWVwX25leHQ9dHJ1ZSA7OwotCWVzYWMKLSAgICAgIGZpCi0gICAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzJGFjX3NlcCckYWNfYXJnJyIKLSAgICAgICMgR2V0IHJpZCBvZiB0aGUgbGVhZGluZyBzcGFjZS4KLSAgICAgIGFjX3NlcD0iICIKLSAgICAgIDs7Ci0gICAgZXNhYwotICBkb25lCi1kb25lCi0kYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KLSRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEgfHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQotCi0jIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCi0jIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQotIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCi0jIFdBUk5JTkc6IEJlIHN1cmUgbm90IHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRoZXJlLCBhcyBzb21lIHNoZWxscywKLSMgc3VjaCBhcyBvdXIgRFUgNS4wIGZyaWVuZCwgd2lsbCB0aGVuIGBjbG9zZScgdGhlIHRyYXAuCi10cmFwICdleGl0X3N0YXR1cz0kPwotICAjIFNhdmUgaW50byBjb25maWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KLSAgewotICAgIGVjaG8KLQotICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgIGVjaG8KLSAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotewotICAoc2V0KSAyPiYxIHwKLSAgICBjYXNlIGAoYWNfc3BhY2U9JyInIicgJyInIic7IHNldCB8IGdyZXAgYWNfc3BhY2UpIDI+JjFgIGluCi0gICAgKmFjX3NwYWNlPVwgKikKLSAgICAgIHNlZCAtbiBcCi0JInMvJyInIicvJyInIidcXFxcJyInIicnIiciJy9nOwotCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nIiciJ1xcMiciJyInL3AiCi0gICAgICA7OwotICAgICopCi0gICAgICBzZWQgLW4gXAotCSJzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPVxcMi9wIgotICAgICAgOzsKLSAgICBlc2FjOwotfQotICAgIGVjaG8KLQotICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBPdXRwdXQgdmFyaWFibGVzLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgIGVjaG8KLSAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCi0gICAgZG8KLSAgICAgIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotICAgICAgZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLSAgICBkb25lIHwgc29ydAotICAgIGVjaG8KLQotICAgIGlmIHRlc3QgLW4gIiRhY19zdWJzdF9maWxlcyI7IHRoZW4KLSAgICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0gIyMKLSMjIE91dHB1dCBmaWxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgICAgZWNobwotICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKLSAgICAgIGRvCi0JZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCi0JZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLSAgICAgIGRvbmUgfCBzb3J0Ci0gICAgICBlY2hvCi0gICAgZmkKLQotICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgotICAgICAgY2F0IDw8XF9BU0JPWAotIyMgLS0tLS0tLS0tLS0gIyMKLSMjIGNvbmZkZWZzLmguICMjCi0jIyAtLS0tLS0tLS0tLSAjIwotX0FTQk9YCi0gICAgICBlY2hvCi0gICAgICBzZWQgIi9eJC9kIiBjb25mZGVmcy5oIHwgc29ydAotICAgICAgZWNobwotICAgIGZpCi0gICAgdGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotICAgICAgZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0gICAgZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKLSAgfSA+JjUKLSAgcm0gLWYgY29yZSAqLmNvcmUgJiYKLSAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMgJiYKLSAgICBleGl0ICRleGl0X3N0YXR1cwotICAgICAnIDAKLWZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBkbwotICB0cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKLWRvbmUKLWFjX3NpZ25hbD0wCi0KLSMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNlZWQuCi1ybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSMgQUlYIGNwcCBsb3NlcyBvbiBhbiBlbXB0eSBmaWxlLCBzbyBtYWtlIHN1cmUgaXQgY29udGFpbnMgYXQgbGVhc3QgYSBuZXdsaW5lLgotZWNobyA+Y29uZmRlZnMuaAotCi0jIFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCi1fQUNFT0YKLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKLV9BQ0VPRgotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgotX0FDRU9GCi0KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgotX0FDRU9GCi0KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgotX0FDRU9GCi0KLQotIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZpbGUgaWYgaXQgd2FudHMgdG8uCi0jIFByZWZlciBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxlY3RlZCBvbmVzLgotaWYgdGVzdCAteiAiJENPTkZJR19TSVRFIjsgdGhlbgotICBpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KLSAgICBDT05GSUdfU0lURT0iJHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZSAkcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKLSAgZWxzZQotICAgIENPTkZJR19TSVRFPSIkYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUgJGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKLSAgZmkKLWZpCi1mb3IgYWNfc2l0ZV9maWxlIGluICRDT05GSUdfU0lURTsgZG8KLSAgaWYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQotZWNobyAiJGFzX21lOiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNjt9Ci0gICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0gICAgLiAiJGFjX3NpdGVfZmlsZSIKLSAgZmkKLWRvbmUKLQotaWYgdGVzdCAtciAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0gICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFsCi0gICMgZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotICBpZiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSAgICBjYXNlICRjYWNoZV9maWxlIGluCi0gICAgICBbXFwvXSogfCA/OltcXC9dKiApIC4gJGNhY2hlX2ZpbGU7OwotICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAuLyRjYWNoZV9maWxlOzsKLSAgICBlc2FjCi0gIGZpCi1lbHNlCi0gIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0gID4kY2FjaGVfZmlsZQotZmkKLQotIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQotIyB2YWx1ZS4KLWFjX2NhY2hlX2NvcnJ1cHRlZD1mYWxzZQotZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8Ci0JICAgICAgIHNlZCAtbiAncy9eYWNfZW52X1woW2EtekEtWl8wLTldKlwpX3NldD0uKi9cMS9wJ2A7IGRvCi0gIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0Ci0gIGV2YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0gIGV2YWwgYWNfb2xkX3ZhbD0iXCRhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlIgotICBldmFsIGFjX25ld192YWw9IlwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZSIKLSAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgotICAgIHNldCwpCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0gICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OwotICAgICxzZXQpCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KLSAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0gICAgLCk7OwotICAgICopCi0gICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCi0JeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLQl7IGVjaG8gIiRhc19tZTokTElORU5POiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRfdmFsIiA+JjUKLWVjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiYyO30KLQl7IGVjaG8gIiRhc19tZTokTElORU5POiAgIGN1cnJlbnQgdmFsdWU6ICRhY19uZXdfdmFsIiA+JjUKLWVjaG8gIiRhc19tZTogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiYyO30KLQlhY19jYWNoZV9jb3JydXB0ZWQ9OgotICAgICAgZmk7OwotICBlc2FjCi0gICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KLSAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCi0gICAgY2FzZSAkYWNfbmV3X3ZhbCBpbgotICAgICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxeXCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQotICAgICAgYWNfYXJnPSRhY192YXI9YGVjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFsIDs7Ci0gICAgZXNhYwotICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiBpbgotICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCi0gICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIgOzsKLSAgICBlc2FjCi0gIGZpCi1kb25lCi1pZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0gIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjI7fQotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi0KLWFjX2V4dD1jCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotICAgICAgICAgIGFjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgY29uZmlnLmgiCi0KLWFtX19hcGlfdmVyc2lvbj0iMS45IgotYWNfYXV4X2Rpcj0KLWZvciBhY19kaXIgaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi47IGRvCi0gIGlmIHRlc3QgLWYgJGFjX2Rpci9pbnN0YWxsLXNoOyB0aGVuCi0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC1zaCAtYyIKLSAgICBicmVhawotICBlbGlmIHRlc3QgLWYgJGFjX2Rpci9pbnN0YWxsLnNoOyB0aGVuCi0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC5zaCAtYyIKLSAgICBicmVhawotICBlbGlmIHRlc3QgLWYgJGFjX2Rpci9zaHRvb2w7IHRoZW4KLSAgICBhY19hdXhfZGlyPSRhY19kaXIKLSAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKLSAgICBicmVhawotICBmaQotZG9uZQotaWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1hY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiCi1hY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIKLWFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgotCi0jIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0jIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFsbAotIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCi0jIElSSVggL3NiaW4vaW5zdGFsbAotIyBBSVggL2Jpbi9pbnN0YWxsCi0jIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCi0jIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi1jYXNlICRhc19kaXIvIGluCi0gIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0gIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8IFwKLSAgL3Vzci91Y2IvKiApIDs7Ci0gICopCi0gICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLSAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSAgICAjIGJ5IGRlZmF1bHQuCi0gICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwotICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0JaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLQkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0JICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotCSAgICA6Ci0JICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0JICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCi0JICAgIDoKLQkgIGVsc2UKLQkgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotCSAgICBicmVhayAzCi0JICBmaQotCWZpCi0gICAgICBkb25lCi0gICAgZG9uZQotICAgIDs7Ci1lc2FjCi1kb25lCi0KLQotZmkKLSAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgICBJTlNUQUxMPSRhY19jdl9wYXRoX2luc3RhbGwKLSAgZWxzZQotICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIFdlIGRvbid0IGNhY2hlIGEKLSAgICAjIHBhdGggZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHBhdGggaXMgcmVsYXRpdmUuCi0gICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRJTlNUQUxMIiA+JjYKLQotIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLXRlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKLQotdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLQotdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiAkRUNIT19DIiA+JjYKLSMgSnVzdCBpbiBjYXNlCi1zbGVlcCAxCi1lY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKLSMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKLSMgZGlyZWN0b3J5KS4KLWlmICgKLSAgIHNldCBYIGBscyAtTHQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0gICBpZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KLSAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0gICAgICBzZXQgWCBgbHMgLXQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZWAKLSAgIGZpCi0gICBybSAtZiBjb25mdGVzdC5maWxlCi0gICBpZiB0ZXN0ICIkKiIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0KLSAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KLSAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KLSAgICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLWFsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgZmkKLQotICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQotICAgKQotdGhlbgotICAgIyBPay4KLSAgIDoKLWVsc2UKLSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi1DaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci1lY2hvICIke0VDSE9fVH15ZXMiID4mNgotdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCi0gIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMsXiwkcHJvZ3JhbV9wcmVmaXgsOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotIyBVc2UgYSBkb3VibGUgJCBzbyBtYWtlIGlnbm9yZXMgaXQuCi10ZXN0ICIkcHJvZ3JhbV9zdWZmaXgiICE9IE5PTkUgJiYKLSAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyxcJCwkcHJvZ3JhbV9zdWZmaXgsOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotIyBEb3VibGUgYW55IFwgb3IgJC4gIGVjaG8gbWlnaHQgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotIyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KLWNhdCA8PFxfQUNFT0YgPmNvbmZ0ZXN0LnNlZAotcy9bXFwkXS8mJi9nO3MvO3MseCx4LCQvLwotX0FDRU9GCi1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lPWBlY2hvICRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIHwgc2VkIC1mIGNvbmZ0ZXN0LnNlZGAKLXJtIGNvbmZ0ZXN0LnNlZAotCi0jIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi1hbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi0KLXRlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8IE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgotIyBVc2UgZXZhbCB0byBleHBhbmQgJFNIRUxMCi1pZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotZWxzZQotICBhbV9taXNzaW5nX3J1bj0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjI7fQotZmkKLQotaWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgotICAjIFdlIHVzZWQgdG8ga2VlcGluZyB0aGUgYC4nIGFzIGZpcnN0IGFyZ3VtZW50LCBpbiBvcmRlciB0bwotICAjIGFsbG93ICQobWtkaXJfcCkgdG8gYmUgdXNlZCB3aXRob3V0IGFyZ3VtZW50LiAgQXMgaW4KLSAgIyAgICQobWtkaXJfcCkgJChzb21lZGlyKQotICAjIHdoZXJlICQoc29tZWRpcikgaXMgY29uZGl0aW9uYWxseSBkZWZpbmVkLiAgSG93ZXZlciB0aGlzIGlzIHdyb25nCi0gICMgZm9yIHR3byByZWFzb25zOgotICAjICAxLiBpZiB0aGUgcGFja2FnZSBpcyBpbnN0YWxsZWQgYnkgYSB1c2VyIHdobyBjYW5ub3Qgd3JpdGUgYC4nCi0gICMgICAgIG1ha2UgaW5zdGFsbCB3aWxsIGZhaWwsCi0gICMgIDIuIHRoZSBhYm92ZSBjb21tZW50IHNob3VsZCBtb3N0IGNlcnRhaW5seSByZWFkCi0gICMgICAgICQobWtkaXJfcCkgJChERVNURElSKSQoc29tZWRpcikKLSAgIyAgICAgc28gaXQgZG9lcyBub3Qgd29yayB3aGVuICQoc29tZWRpcikgaXMgdW5kZWZpbmVkIGFuZAotICAjICAgICAkKERFU1RESVIpIGlzIG5vdC4KLSAgIyAgVG8gc3VwcG9ydCB0aGUgbGF0dGVyIGNhc2UsIHdlIGhhdmUgdG8gd3JpdGUKLSAgIyAgICAgdGVzdCAteiAiJChzb21lZGlyKSIgfHwgJChta2Rpcl9wKSAkKERFU1RESVIpJChzb21lZGlyKSwKLSAgIyAgc28gdGhlIGAuJyB0cmljayBpcyBwb2ludGxlc3MuCi0gIG1rZGlyX3A9J21rZGlyIC1wIC0tJwotZWxzZQotICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAotICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgIyBkaXJlY3RvcmllcyB0byBjcmVhdGUsIGFuZCB0aGVuIGFib3J0IGJlY2F1c2UgYC4nIGFscmVhZHkKLSAgIyBleGlzdHMuCi0gIGZvciBkIGluIC4vLXAgLi8tLXZlcnNpb247Ci0gIGRvCi0gICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICBkb25lCi0gICMgJChta2luc3RhbGxkaXJzKSBpcyBkZWZpbmVkIGJ5IEF1dG9tYWtlIGlmIG1raW5zdGFsbGRpcnMgZXhpc3RzLgotICBpZiB0ZXN0IC1mICIkYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIjsgdGhlbgotICAgIG1rZGlyX3A9JyQobWtpbnN0YWxsZGlycyknCi0gIGVsc2UKLSAgICBta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1kJwotICBmaQotZmkKLQotZm9yIGFjX3Byb2cgaW4gZ2F3ayBtYXdrIG5hd2sgYXdrCi1kbwotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19BV0s9IiRBV0siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1BV0s9JGFjX2N2X3Byb2dfQVdLCi1pZiB0ZXN0IC1uICIkQVdLIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVdLIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRBV0siID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi0gIHRlc3QgLW4gIiRBV0siICYmIGJyZWFrCi1kb25lCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAkRUNIT19DIiA+JjYKLXNldCBkdW1teSAke01BS0UtbWFrZX07IGFjX21ha2U9YGVjaG8gIiQyIiB8IHNlZCAneSw6Li8rLSxfX19wXywnYAotaWYgZXZhbCAidGVzdCBcIlwke2FjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCtzZXR9XCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLWFsbDoKLQlAZWNobyAnYWNfbWFrZXRlbXA9IiQoTUFLRSkiJwotX0FDRU9GCi0jIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KLWV2YWwgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsIHwgZ3JlcCB0ZW1wPWAKLWlmIHRlc3QgLW4gIiRhY19tYWtldGVtcCI7IHRoZW4KLSAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzCi1lbHNlCi0gIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vCi1maQotcm0gLWYgY29uZnRlc3QubWFrZQotZmkKLWlmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X3Byb2dfbWFrZV8nJHthY19tYWtlfV9zZXRgXCIgPSB5ZXMiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci1lY2hvICIke0VDSE9fVH15ZXMiID4mNgotICBTRVRfTUFLRT0KLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCi1maQotCi1ybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAotaWYgdGVzdCAtZCAudHN0OyB0aGVuCi0gIGFtX19sZWFkaW5nX2RvdD0uCi1lbHNlCi0gIGFtX19sZWFkaW5nX2RvdD1fCi1maQotcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAotCi0jIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKLWlmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCIgJiYKLSAgIHRlc3QgLWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi0jIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKLWlmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0aGVuCi0gIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKLSAgZWxzZQotICAgIENZR1BBVEhfVz1lY2hvCi0gIGZpCi1maQotCi0KLSMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KLSBQQUNLQUdFPSdzdHJhY2UnCi0gVkVSU0lPTj0nNC41LjEyJwotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgUEFDS0FHRSAiJFBBQ0tBR0UiCi1fQUNFT0YKLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFZFUlNJT04gIiRWRVJTSU9OIgotX0FDRU9GCi0KLSMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KLQotQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQotCi0KLUFVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQotCi0KLUFVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0KLQotCi1BVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KLQotCi1NQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KLQotaW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIiRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQotCi0jIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKLSMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKLSMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi1pZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgotICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0gIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1TVFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAotaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQotZWNobyAiJHtFQ0hPX1R9JFNUUklQIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgotICBhY19jdF9TVFJJUD0kU1RSSVAKLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJpcCIKLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0gICAgYnJlYWsgMgotICBmaQotZG9uZQotZG9uZQotCi0gIHRlc3QgLXogIiRhY19jdl9wcm9nX2FjX2N0X1NUUklQIiAmJiBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSI6IgotZmkKLWZpCi1hY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAotaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N0X1NUUklQIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICBTVFJJUD0kYWNfY3RfU1RSSVAKLWVsc2UKLSAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgotZmkKLQotZmkKLUlOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCR7U0hFTEx9IFwkKGluc3RhbGxfc2gpIC1jIC1zIgotCi0jIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgotIyBzb21lIHBsYXRmb3Jtcy4KLSMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLQotQU1UQVI9JHtBTVRBUi0iJHthbV9taXNzaW5nX3J1bn10YXIifQotCi1hbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLQotCi0KLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcy4uLiAkRUNIT19DIiA+JjYKLSAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIG9yIC0tZGlzYWJsZS1tYWludGFpbmVyLW1vZGUgd2FzIGdpdmVuLgotaWYgdGVzdCAiJHtlbmFibGVfbWFpbnRhaW5lcl9tb2RlK3NldH0iID0gc2V0OyB0aGVuCi0gIGVuYWJsZXZhbD0iJGVuYWJsZV9tYWludGFpbmVyX21vZGUiCi0gIFVTRV9NQUlOVEFJTkVSX01PREU9JGVuYWJsZXZhbAotZWxzZQotICBVU0VfTUFJTlRBSU5FUl9NT0RFPW5vCi1maTsKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFVTRV9NQUlOVEFJTkVSX01PREUiID4mNQotZWNobyAiJHtFQ0hPX1R9JFVTRV9NQUlOVEFJTkVSX01PREUiID4mNgotCi0KLWlmIHRlc3QgJFVTRV9NQUlOVEFJTkVSX01PREUgPSB5ZXM7IHRoZW4KLSAgTUFJTlRBSU5FUl9NT0RFX1RSVUU9Ci0gIE1BSU5UQUlORVJfTU9ERV9GQUxTRT0nIycKLWVsc2UKLSAgTUFJTlRBSU5FUl9NT0RFX1RSVUU9JyMnCi0gIE1BSU5UQUlORVJfTU9ERV9GQUxTRT0KLWZpCi0KLSAgTUFJTlQ9JE1BSU5UQUlORVJfTU9ERV9UUlVFCi0KLQotIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgotJGFjX2NvbmZpZ19zdWIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biAkYWNfY29uZmlnX3N1YiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRhY19jb25maWdfc3ViIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLXRlc3QgLXogIiRhY19jdl9idWlsZF9hbGlhcyIgJiYKLSAgYWNfY3ZfYnVpbGRfYWxpYXM9YCRhY19jb25maWdfZ3Vlc3NgCi10ZXN0IC16ICIkYWNfY3ZfYnVpbGRfYWxpYXMiICYmCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWFjX2N2X2J1aWxkPWAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfYnVpbGRfYWxpYXNgIHx8Ci0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9idWlsZCIgPiY2Ci1idWlsZD0kYWNfY3ZfYnVpbGQKLWJ1aWxkX2NwdT1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAotYnVpbGRfdmVuZG9yPWBlY2hvICRhY19jdl9idWlsZCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi1idWlsZF9vcz1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9ob3N0X2FsaWFzPSRob3N0X2FsaWFzCi10ZXN0IC16ICIkYWNfY3ZfaG9zdF9hbGlhcyIgJiYKLSAgYWNfY3ZfaG9zdF9hbGlhcz0kYWNfY3ZfYnVpbGRfYWxpYXMKLWFjX2N2X2hvc3Q9YCRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzYCB8fAotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhcyBmYWlsZWQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaG9zdCIgPiY2Ci1ob3N0PSRhY19jdl9ob3N0Ci1ob3N0X2NwdT1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi1ob3N0X3ZlbmRvcj1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi1ob3N0X29zPWBlY2hvICRhY19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW0iID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW0uLi4gJEVDSE9fQyIgPiY2Ci1jYXNlICIkaG9zdF9vcyIgaW4KLWxpbnV4KikKLQlvcHN5cz1saW51eAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBMSU5VWCAxCi1fQUNFT0YKLQotCTs7Ci1zdW5vczQqKQotCW9wc3lzPXN1bm9zNAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTVU5PUzQgMQotX0FDRU9GCi0KLQk7Owotc29sYXJpczIqIHwgc3lzdls0NV0qIHwgaXJpeFs1Nl0qKQotCW9wc3lzPXN2cjQKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgU1ZSNCAxCi1fQUNFT0YKLQotCWNhc2UgIiRob3N0X29zIiBpbgotCXN5c3Y0LjJ1dyopCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFVOSVhXQVJFIDIKLV9BQ0VPRgotCi0JCTs7Ci0Jc3lzdjUqKQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBVTklYV0FSRSA3Ci1fQUNFT0YKLQotCQk7OwotCWVzYWMKLQk7OwotZnJlZWJzZCopCi0Jb3BzeXM9ZnJlZWJzZAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBGUkVFQlNEIDEKLV9BQ0VPRgotCi0JOzsKLSopCi0JZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogTk8hIiA+JjUKLWVjaG8gIiR7RUNIT19UfU5PISIgPiY2Ci0JeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogb3BlcmF0aW5nIHN5c3RlbSAkaG9zdF9vcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBvcGVyYXRpbmcgc3lzdGVtICRob3N0X29zIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RyYWNlIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JOzsKLWVzYWMKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRvcHN5cyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kb3BzeXMiID4mNgotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4uLiAkRUNIT19DIiA+JjYKLWNhc2UgIiRob3N0X2NwdSIgaW4KLWlbMzQ1Nl04NnxwZW50aXVtKQotCWFyY2g9aTM4NgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBJMzg2IDEKLV9BQ0VPRgotCi0JOzsKLWlhNjQpCi0JYXJjaD1pYTY0Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIElBNjQgMQotX0FDRU9GCi0KLQk7OwotbTY4aykKLQlhcmNoPW02OGsKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgTTY4SyAxCi1fQUNFT0YKLQotCTs7Ci1zcGFyYzY0KikKLQlhcmNoPXNwYXJjNjQKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgU1BBUkM2NCAxCi1fQUNFT0YKLQotCTs7Ci1zcGFyYyopCi0JYXJjaD1zcGFyYwotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTUEFSQyAxCi1fQUNFT0YKLQotCTs7Ci1taXBzKikKLQlhcmNoPW1pcHMKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgTUlQUyAxCi1fQUNFT0YKLQotCTs7Ci1hbHBoYSopCi0JYXJjaD1hbHBoYQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBBTFBIQSAxCi1fQUNFT0YKLQotCTs7Ci1wb3dlcnBjKikKLQlhcmNoPXBvd2VycGMKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgUE9XRVJQQyAxCi1fQUNFT0YKLQotCTs7Ci1hcm0qKQotCWFyY2g9YXJtCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEFSTSAxCi1fQUNFT0YKLQotCTs7Ci1zMzkwKQotCWFyY2g9czM5MAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTMzkwIDEKLV9BQ0VPRgotCi0JOzsKLXMzOTB4KQotCWFyY2g9czM5MHgKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgUzM5MFggMQotX0FDRU9GCi0KLQk7OwotaHBwYSp8cGFyaXNjKikKLQlhcmNoPWhwcGEKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSFBQQSAxCi1fQUNFT0YKLQotCTs7Ci1zaCkKLQlhcmNoPXNoCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNIIDEKLV9BQ0VPRgotCi0JOzsKLXNoNjQpCi0JYXJjaD1zaDY0Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNINjQgMQotX0FDRU9GCi0KLQk7OwoteDg2PzY0KikKLQlhcmNoPXg4Nl82NAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBYODZfNjQgMQotX0FDRU9GCi0KLQk7OwotKikKLQllY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBOTyEiID4mNQotZWNobyAiJHtFQ0hPX1R9Tk8hIiA+JjYKLQl7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBhcmNoaXRlY3R1cmUgJGhvc3RfY3B1IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RyYWNlIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGFyY2hpdGVjdHVyZSAkaG9zdF9jcHUgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2UiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLQk7OwotZXNhYwotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2giID4mNQotZWNobyAiJHtFQ0hPX1R9JGFyY2giID4mNgotCi0KLQotCi0KLQotaWYgdGVzdCB4JG9wc3lzID0geGxpbnV4OyB0aGVuCi0gIExJTlVYX1RSVUU9Ci0gIExJTlVYX0ZBTFNFPScjJwotZWxzZQotICBMSU5VWF9UUlVFPScjJwotICBMSU5VWF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkYXJjaCA9IHhpMzg2OyB0aGVuCi0gIEkzODZfVFJVRT0KLSAgSTM4Nl9GQUxTRT0nIycKLWVsc2UKLSAgSTM4Nl9UUlVFPScjJwotICBJMzg2X0ZBTFNFPQotZmkKLQotCi0KLWlmIHRlc3QgeCRhcmNoID0geHg4Nl82NDsgdGhlbgotICBYODZfNjRfVFJVRT0KLSAgWDg2XzY0X0ZBTFNFPScjJwotZWxzZQotICBYODZfNjRfVFJVRT0nIycKLSAgWDg2XzY0X0ZBTFNFPQotZmkKLQotCi0KLWlmIHRlc3QgeCRvcHN5cyA9IHhzdW5vczQ7IHRoZW4KLSAgU1VOT1M0X1RSVUU9Ci0gIFNVTk9TNF9GQUxTRT0nIycKLWVsc2UKLSAgU1VOT1M0X1RSVUU9JyMnCi0gIFNVTk9TNF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkb3BzeXMgPSB4c3ZyNDsgdGhlbgotICBTVlI0X1RSVUU9Ci0gIFNWUjRfRkFMU0U9JyMnCi1lbHNlCi0gIFNWUjRfVFJVRT0nIycKLSAgU1ZSNF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkb3BzeXMgPSB4ZnJlZWJzZDsgdGhlbgotICBGUkVFQlNEX1RSVUU9Ci0gIEZSRUVCU0RfRkFMU0U9JyMnCi1lbHNlCi0gIEZSRUVCU0RfVFJVRT0nIycKLSAgRlJFRUJTRF9GQUxTRT0KLWZpCi0KLQotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Z2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWZpCi1maQotQ0M9JGFjX2N2X3Byb2dfQ0MKLWlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRDQyIgPiY2Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLWZpCi0KLWZpCi1pZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19DQyI7IHRoZW4KLSAgYWNfY3RfQ0M9JENDCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBnY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJnY2MiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1hY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICBDQz0kYWNfY3RfQ0MKLWVsc2UKLSAgQ0M9IiRhY19jdl9wcm9nX0NDIgotZmkKLQotaWYgdGVzdCAteiAiJENDIjsgdGhlbgotICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgotICBhY19jdF9DQz0kQ0MKLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJjYyIKLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0gICAgYnJlYWsgMgotICBmaQotZG9uZQotZG9uZQotCi1maQotZmkKLWFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCi1pZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi0gIENDPSRhY19jdF9DQwotZWxzZQotICBDQz0iJGFjX2N2X3Byb2dfQ0MiCi1maQotCi1maQotaWYgdGVzdCAteiAiJENDIjsgdGhlbgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBjYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi0gIGFjX3Byb2dfcmVqZWN0ZWQ9bm8KLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0gICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKLSAgICAgICBjb250aW51ZQotICAgICBmaQotICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWlmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSAgIyBXZSBmb3VuZCBhIGJvZ29uIGluIHRoZSBwYXRoLCBzbyBtYWtlIHN1cmUgd2UgbmV2ZXIgdXNlIGl0LgotICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MKLSAgc2hpZnQKLSAgaWYgdGVzdCAkIyAhPSAwOyB0aGVuCi0gICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCi0gICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgotICAgICMgZmlyc3QgaWYgd2Ugc2V0IENDIHRvIGp1c3QgdGhlIGJhc2VuYW1lOyB1c2UgdGhlIGZ1bGwgZmlsZSBuYW1lLgotICAgIHNoaWZ0Ci0gICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0gIGZpCi1maQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICBmb3IgYWNfcHJvZyBpbiBjbAotICBkbwotICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICAgIHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKLSAgZG9uZQotZmkKLWlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSAgYWNfY3RfQ0M9JENDCi0gIGZvciBhY19wcm9nIGluIGNsCi1kbwotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWZpCi1maQotYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLWlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdF9DQyIgPiY2Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLWZpCi0KLSAgdGVzdCAtbiAiJGFjX2N0X0NDIiAmJiBicmVhawotZG9uZQotCi0gIENDPSRhY19jdF9DQwotZmkKLQotZmkKLQotCi10ZXN0IC16ICIkQ0MiICYmIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgQyBjb21waWxlciBmb3VuZCBpbiBcJFBBVEgKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgQyBjb21waWxlciBmb3VuZCBpbiBcJFBBVEgKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLSMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLWVjaG8gIiRhc19tZTokTElORU5POiIgXAotICAgICAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Ci1hY19jb21waWxlcj1gc2V0IFggJGFjX2NvbXBpbGU7IGVjaG8gJDJgCi17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251bGwgPiY1KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9Ci17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfQoteyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLVYgPC9kZXYvbnVsbCA+JjVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZXIgLVYgPC9kZXYvbnVsbCA+JjUpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLWFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi1hY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEuZXhlIGIub3V0IgotIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgotIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgotIyBvZiBleGVleHQuCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICRFQ0hPX0MiID4mNgotYWNfbGlua19kZWZhdWx0PWBlY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua19kZWZhdWx0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmtfZGVmYXVsdCkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotICAjIEZpbmQgdGhlIG91dHB1dCwgc3RhcnRpbmcgZnJvbSB0aGUgbW9zdCBsaWtlbHkuICBUaGlzIHNjaGVtZSBpcwotIyBub3Qgcm9idXN0IHRvIGp1bmsgaW4gYC4nLCBoZW5jZSBnbyB0byB3aWxkY2FyZHMgKGEuKikgb25seSBhcyBhIGxhc3QKLSMgcmVzb3J0LgotCi0jIEJlIGNhcmVmdWwgdG8gaW5pdGlhbGl6ZSB0aGlzIHZhcmlhYmxlLCBzaW5jZSBpdCB1c2VkIHRvIGJlIGNhY2hlZC4KLSMgT3RoZXJ3aXNlIGFuIG9sZCBjYWNoZSB2YWx1ZSBvZiBgbm8nIGxlZCB0byBgRVhFRVhUID0gbm8nIGluIGEgTWFrZWZpbGUuCi1hY19jdl9leGVleHQ9Ci0jIGIub3V0IGlzIGNyZWF0ZWQgYnkgaTk2MCBjb21waWxlcnMuCi1mb3IgYWNfZmlsZSBpbiBhX291dC5leGUgYS5leGUgY29uZnRlc3QuZXhlIGEub3V0IGNvbmZ0ZXN0IGEuKiBjb25mdGVzdC4qIGIub3V0Ci1kbwotICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKLSAgY2FzZSAkYWNfZmlsZSBpbgotICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5vIHwgKi5vYmogKQotCTs7Ci0gICAgY29uZnRlc3QuJGFjX2V4dCApCi0JIyBUaGlzIGlzIHRoZSBzb3VyY2UgZmlsZS4KLQk7OwotICAgIFthYl0ub3V0ICkKLQkjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAotCSMgY2VydGFpbmx5IHJpZ2h0LgotCWJyZWFrOzsKLSAgICAqLiogKQotCWFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotCSMgRklYTUU6IEkgYmVsaWV2ZSB3ZSBleHBvcnQgYWNfY3ZfZXhlZXh0IGZvciBMaWJ0b29sLAotCSMgYnV0IGl0IHdvdWxkIGJlIGNvb2wgdG8gZmluZCBvdXQgaWYgaXQncyB0cnVlLiAgRG9lcyBhbnlib2R5Ci0JIyBtYWludGFpbiBMaWJ0b29sPyAtLWFraW0uCi0JZXhwb3J0IGFjX2N2X2V4ZWV4dAotCWJyZWFrOzsKLSAgICAqICkKLQlicmVhazs7Ci0gIGVzYWMKLWRvbmUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQoteyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCA3Nyk7IGV4aXQgNzc7IH07IH0KLWZpCi0KLWFjX2V4ZWV4dD0kYWNfY3ZfZXhlZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfZmlsZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfZmlsZSIgPiY2Ci0KLSMgQ2hlY2sgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgotIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uICRFQ0hPX0MiID4mNgotIyBGSVhNRTogVGhlc2UgY3Jvc3MgY29tcGlsZXIgaGFja3Mgc2hvdWxkIGJlIHJlbW92ZWQgZm9yIEF1dG9jb25mIDMuMAotIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLWlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgotICBpZiB7IGFjX3RyeT0nLi8kYWNfZmlsZScKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICAgIGNyb3NzX2NvbXBpbGluZz1ubwotICBlbHNlCi0gICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXliZTsgdGhlbgotCWNyb3NzX2NvbXBpbGluZz15ZXMKLSAgICBlbHNlCi0JeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgotSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCi1JZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgZmkKLSAgZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKLQotcm0gLWYgYS5vdXQgYS5leGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGIub3V0Ci1hY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotIyBDaGVjayB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCi0jIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uICRFQ0hPX0MiID4mNgotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kY3Jvc3NfY29tcGlsaW5nIiA+JjYKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICRFQ0hPX0MiID4mNgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0gICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotIyBjYXRjaCBgY29uZnRlc3QuZXhlJy4gIEZvciBpbnN0YW5jZSB3aXRoIEN5Z3dpbiwgYGxzIGNvbmZ0ZXN0JyB3aWxsCi0jIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotIyBgcm0nLgotZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGNvbmZ0ZXN0Lio7IGRvCi0gIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotICBjYXNlICRhY19maWxlIGluCi0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm8gfCAqLm9iaiApIDs7Ci0gICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0JICBleHBvcnQgYWNfY3ZfZXhlZXh0Ci0JICBicmVhazs7Ci0gICAgKiApIGJyZWFrOzsKLSAgZXNhYwotZG9uZQotZWxzZQotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLQotcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZXhlZXh0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9leGVleHQiID4mNgotCi1ybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci1FWEVFWFQ9JGFjX2N2X2V4ZWV4dAotYWNfZXhlZXh0PSRFWEVFWFQKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9vYmpleHQrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qub2JqCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSAgZm9yIGFjX2ZpbGUgaW4gYChscyBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iajsgbHMgY29uZnRlc3QuKikgMj4vZGV2L251bGxgOyBkbwotICBjYXNlICRhY19maWxlIGluCi0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgKSA7OwotICAgICopIGFjX2N2X29iamV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJy4qXC5cKC4qXCknYAotICAgICAgIGJyZWFrOzsKLSAgZXNhYwotZG9uZQotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi17IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi1ybSAtZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9vYmpleHQiID4mNgotT0JKRVhUPSRhY19jdl9vYmpleHQKLWFjX29iamV4dD0kT0JKRVhUCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50Ci1tYWluICgpCi17Ci0jaWZuZGVmIF9fR05VQ19fCi0gICAgICAgY2hva2UgbWUKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY29tcGlsZXJfZ251PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jb21waWxlcl9nbnU9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1hY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjYKLUdDQz1gdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzICYmIGVjaG8geWVzYAotYWNfdGVzdF9DRkxBR1M9JHtDRkxBR1Mrc2V0fQotYWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSItZyIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19nK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotCi1pbnQKLW1haW4gKCkKLXsKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3Byb2dfY2NfZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfcHJvZ19jY19nPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2NfZyIgPiY2Ci1pZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0gIENGTEFHUz0kYWNfc2F2ZV9DRkxBR1MKLWVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0gIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0gICAgQ0ZMQUdTPSItZyAtTzIiCi0gIGVsc2UKLSAgICBDRkxBR1M9Ii1nIgotICBmaQotZWxzZQotICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICAgIENGTEFHUz0iLU8yIgotICBlbHNlCi0gICAgQ0ZMQUdTPQotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGFjX2N2X3Byb2dfY2Nfc3RkYz1ubwotYWNfc2F2ZV9DQz0kQ0MKLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNyYy9jb25mLnNoLiAgKi8KLXN0cnVjdCBidWYgeyBpbnQgeDsgfTsKLUZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7Ci1zdGF0aWMgY2hhciAqZSAocCwgaSkKLSAgICAgY2hhciAqKnA7Ci0gICAgIGludCBpOwotewotICByZXR1cm4gcFtpXTsKLX0KLXN0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAqKnAsIC4uLikKLXsKLSAgY2hhciAqczsKLSAgdmFfbGlzdCB2OwotICB2YV9zdGFydCAodixwKTsKLSAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQpKTsKLSAgdmFfZW5kICh2KTsKLSAgcmV0dXJuIHM7Ci19Ci0KLS8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCi0gICBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAnXHhISCcgaGV4IGNoYXJhY3RlciBjb25zdGFudHMuCi0gICBUaGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVudGx5IHRyZWF0ZWQKLSAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZDEgaXMgYWRkZWQgdG8gZ2V0Ci0gICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCi0gICBhcnJheSBzaXplIGF0IGxlYXN0LiAgSXQncyBuZWNlc3NhcnkgdG8gd3JpdGUgJ1x4MDAnPT0wIHRvIGdldCBzb21ldGhpbmcKLSAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkMS4gICovCi1pbnQgb3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwotCi1pbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKLXN0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9Owotc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307Ci1pbnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCksIGludCwgaW50KTsKLWludCBhcmdjOwotY2hhciAqKmFyZ3Y7Ci1pbnQKLW1haW4gKCkKLXsKLXJldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotIyBEb24ndCB0cnkgZ2NjIC1hbnNpOyB0aGF0IHR1cm5zIG9mZiB1c2VmdWwgZXh0ZW5zaW9ucyBhbmQKLSMgYnJlYWtzIHNvbWUgc3lzdGVtcycgaGVhZGVyIGZpbGVzLgotIyBBSVgJCQktcWxhbmdsdmw9YW5zaQotIyBVbHRyaXggYW5kIE9TRi8xCS1zdGQxCi0jIEhQLVVYIDEwLjIwIGFuZCBsYXRlcgktQWUKLSMgSFAtVVggb2xkZXIgdmVyc2lvbnMJLUFhIC1EX0hQVVhfU09VUkNFCi0jIFNWUjQJCQktWGMgLURfX0VYVEVOU0lPTlNfXwotZm9yIGFjX2FyZyBpbiAiIiAtcWxhbmdsdmw9YW5zaSAtc3RkMSAtQWUgIi1BYSAtRF9IUFVYX1NPVVJDRSIgIi1YYyAtRF9fRVhURU5TSU9OU19fIgotZG8KLSAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0gIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfcHJvZ19jY19zdGRjPSRhY19hcmcKLWJyZWFrCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAotZG9uZQotcm0gLWYgY29uZnRlc3QuJGFjX2V4dCBjb25mdGVzdC4kYWNfb2JqZXh0Ci1DQz0kYWNfc2F2ZV9DQwotCi1maQotCi1jYXNlICJ4JGFjX2N2X3Byb2dfY2Nfc3RkYyIgaW4KLSAgeHx4bm8pCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQotZWNobyAiJHtFQ0hPX1R9bm9uZSBuZWVkZWQiID4mNiA7OwotICAqKQotICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2Nfc3RkYyIgPiY2Ci0gICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19zdGRjIiA7OwotZXNhYwotCi0jIFNvbWUgcGVvcGxlIHVzZSBhIEMrKyBjb21waWxlciB0byBjb21waWxlIEMuICBTaW5jZSB3ZSB1c2UgYGV4aXQnLAotIyBpbiBDKysgd2UgbmVlZCB0byBkZWNsYXJlIGl0LiAgSW4gY2FzZSBzb21lb25lIHVzZXMgdGhlIHNhbWUgY29tcGlsZXIKLSMgZm9yIGJvdGggY29tcGlsaW5nIEMgYW5kIEMrKyB3ZSBuZWVkIHRvIGhhdmUgdGhlIEMrKyBjb21waWxlciBkZWNpZGUKLSMgdGhlIGRlY2xhcmF0aW9uIG9mIGV4aXQsIHNpbmNlIGl0J3MgdGhlIG1vc3QgZGVtYW5kaW5nIGVudmlyb25tZW50LgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0gIGNob2tlIG1lCi0jZW5kaWYKLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBmb3IgYWNfZGVjbGFyYXRpb24gaW4gXAotICAgJycgXAotICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKLSAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCi0gICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCkgdGhyb3cgKCk7JyBcCi0gICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7JyBcCi0gICAndm9pZCBleGl0IChpbnQpOycKLWRvCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2RlY2xhcmF0aW9uCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci1pbnQKLW1haW4gKCkKLXsKLWV4aXQgKDQyKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNvbnRpbnVlCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19kZWNsYXJhdGlvbgotaW50Ci1tYWluICgpCi17Ci1leGl0ICg0Mik7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYnJlYWsKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWRvbmUKLXJtIC1mIGNvbmZ0ZXN0KgotaWYgdGVzdCAtbiAiJGFjX2RlY2xhcmF0aW9uIjsgdGhlbgotICBlY2hvICcjaWZkZWYgX19jcGx1c3BsdXMnID4+Y29uZmRlZnMuaAotICBlY2hvICRhY19kZWNsYXJhdGlvbiAgICAgID4+Y29uZmRlZnMuaAotICBlY2hvICcjZW5kaWYnICAgICAgICAgICAgID4+Y29uZmRlZnMuaAotZmkKLQotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgotCi0gICAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlcGZpbGVzIgotCi0KLWFtX21ha2U9JHtNQUtFLW1ha2V9Ci1jYXQgPiBjb25maW5jIDw8ICdFTkQnCi1hbV9fZG9pdDoKLQlAZWNobyBkb25lCi0uUEhPTlk6IGFtX19kb2l0Ci1FTkQKLSMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAkRUNIT19DIiA+JjYKLWFtX19pbmNsdWRlPSIjIgotYW1fX3F1b3RlPQotX2FtX3Jlc3VsdD1ub25lCi0jIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgotZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgotIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JwotIyBtZXNzYWdlcyB3aGljaCBjYW4gb2NjdXIgaWYgYHcnIGVuZHMgdXAgaW4gTUFLRUZMQUdTLgotIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAotIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKLSMgY2FzZSBpdCBwcmludHMgaXRzIG5ldyBuYW1lIGluc3RlYWQgb2YgYG1ha2UnLgotaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVuCi0gICBhbV9faW5jbHVkZT1pbmNsdWRlCi0gICBhbV9fcXVvdGU9Ci0gICBfYW1fcmVzdWx0PUdOVQotZmkKLSMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNsdWRlLgotaWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgotICAgaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIiA9ICJkb25lIjsgdGhlbgotICAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSAgICAgIGFtX19xdW90ZT0iXCIiCi0gICAgICBfYW1fcmVzdWx0PUJTRAotICAgZmkKLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQotZWNobyAiJHtFQ0hPX1R9JF9hbV9yZXN1bHQiID4mNgotcm0gLWYgY29uZmluYyBjb25mbWYKLQotIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgb3IgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgotaWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbgotICBlbmFibGV2YWw9IiRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIKLQotZmk7Ci1pZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKLSAgQU1ERVBCQUNLU0xBU0g9J1wnCi1maQotCi0KLWlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgotICBBTURFUF9UUlVFPQotICBBTURFUF9GQUxTRT0nIycKLWVsc2UKLSAgQU1ERVBfVFJVRT0nIycKLSAgQU1ERVBfRkFMU0U9Ci1maQotCi0KLQotCi1kZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0gICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotICAjIGluIEQnLgotICBta2RpciBjb25mdGVzdC5kaXIKLSAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSAgY2QgY29uZnRlc3QuZGlyCi0gICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0gICMgZGlyZWN0b3J5LgotICBta2RpciBzdWIKLQotICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0gIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0gICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0gIGZpCi0gIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwotICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0gICAgIwotICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0gICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KLSAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKLSAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0gICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCi0gICAgZG9uZQotICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLQotICAgIGNhc2UgJGRlcG1vZGUgaW4KLSAgICBub3NpZGVlZmZlY3QpCi0gICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKLSAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotCWNvbnRpbnVlCi0gICAgICBlbHNlCi0JYnJlYWsKLSAgICAgIGZpCi0gICAgICA7OwotICAgIG5vbmUpIGJyZWFrIDs7Ci0gICAgZXNhYwotICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0gICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCi0gICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0gICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAotICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0gICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKLSAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0gICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKLSAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCi0gICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6Ci0gICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0gICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKLSAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSAgICAgICAgYnJlYWsKLSAgICAgIGZpCi0gICAgZmkKLSAgZG9uZQotCi0gIGNkIC4uCi0gIHJtIC1yZiBjb25mdGVzdC5kaXIKLWVsc2UKLSAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotZmkKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNgotQ0NERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0KLQotCi1pZgotICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotICAmJiB0ZXN0ICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhlbgotICBhbV9fZmFzdGRlcENDX1RSVUU9Ci0gIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCi1lbHNlCi0gIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKLSAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KLWZpCi0KLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBfR05VX1NPVVJDRSAxCi1fQUNFT0YKLQotCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHByaW1hcnkgaW5jbHVkZSBkaXJlY3RvcnkuLi4gJEVDSE9fQyIgPiY2Ci1pbmNsdWRlZGlyPS91c3IvaW5jbHVkZQotaWYgdGVzdCAtbiAiJEdDQyIKLXRoZW4KLQk+Y29uZnRlc3QuYwotCW5ld19pbmNsdWRlZGlyPWAKLQkJJENDIC12IC1FIGNvbmZ0ZXN0LmMgMj4mMSB8ICRBV0sgJwotCQkJL15FbmQgb2Ygc2VhcmNoIGxpc3QvIHsgcHJpbnQgbGFzdDsgZXhpdCB9Ci0JCQl7IGxhc3QgPSAkMSB9Ci0JCScKLQlgCi0Jcm0gLWYgY29uZnRlc3QuYwotCWlmIHRlc3QgLW4gIiRuZXdfaW5jbHVkZWRpciIgJiYgdGVzdCAtZCAiJG5ld19pbmNsdWRlZGlyIgotCXRoZW4KLQkJaW5jbHVkZWRpcj0kbmV3X2luY2x1ZGVkaXIKLQlmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRpbmNsdWRlZGlyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRpbmNsdWRlZGlyIiA+JjYKLQotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IiAmJiB0ZXN0ICJ4JGFyY2giID0gInhzcGFyYyIKLXRoZW4KLQllY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgdmFsaWQgbWFjaGluZSBpbmNsdWRlIGRpcmVjdG9yeS4uLiAkRUNIT19DIiA+JjYKLQlpZiB0ZXN0IC1kICIkaW5jbHVkZWRpci9zdW40IgotCXRoZW4KLQkJcm0gLWYgbWFjaGluZQotCQlsbiAtcyAkaW5jbHVkZWRpci9zdW40IG1hY2hpbmUKLQkJZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLWVjaG8gIiR7RUNIT19UfXllcyIgPiY2Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgMQotX0FDRU9GCi0KLQllbHNlCi0JCWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLQlmaQotZmkKLQotCi1pZiB0ZXN0IC16ICIkV0FSTkZMQUdTIgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIElmIHdlJ3JlIHVzaW5nIGdjYyB3ZSB3YW50IHdhcm5pbmcgZmxhZ3MuCi0JCVdBUk5GTEFHUz0tV2FsbAotCWZpCi1maQotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIFN1bk9TIDQueCBoZWFkZXIgZmlsZXMgZG9uJ3QgZGVjbGFyZSBpbnQgZnVuY3Rpb25zLgotCQlXQVJORkxBR1M9IiRXQVJORkxBR1MgLVduby1pbXBsaWNpdCIKLQlmaQotZmkKLQotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gJEVDSE9fQyIgPiY2Ci0jIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KLSAgQ1BQPQotZmkKLWlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCi0gICAgZG8KLSAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotZG8KLSAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0gICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgX19TVERDX18KLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0jZWxzZQotIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSNlbmRpZgotCQkgICAgIFN5bnRheCBlcnJvcgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotY29udGludWUKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotCi0gICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycwotICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotY29udGludWUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotICAjIFBhc3NlcyBib3RoIHRlc3RzLgotYWNfcHJlcHJvY19vaz06Ci1icmVhawotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0KLWRvbmUKLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWlmICRhY19wcmVwcm9jX29rOyB0aGVuCi0gIGJyZWFrCi1maQotCi0gICAgZG9uZQotICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLQotZmkKLSAgQ1BQPSRhY19jdl9wcm9nX0NQUAotZWxzZQotICBhY19jdl9wcm9nX0NQUD0kQ1BQCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kQ1BQIiA+JjYKLWFjX3ByZXByb2Nfb2s9ZmFsc2UKLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotZG8KLSAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0gICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgX19TVERDX18KLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0jZWxzZQotIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSNlbmRpZgotCQkgICAgIFN5bnRheCBlcnJvcgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotY29udGludWUKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotCi0gICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycwotICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotY29udGludWUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotICAjIFBhc3NlcyBib3RoIHRlc3RzLgotYWNfcHJlcHJvY19vaz06Ci1icmVhawotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0KLWRvbmUKLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWlmICRhY19wcmVwcm9jX29rOyB0aGVuCi0gIDoKLWVsc2UKLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi1hY19leHQ9YwotYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLWFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLWFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0KLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGVncmVwLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX2VncmVwK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIGVjaG8gYSB8IChncmVwIC1FICcoYXxiKScpID4vZGV2L251bGwgMj4mMQotICAgIHRoZW4gYWNfY3ZfcHJvZ19lZ3JlcD0nZ3JlcCAtRScKLSAgICBlbHNlIGFjX2N2X3Byb2dfZWdyZXA9J2VncmVwJwotICAgIGZpCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfZWdyZXAiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfZWdyZXAiID4mNgotIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCi0KLQotaWYgdGVzdCAkYWNfY3ZfY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX2djY190cmFkaXRpb25hbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICAgIGFjX3BhdHRlcm49IkF1dG9jb25mLioneCciCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNndHR5Lmg+Ci1BdXRvY29uZiBUSU9DR0VUUAotX0FDRU9GCi1pZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKLWVsc2UKLSAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotCi0gIGlmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsID0gbm87IHRoZW4KLSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDx0ZXJtaW8uaD4KLUF1dG9jb25mIFRDR0VUQQotX0FDRU9GCi1pZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwiID4mNgotICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IHllczsgdGhlbgotICAgIENDPSIkQ0MgLXRyYWRpdGlvbmFsIgotICBmaQotZmkKLQotIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCi0jIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgotIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKLSMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotIyBJUklYIC9zYmluL2luc3RhbGwKLSMgQUlYIC9iaW4vaW5zdGFsbAotIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0jIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZwotIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCi0jIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCi0jIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKLSMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi1pZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotY2FzZSAkYXNfZGlyLyBpbgotICAuLyB8IC4vLyB8IC9jQy8qIHwgXAotICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCi0gIC91c3IvdWNiLyogKSA7OwotICAqKQotICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCi0gICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Ci0gICAgIyBieSBkZWZhdWx0LgotICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KLSAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotCWlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCi0JICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KLQkgICAgOgotCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotCSAgICA6Ci0JICBlbHNlCi0JICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKLQkgICAgYnJlYWsgMwotCSAgZmkKLQlmaQotICAgICAgZG9uZQotICAgIGRvbmUKLSAgICA7OwotZXNhYwotZG9uZQotCi0KLWZpCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0gICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0gIGVsc2UKLSAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCi0gICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0gICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgotICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSAgZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2Ci0KLSMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KLSMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi10ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2NfY29uc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotLyogRklYTUU6IEluY2x1ZGUgdGhlIGNvbW1lbnRzIHN1Z2dlc3RlZCBieSBQYXVsLiAqLwotI2lmbmRlZiBfX2NwbHVzcGx1cwotICAvKiBVbHRyaXggbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwotICB0eXBlZGVmIGludCBjaGFyc2V0WzJdOwotICBjb25zdCBjaGFyc2V0IHg7Ci0gIC8qIFN1bk9TIDQuMS4xIGNjIHJlamVjdHMgdGhpcy4gICovCi0gIGNoYXIgY29uc3QgKmNvbnN0ICpjY3A7Ci0gIGNoYXIgKipwOwotICAvKiBORUMgU1ZSNC4wLjIgbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwotICBzdHJ1Y3QgcG9pbnQge2ludCB4LCB5O307Ci0gIHN0YXRpYyBzdHJ1Y3QgcG9pbnQgY29uc3QgemVybyA9IHswLDB9OwotICAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMuCi0gICAgIEl0IGRvZXMgbm90IGxldCB5b3Ugc3VidHJhY3Qgb25lIGNvbnN0IFgqIHBvaW50ZXIgZnJvbSBhbm90aGVyIGluCi0gICAgIGFuIGFybSBvZiBhbiBpZi1leHByZXNzaW9uIHdob3NlIGlmLXBhcnQgaXMgbm90IGEgY29uc3RhbnQKLSAgICAgZXhwcmVzc2lvbiAqLwotICBjb25zdCBjaGFyICpnID0gInN0cmluZyI7Ci0gIGNjcCA9ICZnICsgKGcgPyBnLWcgOiAwKTsKLSAgLyogSFBVWCA3LjAgY2MgcmVqZWN0cyB0aGVzZS4gKi8KLSAgKytjY3A7Ci0gIHAgPSAoY2hhcioqKSBjY3A7Ci0gIGNjcCA9IChjaGFyIGNvbnN0ICpjb25zdCAqKSBwOwotICB7IC8qIFNDTyAzLjJ2NCBjYyByZWplY3RzIHRoaXMuICAqLwotICAgIGNoYXIgKnQ7Ci0gICAgY2hhciBjb25zdCAqcyA9IDAgPyAoY2hhciAqKSAwIDogKGNoYXIgY29uc3QgKikgMDsKLQotICAgICp0KysgPSAwOwotICB9Ci0gIHsgLyogU29tZW9uZSB0aGlua3MgdGhlIFN1biBzdXBwb3NlZGx5LUFOU0kgY29tcGlsZXIgd2lsbCByZWplY3QgdGhpcy4gICovCi0gICAgaW50IHhbXSA9IHsyNSwgMTd9OwotICAgIGNvbnN0IGludCAqZm9vID0gJnhbMF07Ci0gICAgKytmb287Ci0gIH0KLSAgeyAvKiBTdW4gU0MxLjAgQU5TSSBjb21waWxlciByZWplY3RzIHRoaXMgLS0gYnV0IG5vdCB0aGUgYWJvdmUuICovCi0gICAgdHlwZWRlZiBjb25zdCBpbnQgKmlwdHI7Ci0gICAgaXB0ciBwID0gMDsKLSAgICArK3A7Ci0gIH0KLSAgeyAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMgc2F5aW5nCi0gICAgICAgImsuYyIsIGxpbmUgMi4yNzogMTUwNi0wMjUgKFMpIE9wZXJhbmQgbXVzdCBiZSBhIG1vZGlmaWFibGUgbHZhbHVlLiAqLwotICAgIHN0cnVjdCBzIHsgaW50IGo7IGNvbnN0IGludCAqYXBbM107IH07Ci0gICAgc3RydWN0IHMgKmI7IGItPmogPSA1OwotICB9Ci0gIHsgLyogVUxUUklYLTMyIFYzLjEgKFJldiA5KSB2Y2MgcmVqZWN0cyB0aGlzICovCi0gICAgY29uc3QgaW50IGZvbyA9IDEwOwotICB9Ci0jZW5kaWYKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2NfY29uc3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2NfY29uc3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29uc3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfY29uc3QiID4mNgotaWYgdGVzdCAkYWNfY3ZfY19jb25zdCA9IG5vOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIGNvbnN0Ci1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGZsb2F0Lmg+Ci0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLV9BQ0VPRgotaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgOgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQotIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQotI2Vsc2UKLSMgZGVmaW5lIElTTE9XRVIoYykgXAotCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKLQkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0jZW5kaWYKLQotI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLWludAotbWFpbiAoKQotewotICBpbnQgaTsKLSAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLQl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKLSAgICAgIGV4aXQoMik7Ci0gIGV4aXQgKDApOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgOgotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RkYyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTVERDX0hFQURFUlMgMQotX0FDRU9GCi0KLWZpCi0KLQotCi0KLQotCi1hY19oZWFkZXJfZGlyZW50PW5vCi1mb3IgYWNfaGRyIGluIGRpcmVudC5oIHN5cy9uZGlyLmggc3lzL2Rpci5oIG5kaXIuaDsgZG8KLSAgYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfZGlyZW50XyRhY19oZHIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGRyIHRoYXQgZGVmaW5lcyBESVIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hkciB0aGF0IGRlZmluZXMgRElSLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDwkYWNfaGRyPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoRElSICopIDApCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZHIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWFjX2hlYWRlcl9kaXJlbnQ9JGFjX2hkcjsgYnJlYWsKLWZpCi0KLWRvbmUKLSMgVHdvIHZlcnNpb25zIG9mIG9wZW5kaXIgZXQgYWwuIGFyZSBpbiAtbGRpciBhbmQgLWx4IG9uIFNDTyBYZW5peC4KLWlmIHRlc3QgJGFjX2hlYWRlcl9kaXJlbnQgPSBkaXJlbnQuaDsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9zZWFyY2hfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlM9JExJQlMKLWFjX2N2X3NlYXJjaF9vcGVuZGlyPW5vCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIgotI2VuZGlmCi0vKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotY2hhciBvcGVuZGlyICgpOwotaW50Ci1tYWluICgpCi17Ci1vcGVuZGlyICgpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSJub25lIHJlcXVpcmVkIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWlmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgPSBubzsgdGhlbgotICBmb3IgYWNfbGliIGluIGRpcjsgZG8KLSAgICBMSUJTPSItbCRhY19saWIgICRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMiCi0gICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLS8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLSNlbmRpZgotLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLWNoYXIgb3BlbmRpciAoKTsKLWludAotbWFpbiAoKQotewotb3BlbmRpciAoKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9zZWFyY2hfb3BlbmRpcj0iLWwkYWNfbGliIgotYnJlYWsKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0gIGRvbmUKLWZpCi1MSUJTPSRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA+JjYKLWlmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgIT0gbm87IHRoZW4KLSAgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA9ICJub25lIHJlcXVpcmVkIiB8fCBMSUJTPSIkYWNfY3Zfc2VhcmNoX29wZW5kaXIgJExJQlMiCi0KLWZpCi0KLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpci4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3Zfc2VhcmNoX29wZW5kaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTPSRMSUJTCi1hY19jdl9zZWFyY2hfb3BlbmRpcj1ubwotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLS8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLSNlbmRpZgotLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLWNoYXIgb3BlbmRpciAoKTsKLWludAotbWFpbiAoKQotewotb3BlbmRpciAoKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9zZWFyY2hfb3BlbmRpcj0ibm9uZSByZXF1aXJlZCIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci1pZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gbm87IHRoZW4KLSAgZm9yIGFjX2xpYiBpbiB4OyBkbwotICAgIExJQlM9Ii1sJGFjX2xpYiAgJGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUyIKLSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIgotI2VuZGlmCi0vKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotY2hhciBvcGVuZGlyICgpOwotaW50Ci1tYWluICgpCi17Ci1vcGVuZGlyICgpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSItbCRhY19saWIiCi1icmVhawotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgZG9uZQotZmkKLUxJQlM9JGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUwotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zZWFyY2hfb3BlbmRpciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNgotaWYgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiAhPSBubzsgdGhlbgotICB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gIm5vbmUgcmVxdWlyZWQiIHx8IExJQlM9IiRhY19jdl9zZWFyY2hfb3BlbmRpciAkTElCUyIKLQotZmkKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4iID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1hY3JvcyBhcmUgYnJva2VuLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RhdF9icm9rZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLQotI2lmIGRlZmluZWQoU19JU0JMSykgJiYgZGVmaW5lZChTX0lGRElSKQotIyBpZiBTX0lTQkxLIChTX0lGRElSKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU0JMSykgJiYgZGVmaW5lZChTX0lGQ0hSKQotIyBpZiBTX0lTQkxLIChTX0lGQ0hSKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU0xOSykgJiYgZGVmaW5lZChTX0lGUkVHKQotIyBpZiBTX0lTTE5LIChTX0lGUkVHKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU1NPQ0spICYmIGRlZmluZWQoU19JRlJFRykKLSMgaWYgU19JU1NPQ0sgKFNfSUZSRUcpCi1Zb3UgbG9zZS4KLSMgZW5kaWYKLSNlbmRpZgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJZb3UgbG9zZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbj15ZXMKLWVsc2UKLSAgYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RhdF9icm9rZW4iID4mNgotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCi1fQUNFT0YKLQotZmkKLQotIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KLQotCi0KLQotCi0KLQotCi0KLWZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotCQkgIGludHR5cGVzLmggc3RkaW50LmggdW5pc3RkLmgKLWRvCi1hc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0KLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi1fQUNFT0YKLQotZmkKLQotZG9uZQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxrc2l6ZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9ibGtzaXplLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYmxrc2l6ZSkKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLnN0X2Jsa3NpemUpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZT15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemU9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxvY2tzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2Jsb2Nrcy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYmxvY2tzKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9ibG9ja3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYWNsY250IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2FjbGNudC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYWNsY250KQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9hY2xjbnQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9BQ0xDTlQgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZmxhZ3MiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZmxhZ3MuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZmxhZ3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZmxhZ3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZsYWdzIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZnN0eXBlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZS4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZnN0eXBlKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9mc3R5cGUpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZSIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZ2VuIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2dlbi4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZ2VuKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9nZW4pCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbiIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9HRU4gMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfbGV2ZWwpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfbGV2ZWwpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfcmRldiIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9yZGV2Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRlditzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfcmRldikKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9yZGV2PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLnN0X3JkZXYpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXY9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdGF0NjQgaW4gKGFzbXxzeXMpL3N0YXQuaCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdGF0NjQgaW4gKGFzbXxzeXMpL3N0YXQuaC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdGF0NjQrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLWludAotbWFpbiAoKQotewotc3RydWN0IHN0YXQ2NCBzdDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0YXQ2ND15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdGF0NjQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdGF0NjQiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc3RhdDY0IiA+JjYKLWlmIHRlc3QgIiRhY19jdl90eXBlX3N0YXQ2NCIgPSB5ZXMKLXRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVEFUNjQgMQotX0FDRU9GCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaWduYWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaWZkZWYgc2lnbmFsCi0jIHVuZGVmIHNpZ25hbAotI2VuZGlmCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgdm9pZCAoKnNpZ25hbCAoaW50LCB2b2lkICgqKShpbnQpKSkoaW50KTsKLSNlbHNlCi12b2lkICgqc2lnbmFsICgpKSAoKTsKLSNlbmRpZgotCi1pbnQKLW1haW4gKCkKLXsKLWludCBpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfc2lnbmFsPXZvaWQKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zaWduYWw9aW50Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3NpZ25hbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaWduYWwiID4mNgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFJFVFNJR1RZUEUgJGFjX2N2X3R5cGVfc2lnbmFsCi1fQUNFT0YKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3VpZF90K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJ1aWRfdCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFjX2N2X3R5cGVfdWlkX3Q9eWVzCi1lbHNlCi0gIGFjX2N2X3R5cGVfdWlkX3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3VpZF90IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3VpZF90IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfdWlkX3QgPSBubzsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSB1aWRfdCBpbnQKLV9BQ0VPRgotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIGdpZF90IGludAotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbW9kZV90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1vZGVfdC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9tb2RlX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1pZiAoKG1vZGVfdCAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKG1vZGVfdCkpCi0gIHJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfbW9kZV90PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl90eXBlX21vZGVfdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9tb2RlX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfbW9kZV90IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfbW9kZV90ID0geWVzOyB0aGVuCi0gIDoKLWVsc2UKLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBtb2RlX3QgaW50Ci1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgdHlwZSBvZiBhcnJheSBhcmd1bWVudCB0byBnZXRncm91cHMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfZ2V0Z3JvdXBzK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0gIGFjX2N2X3R5cGVfZ2V0Z3JvdXBzPWNyb3NzCi1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotLyogVGhhbmtzIHRvIE1pa2UgUmVuZGVsbCBmb3IgdGhpcyB0ZXN0LiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNkZWZpbmUgTkdJRCAyNTYKLSN1bmRlZiBNQVgKLSNkZWZpbmUgTUFYKHgsIHkpICgoeCkgPiAoeSkgPyAoeCkgOiAoeSkpCi0KLWludAotbWFpbiAoKQotewotICBnaWRfdCBnaWRzZXRbTkdJRF07Ci0gIGludCBpLCBuOwotICB1bmlvbiB7IGdpZF90IGd2YWw7IGxvbmcgbHZhbDsgfSAgdmFsOwotCi0gIHZhbC5sdmFsID0gLTE7Ci0gIGZvciAoaSA9IDA7IGkgPCBOR0lEOyBpKyspCi0gICAgZ2lkc2V0W2ldID0gdmFsLmd2YWw7Ci0gIG4gPSBnZXRncm91cHMgKHNpemVvZiAoZ2lkc2V0KSAvIE1BWCAoc2l6ZW9mIChpbnQpLCBzaXplb2YgKGdpZF90KSkgLSAxLAotCQkgZ2lkc2V0KTsKLSAgLyogRXhpdCBub24temVybyBpZiBnZXRncm91cHMgc2VlbXMgdG8gcmVxdWlyZSBhbiBhcnJheSBvZiBpbnRzLiAgVGhpcwotICAgICBoYXBwZW5zIHdoZW4gZ2lkX3QgaXMgc2hvcnQgYnV0IGdldGdyb3VwcyBtb2RpZmllcyBhbiBhcnJheSBvZiBpbnRzLiAgKi8KLSAgZXhpdCAoKG4gPiAwICYmIGdpZHNldFtuXSAhPSB2YWwuZ3ZhbCkgPyAxIDogMCk7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfdHlwZV9nZXRncm91cHM9aW50Ci1maQotcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1pZiB0ZXN0ICRhY19jdl90eXBlX2dldGdyb3VwcyA9IGNyb3NzOyB0aGVuCi0gICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJnZXRncm91cHMuKmludC4qZ2lkX3QiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotZWxzZQotICBhY19jdl90eXBlX2dldGdyb3Vwcz1pbnQKLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9nZXRncm91cHMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfZ2V0Z3JvdXBzIiA+JjYKLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBHRVRHUk9VUFNfVCAkYWNfY3ZfdHlwZV9nZXRncm91cHMKLV9BQ0VPRgotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN5cy90eXBlcy5oIGRlZmluZXMgbWFrZWRldiIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgc3lzL3R5cGVzLmggZGVmaW5lcyBtYWtlZGV2Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRlditzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLWludAotbWFpbiAoKQotewotcmV0dXJuIG1ha2VkZXYoMCwgMCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXY9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaF9tYWtlZGV2PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXYiID4mNgotCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldiA9IG5vOyB0aGVuCi1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX21rZGV2X2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX21rZGV2X2giID4mNgotZWxzZQotICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvbWtkZXYuaCB1c2FiaWxpdHkiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvbWtkZXYuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0jaW5jbHVkZSA8c3lzL21rZGV2Lmg+Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19oZWFkZXJfY29tcGlsZXI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotCi0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvbWtkZXYuaCBwcmVzZW5jZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9ta2Rldi5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL21rZGV2Lmg+Ci1fQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0gIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotCi0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KLSAgeWVzOm5vOiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQotICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotICAgIDs7Ci0gIG5vOnllczoqICkKLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQotICAgICgKLSAgICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgUmVwb3J0IHRoaXMgdG8gdGhlIHN0cmFjZSBsaXN0cy4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgICkgfAotICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0gICAgOzsKLWVzYWMKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lzL21rZGV2LmgiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL21rZGV2LmguLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9oZWFkZXJfc3lzX21rZGV2X2g9JGFjX2hlYWRlcl9wcmVwcm9jCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oIiA+JjYKLQotZmkKLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBNQUpPUl9JTl9NS0RFViAxCi1fQUNFT0YKLQotZmkKLQotCi0KLSAgaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oID0gbm87IHRoZW4KLSAgICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc3lzbWFjcm9zLmgiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3N5c21hY3Jvcy5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNgotZWxzZQotICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggdXNhYmlsaXR5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19oZWFkZXJfY29tcGlsZXI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotCi0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggcHJlc2VuY2UiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci1fQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0gIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotCi0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KLSAgeWVzOm5vOiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSAgICA7OwotICBubzp5ZXM6KiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSAgICAoCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlcG9ydCB0aGlzIHRvIHRoZSBzdHJhY2UgbGlzdHMuICAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi1fQVNCT1gKLSAgICApIHwKLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotICAgIDs7Ci1lc2FjCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9zeXNtYWNyb3MuaCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvc3lzbWFjcm9zLmguLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaD0kYWNfaGVhZGVyX3ByZXByb2MKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCIgPiY2Ci0KLWZpCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIE1BSk9SX0lOX1NZU01BQ1JPUyAxCi1fQUNFT0YKLQotZmkKLQotCi0gIGZpCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNpZ19hdG9taWNfdCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzaWdfYXRvbWljX3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfc2lnX2F0b21pY190K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNpZ25hbC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc2lnX2F0b21pY190ICopIDApCi0gIHJldHVybiAwOwotaWYgKHNpemVvZiAoc2lnX2F0b21pY190KSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc2lnX2F0b21pY190PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3NpZ19hdG9taWNfdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3QiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3QgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaWdpbmZvX3QiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc2lnaW5mb190Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3NpZ2luZm9fdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzaWduYWwuaD4KLQotaW50Ci1tYWluICgpCi17Ci1pZiAoKHNpZ2luZm9fdCAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHNpZ2luZm9fdCkpCi0gIHJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfc2lnaW5mb190PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl90eXBlX3NpZ2luZm9fdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaWdpbmZvX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc2lnaW5mb190IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfc2lnaW5mb190ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0KLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzb2NrYWRkcl9pbjYgYWNfYWdncjsKLWlmIChhY19hZ2dyLnNpbjZfc2NvcGVfaWQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfaW42IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc2luNl9zY29wZV9pZCkKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQ9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi1fQUNFT0YKLQotCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsb25nIGxvbmcuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfbG9uZ19sb25nK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotaWYgKChsb25nIGxvbmcgKikgMCkKLSAgcmV0dXJuIDA7Ci1pZiAoc2l6ZW9mIChsb25nIGxvbmcpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX2xvbmdfbG9uZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9sb25nX2xvbmc9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfbG9uZ19sb25nIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX2xvbmdfbG9uZyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX2xvbmdfbG9uZyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLV9BQ0VPRgotCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmciID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmcrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KLQotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50IG1haW4gKCkgewotCXVuaW9uIHsKLQkJbG9uZyBsb25nIGxsOwotCQlsb25nIGwgWzJdOwotCX0gdTsKLQl1LmxsID0gMHgxMjM0NTY3ODsKLQlpZiAodS5sWzBdID09IDB4MTIzNDU2NzgpCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz1ubwotZmkKLXJtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID4mNgotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID0geWVzCi10aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbG9uZyBsb25nIG9mZl90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBvZmZfdC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90PW5vCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1tYWluICgpIHsKLQlpZiAoc2l6ZW9mIChvZmZfdCkgPT0gc2l6ZW9mIChsb25nIGxvbmcpICYmCi0JICAgIHNpemVvZiAob2ZmX3QpID4gc2l6ZW9mIChsb25nKSkKLQkgICAgcmV0dXJuIDA7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3QiID4mNgotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19PRkZfVCAxCi1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsb25nIGxvbmcgcmxpbV90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBybGltX3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotICAjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLW1haW4gKCkgewotCWlmIChzaXplb2YgKHJsaW1fdCkgPT0gc2l6ZW9mIChsb25nIGxvbmcpICYmCi0JICAgIHNpemVvZiAocmxpbV90KSA+IHNpemVvZiAobG9uZykpCi0JICAgIHJldHVybiAwOwotCXJldHVybiAxOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0oIGV4aXQgJGFjX3N0YXR1cyApCi1hY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdCIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19STElNX1QgMQotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IG9wdGhkciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgb3B0aGRyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3N0cnVjdF9vcHRoZHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IG9wdGhkciAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBvcHRoZHIpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF9vcHRoZHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X29wdGhkcj1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF9vcHRoZHIiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfT1BUSERSIDEKLV9BQ0VPRgotCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHRfb3B0aGRyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCB0X29wdGhkci4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3RpdXNlci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IHRfb3B0aGRyICopIDApCi0gIHJldHVybiAwOwotaWYgKHNpemVvZiAoc3RydWN0IHRfb3B0aGRyKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3N0cnVjdF90X29wdGhkciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9UX09QVEhEUiAxCi1fQUNFT0YKLQotCi1maQotCi0KLWlmIHRlc3QgeCRvcHN5cyAhPSB4bGludXg7IHRoZW4KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sbnNsIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWxuc2wuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2xpYl9uc2xfbWFpbitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi1MSUJTPSItbG5zbCAgJExJQlMiCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotCi1pbnQKLW1haW4gKCkKLXsKLW1haW4gKCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbGliX25zbF9tYWluPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9saWJfbnNsX21haW49bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0gICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfbnNsX21haW4iID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9uc2xfbWFpbiIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9saWJfbnNsX21haW4gPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX0xJQk5TTCAxCi1fQUNFT0YKLQotICBMSUJTPSItbG5zbCAkTElCUyIKLQotZmkKLQotZmkKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotZm9yIGFjX2Z1bmMgaW4gc2lnYWN0aW9uIHN0cmVycm9yIHN0cnNpZ25hbCBwcmVhZCBzeXNfc2lnbGlzdCBfc3lzX3NpZ2xpc3QgZ2V0ZGVudHMgbWN0bCBwcmN0bCBzZW5kbXNnIGluZXRfbnRvcCBpZl9pbmRleHRvbmFtZQotZG8KLWFzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19mdW5jLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY192YXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS8qIERlZmluZSAkYWNfZnVuYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzICRhY19mdW5jLgotICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCi0jZGVmaW5lICRhY19mdW5jIGlubm9jdW91c18kYWNfZnVuYwotCi0vKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCi0gICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYyAoKTsgYmVsb3cuCi0gICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCi0KLSNpZmRlZiBfX1NURENfXwotIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSNlbHNlCi0jIGluY2x1ZGUgPGFzc2VydC5oPgotI2VuZGlmCi0KLSN1bmRlZiAkYWNfZnVuYwotCi0vKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiCi17Ci0jZW5kaWYKLS8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKLSAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi1jaGFyICRhY19mdW5jICgpOwotLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCi0gICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi0jaWYgZGVmaW5lZCAoX19zdHViXyRhY19mdW5jKSB8fCBkZWZpbmVkIChfX3N0dWJfX18kYWNfZnVuYykKLWNob2tlIG1lCi0jZWxzZQotY2hhciAoKmYpICgpID0gJGFjX2Z1bmM7Ci0jZW5kaWYKLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLWludAotbWFpbiAoKQotewotcmV0dXJuIGYgIT0gJGFjX2Z1bmM7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgZXZhbCAiJGFzX2FjX3Zhcj15ZXMiCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWV2YWwgIiRhc19hY192YXI9bm8iCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2Z1bmMiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi1kb25lCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotZm9yIGFjX2hlYWRlciBpbiBzeXMvcmVnLmggc3lzL2ZpbGlvLmggc3lzL2FjbC5oIHN5cy9hc3luY2guaCBzeXMvZG9vci5oIHN0cm9wdHMuaCBzeXMvY29uZi5oIHN5cy9zdHJlYW0uaCBzeXMvdGloZHIuaCBzeXMvdGl1c2VyLmggc3lzL3N5c2NvbmZpZy5oIGlvY3Rscy5oIHN5cy9pb2N0bC5oIHN5cy9wdHJhY2UuaCB0ZXJtaW8uaCBsaW51eC9wdHJhY2UuaCBhc20vcmVnLmggc3lzL3Vpby5oIHN5cy9haW8uaCAgcG9sbC5oIHN5cy9wb2xsLmggc3lzL3Zmcy5oIGFzbS9zeXNtaXBzLmggbGludXgvdXRzbmFtZS5oIHN5cy9uc2NzeXMuaCBtcXVldWUuaCBzeXMvZXBvbGwuaCBsaWJhaW8uaAotZG8KLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1lbHNlCi0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2hlYWRlcl9jb21waWxlcj1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0KLSMgSXMgdGhlIGhlYWRlciBwcmVzZW50PwotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZwotICBlbHNlCi0gICAgYWNfY3BwX2Vycj0KLSAgZmkKLWVsc2UKLSAgYWNfY3BwX2Vycj15ZXMKLWZpCi1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2Ci0KLSMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgotICB5ZXM6bm86ICkKLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSAgICA7OwotICBubzp5ZXM6KiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSAgICAoCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlcG9ydCB0aGlzIHRvIHRoZSBzdHJhY2UgbGlzdHMuICAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi1fQVNCT1gKLSAgICApIHwKLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotICAgIDs7Ci1lc2FjCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKLQotZmkKLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLV9BQ0VPRgotCi1maQotCi1kb25lCi0KLQotCi0KLQotZm9yIGFjX2hlYWRlciBpbiBsaW51eC9pY21wLmggbGludXgvaW42LmggbGludXgvbmV0bGluay5oIGxpbnV4L2lmX3BhY2tldC5oCi1kbwotYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+Ci0KLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi1fQUNFT0YKLQotZmkKLQotZG9uZQotCi0KLWZvciBhY19oZWFkZXIgaW4gYXNtL3NpZ2NvbnRleHQuaAotZG8KLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2Ci1pZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNpZ25hbC5oPgotCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi0KLWRvbmUKLQotCi0KLWZvciBhY19oZWFkZXIgaW4gbmV0aW5ldC90Y3AuaCBuZXRpbmV0L3VkcC5oCi1kbwotYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi0KLWRvbmUKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE1QIHByb2NmcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBNUCBwcm9jZnMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21wX3Byb2NmcytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotCi0jIEd1ZXNzIG9yIHB1bnQuCi1jYXNlICIkaG9zdF9vcyIgaW4KLXN2cjQuMip8c3ZyNSopCi0JYWNfY3ZfbXBfcHJvY2ZzPXllcwotCTs7Ci0qKQotCWFjX2N2X21wX3Byb2Nmcz1ubwotCTs7Ci1lc2FjCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLQotbWFpbigpCi17Ci0JaW50IHBpZDsKLQljaGFyIHByb2NbMzJdOwotCUZJTEUgKmN0bDsKLQlGSUxFICpzdGF0dXM7Ci0JaW50IGNtZDsKLQlzdHJ1Y3QgcHN0YXR1cyBwc3RhdHVzOwotCi0JaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLQkJcGF1c2UoKTsKLQkJZXhpdCgwKTsKLQl9Ci0Jc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvY3RsIiwgcGlkKTsKLQlpZiAoKGN0bCA9IGZvcGVuKHByb2MsICJ3IikpID09IE5VTEwpCi0JCWdvdG8gZmFpbDsKLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9zdGF0dXMiLCBwaWQpOwotCWlmICgoc3RhdHVzID0gZm9wZW4gKHByb2MsICJyIikpID09IE5VTEwpCi0JCWdvdG8gZmFpbDsKLQljbWQgPSBQQ1NUT1A7Ci0JaWYgKHdyaXRlIChmaWxlbm8gKGN0bCksICZjbWQsIHNpemVvZiBjbWQpIDwgMCkKLQkJZ290byBmYWlsOwotCWlmIChyZWFkIChmaWxlbm8gKHN0YXR1cyksICZwc3RhdHVzLCBzaXplb2YgcHN0YXR1cykgPCAwKQotCQlnb3RvIGZhaWw7Ci0Ja2lsbChwaWQsIFNJR0tJTEwpOwotCWV4aXQoMCk7Ci1mYWlsOgotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDEpOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tcF9wcm9jZnM9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0oIGV4aXQgJGFjX3N0YXR1cyApCi1hY19jdl9tcF9wcm9jZnM9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tcF9wcm9jZnMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21wX3Byb2NmcyIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3ZfbXBfcHJvY2ZzIiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX01QX1BST0NGUyAxCi1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwb2xsYWJsZSBwcm9jZnMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgcG9sbGFibGUgcHJvY2ZzLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wb2xsYWJsZV9wcm9jZnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLQotIyBHdWVzcyBvciBwdW50LgotY2FzZSAiJGhvc3Rfb3MiIGluCi1zb2xhcmlzMip8aXJpeDUqfHN2cjQuMnV3KnxzdnI1KikKLQlhY19jdl9wb2xsYWJsZV9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLQotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotI2luY2x1ZGUgPHN5cy9zdHJvcHRzLmg+Ci0jaW5jbHVkZSA8cG9sbC5oPgotCi0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLSNkZWZpbmUgUElPQ1NUT1AJUENTVE9QCi0jZGVmaW5lIFBPTExXQU5UCVBPTExXUk5PUk0KLSNkZWZpbmUgUFJPQwkJIi9wcm9jLyVkL2N0bCIKLSNkZWZpbmUgUFJPQ19NT0RFCSJ3IgotaW50IElPQ1RMIChpbnQgZmQsIGludCBjbWQsIGludCBhcmcpIHsKLQlyZXR1cm4gd3JpdGUgKGZkLCAmY21kLCBzaXplb2YgY21kKTsKLX0KLSNlbHNlCi0jZGVmaW5lIFBPTExXQU5UCVBPTExQUkkKLSNkZWZpbmUJUFJPQwkJIi9wcm9jLyVkIgotI2RlZmluZSBQUk9DX01PREUJInIrIgotI2RlZmluZSBJT0NUTAkJaW9jdGwKLSNlbmRpZgotCi1tYWluKCkKLXsKLQlpbnQgcGlkOwotCWNoYXIgcHJvY1szMl07Ci0JRklMRSAqcGZwOwotCXN0cnVjdCBwb2xsZmQgcGZkOwotCi0JaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLQkJcGF1c2UoKTsKLQkJZXhpdCgwKTsKLQl9Ci0Jc3ByaW50Zihwcm9jLCBQUk9DLCBwaWQpOwotCWlmICgocGZwID0gZm9wZW4ocHJvYywgUFJPQ19NT0RFKSkgPT0gTlVMTCkKLQkJZ290byBmYWlsOwotCWlmIChJT0NUTChmaWxlbm8ocGZwKSwgUElPQ1NUT1AsIE5VTEwpIDwgMCkKLQkJZ290byBmYWlsOwotCXBmZC5mZCA9IGZpbGVubyhwZnApOwotCXBmZC5ldmVudHMgPSBQT0xMV0FOVDsKLQlpZiAocG9sbCgmcGZkLCAxLCAwKSA8IDApCi0JCWdvdG8gZmFpbDsKLQlpZiAoIShwZmQucmV2ZW50cyAmIFBPTExXQU5UKSkKLQkJZ290byBmYWlsOwotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDApOwotZmFpbDoKLQlraWxsKHBpZCwgU0lHS0lMTCk7Ci0JZXhpdCgxKTsKLX0KLQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi1maQotcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcG9sbGFibGVfcHJvY2ZzIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID4mNgotaWYgdGVzdCAiJGFjX2N2X3BvbGxhYmxlX3Byb2NmcyIgPSB5ZXMKLXRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSEFWRV9QT0xMQUJMRV9QUk9DRlMgMQotX0FDRU9GCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgbXNnaGRyLm1zZ19jb250cm9sIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBtc2doZHIubXNnX2NvbnRyb2wuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLQotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IG1zZ2hkciBhY19hZ2dyOwotaWYgKGFjX2FnZ3IubXNnX2NvbnRyb2wpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgbXNnaGRyIGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3IubXNnX2NvbnRyb2wpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2w9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2wiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2wgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwcl9zeXNjYWxsIGluIHN0cnVjdCBwcnN0YXR1cyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBwcl9zeXNjYWxsIGluIHN0cnVjdCBwcnN0YXR1cy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3Zfc3RydWN0X3ByX3N5c2NhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotaW50Ci1tYWluICgpCi17Ci0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLXBzdGF0dXNfdCBzOwotcy5wcl9sd3AucHJfc3lzY2FsbAotI2Vsc2UKLXByc3RhdHVzX3QgczsKLXMucHJfc3lzY2FsbAotI2VuZGlmCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3Zfc3RydWN0X3ByX3N5c2NhbGw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbCIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3Zfc3RydWN0X3ByX3N5c2NhbGwiID0geWVzCi10aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEhBVkVfUFJfU1lTQ0FMTCAxCi1fQUNFT0YKLQotZmkKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBUX2Nvbm5fcmVzLlFVRVVFX3B0ciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotaWYgKGFjX2FnZ3IuUVVFVUVfcHRyKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX1FVRVVFX3B0cj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLlFVRVVFX3B0cikKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHIgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLQotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKLWlmIChhY19hZ2dyLkFDQ0VQVE9SX2lkKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci0jaW5jbHVkZSA8c3lzL3RpaGRyLmg+Ci0KLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3IuQUNDRVBUT1JfaWQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQ9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfQUNDRVBUT1JfSUQgMQotX0FDRU9GCi0KLQotZmkKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgKikgMCkKLSAgcmV0dXJuIDA7Ci1pZiAoc2l6ZW9mIChzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfX19vbGRfa2VybmVsX3N0YXQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9wdF9hbGxfdXNlcl9yZWdzID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfQUxMX1VTRVJfUkVHUyAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgaWE2NF9mcHJlZyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgaWE2NF9mcHJlZy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgaWE2NF9mcHJlZyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBpYTY0X2ZwcmVnKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9pYTY0X2ZwcmVnID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAxCi1fQUNFT0YKLQotCi1maQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgdXNlcl9kZXNjLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8YXNtL2xkdC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IHVzZXJfZGVzYyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCB1c2VyX2Rlc2MpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2MiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3lzX2Vycmxpc3QgaXMgZGVjbGFyZWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5c19lcnJsaXN0IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci0jaWZuZGVmIHN5c19lcnJsaXN0Ci0gIGNoYXIgKnAgPSAoY2hhciAqKSBzeXNfZXJybGlzdDsKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0IiA+JjYKLWlmIHRlc3QgJGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCi1fQUNFT0YKLQotCi1lbHNlCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDAKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5c19zaWdsaXN0IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLWludAotbWFpbiAoKQotewotI2lmbmRlZiBzeXNfc2lnbGlzdAotICBjaGFyICpwID0gKGNoYXIgKikgc3lzX3NpZ2xpc3Q7Ci0jZW5kaWYKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfaGF2ZV9kZWNsX3N5c19zaWdsaXN0PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3QgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQotX0FDRU9GCi0KLQotZWxzZQotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAwCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgX3N5c19zaWdsaXN0IGlzIGRlY2xhcmVkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBfc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLWludAotbWFpbiAoKQotewotI2lmbmRlZiBfc3lzX3NpZ2xpc3QKLSAgY2hhciAqcCA9IChjaGFyICopIF9zeXNfc2lnbGlzdDsKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oYXZlX2RlY2xfX3N5c19zaWdsaXN0ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAxCi1fQUNFT0YKLQotCi1lbHNlCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAwCi1fQUNFT0YKLQotCi1maQotCi0KLQotIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZXJsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2FzZSAkUEVSTCBpbgotICBbXFwvXSogfCA/OltcXC9dKikKLSAgYWNfY3ZfcGF0aF9QRVJMPSIkUEVSTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0gIDs7Ci0gICopCi0gIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgYWNfY3ZfcGF0aF9QRVJMPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLSAgOzsKLWVzYWMKLWZpCi1QRVJMPSRhY19jdl9wYXRoX1BFUkwKLQotaWYgdGVzdCAtbiAiJFBFUkwiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQRVJMIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRQRVJMIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotCi0gICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIgotCi1jYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKLSMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQotIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCi0jIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotIyBJdCBpcyBub3QgdXNlZnVsIG9uIG90aGVyIHN5c3RlbXMuICBJZiBpdCBjb250YWlucyByZXN1bHRzIHlvdSBkb24ndAotIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0jCi0jIGNvbmZpZy5zdGF0dXMgb25seSBwYXlzIGF0dGVudGlvbiB0byB0aGUgY2FjaGUgZmlsZSBpZiB5b3UgZ2l2ZSBpdAotIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCi0jCi0jIGBhY19jdl9lbnZfZm9vJyB2YXJpYWJsZXMgKHNldCBvciB1bnNldCkgd2lsbCBiZSBvdmVycmlkZGVuIHdoZW4KLSMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKLSMgZm9sbG93aW5nIHZhbHVlcy4KLQotX0FDRU9GCi0KLSMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0jIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgotIyBTbywgZG9uJ3QgcHV0IG5ld2xpbmVzIGluIGNhY2hlIHZhcmlhYmxlcycgdmFsdWVzLgotIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0jIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJzLgotewotICAoc2V0KSAyPiYxIHwKLSAgICBjYXNlIGAoYWNfc3BhY2U9JyAnOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgotICAgICphY19zcGFjZT1cICopCi0gICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCi0gICAgICAjIHN1YnN0aXR1dGlvbiB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwgaW50byBcKS4KLSAgICAgIHNlZCAtbiBcCi0JInMvJy8nXFxcXCcnL2c7Ci0JICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcXDInL3AiCi0gICAgICA7OwotICAgICopCi0gICAgICAjIGBzZXQnIHF1b3RlcyBjb3JyZWN0bHkgYXMgcmVxdWlyZWQgYnkgUE9TSVgsIHNvIGRvIG5vdCBhZGQgcXVvdGVzLgotICAgICAgc2VkIC1uIFwKLQkicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKLSAgICAgIDs7Ci0gICAgZXNhYzsKLX0gfAotICBzZWQgJwotICAgICB0IGNsZWFyCi0gICAgIDogY2xlYXIKLSAgICAgcy9eXChbXj1dKlwpPVwoLipbe31dLipcKSQvdGVzdCAiJHtcMStzZXR9IiA9IHNldCB8fCAmLwotICAgICB0IGVuZAotICAgICAvXmFjX2N2X2Vudi8hcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0gICAgIDogZW5kJyA+PmNvbmZjYWNoZQotaWYgZGlmZiAkY2FjaGVfZmlsZSBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSAgaWYgdGVzdCAtdyAkY2FjaGVfZmlsZTsgdGhlbgotICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmIGVjaG8gInVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgotICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9maWxlCi0gIGVsc2UKLSAgICBlY2hvICJub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIKLSAgZmkKLWZpCi1ybSAtZiBjb25mY2FjaGUKLQotdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCi10ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nCi0KLSMgVlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAotIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKLSMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGluZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5Ci0jIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCi1pZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgotICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKLXMvOipcJChzcmNkaXIpOiovOi87Ci1zLzoqXCR7c3JjZGlyfToqLzovOwotcy86KkBzcmNkaXJAOiovOi87Ci1zL15cKFtePV0qPVsJIF0qXCk6Ki9cMS87Ci1zLzoqJC8vOwotcy9eW149XSo9WwkgXSokLy87Ci19JwotZmkKLQotREVGUz0tREhBVkVfQ09ORklHX0gKLQotYWNfbGlib2Jqcz0KLWFjX2x0bGlib2Jqcz0KLWZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBjb250aW51ZQotICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0gIGFjX2k9YGVjaG8gIiRhY19pIiB8Ci0JIHNlZCAncy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJ2AKLSAgIyAyLiBBZGQgdGhlbS4KLSAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgJGFjX2lcJFUuJGFjX29iamV4dCIKLSAgYWNfbHRsaWJvYmpzPSIkYWNfbHRsaWJvYmpzICRhY19pIickVS5sbycKLWRvbmUKLUxJQk9CSlM9JGFjX2xpYm9ianMKLQotTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKLQotCi1pZiB0ZXN0IC16ICIke01BSU5UQUlORVJfTU9ERV9UUlVFfSIgJiYgdGVzdCAteiAiJHtNQUlOVEFJTkVSX01PREVfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIk1BSU5UQUlORVJfTU9ERVwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiTUFJTlRBSU5FUl9NT0RFXCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke0xJTlVYX0ZBTFNFfSI7IHRoZW4KLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJMSU5VWFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiTElOVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWlmIHRlc3QgLXogIiR7STM4Nl9UUlVFfSIgJiYgdGVzdCAteiAiJHtJMzg2X0ZBTFNFfSI7IHRoZW4KLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJJMzg2XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJJMzg2XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1g4Nl82NF9UUlVFfSIgJiYgdGVzdCAteiAiJHtYODZfNjRfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlg4Nl82NFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiWDg2XzY0XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1NVTk9TNF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTVU5PUzRfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNVTk9TNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1VOT1M0XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1NWUjRfVFJVRX0iICYmIHRlc3QgLXogIiR7U1ZSNF9GQUxTRX0iOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1ZSNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1ZSNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotaWYgdGVzdCAteiAiJHtGUkVFQlNEX1RSVUV9IiAmJiB0ZXN0IC16ICIke0ZSRUVCU0RfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkZSRUVCU0RcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkZSRUVCU0RcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWlmIHRlc3QgLXogIiR7QU1ERVBfVFJVRX0iICYmIHRlc3QgLXogIiR7QU1ERVBfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotaWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLQotOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLWFjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCi17IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1Ci1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotIyEgJFNIRUxMCi0jIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0jIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLQotZGVidWc9ZmFsc2UKLWFjX2NzX3JlY2hlY2s9ZmFsc2UKLWFjX2NzX3NpbGVudD1mYWxzZQotU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLV9BQ0VPRgotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLWV4ZWMgNj4mMQotCi0jIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCi0jIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KLWV4ZWMgNT4+Y29uZmlnLmxvZwotewotICBlY2hvCi0gIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0jIyBSdW5uaW5nICRhc19tZS4gIyMKLV9BU0JPWAotfSA+JjUKLWNhdCA+JjUgPDxfQ1NFT0YKLQotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0gIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0gIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSAgJCAkMCAkQAotCi1fQ1NFT0YKLWVjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1Ci1lY2hvID4mNQotX0FDRU9GCi0KLSMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KLWlmIHRlc3QgLW4gIiRhY19jb25maWdfZmlsZXMiOyB0aGVuCi0gIGVjaG8gImNvbmZpZ19maWxlcz1cIiRhY19jb25maWdfZmlsZXNcIiIgPj4kQ09ORklHX1NUQVRVUwotZmkKLQotaWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19oZWFkZXJzIjsgdGhlbgotICBlY2hvICJjb25maWdfaGVhZGVycz1cIiRhY19jb25maWdfaGVhZGVyc1wiIiA+PiRDT05GSUdfU1RBVFVTCi1maQotCi1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2xpbmtzIjsgdGhlbgotICBlY2hvICJjb25maWdfbGlua3M9XCIkYWNfY29uZmlnX2xpbmtzXCIiID4+JENPTkZJR19TVEFUVVMKLWZpCi0KLWlmIHRlc3QgLW4gIiRhY19jb25maWdfY29tbWFuZHMiOyB0aGVuCi0gIGVjaG8gImNvbmZpZ19jb21tYW5kcz1cIiRhY19jb25maWdfY29tbWFuZHNcIiIgPj4kQ09ORklHX1NUQVRVUwotZmkKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLWFjX2NzX3VzYWdlPSJcCi1cYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKLWN1cnJlbnQgY29uZmlndXJhdGlvbi4KLQotVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KLQotICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwotICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0JCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLQkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLQotQ29uZmlndXJhdGlvbiBmaWxlczoKLSRjb25maWdfZmlsZXMKLQotQ29uZmlndXJhdGlvbiBoZWFkZXJzOgotJGNvbmZpZ19oZWFkZXJzCi0KLUNvbmZpZ3VyYXRpb24gY29tbWFuZHM6Ci0kY29uZmlnX2NvbW1hbmRzCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgotX0FDRU9GCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi1hY19jc192ZXJzaW9uPSJcXAotc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyCi1jb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCi0gIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgotCi1Db3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi1UaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLWdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCi1zcmNkaXI9JHNyY2RpcgotSU5TVEFMTD0iJElOU1RBTEwiCi1fQUNFT0YKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0jIElmIG5vIGZpbGUgYXJlIHNwZWNpZmllZCBieSB0aGUgdXNlciwgdGhlbiB3ZSBuZWVkIHRvIHByb3ZpZGUgZGVmYXVsdAotIyB2YWx1ZS4gIEJ5IHdlIG5lZWQgdG8ga25vdyBpZiBmaWxlcyB3ZXJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KLWFjX25lZWRfZGVmYXVsdHM9Ogotd2hpbGUgdGVzdCAkIyAhPSAwCi1kbwotICBjYXNlICQxIGluCi0gIC0tKj0qKQotICAgIGFjX29wdGlvbj1gZXhwciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCi0gICAgYWNfb3B0YXJnPWBleHByICJ4JDEiIDogJ3hbXj1dKj1cKC4qXCknYAotICAgIGFjX3NoaWZ0PToKLSAgICA7OwotICAtKikKLSAgICBhY19vcHRpb249JDEKLSAgICBhY19vcHRhcmc9JDIKLSAgICBhY19zaGlmdD1zaGlmdAotICAgIDs7Ci0gICopICMgVGhpcyBpcyBub3QgYW4gb3B0aW9uLCBzbyB0aGUgdXNlciBoYXMgcHJvYmFibHkgZ2l2ZW4gZXhwbGljaXQKLSAgICAgIyBhcmd1bWVudHMuCi0gICAgIGFjX29wdGlvbj0kMQotICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLSAgZXNhYwotCi0gIGNhc2UgJGFjX29wdGlvbiBpbgotICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0gICAgYWNfY3NfcmVjaGVjaz06IDs7Ci0gIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCi0gICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKLSAgLS1oZSB8IC0taCkKLSAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKLSAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKLSAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0gICAgZGVidWc9OiA7OwotICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotICAgICRhY19zaGlmdAotICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0gICAgJGFjX3NoaWZ0Ci0gICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCi0gICAgYWNfY3Nfc2lsZW50PTogOzsKLQotICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0gIC0qKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0KLSAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIgOzsKLQotICBlc2FjCi0gIHNoaWZ0Ci1kb25lCi0KLWFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQotCi1pZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0gIGV4ZWMgNj4vZGV2L251bGwKLSAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLWZpCi0KLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKLWlmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgotICBlY2hvICJydW5uaW5nICRTSEVMTCAkMCAiICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24iID4mNgotICBleGVjICRTSEVMTCAkMCAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotZmkKLQotX0FDRU9GCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0jCi0jIElOSVQtQ09NTUFORFMgc2VjdGlvbi4KLSMKLQotQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgotCi1fQUNFT0YKLQotCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCi1kbwotICBjYXNlICIkYWNfY29uZmlnX3RhcmdldCIgaW4KLSAgIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCi0gICJNYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWFrZWZpbGUiIDs7Ci0gICJkZXBmaWxlcyIgKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0gICJjb25maWcuaCIgKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIGNvbmZpZy5oIiA7OwotICAqKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0gIGVzYWMKLWRvbmUKLQotIyBJZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAotIyB0aGVuIHRoZSBlbnZ2YXIgaW50ZXJmYWNlIGlzIHVzZWQuICBTZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCi0jIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0jIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4zLgotaWYgJGFjX25lZWRfZGVmYXVsdHM7IHRoZW4KLSAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVBREVSUz0kY29uZmlnX2hlYWRlcnMKLSAgdGVzdCAiJHtDT05GSUdfQ09NTUFORFMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0NPTU1BTkRTPSRjb25maWdfY29tbWFuZHMKLWZpCi0KLSMgSGF2ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAgTWFrZSBpdCBpbiB0aGUgYnVpbGQgdHJlZQotIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gdG8gcHV0IGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKLSMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSwgYW5kIGhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0kZGVidWcgfHwKLXsKLSAgdHJhcCAnZXhpdF9zdGF0dXM9JD87IHJtIC1yZiAkdG1wICYmIGV4aXQgJGV4aXRfc3RhdHVzJyAwCi0gIHRyYXAgJ3sgKGV4aXQgMSk7IGV4aXQgMTsgfScgMSAyIDEzIDE1Ci19Ci0KLSMgQ3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgotCi17Ci0gIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgLXEgIi4vY29uZnN0YXRYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKLSAgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKLX0gIHx8Ci17Ci0gIHRtcD0uL2NvbmZzdGF0JCQtJFJBTkRPTQotICAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApCi19IHx8Ci17Ci0gICBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci19Ci0KLV9BQ0VPRgotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotCi0jCi0jIENPTkZJR19GSUxFUyBzZWN0aW9uLgotIwotCi0jIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KLSMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotaWYgdGVzdCAtbiAiXCRDT05GSUdfRklMRVMiOyB0aGVuCi0gICMgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluIGNvbmZpZy5zdGF0dXMuCi0gIHNlZCAncy8sQC9AQC87IHMvQCwvQEAvOyBzLyw7dCB0XCQvQDt0IHQvOyAvQDt0IHRcJC9zL1tcXFxcJixdL1xcXFwmL2c7Ci0gICBzL0BALyxALzsgcy9AQC9ALC87IHMvQDt0IHRcJC8sO3QgdC8nID5cJHRtcC9zdWJzLnNlZCA8PFxcQ0VPRgotcyxAU0hFTExALCRTSEVMTCw7dCB0Ci1zLEBQQVRIX1NFUEFSQVRPUkAsJFBBVEhfU0VQQVJBVE9SLDt0IHQKLXMsQFBBQ0tBR0VfTkFNRUAsJFBBQ0tBR0VfTkFNRSw7dCB0Ci1zLEBQQUNLQUdFX1RBUk5BTUVALCRQQUNLQUdFX1RBUk5BTUUsO3QgdAotcyxAUEFDS0FHRV9WRVJTSU9OQCwkUEFDS0FHRV9WRVJTSU9OLDt0IHQKLXMsQFBBQ0tBR0VfU1RSSU5HQCwkUEFDS0FHRV9TVFJJTkcsO3QgdAotcyxAUEFDS0FHRV9CVUdSRVBPUlRALCRQQUNLQUdFX0JVR1JFUE9SVCw7dCB0Ci1zLEBleGVjX3ByZWZpeEAsJGV4ZWNfcHJlZml4LDt0IHQKLXMsQHByZWZpeEAsJHByZWZpeCw7dCB0Ci1zLEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCwkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSw7dCB0Ci1zLEBiaW5kaXJALCRiaW5kaXIsO3QgdAotcyxAc2JpbmRpckAsJHNiaW5kaXIsO3QgdAotcyxAbGliZXhlY2RpckAsJGxpYmV4ZWNkaXIsO3QgdAotcyxAZGF0YWRpckAsJGRhdGFkaXIsO3QgdAotcyxAc3lzY29uZmRpckAsJHN5c2NvbmZkaXIsO3QgdAotcyxAc2hhcmVkc3RhdGVkaXJALCRzaGFyZWRzdGF0ZWRpciw7dCB0Ci1zLEBsb2NhbHN0YXRlZGlyQCwkbG9jYWxzdGF0ZWRpciw7dCB0Ci1zLEBsaWJkaXJALCRsaWJkaXIsO3QgdAotcyxAaW5jbHVkZWRpckAsJGluY2x1ZGVkaXIsO3QgdAotcyxAb2xkaW5jbHVkZWRpckAsJG9sZGluY2x1ZGVkaXIsO3QgdAotcyxAaW5mb2RpckAsJGluZm9kaXIsO3QgdAotcyxAbWFuZGlyQCwkbWFuZGlyLDt0IHQKLXMsQGJ1aWxkX2FsaWFzQCwkYnVpbGRfYWxpYXMsO3QgdAotcyxAaG9zdF9hbGlhc0AsJGhvc3RfYWxpYXMsO3QgdAotcyxAdGFyZ2V0X2FsaWFzQCwkdGFyZ2V0X2FsaWFzLDt0IHQKLXMsQERFRlNALCRERUZTLDt0IHQKLXMsQEVDSE9fQ0AsJEVDSE9fQyw7dCB0Ci1zLEBFQ0hPX05ALCRFQ0hPX04sO3QgdAotcyxARUNIT19UQCwkRUNIT19ULDt0IHQKLXMsQExJQlNALCRMSUJTLDt0IHQKLXMsQElOU1RBTExfUFJPR1JBTUAsJElOU1RBTExfUFJPR1JBTSw7dCB0Ci1zLEBJTlNUQUxMX1NDUklQVEAsJElOU1RBTExfU0NSSVBULDt0IHQKLXMsQElOU1RBTExfREFUQUAsJElOU1RBTExfREFUQSw7dCB0Ci1zLEBDWUdQQVRIX1dALCRDWUdQQVRIX1csO3QgdAotcyxAUEFDS0FHRUAsJFBBQ0tBR0UsO3QgdAotcyxAVkVSU0lPTkAsJFZFUlNJT04sO3QgdAotcyxAQUNMT0NBTEAsJEFDTE9DQUwsO3QgdAotcyxAQVVUT0NPTkZALCRBVVRPQ09ORiw7dCB0Ci1zLEBBVVRPTUFLRUAsJEFVVE9NQUtFLDt0IHQKLXMsQEFVVE9IRUFERVJALCRBVVRPSEVBREVSLDt0IHQKLXMsQE1BS0VJTkZPQCwkTUFLRUlORk8sO3QgdAotcyxAaW5zdGFsbF9zaEAsJGluc3RhbGxfc2gsO3QgdAotcyxAU1RSSVBALCRTVFJJUCw7dCB0Ci1zLEBhY19jdF9TVFJJUEAsJGFjX2N0X1NUUklQLDt0IHQKLXMsQElOU1RBTExfU1RSSVBfUFJPR1JBTUAsJElOU1RBTExfU1RSSVBfUFJPR1JBTSw7dCB0Ci1zLEBta2Rpcl9wQCwkbWtkaXJfcCw7dCB0Ci1zLEBBV0tALCRBV0ssO3QgdAotcyxAU0VUX01BS0VALCRTRVRfTUFLRSw7dCB0Ci1zLEBhbV9fbGVhZGluZ19kb3RALCRhbV9fbGVhZGluZ19kb3QsO3QgdAotcyxAQU1UQVJALCRBTVRBUiw7dCB0Ci1zLEBhbV9fdGFyQCwkYW1fX3Rhciw7dCB0Ci1zLEBhbV9fdW50YXJALCRhbV9fdW50YXIsO3QgdAotcyxATUFJTlRBSU5FUl9NT0RFX1RSVUVALCRNQUlOVEFJTkVSX01PREVfVFJVRSw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfRkFMU0VALCRNQUlOVEFJTkVSX01PREVfRkFMU0UsO3QgdAotcyxATUFJTlRALCRNQUlOVCw7dCB0Ci1zLEBidWlsZEAsJGJ1aWxkLDt0IHQKLXMsQGJ1aWxkX2NwdUAsJGJ1aWxkX2NwdSw7dCB0Ci1zLEBidWlsZF92ZW5kb3JALCRidWlsZF92ZW5kb3IsO3QgdAotcyxAYnVpbGRfb3NALCRidWlsZF9vcyw7dCB0Ci1zLEBob3N0QCwkaG9zdCw7dCB0Ci1zLEBob3N0X2NwdUAsJGhvc3RfY3B1LDt0IHQKLXMsQGhvc3RfdmVuZG9yQCwkaG9zdF92ZW5kb3IsO3QgdAotcyxAaG9zdF9vc0AsJGhvc3Rfb3MsO3QgdAotcyxAb3BzeXNALCRvcHN5cyw7dCB0Ci1zLEBhcmNoQCwkYXJjaCw7dCB0Ci1zLEBMSU5VWF9UUlVFQCwkTElOVVhfVFJVRSw7dCB0Ci1zLEBMSU5VWF9GQUxTRUAsJExJTlVYX0ZBTFNFLDt0IHQKLXMsQEkzODZfVFJVRUAsJEkzODZfVFJVRSw7dCB0Ci1zLEBJMzg2X0ZBTFNFQCwkSTM4Nl9GQUxTRSw7dCB0Ci1zLEBYODZfNjRfVFJVRUAsJFg4Nl82NF9UUlVFLDt0IHQKLXMsQFg4Nl82NF9GQUxTRUAsJFg4Nl82NF9GQUxTRSw7dCB0Ci1zLEBTVU5PUzRfVFJVRUAsJFNVTk9TNF9UUlVFLDt0IHQKLXMsQFNVTk9TNF9GQUxTRUAsJFNVTk9TNF9GQUxTRSw7dCB0Ci1zLEBTVlI0X1RSVUVALCRTVlI0X1RSVUUsO3QgdAotcyxAU1ZSNF9GQUxTRUAsJFNWUjRfRkFMU0UsO3QgdAotcyxARlJFRUJTRF9UUlVFQCwkRlJFRUJTRF9UUlVFLDt0IHQKLXMsQEZSRUVCU0RfRkFMU0VALCRGUkVFQlNEX0ZBTFNFLDt0IHQKLXMsQENDQCwkQ0MsO3QgdAotcyxAQ0ZMQUdTQCwkQ0ZMQUdTLDt0IHQKLXMsQExERkxBR1NALCRMREZMQUdTLDt0IHQKLXMsQENQUEZMQUdTQCwkQ1BQRkxBR1MsO3QgdAotcyxAYWNfY3RfQ0NALCRhY19jdF9DQyw7dCB0Ci1zLEBFWEVFWFRALCRFWEVFWFQsO3QgdAotcyxAT0JKRVhUQCwkT0JKRVhULDt0IHQKLXMsQERFUERJUkAsJERFUERJUiw7dCB0Ci1zLEBhbV9faW5jbHVkZUAsJGFtX19pbmNsdWRlLDt0IHQKLXMsQGFtX19xdW90ZUAsJGFtX19xdW90ZSw7dCB0Ci1zLEBBTURFUF9UUlVFQCwkQU1ERVBfVFJVRSw7dCB0Ci1zLEBBTURFUF9GQUxTRUAsJEFNREVQX0ZBTFNFLDt0IHQKLXMsQEFNREVQQkFDS1NMQVNIQCwkQU1ERVBCQUNLU0xBU0gsO3QgdAotcyxAQ0NERVBNT0RFQCwkQ0NERVBNT0RFLDt0IHQKLXMsQGFtX19mYXN0ZGVwQ0NfVFJVRUAsJGFtX19mYXN0ZGVwQ0NfVFJVRSw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwkYW1fX2Zhc3RkZXBDQ19GQUxTRSw7dCB0Ci1zLEBXQVJORkxBR1NALCRXQVJORkxBR1MsO3QgdAotcyxAQ1BQQCwkQ1BQLDt0IHQKLXMsQEVHUkVQQCwkRUdSRVAsO3QgdAotcyxAUEVSTEAsJFBFUkwsO3QgdAotcyxATElCT0JKU0AsJExJQk9CSlMsO3QgdAotcyxATFRMSUJPQkpTQCwkTFRMSUJPQkpTLDt0IHQKLUNFT0YKLQotX0FDRU9GCi0KLSAgY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0gICMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCi0gICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotICBhY19tYXhfc2VkX2xpbmVzPTQ4Ci0gIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgotICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfbW9yZV9saW5lcz06Ci0gIGFjX3NlZF9jbWRzPQotICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KLSAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotICAgIGVsc2UKLSAgICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKLSAgICBmaQotICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgotICAgICAgYWNfbW9yZV9saW5lcz1mYWxzZQotICAgIGVsc2UKLSAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bwotICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHByb2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQotICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgotICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgotICAgICAgKGVjaG8gJzp0Ci0gIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCi0gICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0JYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLSAgICAgIGVsc2UKLQlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgotICAgICAgZmkKLSAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCi0gICAgICBhY19iZWc9JGFjX2VuZAotICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKLSAgICBmaQotICBkb25lCi0gIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSAgICBhY19zZWRfY21kcz1jYXQKLSAgZmkKLWZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLQotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLWZvciBhY19maWxlIGluIDogJENPTkZJR19GSUxFUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KLSAgY2FzZSAkYWNfZmlsZSBpbgotICAtIHwgKjotIHwgKjotOiogKSAjIGlucHV0IGZyb20gc3RkaW4KLQljYXQgPiR0bXAvc3RkaW4KLQlhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAotCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7Ci0gICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKiApICAgYWNfZmlsZV9pbj0kYWNfZmlsZS5pbiA7OwotICBlc2FjCi0KLSAgIyBDb21wdXRlIEBzcmNkaXJALCBAdG9wX3NyY2RpckAsIGFuZCBASU5TVEFMTEAgZm9yIHN1YmRpcmVjdG9yaWVzLgotICBhY19kaXI9YChkaXJuYW1lICIkYWNfZmlsZSIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFjX2ZpbGUiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICB7IGlmICRhc19ta2Rpcl9wOyB0aGVuCi0gICAgbWtkaXIgLXAgIiRhY19kaXIiCi0gIGVsc2UKLSAgICBhc19kaXI9IiRhY19kaXIiCi0gICAgYXNfZGlycz0KLSAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBkbwotICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKLSAgICAgIGFzX2Rpcj1gKGRpcm5hbWUgIiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFzX2RpciIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgZG9uZQotICAgIHRlc3QgISAtbiAiJGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCi0gIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0KLSAgYWNfYnVpbGRkaXI9LgotCi1pZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCi0gIGFjX2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKLSAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KLSAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAotZWxzZQotICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9Ci1maQotCi1jYXNlICRzcmNkaXIgaW4KLSAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotICAgIGFjX3NyY2Rpcj0uCi0gICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KLSAgICAgICBhY190b3Bfc3JjZGlyPS4KLSAgICBlbHNlCi0gICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAotICAgIGZpIDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgcGF0aC4KLSAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotICAqKSAjIFJlbGF0aXZlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Ci1lc2FjCi0KLSMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQotIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KLWNhc2UgYHB3ZGAgaW4KLS4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotKikKLSAgY2FzZSAiJGFjX2RpciIgaW4KLSAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotKikKLSAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCi0gIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSopCi0gIGNhc2UgJGFjX3NyY2RpciBpbgotICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0gICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSopCi0gIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKLSAgZXNhYzs7Ci1lc2FjCi0KLQotICBjYXNlICRJTlNUQUxMIGluCi0gIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKLSAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkZGlyJElOU1RBTEwgOzsKLSAgZXNhYwotCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQotICAgIHJtIC1mICIkYWNfZmlsZSIKLSAgZmkKLSAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKLSAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgotICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLwotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KLSAgICBjb25maWd1cmVfaW5wdXQ9Ci0gIGVsc2UKLSAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgIgotICBmaQotICBjb25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNfZmlsZV9pbiB8Ci0JCQkJICAgICBzZWQgJ3MsLiovLCwnYCBieSBjb25maWd1cmUuIgotCi0gICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCi0gICMgc3JjIHRyZWUuCi0gIGFjX2ZpbGVfaW5wdXRzPWBJRlM9OgotICAgIGZvciBmIGluICRhY19maWxlX2luOyBkbwotICAgICAgY2FzZSAkZiBpbgotICAgICAgLSkgZWNobyAkdG1wL3N0ZGluIDs7Ci0gICAgICBbXFwvJF0qKQotCSAjIEFic29sdXRlIChjYW4ndCBiZSBET1Mtc3R5bGUsIGFzIElGUz06KQotCSB0ZXN0IC1mICIkZiIgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLQkgZWNobyAiJGYiOzsKLSAgICAgICopICMgUmVsYXRpdmUKLQkgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCi0JICAgIyBCdWlsZCB0cmVlCi0JICAgZWNobyAiJGYiCi0JIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KLQkgICAjIFNvdXJjZSB0cmVlCi0JICAgZWNobyAiJHNyY2Rpci8kZiIKLQkgZWxzZQotCSAgICMgL2Rldi9udWxsIHRyZWUKLQkgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSBmaTs7Ci0gICAgICBlc2FjCi0gICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci1fQUNFT0YKLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0gIHNlZCAiJGFjX3Zwc3ViCi0kZXh0cmFzdWIKLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi06dAotL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYgotcyxAY29uZmlndXJlX2lucHV0QCwkY29uZmlndXJlX2lucHV0LDt0IHQKLXMsQHNyY2RpckAsJGFjX3NyY2Rpciw7dCB0Ci1zLEBhYnNfc3JjZGlyQCwkYWNfYWJzX3NyY2Rpciw7dCB0Ci1zLEB0b3Bfc3JjZGlyQCwkYWNfdG9wX3NyY2Rpciw7dCB0Ci1zLEBhYnNfdG9wX3NyY2RpckAsJGFjX2Fic190b3Bfc3JjZGlyLDt0IHQKLXMsQGJ1aWxkZGlyQCwkYWNfYnVpbGRkaXIsO3QgdAotcyxAYWJzX2J1aWxkZGlyQCwkYWNfYWJzX2J1aWxkZGlyLDt0IHQKLXMsQHRvcF9idWlsZGRpckAsJGFjX3RvcF9idWlsZGRpciw7dCB0Ci1zLEBhYnNfdG9wX2J1aWxkZGlyQCwkYWNfYWJzX3RvcF9idWlsZGRpciw7dCB0Ci1zLEBJTlNUQUxMQCwkYWNfSU5TVEFMTCw7dCB0Ci0iICRhY19maWxlX2lucHV0cyB8IChldmFsICIkYWNfc2VkX2NtZHMiKSA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9zdGRpbgotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0gICAgbXYgJHRtcC9vdXQgJGFjX2ZpbGUKLSAgZWxzZQotICAgIGNhdCAkdG1wL291dAotICAgIHJtIC1mICR0bXAvb3V0Ci0gIGZpCi0KLWRvbmUKLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLSMKLSMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgotIwotCi0jIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQotIyBOQU1FIGlzIHRoZSBjcHAgbWFjcm8gYmVpbmcgZGVmaW5lZCBhbmQgVkFMVUUgaXMgdGhlIHZhbHVlIGl0IGlzIGJlaW5nIGdpdmVuLgotIwotIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgotYWNfZEE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qZGVmaW5lWwkgXVsJIF0qXCknCi1hY19kQj0nWwkgXS4qJCxcMSNcMicKLWFjX2RDPScgJwotYWNfZEQ9Jyw7dCcKLSMgYWNfdSB0dXJucyAiI3VuZGVmIE5BTUUiIHdpdGhvdXQgdHJhaWxpbmcgYmxhbmtzIGludG8gIiNkZWZpbmUgTkFNRSBWQUxVRSIuCi1hY191QT0ncyxeXChbCSBdKlwpI1woWwkgXSpcKXVuZGVmXChbCSBdWwkgXSpcKScKLWFjX3VCPSckLFwxI1wyZGVmaW5lXDMnCi1hY191Qz0nICcKLWFjX3VEPScsO3QnCi0KLWZvciBhY19maWxlIGluIDogJENPTkZJR19IRUFERVJTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSAjIERvIHF1b3RlICRmLCB0byBwcmV2ZW50IERPUyBwYXRocyBmcm9tIGJlaW5nIElGUydkLgotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgIyBSZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlcy4KLSAgc2VkICdzL1sJIF0qJC8vJyAkYWNfZmlsZV9pbnB1dHMgPiR0bXAvaW4KLQotX0FDRU9GCi0KLSMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byB0d28gc2VkIHNjcmlwdHMsIGBjb25mdGVzdC5kZWZpbmVzJyBhbmQKLSMgYGNvbmZ0ZXN0LnVuZGVmcycsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwotIyBjb25maWcuaC5pbiB0byBwcm9kdWNlIGNvbmZpZy5oLiAgVGhlIGZpcnN0IGhhbmRsZXMgYCNkZWZpbmUnCi0jIHRlbXBsYXRlcywgYW5kIHRoZSBzZWNvbmQgYCN1bmRlZicgdGVtcGxhdGVzLgotIyBBbmQgZmlyc3Q6IFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbgotIyBjb25maWcuc3RhdHVzLiAgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGluIGFuIHVucXVvdGVkIGhlcmUgZG9jdW1lbnQKLSMgaW4gY29uZmlnLnN0YXR1cy4KLXJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMgY29uZnRlc3QudW5kZWZzCi0jIFVzaW5nIGEgaGVyZSBkb2N1bWVudCBpbnN0ZWFkIG9mIGEgc3RyaW5nIHJlZHVjZXMgdGhlIHF1b3RpbmcgbmlnaHRtYXJlLgotIyBQdXR0aW5nIGNvbW1lbnRzIGluIHNlZCBzY3JpcHRzIGlzIG5vdCBwb3J0YWJsZS4KLSMKLSMgYGVuZCcgaXMgdXNlZCB0byBhdm9pZCB0aGF0IHRoZSBzZWNvbmQgbWFpbiBzZWQgY29tbWFuZCAobWVhbnQgZm9yCi0jIDAtYXJ5IENQUCBtYWNyb3MpIGFwcGxpZXMgdG8gbi1hcnkgbWFjcm8gZGVmaW5pdGlvbnMuCi0jIFNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiBmb3IgYGNsZWFyJy4KLWNhdCA+Y29uZmRlZjJzZWQuc2VkIDw8XF9BQ0VPRgotcy9bXFwmLF0vXFwmL2cKLXMsW1xcJGBdLFxcJixnCi10IGNsZWFyCi06IGNsZWFyCi1zLF5bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKlwoW14JIChdW14JIChdKlwpXCgoW14pXSopXClbCSBdKlwoLipcKSQsJHthY19kQX1cMSR7YWNfZEJ9XDFcMiR7YWNfZEN9XDMke2FjX2REfSxncAotdCBlbmQKLXMsXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qXChbXgkgXVteCSBdKlwpWwkgXSpcKC4qXCkkLCR7YWNfZEF9XDEke2FjX2RCfVwxJHthY19kQ31cMiR7YWNfZER9LGdwCi06IGVuZAotX0FDRU9GCi0jIElmIHNvbWUgbWFjcm9zIHdlcmUgY2FsbGVkIHNldmVyYWwgdGltZXMgdGhlcmUgbWlnaHQgYmUgc2V2ZXJhbCB0aW1lcwotIyB0aGUgc2FtZSAjZGVmaW5lcywgd2hpY2ggaXMgdXNlbGVzcy4gIE5ldmVydGhlbGVzcywgd2UgbWF5IG5vdCB3YW50IHRvCi0jIHNvcnQgdGhlbSwgc2luY2Ugd2Ugd2FudCB0aGUgKmxhc3QqIEFDLURFRklORSB0byBiZSBob25vcmVkLgotdW5pcSBjb25mZGVmcy5oIHwgc2VkIC1uIC1mIGNvbmZkZWYyc2VkLnNlZCA+Y29uZnRlc3QuZGVmaW5lcwotc2VkICdzL2FjX2QvYWNfdS9nJyBjb25mdGVzdC5kZWZpbmVzID5jb25mdGVzdC51bmRlZnMKLXJtIC1mIGNvbmZkZWYyc2VkLnNlZAotCi0jIFRoaXMgc2VkIGNvbW1hbmQgcmVwbGFjZXMgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwgZm9yCi0jIGV4YW1wbGUsIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCi0jIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KLWNhdCA+PmNvbmZ0ZXN0LnVuZGVmcyA8PFxfQUNFT0YKLXMsXlsJIF0qI1sJIF0qdW5kZWZbCSBdWwkgXSpbYS16QS1aX11bYS16QS1aXzAtOV0qLC8qICYgKi8sCi1fQUNFT0YKLQotIyBCcmVhayB1cCBjb25mdGVzdC5kZWZpbmVzIGJlY2F1c2Ugc29tZSBzaGVsbHMgaGF2ZSBhIGxpbWl0IG9uIHRoZSBzaXplCi0jIG9mIGhlcmUgZG9jdW1lbnRzLCBhbmQgb2xkIHNlZHMgaGF2ZSBzbWFsbCBsaW1pdHMgdG9vICgxMDAgY21kcykuCi1lY2hvICcgICMgSGFuZGxlIGFsbCB0aGUgI2RlZmluZSB0ZW1wbGF0ZXMgb25seSBpZiBuZWNlc3NhcnkuJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgIGlmIGdyZXAgIl5bCSBdKiNbCSBdKmRlZmluZSIgJHRtcC9pbiA+L2Rldi9udWxsOyB0aGVuJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgICMgSWYgdGhlcmUgYXJlIG5vIGRlZmluZXMsIHdlIG1heSBoYXZlIGFuIGVtcHR5IGlmL2ZpJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgIDonID4+JENPTkZJR19TVEFUVVMKLXJtIC1mIGNvbmZ0ZXN0LnRhaWwKLXdoaWxlIGdyZXAgLiBjb25mdGVzdC5kZWZpbmVzID4vZGV2L251bGwKLWRvCi0gICMgV3JpdGUgYSBsaW1pdGVkLXNpemUgaGVyZSBkb2N1bWVudCB0byAkdG1wL2RlZmluZXMuc2VkLgotICBlY2hvICcgIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YnID4+JENPTkZJR19TVEFUVVMKLSAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhlIG5vbiBgI2RlZmluZScgbGluZXMuCi0gIGVjaG8gJy9eWwkgXSojWwkgXSpkZWZpbmUvIWInID4+JENPTkZJR19TVEFUVVMKLSAgIyBXb3JrIGFyb3VuZCB0aGUgZm9yZ2V0LXRvLXJlc2V0LXRoZS1mbGFnIGJ1Zy4KLSAgZWNobyAndCBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnOiBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgc2VkICR7YWNfbWF4X2hlcmVfbGluZXN9cSBjb25mdGVzdC5kZWZpbmVzID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnQ0VPRgotICBzZWQgLWYgJHRtcC9kZWZpbmVzLnNlZCAkdG1wL2luID4kdG1wL291dAotICBybSAtZiAkdG1wL2luCi0gIG12ICR0bXAvb3V0ICR0bXAvaW4KLScgPj4kQ09ORklHX1NUQVRVUwotICBzZWQgMSwke2FjX21heF9oZXJlX2xpbmVzfWQgY29uZnRlc3QuZGVmaW5lcyA+Y29uZnRlc3QudGFpbAotICBybSAtZiBjb25mdGVzdC5kZWZpbmVzCi0gIG12IGNvbmZ0ZXN0LnRhaWwgY29uZnRlc3QuZGVmaW5lcwotZG9uZQotcm0gLWYgY29uZnRlc3QuZGVmaW5lcwotZWNobyAnICBmaSAjIGdyZXAnID4+JENPTkZJR19TVEFUVVMKLWVjaG8gPj4kQ09ORklHX1NUQVRVUwotCi0jIEJyZWFrIHVwIGNvbmZ0ZXN0LnVuZGVmcyBiZWNhdXNlIHNvbWUgc2hlbGxzIGhhdmUgYSBsaW1pdCBvbiB0aGUgc2l6ZQotIyBvZiBoZXJlIGRvY3VtZW50cywgYW5kIG9sZCBzZWRzIGhhdmUgc21hbGwgbGltaXRzIHRvbyAoMTAwIGNtZHMpLgotZWNobyAnICAjIEhhbmRsZSBhbGwgdGhlICN1bmRlZiB0ZW1wbGF0ZXMnID4+JENPTkZJR19TVEFUVVMKLXJtIC1mIGNvbmZ0ZXN0LnRhaWwKLXdoaWxlIGdyZXAgLiBjb25mdGVzdC51bmRlZnMgPi9kZXYvbnVsbAotZG8KLSAgIyBXcml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvdW5kZWZzLnNlZC4KLSAgZWNobyAnICBjYXQgPiR0bXAvdW5kZWZzLnNlZCA8PENFT0YnID4+JENPTkZJR19TVEFUVVMKLSAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhlIG5vbiBgI3VuZGVmJwotICBlY2hvICcvXlsJIF0qI1sJIF0qdW5kZWYvIWInID4+JENPTkZJR19TVEFUVVMKLSAgIyBXb3JrIGFyb3VuZCB0aGUgZm9yZ2V0LXRvLXJlc2V0LXRoZS1mbGFnIGJ1Zy4KLSAgZWNobyAndCBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnOiBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgc2VkICR7YWNfbWF4X2hlcmVfbGluZXN9cSBjb25mdGVzdC51bmRlZnMgPj4kQ09ORklHX1NUQVRVUwotICBlY2hvICdDRU9GCi0gIHNlZCAtZiAkdG1wL3VuZGVmcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9pbgotICBtdiAkdG1wL291dCAkdG1wL2luCi0nID4+JENPTkZJR19TVEFUVVMKLSAgc2VkIDEsJHthY19tYXhfaGVyZV9saW5lc31kIGNvbmZ0ZXN0LnVuZGVmcyA+Y29uZnRlc3QudGFpbAotICBybSAtZiBjb25mdGVzdC51bmRlZnMKLSAgbXYgY29uZnRlc3QudGFpbCBjb25mdGVzdC51bmRlZnMKLWRvbmUKLXJtIC1mIGNvbmZ0ZXN0LnVuZGVmcwotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKLSAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgotICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLwotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KLSAgICBlY2hvICIvKiBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCi0gIGVsc2UKLSAgICBlY2hvICIvKiAkYWNfZmlsZS4gIEdlbmVyYXRlZCBieSBjb25maWd1cmUuICAqLyIgPiR0bXAvY29uZmlnLmgKLSAgZmkKLSAgY2F0ICR0bXAvaW4gPj4kdG1wL2NvbmZpZy5oCi0gIHJtIC1mICR0bXAvaW4KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIGlmIGRpZmYgJGFjX2ZpbGUgJHRtcC9jb25maWcuaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci1lY2hvICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY2O30KLSAgICBlbHNlCi0gICAgICBhY19kaXI9YChkaXJuYW1lICIkYWNfZmlsZSIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFjX2ZpbGUiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gICAgICBybSAtZiAkYWNfZmlsZQotICAgICAgbXYgJHRtcC9jb25maWcuaCAkYWNfZmlsZQotICAgIGZpCi0gIGVsc2UKLSAgICBjYXQgJHRtcC9jb25maWcuaAotICAgIHJtIC1mICR0bXAvY29uZmlnLmgKLSAgZmkKLSMgQ29tcHV0ZSAkYWNfZmlsZSdzIGluZGV4IGluICRjb25maWdfaGVhZGVycy4KLV9hbV9zdGFtcF9jb3VudD0xCi1mb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KLSAgY2FzZSAkX2FtX2hlYWRlciBpbgotICAgICRhY19maWxlIHwgJGFjX2ZpbGU6KiApCi0gICAgICBicmVhayA7OwotICAgICogKQotICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotICBlc2FjCi1kb25lCi1lY2hvICJ0aW1lc3RhbXAgZm9yICRhY19maWxlIiA+YChkaXJuYW1lICRhY19maWxlKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCRhY19maWxlIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgkYWNfZmlsZSA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCRhY19maWxlIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCRhY19maWxlIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotZG9uZQotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLQotIwotIyBDT05GSUdfQ09NTUFORFMgc2VjdGlvbi4KLSMKLWZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5EUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gIGFjX2Rlc3Q9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgCi0gIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZGVzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19kZXN0IiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gIGFjX2J1aWxkZGlyPS4KLQotaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0gICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLWVsc2UKLSAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQotZmkKLQotY2FzZSAkc3JjZGlyIGluCi0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSAgICBhY19zcmNkaXI9LgotICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCi0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0gICAgZWxzZQotICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKLSAgICBmaSA7OwotICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4Ci0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotZXNhYwotCi0jIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKLSMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCi1jYXNlIGBwd2RgIGluCi0uKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSopCi0gIGNhc2UgIiRhY19kaXIiIGluCi0gIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0gICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSopCi0gIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgotICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY19zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY190b3Bfc3JjZGlyIGluCi0gIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotCi0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKLWVjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQotICBjYXNlICRhY19kZXN0IGluCi0gICAgZGVwZmlsZXMgKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gKGRpcm5hbWUgIiRtZiIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRtZiIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCi0gIGVsc2UKLSAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0gICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCi0gIGRvbmUKLWRvbmUKLSA7OwotICBlc2FjCi1kb25lCi1fQUNFT0YKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLXsgKGV4aXQgMCk7IGV4aXQgMDsgfQotX0FDRU9GCi1jaG1vZCAreCAkQ09ORklHX1NUQVRVUwotYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLQotCi0jIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCi0jIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KLSMgVW5mb3J0dW5hdGVseSwgb24gRE9TIHRoaXMgZmFpbHMsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCi0jIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKLSMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCi0jIGVmZmVjdGl2ZWx5IGNsb3NpbmcgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kCi0jIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKLSMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCi1pZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KLSAgYWNfY3Nfc3VjY2Vzcz06Ci0gIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KLSAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLSAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKLSAgZXhlYyA1Pi9kZXYvbnVsbAotICAkU0hFTEwgJENPTkZJR19TVEFUVVMgJGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNzPWZhbHNlCi0gIGV4ZWMgNT4+Y29uZmlnLmxvZwotICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAotICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLSAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci1maQotCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiODRmNzUuLjAwMDAwMDAKLS0tIGEvY29uZmlndXJlLmFjCisrKyAvZGV2L251bGwKQEAgLTEsMjI1ICswLDAgQEAKLWRubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIGNyZWF0ZSBjb25maWd1cmUuICBVc2UgYXV0b3JlY29uZi4KLUFDX1BSRVJFUSgyLjU3KQotQUNfSU5JVChbc3RyYWNlXSxbNC41LjEyXSkKLUFDX0NPTkZJR19TUkNESVIoW3N0cmFjZS5jXSkKLUFNX0NPTkZJR19IRUFERVIoW2NvbmZpZy5oXSkKLUFNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ24gY2hlY2stbmV3cyBkaXN0LWJ6aXAyXSkKLUFNX01BSU5UQUlORVJfTU9ERQotQUNfQ0FOT05JQ0FMX0hPU1QKLQotQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1dKQotY2FzZSAiJGhvc3Rfb3MiIGluCi1saW51eCopCi0Jb3BzeXM9bGludXgKLQlBQ19ERUZJTkUoW0xJTlVYXSwgMSwgW0RlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uXSkKLQk7Owotc3Vub3M0KikKLQlvcHN5cz1zdW5vczQKLQlBQ19ERUZJTkUoW1NVTk9TNF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS5dKQotCTs7Ci1zb2xhcmlzMiogfCBzeXN2W1s0NV1dKiB8IGlyaXhbWzU2XV0qKQotCW9wc3lzPXN2cjQKLQlBQ19ERUZJTkUoW1NWUjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZwotc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlIFNvbGFyaXMgMi54IG9yIElyaXggNS54Ll0pCi0JY2FzZSAiJGhvc3Rfb3MiIGluCi0Jc3lzdjQuMnV3KikKLQkJQUNfREVGSU5FKFVOSVhXQVJFLCAyLCBbRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLl0pCi0JCTs7Ci0Jc3lzdjUqKQotCQlBQ19ERUZJTkUoVU5JWFdBUkUsIDcsIFtEZWZpbmUgZm9yIFVuaXhXYXJlIHN5c3RlbXMuXSkKLQkJOzsKLQllc2FjCi0JOzsKLWZyZWVic2QqKQotCW9wc3lzPWZyZWVic2QKLQlBQ19ERUZJTkUoW0ZSRUVCU0RdLCAxLCBbRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLl0pCi0JOzsKLSopCi0JQUNfTVNHX1JFU1VMVChbTk8hXSkKLQlBQ19NU0dfRVJST1IoW29wZXJhdGluZyBzeXN0ZW0gJGhvc3Rfb3MgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2VdKQotCTs7Ci1lc2FjCi1BQ19NU0dfUkVTVUxUKCRvcHN5cykKLQotQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZV0pCi1jYXNlICIkaG9zdF9jcHUiIGluCi1pW1szNDU2XV04NnxwZW50aXVtKQotCWFyY2g9aTM4NgotCUFDX0RFRklORShbSTM4Nl0sIDEsIFtEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1pYTY0KQotCWFyY2g9aWE2NAotCUFDX0RFRklORShbSUE2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1tNjhrKQotCWFyY2g9bTY4awotCUFDX0RFRklORShbTTY4S10sIDEsIFtEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1zcGFyYzY0KikKLQlhcmNoPXNwYXJjNjQKLQlBQ19ERUZJTkUoW1NQQVJDNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU1BBUkM2NCBhcmNoaXRlY3R1cmUuXSkKLQk7Owotc3BhcmMqKQotCWFyY2g9c3BhcmMKLQlBQ19ERUZJTkUoW1NQQVJDXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1taXBzKikKLQlhcmNoPW1pcHMKLQlBQ19ERUZJTkUoW01JUFNdLCAxLCBbRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuXSkKLQk7OwotYWxwaGEqKQotCWFyY2g9YWxwaGEKLQlBQ19ERUZJTkUoW0FMUEhBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFscGhhIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1wb3dlcnBjKikKLQlhcmNoPXBvd2VycGMKLQlBQ19ERUZJTkUoW1BPV0VSUENdLCAxLCBbRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuXSkKLQk7OwotYXJtKikKLQlhcmNoPWFybQotCUFDX0RFRklORShbQVJNXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuXSkKLQk7OwotczM5MCkKLQlhcmNoPXMzOTAKLQlBQ19ERUZJTkUoW1MzOTBdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuXSkKLQk7OwotczM5MHgpCi0JYXJjaD1zMzkweAotCUFDX0RFRklORShbUzM5MFhdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLl0pCi0JOzsKLWhwcGEqfHBhcmlzYyopCi0JYXJjaD1ocHBhCi0JQUNfREVGSU5FKFtIUFBBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLl0pCi0JOzsKLXNoKQotCWFyY2g9c2gKLQlBQ19ERUZJTkUoW1NIXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1zaDY0KQotCWFyY2g9c2g2NAotCUFDX0RFRklORShbU0g2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci14ODY/NjQqKQotCWFyY2g9eDg2XzY0Ci0JQUNfREVGSU5FKFtYODZfNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgQU1EIHg4Ni02NCBhcmNoaXRlY3R1cmUuXSkKLQk7OwotKikKLQlBQ19NU0dfUkVTVUxUKFtOTyFdKQotCUFDX01TR19FUlJPUihbYXJjaGl0ZWN0dXJlICRob3N0X2NwdSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZV0pCi0JOzsKLWVzYWMKLUFDX01TR19SRVNVTFQoJGFyY2gpCi0KLUFDX1NVQlNUKG9wc3lzKQotQUNfU1VCU1QoYXJjaCkKLQotQU1fQ09ORElUSU9OQUwoW0xJTlVYXSwgW3Rlc3QgeCRvcHN5cyA9IHhsaW51eF0pCi1BTV9DT05ESVRJT05BTChbSTM4Nl0sIFt0ZXN0IHgkYXJjaCA9IHhpMzg2XSkKLUFNX0NPTkRJVElPTkFMKFtYODZfNjRdLCBbdGVzdCB4JGFyY2ggPSB4eDg2XzY0XSkKLUFNX0NPTkRJVElPTkFMKFtTVU5PUzRdLCBbdGVzdCB4JG9wc3lzID0geHN1bm9zNF0pCi1BTV9DT05ESVRJT05BTChbU1ZSNF0sIFt0ZXN0IHgkb3BzeXMgPSB4c3ZyNF0pCi1BTV9DT05ESVRJT05BTChbRlJFRUJTRF0sIFt0ZXN0IHgkb3BzeXMgPSB4ZnJlZWJzZF0pCi0KLUFDX1BST0dfQ0MKLUFDX0dOVV9TT1VSQ0UKLQotQUNfSU5DTFVERURJUgotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IiAmJiB0ZXN0ICJ4JGFyY2giID0gInhzcGFyYyIKLXRoZW4KLQlBQ19NU0dfQ0hFQ0tJTkcoZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkpCi0JaWYgdGVzdCAtZCAiJGluY2x1ZGVkaXIvc3VuNCIKLQl0aGVuCi0JCXJtIC1mIG1hY2hpbmUKLQkJbG4gLXMgJGluY2x1ZGVkaXIvc3VuNCBtYWNoaW5lCi0JCUFDX01TR19SRVNVTFQoeWVzKQotCQlBQ19ERUZJTkUoU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSwgMSwgWwotRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uCi1vZiBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLgotT25seSB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNAotaW4gdGhlIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS5dKQotCWVsc2UKLQkJQUNfTVNHX1JFU1VMVChubykKLQlmaQotZmkKLQotQUNfV0FSTkZMQUdTCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIFN1bk9TIDQueCBoZWFkZXIgZmlsZXMgZG9uJ3QgZGVjbGFyZSBpbnQgZnVuY3Rpb25zLgotCQlXQVJORkxBR1M9IiRXQVJORkxBR1MgLVduby1pbXBsaWNpdCIKLQlmaQotZmkKLQotQUNfUFJPR19DUFAKLUFDX1BST0dfR0NDX1RSQURJVElPTkFMCi1BQ19QUk9HX0lOU1RBTEwKLUFDX0NfQ09OU1QKLUFDX0hFQURFUl9TVERDCi1BQ19IRUFERVJfRElSRU5UCi1BQ19IRUFERVJfU1RBVAotQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IHN0YXQuc3RfYmxrc2l6ZSwKLQkJICBzdHJ1Y3Qgc3RhdC5zdF9ibG9ja3MsCi0JCSAgc3RydWN0IHN0YXQuc3RfYWNsY250LAotCQkgIHN0cnVjdCBzdGF0LnN0X2ZsYWdzLAotCQkgIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZSwKLQkJICBzdHJ1Y3Qgc3RhdC5zdF9nZW4sCi0JCSAgc3RydWN0IHN0YXQuc3RfbGV2ZWwsCi0JCSAgc3RydWN0IHN0YXQuc3RfcmRldl0pCi1BQ19TVEFUNjQKLQotQUNfVFlQRV9TSUdOQUwKLUFDX1RZUEVfVUlEX1QKLUFDX1RZUEVfTU9ERV9UCi1BQ19UWVBFX0dFVEdST1VQUwotQUNfSEVBREVSX01BSk9SCi1BQ19DSEVDS19UWVBFUyhbc2lnX2F0b21pY190LCBzaWdpbmZvX3RdLCwsIFsjaW5jbHVkZSA8c2lnbmFsLmg+XSkKLUFDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZF0sLCwKLVsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPG5ldGluZXQvaW4uaD5dKQotQUNfQ0hFQ0tfVFlQRVMoW2xvbmcgbG9uZ10pCi1BQ19MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORwotQUNfT0ZGX1RfSVNfTE9OR19MT05HCi1BQ19STElNX1RfSVNfTE9OR19MT05HCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IG9wdGhkcl0sLCwgWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XSkKLUFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3QgdF9vcHRoZHJdLCwsIFsjaW5jbHVkZSA8c3lzL3RpdXNlci5oPl0pCi0KLWlmIHRlc3QgeCRvcHN5cyAhPSB4bGludXg7IHRoZW4KLUFDX0NIRUNLX0xJQihuc2wsIG1haW4pCi1maQotCi1BQ19DSEVDS19GVU5DUyhzaWdhY3Rpb24gc3RyZXJyb3Igc3Ryc2lnbmFsIHByZWFkIHN5c19zaWdsaXN0IF9zeXNfc2lnbGlzdCBnZXRkZW50cyBtY3RsIHByY3RsIHNlbmRtc2cgaW5ldF9udG9wIGlmX2luZGV4dG9uYW1lKQotQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL3JlZy5oIHN5cy9maWxpby5oIHN5cy9hY2wuaCBzeXMvYXN5bmNoLmggc3lzL2Rvb3IuaCBzdHJvcHRzLmggc3lzL2NvbmYuaCBzeXMvc3RyZWFtLmggc3lzL3RpaGRyLmggc3lzL3RpdXNlci5oIHN5cy9zeXNjb25maWcuaCBpb2N0bHMuaCBzeXMvaW9jdGwuaCBzeXMvcHRyYWNlLmggdGVybWlvLmggbGludXgvcHRyYWNlLmggYXNtL3JlZy5oIHN5cy91aW8uaCBzeXMvYWlvLmggIHBvbGwuaCBzeXMvcG9sbC5oIHN5cy92ZnMuaCBhc20vc3lzbWlwcy5oIGxpbnV4L3V0c25hbWUuaCBzeXMvbnNjc3lzLmggbXF1ZXVlLmggc3lzL2Vwb2xsLmggbGliYWlvLmhdLCBbXSwgW10pCi1BQ19DSEVDS19IRUFERVJTKFtsaW51eC9pY21wLmggbGludXgvaW42LmggbGludXgvbmV0bGluay5oIGxpbnV4L2lmX3BhY2tldC5oXSwKLSAgICAgICAgICAgICAgICAgW10sIFtdLCBbI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPl0pCi1BQ19DSEVDS19IRUFERVJTKFthc20vc2lnY29udGV4dC5oXSwgW10sIFtdLCBbI2luY2x1ZGUgPHNpZ25hbC5oPl0pCi1BQ19DSEVDS19IRUFERVJTKFtuZXRpbmV0L3RjcC5oIG5ldGluZXQvdWRwLmhdLCwsIFsjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPl0pCi0KLUFDX01QX1BST0NGUwotQUNfUE9MTEFCTEVfUFJPQ0ZTCi0KLUFDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBtc2doZHIubXNnX2NvbnRyb2xdLCwsIFsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPl0pCi1BQ19TVFJVQ1RfUFJfU1lTQ0FMTAotCi1BQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIsCi0gICAgICAgICAgICAgICAgICBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZF0sLCwKLVsjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPl0pCi0KLUFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXRdLCwsIFsjaW5jbHVkZSA8YXNtL3N0YXQuaD5dKQotCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MsIHN0cnVjdCBpYTY0X2ZwcmVnXSwsLAotCSAgICAgICBbI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD5dKQotCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IHVzZXJfZGVzY10sLCwgWyNpbmNsdWRlIDxhc20vbGR0Lmg+XSkKLQotQUNfQ0hFQ0tfREVDTFMoW3N5c19lcnJsaXN0XSkKLUFDX0NIRUNLX0RFQ0xTKFtzeXNfc2lnbGlzdCwgX3N5c19zaWdsaXN0XSwsLCBbI2luY2x1ZGUgPHNpZ25hbC5oPl0pCi0KLUFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSkKLQotQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZV0pCi1BQ19PVVRQVVQKZGlmZiAtLWdpdCBhL2RlZnMuaCBiL2RlZnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU3NWZlZC4uMDAwMDAwMAotLS0gYS9kZWZzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGRlZnMuaCx2IDEuNTkgMjAwNS8wNi8wOCAyMDo0NToyOCByb2xhbmQgRXhwICQKLSAqLwotCi0jaWZkZWYgSEFWRV9DT05GSUdfSAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2VuZGlmCi0KLSNpZmRlZiBsaW51eAotI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0jZW5kaWYKLQotI2lmZGVmIF9MQVJHRUZJTEU2NF9TT1VSQ0UKLS8qIFRoaXMgaXMgdGhlIG1hY3JvIGV2ZXJ5dGhpbmcgY2hlY2tzIGJlZm9yZSB1c2luZyBmb282NCBuYW1lcy4gICovCi0jIGlmbmRlZiBfTEZTNjRfTEFSR0VGSUxFCi0jICBkZWZpbmUgX0xGUzY0X0xBUkdFRklMRSAxCi0jIGVuZGlmCi0jZW5kaWYKLQotLyogY29uZmlndXJhdGlvbiBzZWN0aW9uICovCi0jaWZuZGVmIE1BWF9RVUFMUwotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoTUlQUykKLSNkZWZpbmUgTUFYX1FVQUxTCTUwMDAJLyogbWF4aW11bSBudW1iZXIgb2Ygc3lzY2FsbHMsIHNpZ25hbHMsIGV0Yy4gKi8KLSNlbHNlCi0jZGVmaW5lIE1BWF9RVUFMUwkyMDQ4CS8qIG1heGltdW0gbnVtYmVyIG9mIHN5c2NhbGxzLCBzaWduYWxzLCBldGMuICovCi0jZW5kaWYKLSNlbmRpZgotI2lmbmRlZiBERUZBVUxUX1NUUkxFTgotI2RlZmluZSBERUZBVUxUX1NUUkxFTgkzMgkvKiBkZWZhdWx0IG1heGltdW0gIyBvZiBieXRlcyBwcmludGVkIGluCi0JCQkJICBgcHJpbnRzdHInLCBjaGFuZ2Ugd2l0aCBgLXMnIHN3aXRjaCAqLwotI2VuZGlmCi0jaWZuZGVmIERFRkFVTFRfQUNPTFVNTgotI2RlZmluZSBERUZBVUxUX0FDT0xVTU4JNDAJLyogZGVmYXVsdCBhbGlnbm1lbnQgY29sdW1uIGZvciByZXN1bHRzICovCi0jZW5kaWYKLSNpZm5kZWYgTUFYX0FSR1MKLSNkZWZpbmUgTUFYX0FSR1MJMzIJLyogbWF4aW11bSBudW1iZXIgb2YgYXJncyB0byBhIHN5c2NhbGwgKi8KLSNlbmRpZgotI2lmbmRlZiBERUZBVUxUX1NPUlRCWQotI2RlZmluZSBERUZBVUxUX1NPUlRCWSAidGltZSIJLyogZGVmYXVsdCBzb3J0aW5nIG1ldGhvZCBmb3IgY2FsbCBwcm9maWxpbmcgKi8KLSNlbmRpZgotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0KLSNpZmRlZiBTVERDX0hFQURFUlMKLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNlbmRpZiAvKiBTVERDX0hFQURFUlMgKi8KLQotI2lmZGVmIEhBVkVfU0lHSU5GT19UCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTElOVVgpCi0jICBpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCi0jICAgICBkZWZpbmUgTElOVVhTUEFSQwotIyAgZW5kaWYKLSMgIGlmIGRlZmluZWQoQUxQSEEpCi0jICAgICBkZWZpbmUgTElOVVhfNjRCSVQKLSMgIGVuZGlmCi0jICBpZiBkZWZpbmVkKFg4Nl82NCkKLSMgICAgIGRlZmluZSBMSU5VWF9YODZfNjQKLSMgIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQotI2RlZmluZSBVU0VfUFJPQ0ZTCi0jZWxzZQotI3VuZGVmIFVTRV9QUk9DRlMKLSNlbmRpZgotCi0jaWZkZWYgRlJFRUJTRAotI2lmbmRlZiBJMzg2Ci0jZXJyb3IgIkZyZWVCU0Qgc3VwcG9ydCBpcyBvbmx5IGZvciBpMzg2IGFyY2ggcmlnaHQgbm93LiIKLSNlbmRpZgotI2luY2x1ZGUgPG1hY2hpbmUvcHNsLmg+Ci0jaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2VuZGlmCi0KLSNpZmRlZiBVU0VfUFJPQ0ZTCi0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCi0jaW5jbHVkZSA8c3lzL3Vpby5oPgotI2VuZGlmCi0jaWZkZWYgRlJFRUJTRAotI2luY2x1ZGUgPHN5cy9waW9jdGwuaD4KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0jZWxzZSAvKiAhVVNFX1BST0NGUyAqLwotI2lmIChkZWZpbmVkKExJTlVYU1BBUkMpIHx8IGRlZmluZWQgKExJTlVYX1g4Nl82NCkpICYmIGRlZmluZWQoX19HTElCQ19fKQotI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSNlbHNlCi0vKiBXb3JrIGFyb3VuZCBhd2t3YXJkIHByb3RvdHlwZSBpbiBwdHJhY2UuaC4gKi8KLSNkZWZpbmUgcHRyYWNlIHhwdHJhY2UKLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0jdW5kZWYgcHRyYWNlCi0jaWZkZWYgUE9XRVJQQwotI2RlZmluZSBfX0tFUk5FTF9fCi0jaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotI3VuZGVmIF9fS0VSTkVMX18KLSNlbmRpZgotI2lmZGVmIF9fU1REQ19fCi0jaWZkZWYgTElOVVgKLWV4dGVybiBsb25nIHB0cmFjZShpbnQsIGludCwgY2hhciAqLCBsb25nKTsKLSNlbHNlIC8qICFMSU5VWCAqLwotZXh0ZXJuIGludCBwdHJhY2UoaW50LCBpbnQsIGNoYXIgKiwgaW50LCAuLi4pOwotI2VuZGlmIC8qICFMSU5VWCAqLwotI2Vsc2UgLyogIV9fU1REQ19fICovCi1leHRlcm4gaW50IHB0cmFjZSgpOwotI2VuZGlmIC8qICFfX1NURENfXyAqLwotI2VuZGlmIC8qICFMSU5VWFNQQVJDICovCi0jZW5kaWYgLyogIVNWUjQgKi8KLQotI2lmZGVmIExJTlVYCi0jaWYgIWRlZmluZWQoX19HTElCQ19fKQotI2RlZmluZQlQVFJBQ0VfUEVFS1VTRVIJUFRSQUNFX1BFRUtVU1IKLSNkZWZpbmUJUFRSQUNFX1BPS0VVU0VSCVBUUkFDRV9QT0tFVVNSCi0jZW5kaWYKLSNpZmRlZiBBTFBIQQotIyAgZGVmaW5lIFJFR19SMCAwCi0jICBkZWZpbmUgUkVHX0EwIDE2Ci0jICBkZWZpbmUgUkVHX0EzIDE5Ci0jICBkZWZpbmUgUkVHX0ZQIDMwCi0jICBkZWZpbmUgUkVHX1BDIDY0Ci0jZW5kaWYgLyogQUxQSEEgKi8KLSNpZmRlZiBNSVBTCi0jICBkZWZpbmUgUkVHX1YwIDIKLSMgIGRlZmluZSBSRUdfQTAgNAotIyAgZGVmaW5lIFJFR19BMyA3Ci0jICBkZWZpbmUgUkVHX1NQIDI5Ci0jICBkZWZpbmUgUkVHX0VQQyA2NAotI2VuZGlmIC8qIE1JUFMgKi8KLSNpZmRlZiBIUFBBCi0jICBkZWZpbmUgUFRfR1IyMCAoMjAqNCkKLSMgIGRlZmluZSBQVF9HUjI2ICgyNio0KQotIyAgZGVmaW5lIFBUX0dSMjggKDI4KjQpCi0jICBkZWZpbmUgUFRfSUFPUTAgKDEwNio0KQotIyAgZGVmaW5lIFBUX0lBT1ExICgxMDcqNCkKLSNlbmRpZiAvKiBIUFBBICovCi0jaWZkZWYgU0g2NAotICAgLyogU0g2NCBMaW51eCAtIHRoaXMgY29kZSBhc3N1bWVzIHRoZSBmb2xsb3dpbmcga2VybmVsIEFQSSBmb3Igc3lzdGVtIGNhbGxzOgotICAgICAgICAgIFBDICAgICAgICAgICBPZmZzZXQgMAotICAgICAgICAgIFN5c3RlbSBDYWxsICBPZmZzZXQgMTYgKGFjdHVhbGx5LCAoc3lzY2FsbCBuby4pIHwgKDB4MW4gPDwgMTYpLAotICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBuID0gbm8uIG9mIHBhcmFtZXRlcnMuCi0gICAgICAgICAgT3RoZXIgcmVncyAgIE9mZnNldCAyNCsKLQotICAgICAgICAgIE9uIGVudHJ5OiAgICBSMi03ID0gcGFyYW1ldGVycyAxLTYgKGFzIG1hbnkgYXMgbmVjZXNzYXJ5KQotICAgICAgICAgIE9uIHJldHVybjogICBSOSAgID0gcmVzdWx0LiAqLwotCi0gICAvKiBPZmZzZXQgZm9yIHBlZWtzIG9mIHJlZ2lzdGVycyAqLwotIyAgZGVmaW5lIFJFR19PRkZTRVQgICAgICAgICAoMjQpCi0jICBkZWZpbmUgUkVHX0dFTkVSQUwoeCkgICAgICg4Kih4KStSRUdfT0ZGU0VUKQotIyAgZGVmaW5lIFJFR19QQyAgICAgICAgICAgICAoMCo4KQotIyAgZGVmaW5lIFJFR19TWVNDQUxMICAgICAgICAoMio4KQotI2VuZGlmIC8qIFNINjQgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDEKLSNkZWZpbmUgREVGQVVMVF9QRVJTT05BTElUWSAwCi0KLSNpZmRlZiBMSU5VWFNQQVJDCi0jaW5jbHVkZSA8bGludXgvYS5vdXQuaD4KLSNpbmNsdWRlIDxhc20vcHNyLmg+Ci0jdW5kZWYgIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCi0jaWYgZGVmaW5lZChTUEFSQzY0KQotI2RlZmluZSBTVVBQT1JURURfUEVSU09OQUxJVElFUyAzCi0jZWxzZQotI2RlZmluZSBTVVBQT1JURURfUEVSU09OQUxJVElFUyAyCi0jZW5kaWYgLyogU1BBUkM2NCAqLwotI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KLQotI2lmZGVmIFg4Nl82NAotI3VuZGVmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCi0jZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDIKLSNlbmRpZgotCi0jaWZkZWYgU1ZSNAotI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCi1leHRlcm4gaW50IG1wX2lvY3RsIChpbnQgZiwgaW50IGMsIHZvaWQgKmEsIGludCBzKTsKLSNkZWZpbmUgSU9DVEwoZixjLGEpCW1wX2lvY3RsIChmLCBjLCBhLCBzaXplb2YgKmEpCi0jZGVmaW5lIElPQ1RMX1NUQVRVUyh0KSBcCi0JIHByZWFkICh0LT5wZmRfc3RhdCwgJnQtPnN0YXR1cywgc2l6ZW9mIHQtPnN0YXR1cywgMCkKLSNkZWZpbmUgSU9DVExfV1NUT1AodCkJCQkJCQlcCi0JKElPQ1RMICh0LT5wZmQsIFBDV1NUT1AsIChjaGFyICopTlVMTCkgPCAwID8gLTEgOgkJXAotCSBJT0NUTF9TVEFUVVMgKHQpKQotI2RlZmluZSBQUl9XSFkJCXByX2x3cC5wcl93aHkKLSNkZWZpbmUgUFJfV0hBVAkJcHJfbHdwLnByX3doYXQKLSNkZWZpbmUgUFJfUkVHCQlwcl9sd3AucHJfY29udGV4dC51Y19tY29udGV4dC5ncmVncwotI2RlZmluZSBQUl9GTEFHUwlwcl9sd3AucHJfZmxhZ3MKLSNkZWZpbmUgUFJfU1lTQ0FMTAlwcl9sd3AucHJfc3lzY2FsbAotI2RlZmluZSBQUl9JTkZPCQlwcl9sd3AucHJfaW5mbwotI2RlZmluZSBQSU9DU1RJUAlQQ1NUT1AKLSNkZWZpbmUgUElPQ1NFVAkJUENTRVQKLSNkZWZpbmUgUElPQ1JFU0VUCVBDUkVTRVQKLSNkZWZpbmUgUElPQ1NUUkFDRQlQQ1NUUkFDRQotI2RlZmluZSBQSU9DU0ZBVUxUCVBDU0ZBVUxUCi0jZGVmaW5lIFBJT0NXU1RPUAlQQ1dTVE9QCi0jZGVmaW5lIFBJT0NTVE9QCVBDU1RPUAotI2RlZmluZSBQSU9DU0VOVFJZCVBDU0VOVFJZCi0jZGVmaW5lIFBJT0NTRVhJVAlQQ1NFWElUCi0jZGVmaW5lIFBJT0NSVU4JCVBDUlVOCi0jZWxzZQotI2RlZmluZSBJT0NUTAkJaW9jdGwKLSNkZWZpbmUgSU9DVExfU1RBVFVTKHQpCWlvY3RsICh0LT5wZmQsIFBJT0NTVEFUVVMsICZ0LT5zdGF0dXMpCi0jZGVmaW5lIElPQ1RMX1dTVE9QKHQpCWlvY3RsICh0LT5wZmQsIFBJT0NXU1RPUCwgJnQtPnN0YXR1cykKLSNkZWZpbmUgUFJfV0hZCQlwcl93aHkKLSNkZWZpbmUgUFJfV0hBVAkJcHJfd2hhdAotI2RlZmluZSBQUl9SRUcJCXByX3JlZwotI2RlZmluZSBQUl9GTEFHUwlwcl9mbGFncwotI2RlZmluZSBQUl9TWVNDQUxMCXByX3N5c2NhbGwKLSNkZWZpbmUgUFJfSU5GTwkJcHJfaW5mbwotI2VuZGlmCi0jZW5kaWYKLSNpZmRlZiBGUkVFQlNECi0jZGVmaW5lIElPQ1RMCQlpb2N0bAotI2RlZmluZSBJT0NUTF9TVEFUVVModCkJaW9jdGwgKHQtPnBmZCwgUElPQ1NUQVRVUywgJnQtPnN0YXR1cykKLSNkZWZpbmUgSU9DVExfV1NUT1AodCkJaW9jdGwgKHQtPnBmZCwgUElPQ1dBSVQsICZ0LT5zdGF0dXMpCi0jZGVmaW5lIFBJT0NSVU4gICAgICAgICBQSU9DQ09OVAotI2RlZmluZSBQSU9DV1NUT1AgICAgICAgUElPQ1dBSVQKLSNkZWZpbmUgUFJfV0hZCQl3aHkKLSNkZWZpbmUgUFJfV0hBVAkJdmFsCi0jZGVmaW5lIFBSX0ZMQUdTCXN0YXRlCi0vKiBmcm9tIC91c3Ivc3JjL3N5cy9taXNjZnMvcHJvY2ZzL3Byb2Nmc192bm9wcy5jLAotICAgc3RhdHVzLnN0YXRlID0gMCBmb3IgcnVubmluZywgMSBmb3Igc3RvcHBlZCAqLwotI2RlZmluZSBQUl9BU0xFRVAJMQotI2RlZmluZSBQUl9TWVNFTlRSWSAgICAgU19TQ0UKLSNkZWZpbmUgUFJfU1lTRVhJVCAgICAgIFNfU0NYCi0jZGVmaW5lIFBSX1NJR05BTExFRCAgICBTX1NJRwotI2RlZmluZSBQUl9GQVVMVEVEICAgICAgU19DT1JFCi0jZW5kaWYKLQotLyogVHJhY2UgQ29udHJvbCBCbG9jayAqLwotc3RydWN0IHRjYiB7Ci0Jc2hvcnQgZmxhZ3M7CQkvKiBTZWUgYmVsb3cgZm9yIFRDQl8gdmFsdWVzICovCi0JaW50IHBpZDsJCS8qIFByb2Nlc3MgSWQgb2YgdGhpcyBlbnRyeSAqLwotCWxvbmcgc2NubzsJCS8qIFN5c3RlbSBjYWxsIG51bWJlciAqLwotCWludCB1X25hcmdzOwkJLyogU3lzdGVtIGNhbGwgYXJndW1lbnRzICovCi0JbG9uZyB1X2FyZ1tNQVhfQVJHU107CS8qIFN5c3RlbSBjYWxsIGFyZ3VtZW50cyAqLwotCWludCB1X2Vycm9yOwkJLyogRXJyb3IgY29kZSAqLwotCWxvbmcgdV9ydmFsOwkJLyogKGZpcnN0KSByZXR1cm4gdmFsdWUgKi8KLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotCWxvbmcgbG9uZyB1X2xydmFsOwkvKiBsb25nIGxvbmcgcmV0dXJuIHZhbHVlICovCi0jZW5kaWYKLQlGSUxFICpvdXRmOwkJLyogT3V0cHV0IGZpbGUgZm9yIHRoaXMgcHJvY2VzcyAqLwotCWNvbnN0IGNoYXIgKmF1eHN0cjsJLyogQXV4aWxpYXJ5IGluZm8gZnJvbSBzeXNjYWxsIChzZWUgUlZBTF9TVFIpICovCi0Jc3RydWN0IHRpbWV2YWwgc3RpbWU7CS8qIFN5c3RlbSB0aW1lIHVzYWdlIGFzIG9mIGxhc3QgcHJvY2VzcyB3YWl0ICovCi0Jc3RydWN0IHRpbWV2YWwgZHRpbWU7CS8qIERlbHRhIGZvciBzeXN0ZW0gdGltZSB1c2FnZSAqLwotCXN0cnVjdCB0aW1ldmFsIGV0aW1lOwkvKiBTeXNjYWxsIGVudHJ5IHRpbWUgKi8KLQkJCQkvKiBTdXBwb3J0IGZvciB0cmFjaW5nIGZvcmtlZCBwcm9jZXNzZXMgKi8KLQlzdHJ1Y3QgdGNiICpwYXJlbnQ7CS8qIFBhcmVudCBvZiB0aGlzIHByb2Nlc3MgKi8KLQlpbnQgbmNoaWxkcmVuOwkJLyogIyBvZiB0cmFjZWQgY2hpbGRyZW4gKi8KLQlpbnQgd2FpdHBpZDsJCS8qIHBpZChzKSB0aGlzIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgKi8KLQlpbnQgbnpvbWJpZXM7CQkvKiAjIG9mIGZvcm1lcmx5IHRyYWNlZCBjaGlsZHJlbiBub3cgZGVhZCAqLwotI2lmZGVmIExJTlVYCi0JaW50IG5jbG9uZV90aHJlYWRzOwkvKiAjIG9mIG5jaGlsZHJlbiB3aXRoIENMT05FX1RIUkVBRCAqLwotCWludCBuY2xvbmVfZGV0YWNoZWQ7CS8qICMgb2YgbmNoaWxkcmVuIHdpdGggQ0xPTkVfREVUQUNIRUQgKi8KLQlpbnQgbmNsb25lX3dhaXRpbmc7CS8qIGNsb25lIHRocmVhZHMgaW4gd2FpdDQgKFRDQl9TVVNQRU5ERUQpICovCi0jZW5kaWYKLQkJCQkvKiAoMXN0IGFyZyBvZiB3YWl0NCgpKSAqLwotCWxvbmcgYmFkZHI7CQkvKiBgQnJlYWtwb2ludCcgYWRkcmVzcyAqLwotCWxvbmcgaW5zdFsyXTsJCS8qIEluc3RydWN0aW9ucyBvbiBhYm92ZSAqLwotCWludCBwZmQ7CQkvKiBwcm9jIGZpbGUgZGVzY3JpcHRvciAqLwotI2lmZGVmIFNWUjQKLSNpZmRlZiBIQVZFX01QX1BST0NGUwotCWludCBwZmRfc3RhdDsKLQlpbnQgcGZkX2FzOwotCXBzdGF0dXNfdCBzdGF0dXM7Ci0jZWxzZQotCXByc3RhdHVzX3Qgc3RhdHVzOwkvKiBwcm9jZnMgc3RhdHVzIHN0cnVjdHVyZSAqLwotI2VuZGlmCi0jZW5kaWYKLSNpZmRlZiBGUkVFQlNECi0Jc3RydWN0IHByb2Nmc19zdGF0dXMgc3RhdHVzOwotCWludCBwZmRfcmVnOwotCWludCBwZmRfc3RhdHVzOwotI2VuZGlmCi19OwotCi0vKiBUQ0IgZmxhZ3MgKi8KLSNkZWZpbmUgVENCX1NUQVJUVVAJMDAwMDEJLyogV2UgaGF2ZSBqdXN0IGJlZ3VuIHB0cmFjaW5nIHRoaXMgcHJvY2VzcyAqLwotI2RlZmluZSBUQ0JfSU5VU0UJMDAwMDIJLyogVGhpcyB0YWJsZSBlbnRyeSBpcyBpbiB1c2UgKi8KLSNkZWZpbmUgVENCX0lOU1lTQ0FMTAkwMDAwNAkvKiBBIHN5c3RlbSBjYWxsIGlzIGluIHByb2dyZXNzICovCi0jZGVmaW5lIFRDQl9BVFRBQ0hFRAkwMDAxMAkvKiBQcm9jZXNzIGlzIG5vdCBvdXIgb3duIGNoaWxkICovCi0jZGVmaW5lIFRDQl9FWElUSU5HCTAwMDIwCS8qIEFzIGZhciBhcyB3ZSBrbm93LCB0aGlzIHByb2Nlc3MgaXMgZXhpdGluZyAqLwotI2RlZmluZSBUQ0JfU1VTUEVOREVECTAwMDQwCS8qIFByb2Nlc3MgaGFzIGRvbmUgYSB3YWl0KDQpLCB0aGF0IGNhbgotCQkJCSAgIG5vdCBiZSBhbGxvd2VkIHRvIGNvbXBsZXRlIGp1c3Qgbm93ICovCi0jZGVmaW5lIFRDQl9CUFRTRVQJMDAxMDAJLyogIkJyZWFrcG9pbnQiIHNldCBhZnRlciBmb3JrKDIpICovCi0jZGVmaW5lIFRDQl9TSUdUUkFQUEVECTAwMjAwCS8qIFByb2Nlc3Mgd2FudGVkIHRvIGJsb2NrIFNJR1RSQVAgKi8KLSNkZWZpbmUgVENCX0ZPTExPV0ZPUksJMDA0MDAJLyogUHJvY2VzcyBzaG91bGQgaGF2ZSBmb3JrcyBmb2xsb3dlZCAqLwotI2RlZmluZSBUQ0JfUkVQUklOVAkwMTAwMAkvKiBXZSBzaG91bGQgcmVwcmludCB0aGlzIHN5c2NhbGwgb24gZXhpdCAqLwotI2lmZGVmIExJTlVYCi0jIGlmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkgfHwgZGVmaW5lZChQT1dFUlBDKSB8fCBkZWZpbmVkKElBNjQpIHx8IGRlZmluZWQoSFBQQSkgfHwgZGVmaW5lZChTSCkgfHwgZGVmaW5lZChTSDY0KSB8fCBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpIHx8IGRlZmluZWQoQVJNKQotIyAgZGVmaW5lIFRDQl9XQUlURVhFQ1ZFIDAyMDAwCS8qIGlnbm9yZSBTSUdUUkFQIGFmdGVyIGV4Y2V2ZSAqLwotIyBlbmRpZgotIyBkZWZpbmUgVENCX0NMT05FX0RFVEFDSEVEIDA0MDAwIC8qIENMT05FX0RFVEFDSEVEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCi0jIGRlZmluZSBUQ0JfQ0xPTkVfVEhSRUFEICAwMTAwMDAgLyogQ0xPTkVfVEhSRUFEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCi0jIGRlZmluZSBUQ0JfR1JPVVBfRVhJVElORyAwMjAwMDAgLyogVENCX0VYSVRJTkcgd2FzIGV4aXRfZ3JvdXAsIG5vdCBfZXhpdCAqLwotIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotIyBpZm5kZWYgX19OUl9leGl0X2dyb3VwCi0jIC8qIEhhY2s6IE1vc3QgaGVhZGVycyBhcm91bmQgYXJlIHRvbyBvbGQgdG8gaGF2ZSBfX05SX2V4aXRfZ3JvdXAuICAqLwotIyAgaWZkZWYgQUxQSEEKLSMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDQwNQotIyAgZWxpZiBkZWZpbmVkIEkzODYKLSMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDI1MgotIyAgZWxpZiBkZWZpbmVkIElBNjQKLSMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDEyMzYKLSMgIGVsaWYgZGVmaW5lZCBQT1dFUlBDCi0jICAgZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAyMzQKLSMgIGVsaWYgZGVmaW5lZCBTMzkwIHx8IGRlZmluZWQgUzM5MFgKLSMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDI0OAotIyAgZWxpZiBkZWZpbmVkIFNQQVJDIHx8IGRlZmluZWQgU1BBUkM2NAotIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMTg4Ci0jICBlbmRpZiAvKiBBTFBIQSBldCBhbCAqLwotIyBlbmRpZgkvKiAhX19OUl9leGl0X2dyb3VwICovCi0jZW5kaWYgLyogTElOVVggKi8KLQotLyogcXVhbGlmaWVyIGZsYWdzICovCi0jZGVmaW5lIFFVQUxfVFJBQ0UJMDAwMQkvKiB0aGlzIHN5c3RlbSBjYWxsIHNob3VsZCBiZSB0cmFjZWQgKi8KLSNkZWZpbmUgUVVBTF9BQkJSRVYJMDAwMgkvKiBhYmJyZXZpYXRlIHRoZSBzdHJ1Y3R1cmVzIG9mIHRoaXMgc3lzY2FsbCAqLwotI2RlZmluZSBRVUFMX1ZFUkJPU0UJMDAwNAkvKiBkZWNvZGUgdGhlIHN0cnVjdHVyZXMgb2YgdGhpcyBzeXNjYWxsICovCi0jZGVmaW5lIFFVQUxfUkFXCTAwMTAJLyogcHJpbnQgYWxsIGFyZ3MgaW4gaGV4IGZvciB0aGlzIHN5c2NhbGwgKi8KLSNkZWZpbmUgUVVBTF9TSUdOQUwJMDAyMAkvKiByZXBvcnQgZXZlbnRzIHdpdGggdGhpcyBzaWduYWwgKi8KLSNkZWZpbmUgUVVBTF9GQVVMVAkwMDQwCS8qIHJlcG9ydCBldmVudHMgd2l0aCB0aGlzIGZhdWx0ICovCi0jZGVmaW5lIFFVQUxfUkVBRAkwMTAwCS8qIGR1bXAgZGF0YSByZWFkIG9uIHRoaXMgZmlsZSBkZXNjcmlwdG9yICovCi0jZGVmaW5lIFFVQUxfV1JJVEUJMDIwMAkvKiBkdW1wIGRhdGEgd3JpdHRlbiB0byB0aGlzIGZpbGUgZGVzY3JpcHRvciAqLwotCi0jZGVmaW5lIGVudGVyaW5nKHRjcCkJKCEoKHRjcCktPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpCi0jZGVmaW5lIGV4aXRpbmcodGNwKQkoKHRjcCktPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkKLSNkZWZpbmUgc3lzZXJyb3IodGNwKQkoKHRjcCktPnVfZXJyb3IgIT0gMCkKLSNkZWZpbmUgdmVyYm9zZSh0Y3ApCShxdWFsX2ZsYWdzWyh0Y3ApLT5zY25vXSAmIFFVQUxfVkVSQk9TRSkKLSNkZWZpbmUgYWJicmV2KHRjcCkJKHF1YWxfZmxhZ3NbKHRjcCktPnNjbm9dICYgUVVBTF9BQkJSRVYpCi0KLXN0cnVjdCB4bGF0IHsKLQlpbnQgdmFsOwotCWNoYXIgKnN0cjsKLX07Ci0KLS8qIEZvcm1hdCBvZiBzeXNjYWxsIHJldHVybiB2YWx1ZXMgKi8KLSNkZWZpbmUgUlZBTF9ERUNJTUFMCTAwMAkvKiBkZWNpbWFsIGZvcm1hdCAqLwotI2RlZmluZSBSVkFMX0hFWAkwMDEJLyogaGV4IGZvcm1hdCAqLwotI2RlZmluZSBSVkFMX09DVEFMCTAwMgkvKiBvY3RhbCBmb3JtYXQgKi8KLSNkZWZpbmUgUlZBTF9VREVDSU1BTAkwMDMJLyogdW5zaWduZWQgZGVjaW1hbCBmb3JtYXQgKi8KLSNkZWZpbmUgUlZBTF9MREVDSU1BTAkwMDQJLyogbG9uZyBkZWNpbWFsIGZvcm1hdCAqLwotI2RlZmluZSBSVkFMX0xIRVgJMDA1CS8qIGxvbmcgaGV4IGZvcm1hdCAqLwotI2RlZmluZSBSVkFMX0xPQ1RBTAkwMDYJLyogbG9uZyBvY3RhbCBmb3JtYXQgKi8KLSNkZWZpbmUgUlZBTF9MVURFQ0lNQUwJMDA3CS8qIGxvbmcgdW5zaWduZWQgZGVjaW1hbCBmb3JtYXQgKi8KLSNkZWZpbmUgUlZBTF9NQVNLCTAwNwkvKiBtYXNrIGZvciB0aGVzZSB2YWx1ZXMgKi8KLQotI2RlZmluZSBSVkFMX1NUUgkwMTAJLyogUHJpbnQgYGF1eHN0cicgZmllbGQgYWZ0ZXIgcmV0dXJuIHZhbCAqLwotI2RlZmluZSBSVkFMX05PTkUJMDIwCS8qIFByaW50IG5vdGhpbmcgKi8KLQotI2lmbmRlZiBvZmZzZXRvZgotI2RlZmluZSBvZmZzZXRvZih0eXBlLCBtZW1iZXIpCSgoKGNoYXIgKikgJigoKHR5cGUgKikgTlVMTCktPm1lbWJlcikpIC0gXAotCQkJCSAoKGNoYXIgKikgKHR5cGUgKikgTlVMTCkpCi0jZW5kaWYgLyogIW9mZnNldG9mICovCi0KLS8qIGdldCBvZmZzZXQgb2YgbWVtYmVyIHdpdGhpbiBhIHVzZXIgc3RydWN0ICovCi0jZGVmaW5lIHVvZmYobWVtYmVyKQlvZmZzZXRvZihzdHJ1Y3QgdXNlciwgbWVtYmVyKQotCi0jZGVmaW5lIFRSQUNFX0ZJTEUJMDAxCS8qIFRyYWNlIGZpbGUtcmVsYXRlZCBzeXNjYWxscy4gKi8KLSNkZWZpbmUgVFJBQ0VfSVBDCTAwMgkvKiBUcmFjZSBJUEMtcmVsYXRlZCBzeXNjYWxscy4gKi8KLSNkZWZpbmUgVFJBQ0VfTkVUV09SSwkwMDQJLyogVHJhY2UgbmV0d29yay1yZWxhdGVkIHN5c2NhbGxzLiAqLwotI2RlZmluZSBUUkFDRV9QUk9DRVNTCTAxMAkvKiBUcmFjZSBwcm9jZXNzLXJlbGF0ZWQgc3lzY2FsbHMuICovCi0jZGVmaW5lIFRSQUNFX1NJR05BTAkwMjAJLyogVHJhY2Ugc2lnbmFsLXJlbGF0ZWQgc3lzY2FsbHMuICovCi0KLWV4dGVybiBzdHJ1Y3QgdGNiICoqdGNidGFiOwotZXh0ZXJuIGludCBxdWFsX2ZsYWdzW107Ci1leHRlcm4gaW50IGRlYnVnLCBmb2xsb3dmb3JrLCBmb2xsb3d2Zm9yazsKLWV4dGVybiBpbnQgcmZsYWcsIHRmbGFnLCBkdGltZSwgY2ZsYWcsIHhmbGFnLCBxZmxhZzsKLWV4dGVybiBpbnQgYWNvbHVtbjsKLWV4dGVybiBjaGFyICpvdXRmbmFtZTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgbnByb2NzLCB0Y2J0YWJzaXplOwotZXh0ZXJuIGludCBtYXhfc3RybGVuOwotZXh0ZXJuIHN0cnVjdCB0Y2IgKnRjcF9sYXN0OwotCi0jaWZkZWYgX19TVERDX18KLSNkZWZpbmUgUChhcmdzKSBhcmdzCi0jZWxzZQotI2RlZmluZSBQKGFyZ3MpICgpCi0jZW5kaWYKLQotZXh0ZXJuIGludCBzZXRfcGVyc29uYWxpdHkgUCgoaW50IHBlcnNvbmFsaXR5KSk7Ci1leHRlcm4gY2hhciAqeGxvb2t1cCBQKChjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQpKTsKLWV4dGVybiBzdHJ1Y3QgdGNiICphbGxvY3RjYiBQKChpbnQpKTsKLWV4dGVybiBzdHJ1Y3QgdGNiICpwaWQydGNiIFAoKGludCkpOwotZXh0ZXJuIHZvaWQgZHJvcHRjYiBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgZXhwYW5kX3RjYnRhYiBQKCh2b2lkKSk7Ci0KLWV4dGVybiB2b2lkIHNldF9zb3J0YnkgUCgoY2hhciAqKSk7Ci1leHRlcm4gdm9pZCBzZXRfb3ZlcmhlYWQgUCgoaW50KSk7Ci1leHRlcm4gdm9pZCBxdWFsaWZ5IFAoKGNoYXIgKikpOwotZXh0ZXJuIHZvaWQgbmV3b3V0ZiBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgZ2V0X3Njbm8gUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gbG9uZyBrbm93bl9zY25vIFAoKHN0cnVjdCB0Y2IgKikpOwotZXh0ZXJuIGludCB0cmFjZV9zeXNjYWxsIFAoKHN0cnVjdCB0Y2IgKikpOwotZXh0ZXJuIHZvaWQgcHJpbnR4dmFsIFAoKGNvbnN0IHN0cnVjdCB4bGF0ICosIGludCwgY29uc3QgY2hhciAqKSk7Ci1leHRlcm4gaW50IHByaW50YXJncyBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgYWRkZmxhZ3MgUCgoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50KSk7Ci1leHRlcm4gaW50IHByaW50ZmxhZ3MgUCgoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50LCBjb25zdCBjaGFyICopKTsKLWV4dGVybiBpbnQgdW1vdmVuIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50LCBjaGFyICopKTsKLWV4dGVybiBpbnQgdW1vdmVzdHIgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQsIGNoYXIgKikpOwotZXh0ZXJuIGludCB1cGVlayBQKChpbnQsIGxvbmcsIGxvbmcgKikpOwotZXh0ZXJuIHZvaWQgZHVtcGlvdiBQKChzdHJ1Y3QgdGNiICosIGludCwgbG9uZykpOwotZXh0ZXJuIHZvaWQgZHVtcHN0ciBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRzdHIgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50bnVtIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgY2hhciAqKSk7Ci1leHRlcm4gdm9pZCBwcmludHBhdGggUCgoc3RydWN0IHRjYiAqLCBsb25nKSk7Ci1leHRlcm4gdm9pZCBwcmludHBhdGhuIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50KSk7Ci1leHRlcm4gdm9pZCBwcmludHR2IFAoKHN0cnVjdCB0Y2IgKiwgbG9uZykpOwotI2lmZGVmIEhBVkVfU0lHSU5GT19UCi1leHRlcm4gdm9pZCBwcmludHNpZ2luZm8gUCgoc2lnaW5mb190ICosIGludCkpOwotI2VuZGlmCi1leHRlcm4gdm9pZCBwcmludHNvY2sgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50X3NvY2tfb3B0bWdtdCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRydXNhZ2UgUCgoc3RydWN0IHRjYiAqLCBsb25nKSk7Ci1leHRlcm4gdm9pZCBwcmludHVpZCBQKChjb25zdCBjaGFyICosIHVuc2lnbmVkIGxvbmcpKTsKLWV4dGVybiBpbnQgY2xlYXJicHQgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IHNldGJwdCBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgc2lnaXNoYW5kbGVkIFAoKHN0cnVjdCB0Y2IgKiwgaW50KSk7Ci1leHRlcm4gdm9pZCBwcmludGNhbGwgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gY29uc3QgY2hhciAqc2lnbmFtZSBQKChpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50c2lnbmFsIFAoKGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRsZWFkZXIgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gdm9pZCBwcmludHRyYWlsZXIgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gdm9pZCB0YWJ0byBQKChpbnQpKTsKLWV4dGVybiB2b2lkIGNhbGxfc3VtbWFyeSBQKChGSUxFICopKTsKLWV4dGVybiB2b2lkIHByaW50dHYzMiBQKChzdHJ1Y3QgdGNiKiwgbG9uZykpOwotZXh0ZXJuIHZvaWQgdHByaW50X2lvdiBQKChzdHJ1Y3QgdGNiICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpKTsKLQotI2lmZGVmIExJTlVYCi1leHRlcm4gaW50IGludGVybmFsX2Nsb25lIFAoKHN0cnVjdCB0Y2IgKikpOwotI2VuZGlmCi1leHRlcm4gaW50IGludGVybmFsX2ZvcmsgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IGludGVybmFsX2V4ZWMgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IGludGVybmFsX3dhaXQgUCgoc3RydWN0IHRjYiAqLCBpbnQpKTsKLWV4dGVybiBpbnQgaW50ZXJuYWxfZXhpdCBQKChzdHJ1Y3QgdGNiICopKTsKLQotZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCAqaW9jdGxfbG9va3VwIFAoKGxvbmcpKTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsX25leHRfbWF0Y2ggUCgoY29uc3Qgc3RydWN0IGlvY3RsZW50ICopKTsKLWV4dGVybiBpbnQgaW9jdGxfZGVjb2RlIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCB0ZXJtX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCBzb2NrX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCBwcm9jX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgaW50LCBpbnQpKTsKLWV4dGVybiBpbnQgc3RyZWFtX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgaW50LCBpbnQpKTsKLSNpZmRlZiBMSU5VWAotZXh0ZXJuIGludCBydGNfaW9jdGwgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBsb25nKSk7Ci0jZW5kaWYKLQotZXh0ZXJuIHZvaWQgdHZfdHYgUCgoc3RydWN0IHRpbWV2YWwgKiwgaW50LCBpbnQpKTsKLWV4dGVybiBpbnQgdHZfbnogUCgoc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIGludCB0dl9jbXAgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIGRvdWJsZSB0dl9mbG9hdCBQKChzdHJ1Y3QgdGltZXZhbCAqKSk7Ci1leHRlcm4gdm9pZCB0dl9hZGQgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIHZvaWQgdHZfc3ViIFAoKHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICopKTsKLWV4dGVybiB2b2lkIHR2X211bCBQKChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBpbnQpKTsKLWV4dGVybiB2b2lkIHR2X2RpdiBQKChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBpbnQpKTsKLQotI2lmZGVmIFNVTk9TNAotZXh0ZXJuIGludCBmaXh2Zm9yayBQKChzdHJ1Y3QgdGNiICopKTsKLSNlbmRpZgotI2lmICEoZGVmaW5lZChMSU5VWCkgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKElBNjQpKQotZXh0ZXJuIGxvbmcgZ2V0cnZhbDIgUCgoc3RydWN0IHRjYiAqKSk7Ci0jZW5kaWYKLSNpZmRlZiBVU0VfUFJPQ0ZTCi1leHRlcm4gaW50IHByb2Nfb3BlbiBQKChzdHJ1Y3QgdGNiICp0Y3AsIGludCBhdHRhY2hpbmcpKTsKLSNlbmRpZgotCi0jZGVmaW5lIHVtb3ZlKHBpZCwgYWRkciwgb2JqcCkJXAotCXVtb3ZlbigocGlkKSwgKGFkZHIpLCBzaXplb2YgKihvYmpwKSwgKGNoYXIgKikgKG9ianApKQotCi0jaWZkZWYgX19TVERDX18KLSNpZmRlZiBfX0dOVUNfXwotZXh0ZXJuIHZvaWQgdHByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikKLQlfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDIpKSk7Ci0jZWxzZQotZXh0ZXJuIHZvaWQgdHByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLik7Ci0jZW5kaWYKLSNlbHNlCi1leHRlcm4gdm9pZCB0cHJpbnRmKCk7Ci0jZW5kaWYKLQotI2lmbmRlZiBIQVZFX1NUUkVSUk9SCi1jb25zdCBjaGFyICpzdHJlcnJvciBQKChpbnQpKTsKLSNlbmRpZgotI2lmbmRlZiBIQVZFX1NUUlNJR05BTAotY29uc3QgY2hhciAqc3Ryc2lnbmFsIFAoKGludCkpOwotI2VuZGlmCi0KLWV4dGVybiBpbnQgY3VycmVudF9wZXJzb25hbGl0eTsKLQotc3RydWN0IHN5c2VudCB7Ci0JaW50CW5hcmdzOwotCWludAlzeXNfZmxhZ3M7Ci0JaW50CSgqc3lzX2Z1bmMpKCk7Ci0JY29uc3QgY2hhciAqc3lzX25hbWU7Ci0JbG9uZwluYXRpdmVfc2NubzsJLyogTWF0Y2ggYWdhaW5zdCBTWVNfKiBjb25zdGFudHMuICAqLwotfTsKLQotZXh0ZXJuIGNvbnN0IHN0cnVjdCBzeXNlbnQgKnN5c2VudDsKLWV4dGVybiBpbnQgbnN5c2NhbGxzOwotCi1leHRlcm4gY29uc3QgY2hhciAqY29uc3QgKmVycm5vZW50OwotZXh0ZXJuIGludCBuZXJybm9zOwotCi1zdHJ1Y3QgaW9jdGxlbnQgewotCWNvbnN0IGNoYXIgKmRvdGg7Ci0JY29uc3QgY2hhciAqc3ltYm9sOwotCXVuc2lnbmVkIGxvbmcgY29kZTsKLX07Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsZW50OwotZXh0ZXJuIGludCBuaW9jdGxlbnRzOwotCi1leHRlcm4gY29uc3QgY2hhciAqY29uc3QgKnNpZ25hbGVudDsKLWV4dGVybiBpbnQgbnNpZ25hbHM7Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgaW9jdGxlbnQwW107Ci1leHRlcm4gY29uc3QgaW50IG5pb2N0bGVudHMwOwotZXh0ZXJuIGNvbnN0IGNoYXIgKmNvbnN0IHNpZ25hbGVudDBbXTsKLWV4dGVybiBjb25zdCBpbnQgbnNpZ25hbHMwOwotCi0jaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgotZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDFbXTsKLWV4dGVybiBjb25zdCBpbnQgbmlvY3RsZW50czE7Ci1leHRlcm4gY29uc3QgY2hhciAqY29uc3Qgc2lnbmFsZW50MVtdOwotZXh0ZXJuIGNvbnN0IGludCBuc2lnbmFsczE7Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLwotCi0jaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDJbXTsKLWV4dGVybiBjb25zdCBpbnQgbmlvY3RsZW50czI7Ci1leHRlcm4gY29uc3QgY2hhciAqY29uc3Qgc2lnbmFsZW50MltdOwotZXh0ZXJuIGNvbnN0IGludCBuc2lnbmFsczI7Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLwotCi0jaWYgZGVmaW5lZChGUkVFQlNEKSB8fCAoZGVmaW5lZChMSU5VWCkgXAotCQkJICYmIGRlZmluZWQoUE9XRVJQQykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpIFwKLSAgfHwgKGRlZmluZWQgKExJTlVYKSAmJiBkZWZpbmVkIChNSVBTKSAmJiAhZGVmaW5lZChfX21pcHM2NCkpCi0vKiBBUlJHSCEgIG9mZl90IGFyZ3MgYXJlIGFsaWduZWQgb24gNjQgYml0IGJvdW5kYXJpZXMhICovCi0jZGVmaW5lIEFMSUdONjQodGNwLGFyZykJCQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCWlmIChhcmcgJSAyKQkJCQkJCQlcCi0JICAgIG1lbW1vdmUgKCZ0Y3AtPnVfYXJnW2FyZ10sICZ0Y3AtPnVfYXJnW2FyZyArIDFdLAkJXAotCQkgICAgICh0Y3AtPnVfbmFyZ3MgLSBhcmcgLSAxKSAqIHNpemVvZiB0Y3AtPnVfYXJnWzBdKTsJXAotfSB3aGlsZSAoMCkKLSNlbHNlCi0jZGVmaW5lIEFMSUdONjQodGNwLGFyZykgZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCi0KLSNpZiBIQVZFX0xPTkdfTE9ORwotCi0vKiBfbCByZWZlcnMgdG8gdGhlIGxvd2VyIG51bWJlcmVkIHVfYXJnLAotICogX2ggcmVmZXJzIHRvIHRoZSBoaWdoZXIgbnVtYmVyZWQgdV9hcmcKLSAqLwotCi0jaWYgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORwotI2RlZmluZSBMT05HX0xPTkcoX2wsX2gpIFwKLSAgICAoKGxvbmcgbG9uZykoKHVuc2lnbmVkIGxvbmcgbG9uZykodW5zaWduZWQpKF9sKSB8ICgodW5zaWduZWQgbG9uZyBsb25nKShfaCk8PDMyKSkpCi0jZWxzZQotI2RlZmluZSBMT05HX0xPTkcoX2wsX2gpIFwKLSAgICAoKGxvbmcgbG9uZykoKHVuc2lnbmVkIGxvbmcgbG9uZykodW5zaWduZWQpKF9oKSB8ICgodW5zaWduZWQgbG9uZyBsb25nKShfbCk8PDMyKSkpCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSUE2NAotZXh0ZXJuIGxvbmcgaWEzMjsKLSNlbmRpZgotCi1leHRlcm4gaW50IG5vdF9mYWlsaW5nX29ubHk7CmRpZmYgLS1naXQgYS9kZXBjb21wIGIvZGVwY29tcApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOWU1NTIyZC4uMDAwMDAwMAotLS0gYS9kZXBjb21wCisrKyAvZGV2L251bGwKQEAgLTEsNTIwICswLDAgQEAKLSMhIC9iaW4vc2gKLSMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cwotCi1zY3JpcHR2ZXJzaW9uPTIwMDMtMTEtMDguMjMKLQotIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLSMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQotIyBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0jIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQotIyAwMjExMS0xMzA3LCBVU0EuCi0KLSMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotCi0jIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBBbGV4YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KLQotY2FzZSAkMSBpbgotICAnJykKLSAgICAgZWNobyAiJDA6IE5vIGNvbW1hbmQuICBUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgMT4mMgotICAgICBleGl0IDE7Ci0gICAgIDs7Ci0gIC1oIHwgLS1oKikKLSAgICBjYXQgPDxcRU9GCi1Vc2FnZTogZGVwY29tcCBbLS1oZWxwXSBbLS12ZXJzaW9uXSBQUk9HUkFNIFtBUkdTXQotCi1SdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMKLWFzIHNpZGUtZWZmZWN0cy4KLQotRW52aXJvbm1lbnQgdmFyaWFibGVzOgotICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRyYWNraW5nIG1vZGUuCi0gIHNvdXJjZSAgICAgIFNvdXJjZSBmaWxlIHJlYWQgYnkgYFBST0dSQU1TIEFSR1MnLgotICBvYmplY3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgotICBkZXBmaWxlICAgICBEZXBlbmRlbmN5IGZpbGUgdG8gb3V0cHV0LgotICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgotICBsaWJ0b29sICAgICBXaGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KLQotUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4KLUVPRgotICAgIGV4aXQgMAotICAgIDs7Ci0gIC12IHwgLS12KikKLSAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgotICAgIGV4aXQgMAotICAgIDs7Ci1lc2FjCi0KLWlmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgotICBlY2hvICJkZXBjb21wOiBWYXJpYWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBiZSBzZXQiIDE+JjIKLSAgZXhpdCAxCi1maQotIyBgbGlidG9vbCcgY2FuIGFsc28gYmUgc2V0IHRvIGB5ZXMnIG9yIGBubycuCi0KLWlmIHRlc3QgLXogIiRkZXBmaWxlIjsgdGhlbgotICAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3MsXi4qLywsJyAtZSAncyxcLlwoW14uXSpcKSQsLlBcMSwnYAotICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAncywvLiokLC8sJ2AKLSAgIGlmIHRlc3QgIiRkaXIiID0gIiRvYmplY3QiOyB0aGVuCi0gICAgICBkaXI9Ci0gICBmaQotICAgIyBGSVhNRTogc2hvdWxkIGJlIF9kZXBzIG9uIERPUy4KLSAgIGRlcGZpbGU9IiRkaXIuZGVwcy8kYmFzZSIKLWZpCi0KLXRtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9Ci0KLXJtIC1mICIkdG1wZGVwZmlsZSIKLQotIyBTb21lIG1vZGVzIHdvcmsganVzdCBsaWtlIG90aGVyIG1vZGVzLCBidXQgdXNlIGRpZmZlcmVudCBmbGFncy4gIFdlCi0jIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAotIyB0byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEgY2FzZQotIyBoZXJlLCBiZWNhdXNlIHRoaXMgZmlsZSBjYW4gb25seSBjb250YWluIG9uZSBjYXNlIHN0YXRlbWVudC4KLWlmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCi0gICMgSFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgotICBnY2NmbGFnPS1NCi0gIGRlcG1vZGU9Z2NjCi1maQotCi1pZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KLSAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KLSAgIGRhc2htZmxhZz0teE0KLSAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKLWZpCi0KLWNhc2UgIiRkZXBtb2RlIiBpbgotZ2NjMykKLSMjIGdjYyAzIGltcGxlbWVudHMgZGVwZW5kZW5jeSB0cmFja2luZyB0aGF0IGRvZXMgZXhhY3RseSB3aGF0Ci0jIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQotIyMgaXQgaWYgLU1EIC1NUCBjb21lcyBhZnRlciB0aGUgLU1GIHN0dWZmLiAgSG1tLgotICAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBmaWxlIgotICBzdGF0PSQ/Ci0gIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotICBlbHNlCi0gICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICAgIGV4aXQgJHN0YXQKLSAgZmkKLSAgbXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUiCi0gIDs7Ci0KLWdjYykKLSMjIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gZ2V0IGRlcGVuZGVuY3kgb3V0cHV0IGZyb20gZ2NjLiAgSGVyZSdzCi0jIyB3aHkgd2UgcGljayB0aGlzIHJhdGhlciBvYnNjdXJlIG1ldGhvZDoKLSMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5kCi0jIyAgIHVwIGluIGEgc3ViZGlyLiAgSGF2aW5nIHRvIHJlbmFtZSBieSBoYW5kIGlzIHVnbHkuCi0jIyAgIChXZSBtaWdodCBlbmQgdXAgZG9pbmcgdGhpcyBhbnl3YXkgdG8gc3VwcG9ydCBvdGhlciBjb21waWxlcnMuKQotIyMgLSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKLSMjICAgLU1NLCBub3QgLU0gKGRlc3BpdGUgd2hhdCB0aGUgZG9jcyBzYXkpLgotIyMgLSBVc2luZyAtTSBkaXJlY3RseSBtZWFucyBydW5uaW5nIHRoZSBjb21waWxlciB0d2ljZSAoZXZlbiB3b3JzZQotIyMgICB0aGFuIHJlbmFtaW5nKS4KLSAgaWYgdGVzdCAteiAiJGdjY2ZsYWciOyB0aGVuCi0gICAgZ2NjZmxhZz0tTUQsCi0gIGZpCi0gICIkQCIgLVdwLCIkZ2NjZmxhZyR0bXBkZXBmaWxlIgotICBzdGF0PSQ/Ci0gIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotICBlbHNlCi0gICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICAgIGV4aXQgJHN0YXQKLSAgZmkKLSAgcm0gLWYgIiRkZXBmaWxlIgotICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotICBhbHBoYT1BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ci0jIyBUaGUgc2Vjb25kIC1lIGV4cHJlc3Npb24gaGFuZGxlcyBET1Mtc3R5bGUgZmlsZSBuYW1lcyB3aXRoIGRyaXZlIGxldHRlcnMuCi0gIHNlZCAtZSAncy9eW146XSo6IC8gLycgXAotICAgICAgLWUgJ3MvXlsnJGFscGhhJ106XC9bXjpdKjogLyAvJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotIyMgVGhpcyBuZXh0IHBpZWNlIG9mIG1hZ2ljIGF2b2lkcyB0aGUgYGRlbGV0ZWQgaGVhZGVyIGZpbGUnIHByb2JsZW0uCi0jIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQotIyMgaXMgZGVsZXRlZCwgdGhlIGRlcGVuZGVuY3kgY2F1c2VzIG1ha2UgdG8gZGllIChiZWNhdXNlIHRoZXJlIGlzCi0jIyB0eXBpY2FsbHkgbm8gd2F5IHRvIHJlYnVpbGQgdGhlIGhlYWRlcikuICBXZSBhdm9pZCB0aGlzIGJ5IGFkZGluZwotIyMgZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbwotIyMgdGhpcyBmb3IgdXMgZGlyZWN0bHkuCi0gIHRyICcgJyAnCi0nIDwgIiR0bXBkZXBmaWxlIiB8Ci0jIyBTb21lIHZlcnNpb25zIG9mIGdjYyBwdXQgYSBzcGFjZSBiZWZvcmUgdGhlIGA6Jy4gIE9uIHRoZSB0aGVvcnkKLSMjIHRoYXQgdGhlIHNwYWNlIG1lYW5zIHNvbWV0aGluZywgd2UgYWRkIGEgc3BhY2UgdG8gdGhlIG91dHB1dCBhcwotIyMgd2VsbC4KLSMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0jIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLWhwKQotICAjIFRoaXMgY2FzZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3b3JrLiAgSXQgd29ya3MgYnkKLSAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAotICAjIHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgotICBleGl0IDEKLSAgOzsKLQotc2dpKQotICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICAiJEAiICItV3AsLU1EdXBkYXRlLCR0bXBkZXBmaWxlIgotICBlbHNlCi0gICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgotICBmaQotICBzdGF0PSQ/Ci0gIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotICBlbHNlCi0gICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICAgIGV4aXQgJHN0YXQKLSAgZmkKLSAgcm0gLWYgIiRkZXBmaWxlIgotCi0gIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbiAgIyB5ZXMsIHRoZSBzb3VyY2VmaWxlIGRlcGVuZCBvbiBvdGhlciBmaWxlcwotICAgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0KLSAgICAjIENsaXAgb2ZmIHRoZSBpbml0aWFsIGVsZW1lbnQgKHRoZSBkZXBlbmRlbnQpLiAgRG9uJ3QgdHJ5IHRvIGJlCi0gICAgIyBjbGV2ZXIgYW5kIHJlcGxhY2UgdGhpcyB3aXRoIHNlZCBjb2RlLCBhcyBJUklYIHNlZCB3b24ndCBoYW5kbGUKLSAgICAjIGxpbmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYgaW4KLSAgICAjIElSSVggNi4yIHNlZCwgODE5MiBpbiBJUklYIDYuNSkuICBXZSBhbHNvIHJlbW92ZSBjb21tZW50IGxpbmVzOwotICAgICMgdGhlIElSSVggY2MgYWRkcyBjb21tZW50cyBsaWtlIGAjOmZlYycgdG8gdGhlIGVuZCBvZiB0aGUKLSAgICAjIGRlcGVuZGVuY3kgbGluZS4KLSAgICB0ciAnICcgJwotJyA8ICIkdG1wZGVwZmlsZSIgXAotICAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKLSAgICB0ciAnCi0nICcgJyA+PiAkZGVwZmlsZQotICAgIGVjaG8gPj4gJGRlcGZpbGUKLQotICAgICMgVGhlIHNlY29uZCBwYXNzIGdlbmVyYXRlcyBhIGR1bW15IGVudHJ5IGZvciBlYWNoIGhlYWRlciBmaWxlLgotICAgIHRyICcgJyAnCi0nIDwgIiR0bXBkZXBmaWxlIiBcCi0gICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgLWUgJ3MvJC86LycgXAotICAgPj4gJGRlcGZpbGUKLSAgZWxzZQotICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0gICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0gICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KLSAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotICBmaQotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLWFpeCkKLSAgIyBUaGUgQyBmb3IgQUlYIENvbXBpbGVyIHVzZXMgLU0gYW5kIG91dHB1dHMgdGhlIGRlcGVuZGVuY2llcwotICAjIGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQotICAjIGN1cnJlbnQgZGlyZWN0b3J5LiAgQWxzbywgdGhlIEFJWCBjb21waWxlciBwdXRzIGAkb2JqZWN0OicgYXQgdGhlCi0gICMgc3RhcnQgb2YgZWFjaCBsaW5lOyAkb2JqZWN0IGRvZXNuJ3QgaGF2ZSBkaXJlY3RvcnkgaW5mb3JtYXRpb24uCi0gICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgotICBzdHJpcHBlZD1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MvXCguKlwpXC4uKiQvXDEvJ2AKLSAgdG1wZGVwZmlsZT0iJHN0cmlwcGVkLnUiCi0gIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotICAgICIkQCIgLVdjLC1NCi0gIGVsc2UKLSAgICAiJEAiIC1NCi0gIGZpCi0gIHN0YXQ9JD8KLQotICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gOgotICBlbHNlCi0gICAgc3RyaXBwZWQ9YGVjaG8gIiRzdHJpcHBlZCIgfCBzZWQgJ3MsXi4qLywsJ2AKLSAgICB0bXBkZXBmaWxlPSIkc3RyaXBwZWQudSIKLSAgZmkKLQotICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgICBleGl0ICRzdGF0Ci0gIGZpCi0KLSAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCi0gICAgb3V0bmFtZT0iJHN0cmlwcGVkLm8iCi0gICAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcuCi0gICAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KLSAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCi0gICAgc2VkIC1lICJzLF4kb3V0bmFtZTosJG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotICAgIHNlZCAtZSAicyxeJG91dG5hbWU6IFwoLipcKSQsXDE6LCIgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSAgZWxzZQotICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0gICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0gICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KLSAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotICBmaQotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLWljYykKLSAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBIb3dldmVyIG9uCi0gICMgICAgaWNjIC1NRCAtTUYgZm9vLmQgLWMgLW8gc3ViL2Zvby5vIHN1Yi9mb28uYwotICAjIElDQyA3LjAgd2lsbCBmaWxsIGZvby5kIHdpdGggc29tZXRoaW5nIGxpa2UKLSAgIyAgICBmb28ubzogc3ViL2Zvby5jCi0gICMgICAgZm9vLm86IHN1Yi9mb28uaAotICAjIHdoaWNoIGlzIHdyb25nLiAgV2Ugd2FudDoKLSAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYwotICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5oCi0gICMgICAgc3ViL2Zvby5jOgotICAjICAgIHN1Yi9mb28uaDoKLSAgIyBJQ0MgNy4xIHdpbGwgb3V0cHV0Ci0gICMgICAgZm9vLm86IHN1Yi9mb28uYyBzdWIvZm9vLmgKLSAgIyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6Ci0gICMgICAgZm9vLm86IHN1Yi9mb28uYyAuLi4gXAotICAjICAgICBzdWIvZm9vLmggLi4uIFwKLSAgIyAgICAgLi4uCi0KLSAgIiRAIiAtTUQgLU1GICIkdG1wZGVwZmlsZSIKLSAgc3RhdD0kPwotICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgICBleGl0ICRzdGF0Ci0gIGZpCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcsCi0gICMgb3IgYGZvby5vOiBkZXAxLmggZGVwMi5oIFwnLCBvciBgIGRlcDMuaCBkZXA0LmggXCcuCi0gICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCi0gICMgYCRvYmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KLSAgc2VkICJzLF5bXjpdKjosJG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0gICMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSAgc2VkICdzLF5bXjpdKjogXCguKlwpJCxcMSw7cy9eXFwkLy87L14kL2Q7LzokL2QnIDwgIiR0bXBkZXBmaWxlIiB8Ci0gICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0gIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgOzsKLQotdHJ1NjQpCi0gICAjIFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCi0gICAjIGVmZmVjdC4gIGBjYyAtTUQgLW8gZm9vLm8gLi4uJyBwdXRzIHRoZSBkZXBlbmRlbmNpZXMgaW50byBgZm9vLm8uZCcuCi0gICAjIEF0IGxlYXN0IG9uIEFscGhhL1JlZGhhdCA2LjEsIENvbXBhcSBDQ0MgVjYuMi01MDQgc2VlbXMgdG8gcHV0Ci0gICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KLSAgICMgU3ViZGlyZWN0b3JpZXMgYXJlIHJlc3BlY3RlZC4KLSAgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0gICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLQotICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0gICAgICB0bXBkZXBmaWxlMT0iJGRpci5saWJzLyRiYXNlLmxvLmQiCi0gICAgICB0bXBkZXBmaWxlMj0iJGRpci5saWJzLyRiYXNlLmQiCi0gICAgICAiJEAiIC1XYywtTUQKLSAgIGVsc2UKLSAgICAgIHRtcGRlcGZpbGUxPSIkZGlyJGJhc2Uuby5kIgotICAgICAgdG1wZGVwZmlsZTI9IiRkaXIkYmFzZS5kIgotICAgICAgIiRAIiAtTUQKLSAgIGZpCi0KLSAgIHN0YXQ9JD8KLSAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotICAgZWxzZQotICAgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKLSAgICAgIGV4aXQgJHN0YXQKLSAgIGZpCi0KLSAgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlMSI7IHRoZW4KLSAgICAgIHRtcGRlcGZpbGU9IiR0bXBkZXBmaWxlMSIKLSAgIGVsc2UKLSAgICAgIHRtcGRlcGZpbGU9IiR0bXBkZXBmaWxlMiIKLSAgIGZpCi0gICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KLSAgICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0gICAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCi0gICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSAgIGVsc2UKLSAgICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0gICBmaQotICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICAgOzsKLQotI25vc2lkZWVmZmVjdCkKLSAgIyBUaGlzIGNvbW1lbnQgYWJvdmUgaXMgdXNlZCBieSBhdXRvbWFrZSB0byB0ZWxsIHNpZGUtZWZmZWN0Ci0gICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCi0KLWRhc2htc3Rkb3V0KQotICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKLSAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KLSAgIiRAIiB8fCBleGl0ICQ/Ci0KLSAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0gICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwotICAgICAgc2hpZnQKLSAgICBkb25lCi0gICAgc2hpZnQKLSAgZmkKLQotICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0gIElGUz0iICIKLSAgZm9yIGFyZwotICBkbwotICAgIGNhc2UgJGFyZyBpbgotICAgIC1vKQotICAgICAgc2hpZnQKLSAgICAgIDs7Ci0gICAgJG9iamVjdCkKLSAgICAgIHNoaWZ0Ci0gICAgICA7OwotICAgICopCi0gICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSAgICAgIHNoaWZ0ICMgZm5vcmQKLSAgICAgIHNoaWZ0ICMgJGFyZwotICAgICAgOzsKLSAgICBlc2FjCi0gIGRvbmUKLQotICB0ZXN0IC16ICIkZGFzaG1mbGFnIiAmJiBkYXNobWZsYWc9LU0KLSAgIyBSZXF1aXJlIGF0IGxlYXN0IHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBzZWFyY2hpbmcgZm9yIGA6JwotICAjIGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6Ci0gICMgYSBkZXBlbmRlbmN5IHN1Y2ggYXMgYGM6L2Zvby9iYXInIGNvdWxkIGJlIHNlZW4gYXMgdGFyZ2V0IGBjJyBvdGhlcndpc2UuCi0gICIkQCIgJGRhc2htZmxhZyB8Ci0gICAgc2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSAgdHIgJyAnICcKLScgPCAiJHRtcGRlcGZpbGUiIHwgXAotIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0gICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0gIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgOzsKLQotZGFzaFhtc3Rkb3V0KQotICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5Ci0gICMgcnVuLCBhcyB0aGlzIG1vZGUgaXMgc3BlY2lhbGx5IHJlY29nbml6ZWQgaW4gdGhlIHByZWFtYmxlLgotICBleGl0IDEKLSAgOzsKLQotbWFrZWRlcGVuZCkKLSAgIiRAIiB8fCBleGl0ICQ/Ci0gICMgUmVtb3ZlIGFueSBMaWJ0b29sIGNhbGwKLSAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0gICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwotICAgICAgc2hpZnQKLSAgICBkb25lCi0gICAgc2hpZnQKLSAgZmkKLSAgIyBYIG1ha2VkZXBlbmQKLSAgc2hpZnQKLSAgY2xlYXJlZD1ubwotICBmb3IgYXJnIGluICIkQCI7IGRvCi0gICAgY2FzZSAkY2xlYXJlZCBpbgotICAgIG5vKQotICAgICAgc2V0ICIiOyBzaGlmdAotICAgICAgY2xlYXJlZD15ZXMgOzsKLSAgICBlc2FjCi0gICAgY2FzZSAiJGFyZyIgaW4KLSAgICAtRCp8LUkqKQotICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotICAgICMgU3RyaXAgYW55IG9wdGlvbiB0aGF0IG1ha2VkZXBlbmQgbWF5IG5vdCB1bmRlcnN0YW5kLiAgUmVtb3ZlCi0gICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJjZSBmaWxlLgotICAgIC0qfCRvYmplY3QpCi0gICAgICA7OwotICAgICopCi0gICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0gICAgZXNhYwotICBkb25lCi0gIG9ial9zdWZmaXg9ImBlY2hvICRvYmplY3QgfCBzZWQgJ3MvXi4qXC4vLi8nYCIKLSAgdG91Y2ggIiR0bXBkZXBmaWxlIgotICAke01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSAgc2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKLScgfCBcCi0jIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUiLmJhawotICA7OwotCi1jcHApCi0gICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LgotICAiJEAiIHx8IGV4aXQgJD8KLQotICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgotICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0gICAgICBzaGlmdAotICAgIGRvbmUKLSAgICBzaGlmdAotICBmaQotCi0gICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSAgSUZTPSIgIgotICBmb3IgYXJnCi0gIGRvCi0gICAgY2FzZSAkYXJnIGluCi0gICAgLW8pCi0gICAgICBzaGlmdAotICAgICAgOzsKLSAgICAkb2JqZWN0KQotICAgICAgc2hpZnQKLSAgICAgIDs7Ci0gICAgKikKLSAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgotICAgICAgc2hpZnQgIyBmbm9yZAotICAgICAgc2hpZnQgIyAkYXJnCi0gICAgICA7OwotICAgIGVzYWMKLSAgZG9uZQotCi0gICIkQCIgLUUgfAotICAgIHNlZCAtbiAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBcXDpwJyB8Ci0gICAgc2VkICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKLSAgcm0gLWYgIiRkZXBmaWxlIgotICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSAgc2VkIDwgIiR0bXBkZXBmaWxlIiAnL14kL2Q7cy9eIC8vO3MvIFxcJC8vO3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICA7OwotCi1tc3Zpc3VhbGNwcCkKLSAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0gICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8sCi0gICMgYmVjYXVzZSB3ZSBtdXN0IHVzZSAtbyB3aGVuIHJ1bm5pbmcgbGlidG9vbC4KLSAgIiRAIiB8fCBleGl0ICQ/Ci0gIElGUz0iICIKLSAgZm9yIGFyZwotICBkbwotICAgIGNhc2UgIiRhcmciIGluCi0gICAgIi1HbSJ8Ii9HbSJ8Ii1HaSJ8Ii9HaSJ8Ii1aSSJ8Ii9aSSIpCi0Jc2V0IGZub3JkICIkQCIKLQlzaGlmdAotCXNoaWZ0Ci0JOzsKLSAgICAqKQotCXNldCBmbm9yZCAiJEAiICIkYXJnIgotCXNoaWZ0Ci0Jc2hpZnQKLQk7OwotICAgIGVzYWMKLSAgZG9uZQotICAiJEAiIC1FIHwKLSAgc2VkIC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjplY2hvICJgY3lncGF0aCAtdSBcXCJcMVxcImAiOnAnIHwgc29ydCB8IHVuaXEgPiAiJHRtcGRlcGZpbGUiCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCi0gIGVjaG8gIgkiID4+ICIkZGVwZmlsZSIKLSAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipcKSQvIHM6OlwxXDo6cCcgPj4gIiRkZXBmaWxlIgotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLW5vbmUpCi0gIGV4ZWMgIiRAIgotICA7OwotCi0qKQotICBlY2hvICJVbmtub3duIGRlcG1vZGUgJGRlcG1vZGUiIDE+JjIKLSAgZXhpdCAxCi0gIDs7Ci1lc2FjCi0KLWV4aXQgMAotCi0jIExvY2FsIFZhcmlhYmxlczoKLSMgbW9kZTogc2hlbGwtc2NyaXB0Ci0jIHNoLWluZGVudGF0aW9uOiAyCi0jIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKLSMgdGltZS1zdGFtcC1lbmQ6ICIkIgotIyBFbmQ6CmRpZmYgLS1naXQgYS9kZXNjLmMgYi9kZXNjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NjA3OGUuLjAwMDAwMDAKLS0tIGEvZGVzYy5jCisrKyAvZGV2L251bGwKQEAgLTEsODc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBkZXNjLmMsdiAxLjIyIDIwMDUvMDYvMDEgMTk6MjI6MDcgcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL2ZpbGUuaD4KLSNpZmRlZiBMSU5VWAotI2luY2x1ZGUgPGludHR5cGVzLmg+Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX1NZU19FUE9MTF9ICi0jaW5jbHVkZSA8c3lzL2Vwb2xsLmg+Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX0xJQkFJT19ICi0jaW5jbHVkZSA8bGliYWlvLmg+Ci0jZW5kaWYKLQotI2lmIEhBVkVfTE9OR19MT05HX09GRl9UCi0vKgotICogSGFja3MgZm9yIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG9uZyBsb25nIG9mZl90Ci0gKi8KLSNkZWZpbmUgZmxvY2s2NAlmbG9jawkJLyogSG9ycmlkIGhhY2sgKi8KLSNkZWZpbmUgcHJpbnRmbG9jayBwcmludGZsb2NrNjQJLyogSG9ycmlkZXIgaGFjayAqLwotI2VuZGlmCi0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZjbnRsY21kc1tdID0gewotCXsgRl9EVVBGRCwJIkZfRFVQRkQiCX0sCi0JeyBGX0dFVEZELAkiRl9HRVRGRCIJfSwKLQl7IEZfU0VURkQsCSJGX1NFVEZEIgl9LAotCXsgRl9HRVRGTCwJIkZfR0VURkwiCX0sCi0JeyBGX1NFVEZMLAkiRl9TRVRGTCIJfSwKLQl7IEZfR0VUTEssCSJGX0dFVExLIgl9LAotCXsgRl9TRVRMSywJIkZfU0VUTEsiCX0sCi0JeyBGX1NFVExLVywJIkZfU0VUTEtXIgl9LAotCXsgRl9HRVRPV04sCSJGX0dFVE9XTiIJfSwKLQl7IEZfU0VUT1dOLAkiRl9TRVRPV04iCX0sCi0jaWZkZWYgRl9SU0VUTEsKLQl7IEZfUlNFVExLLAkiRl9SU0VUTEsiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1JTRVRMS1cKLQl7IEZfUlNFVExLVywJIkZfUlNFVExLVyIJfSwKLSNlbmRpZgotI2lmZGVmIEZfUkdFVExLCi0JeyBGX1JHRVRMSywJIkZfUkdFVExLIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9DTlZUCi0JeyBGX0NOVlQsCSJGX0NOVlQiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1NFVFNJRwotCXsgRl9TRVRTSUcsCSJGX1NFVFNJRyIJfSwKLSNlbmRpZgotI2lmZGVmIEZfR0VUU0lHCi0JeyBGX0dFVFNJRywJIkZfR0VUU0lHIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9DSEtGTAotCXsgRl9DSEtGTCwJIkZfQ0hLRkwiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX0RVUDJGRAotCXsgRl9EVVAyRkQsCSJGX0RVUDJGRCIJfSwKLSNlbmRpZgotI2lmZGVmIEZfQUxMT0NTUAotCXsgRl9BTExPQ1NQLAkiRl9BTExPQ1NQIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9JU1NUUkVBTQotCXsgRl9JU1NUUkVBTSwJIkZfSVNTVFJFQU0iCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1BSSVYKLQl7IEZfUFJJViwJIkZfUFJJViIJfSwKLSNlbmRpZgotI2lmZGVmIEZfTlBSSVYKLQl7IEZfTlBSSVYsCSJGX05QUklWIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9RVU9UQUNMCi0JeyBGX1FVT1RBQ0wsCSJGX1FVT1RBQ0wiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX0JMT0NLUwotCXsgRl9CTE9DS1MsCSJGX0JMT0NLUyIJfSwKLSNlbmRpZgotI2lmZGVmIEZfQkxLU0laRQotCXsgRl9CTEtTSVpFLAkiRl9CTEtTSVpFIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9HRVRPV04KLQl7IEZfR0VUT1dOLAkiRl9HRVRPV04iCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1NFVE9XTgotCXsgRl9TRVRPV04sCSJGX1NFVE9XTiIJfSwKLSNlbmRpZgotI2lmZGVmIEZfUkVWT0tFCi0JeyBGX1JFVk9LRSwJIkZfUkVWT0tFIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9TRVRMSwotCXsgRl9TRVRMSywJIkZfU0VUTEsiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1NFVExLVwotCXsgRl9TRVRMS1csCSJGX1NFVExLVyIJfSwKLSNlbmRpZgotI2lmZGVmIEZfRlJFRVNQCi0JeyBGX0ZSRUVTUCwJIkZfRlJFRVNQIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9HRVRMSwotCXsgRl9HRVRMSywJIkZfR0VUTEsiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX1NFVExLNjQKLQl7IEZfU0VUTEs2NCwJIkZfU0VUTEs2NCIJfSwKLSNlbmRpZgotI2lmZGVmIEZfU0VUTEtXNjQKLQl7IEZfU0VUTEtXNjQsCSJGX1NFVExLVzY0Igl9LAotI2VuZGlmCi0jaWZkZWYgRl9GUkVFU1A2NAotCXsgRl9GUkVFU1A2NCwJIkZfRlJFRVNQNjQiCX0sCi0jZW5kaWYKLSNpZmRlZiBGX0dFVExLNjQKLQl7IEZfR0VUTEs2NCwJIkZfR0VUTEs2NCIJfSwKLSNlbmRpZgotI2lmZGVmIEZfU0hBUkUKLQl7IEZfU0hBUkUsCSJGX1NIQVJFIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9VTlNIQVJFCi0JeyBGX1VOU0hBUkUsCSJGX1VOU0hBUkUiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZkZmxhZ3NbXSA9IHsKLSNpZmRlZiBGRF9DTE9FWEVDCi0JeyBGRF9DTE9FWEVDLAkiRkRfQ0xPRVhFQyIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jaWZkZWYgTE9DS19TSAotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgZmxvY2tjbWRzW10gPSB7Ci0JeyBMT0NLX1NILAkiTE9DS19TSCIJfSwKLQl7IExPQ0tfRVgsCSJMT0NLX0VYIgl9LAotCXsgTE9DS19OQiwJIkxPQ0tfTkIiCX0sCi0JeyBMT0NLX1VOLAkiTE9DS19VTiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotI2VuZGlmIC8qIExPQ0tfU0ggKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGxvY2tmY21kc1tdID0gewotCXsgRl9SRExDSywJIkZfUkRMQ0siCX0sCi0JeyBGX1dSTENLLAkiRl9XUkxDSyIJfSwKLQl7IEZfVU5MQ0ssCSJGX1VOTENLIgl9LAotI2lmZGVmIEZfRVhMQ0sKLQl7IEZfRVhMQ0ssCSJGX0VYTENLIgl9LAotI2VuZGlmCi0jaWZkZWYgRl9TSExDSwotCXsgRl9TSExDSywJIkZfU0hMQ0siCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHdoZW5jZVtdID0gewotCXsgU0VFS19TRVQsCSJTRUVLX1NFVCIJfSwKLQl7IFNFRUtfQ1VSLAkiU0VFS19DVVIiCX0sCi0JeyBTRUVLX0VORCwJIlNFRUtfRU5EIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi0vKiBmY250bC9sb2NrZiAqLwotc3RhdGljIHZvaWQKLXByaW50ZmxvY2sodGNwLCBhZGRyLCBnZXRsaykKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBnZXRsazsKLXsKLQlzdHJ1Y3QgZmxvY2sgZmw7Ci0KLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmZmwpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoInt0eXBlPSIpOwotCXByaW50eHZhbChsb2NrZmNtZHMsIGZsLmxfdHlwZSwgIkZfPz8/Iik7Ci0JdHByaW50ZigiLCB3aGVuY2U9Iik7Ci0JcHJpbnR4dmFsKHdoZW5jZSwgZmwubF93aGVuY2UsICJTRUVLXz8/PyIpOwotCXRwcmludGYoIiwgc3RhcnQ9JWxkLCBsZW49JWxkIiwgZmwubF9zdGFydCwgZmwubF9sZW4pOwotCWlmIChnZXRsaykKLQkJdHByaW50ZigiLCBwaWQ9JWx1fSIsICh1bnNpZ25lZCBsb25nKSBmbC5sX3BpZCk7Ci0JZWxzZQotCQl0cHJpbnRmKCJ9Iik7Ci19Ci0jZW5kaWYKLQotI2lmIF9MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1QKLS8qIGZjbnRsL2xvY2tmICovCi1zdGF0aWMgdm9pZAotcHJpbnRmbG9jazY0KHRjcCwgYWRkciwgZ2V0bGspCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1pbnQgZ2V0bGs7Ci17Ci0Jc3RydWN0IGZsb2NrNjQgZmw7Ci0KLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmZmwpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoInt0eXBlPSIpOwotCXByaW50eHZhbChsb2NrZmNtZHMsIGZsLmxfdHlwZSwgIkZfPz8/Iik7Ci0JdHByaW50ZigiLCB3aGVuY2U9Iik7Ci0JcHJpbnR4dmFsKHdoZW5jZSwgZmwubF93aGVuY2UsICJTRUVLXz8/PyIpOwotCXRwcmludGYoIiwgc3RhcnQ9JWxsZCwgbGVuPSVsbGQiLCAobG9uZyBsb25nKSBmbC5sX3N0YXJ0LCAobG9uZyBsb25nKSBmbC5sX2xlbik7Ci0JaWYgKGdldGxrKQotCQl0cHJpbnRmKCIsIHBpZD0lbHV9IiwgKHVuc2lnbmVkIGxvbmcpIGZsLmxfcGlkKTsKLQllbHNlCi0JCXRwcmludGYoIn0iKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgY2hhciAqCi1zcHJpbnRmbGFncyh4bGF0LCBmbGFncykKLWNvbnN0IHN0cnVjdCB4bGF0ICp4bGF0OwotaW50IGZsYWdzOwotewotCXN0YXRpYyBjaGFyIG91dHN0clsxMDI0XTsKLQljaGFyICpzZXA7Ci0KLQlzdHJjcHkob3V0c3RyLCAiZmxhZ3MgIik7Ci0Jc2VwID0gIiI7Ci0JZm9yICg7IHhsYXQtPnN0cjsgeGxhdCsrKSB7Ci0JCWlmICgoZmxhZ3MgJiB4bGF0LT52YWwpID09IHhsYXQtPnZhbCkgewotCQkJc3ByaW50ZihvdXRzdHIgKyBzdHJsZW4ob3V0c3RyKSwKLQkJCQkiJXMlcyIsIHNlcCwgeGxhdC0+c3RyKTsKLQkJCXNlcCA9ICJ8IjsKLQkJCWZsYWdzICY9IH54bGF0LT52YWw7Ci0JCX0KLQl9Ci0JaWYgKGZsYWdzKQotCQlzcHJpbnRmKG91dHN0ciArIHN0cmxlbihvdXRzdHIpLAotCQkJIiVzJSN4Iiwgc2VwLCBmbGFncyk7Ci0JcmV0dXJuIG91dHN0cjsKLX0KLQotaW50Ci1zeXNfZmNudGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWV4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBvcGVubW9kZXNbXTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50eHZhbChmY250bGNtZHMsIHRjcC0+dV9hcmdbMV0sICJGXz8/PyIpOwotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSBGX1NFVEZEOgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxhZ3MoZmRmbGFncywgdGNwLT51X2FyZ1syXSwgIkZEXz8/PyIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgRl9TRVRPV046IGNhc2UgRl9EVVBGRDoKLQkJCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7Ci0JCQlicmVhazsKLQkJY2FzZSBGX1NFVEZMOgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxhZ3Mob3Blbm1vZGVzLCB0Y3AtPnVfYXJnWzJdICsgMSwgIk9fPz8/Iik7Ci0JCQlicmVhazsKLQkJY2FzZSBGX1NFVExLOiBjYXNlIEZfU0VUTEtXOgotI2lmZGVmIEZfRlJFRVNQCi0JCWNhc2UgRl9GUkVFU1A6Ci0jZW5kaWYKLQkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludGZsb2NrKHRjcCwgdGNwLT51X2FyZ1syXSwgMCk7Ci0JCQlicmVhazsKLSNpZiBfTEZTNjRfTEFSR0VGSUxFCi0jaWZkZWYgRl9GUkVFU1A2NAotCQljYXNlIEZfRlJFRVNQNjQ6Ci0jZW5kaWYKLQkJLyogTGludXggZ2xpYmMgZGVmaW5lcyBTRVRMSzY0IGFzIFNFVExLLAotCQkgICBldmVuIHRob3VnaCB0aGUga2VybmVsIGhhcyBkaWZmZXJlbnQgdmFsdWVzIC0gYXMgZG9lcyBTb2xhcmlzLiAqLwotI2lmIGRlZmluZWQoRl9TRVRMSzY0KSAmJiBGX1NFVExLNjQrMCE9Rl9TRVRMSwotCQljYXNlIEZfU0VUTEs2NDoKLSNlbmRpZgotI2lmIGRlZmluZWQoRl9TRVRMS1c2NCkgJiYgRl9TRVRMS1c2NCswIT1GX1NFVExLVwotCQljYXNlIEZfU0VUTEtXNjQ6Ci0jZW5kaWYKLQkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludGZsb2NrNjQodGNwLCB0Y3AtPnVfYXJnWzJdLCAwKTsKLQkJCWJyZWFrOwotI2VuZGlmCi0gCQl9Ci0JfQotCWVsc2UgewotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSBGX0RVUEZEOgotCQljYXNlIEZfU0VURkQ6IGNhc2UgRl9TRVRGTDoKLQkJY2FzZSBGX1NFVExLOiBjYXNlIEZfU0VUTEtXOgotCQljYXNlIEZfU0VUT1dOOiBjYXNlIEZfR0VUT1dOOgotCQkJYnJlYWs7Ci0JCWNhc2UgRl9HRVRGRDoKLQkJCWlmICh0Y3AtPnVfcnZhbCA9PSAwKQotCQkJCXJldHVybiAwOwotCQkJdGNwLT5hdXhzdHIgPSBzcHJpbnRmbGFncyhmZGZsYWdzLCB0Y3AtPnVfcnZhbCk7Ci0JCQlyZXR1cm4gUlZBTF9IRVh8UlZBTF9TVFI7Ci0JCWNhc2UgRl9HRVRGTDoKLQkJCXRjcC0+YXV4c3RyID0gc3ByaW50ZmxhZ3Mob3Blbm1vZGVzLCB0Y3AtPnVfcnZhbCArIDEpOwotCQkJcmV0dXJuIFJWQUxfSEVYfFJWQUxfU1RSOwotCQljYXNlIEZfR0VUTEs6Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnRmbG9jayh0Y3AsIHRjcC0+dV9hcmdbMl0sIDEpOwotCQkJYnJlYWs7Ci0jaWYgX0xGUzY0X0xBUkdFRklMRQotI2lmIGRlZmluZWQoRl9HRVRMSzY0KSAmJiBGX0dFVExLNjQrMCE9Rl9HRVRMSwotCQljYXNlIEZfR0VUTEs2NDoKLSNlbmRpZgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxvY2s2NCh0Y3AsIHRjcC0+dV9hcmdbMl0sIDEpOwotCQkJYnJlYWs7Ci0jZW5kaWYKLSAJCWRlZmF1bHQ6Ci0JCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTE9DS19TSAotCi1pbnQKLXN5c19mbG9jayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRmbGFncyhmbG9ja2NtZHMsIHRjcC0+dV9hcmdbMV0sICJMT0NLXz8/PyIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBMT0NLX1NIICovCi0KLWludAotc3lzX2Nsb3NlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2R1cCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19kdXAyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0ZHRhYmxlc2l6ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQKLWRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCBiaXRuZXNzKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyAqYXJnczsKLWludCBiaXRuZXNzOwotewotCWludCBpLCBqLCBuZmRzOwotCXVuc2lnbmVkIGludCBmZHNpemUgPSAoKCgoYXJnc1swXSArIDcpIC8gOCkgKyBzaXplb2YobG9uZykgLSAxKQotCQkJICAgICAgICYgLXNpemVvZihsb25nKSk7Ci0JZmRfc2V0ICpmZHM7Ci0Jc3RydWN0IHRpbWV2YWwgdHY7Ci0jaWZkZWYgQUxQSEEKLQlzdHJ1Y3QgdGltZXZhbDMyIHsKLQkJdW5zaWduZWQgdHZfc2VjOwotCQl1bnNpZ25lZCB0dl91c2VjOwotCX0gKnR2MzI7Ci0jZW5kaWYKLQlzdGF0aWMgY2hhciBvdXRzdHJbMTAyNF07Ci0JY2hhciAqc2VwOwotCWxvbmcgYXJnOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJZmRzID0gKGZkX3NldCAqKSBtYWxsb2MoZmRzaXplKTsKLQkJaWYgKGZkcyA9PSBOVUxMKQotCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJbmZkcyA9IGFyZ3NbMF07Ci0JCXRwcmludGYoIiVkIiwgbmZkcyk7Ci0JCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLQkJCWFyZyA9IGFyZ3NbaSsxXTsKLQkJCWlmIChhcmcgPT0gMCkgewotCQkJCXRwcmludGYoIiwgTlVMTCIpOwotCQkJCWNvbnRpbnVlOwotCQkJfQotCQkJaWYgKGZkcyA9PSBOVUxMIHx8ICF2ZXJib3NlKHRjcCkpIHsKLQkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOwotCQkJCWNvbnRpbnVlOwotCQkJfQotCQkJaWYgKHVtb3Zlbih0Y3AsIGFyZywgZmRzaXplLCAoY2hhciAqKSBmZHMpIDwgMCkgewotCQkJCXRwcmludGYoIiwgWz9dIik7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0JCQl0cHJpbnRmKCIsIFsiKTsKLQkJCWZvciAoaiA9IDAsIHNlcCA9ICIiOyBqIDwgbmZkczsgaisrKSB7Ci0JCQkJaWYgKEZEX0lTU0VUKGosIGZkcykpIHsKLQkJCQkJdHByaW50ZigiJXMldSIsIHNlcCwgaik7Ci0JCQkJCXNlcCA9ICIgIjsKLQkJCQl9Ci0JCQl9Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCX0KLQkJZnJlZShmZHMpOwotCQlpZiAoIWFyZ3NbNF0pCi0JCQl0cHJpbnRmKCIsIE5VTEwiKTsKLQkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJCXRwcmludGYoIiwgJSNseCIsIGFyZ3NbNF0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIGFyZ3NbNF0sICZ0dikgPCAwKQotCQkJdHByaW50ZigiLCB7Li4ufSIpOwotCQllbHNlIHsKLSNpZmRlZiBBTFBIQQotCQkJaWYgKGJpdG5lc3MpIHsKLQkJCQl0djMyPShzdHJ1Y3QgdGltZXZhbDMyKikmdHY7Ci0JCQkJdHByaW50ZigiLCB7JXUsICV1fSIsIHR2MzItPnR2X3NlYywgdHYzMi0+dHZfdXNlYyk7Ci0JCQl9IGVsc2UKLSNlbmRpZgotCQkJCXRwcmludGYoIiwgeyVsdSwgJWx1fSIsCi0JCQkJCShsb25nKSB0di50dl9zZWMsIChsb25nKSB0di50dl91c2VjKTsKLQkJfQotCX0KLQllbHNlCi0JewotCQl1bnNpZ25lZCBpbnQgY3VtbGVuID0gMDsKLQkJY2hhciAqc2VwID0gIiI7Ci0KLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQotCQlpZiAoKG5mZHMgPSB0Y3AtPnVfcnZhbCkgPT0gMCkgewotCQkJdGNwLT5hdXhzdHIgPSAiVGltZW91dCI7Ci0JCQlyZXR1cm4gUlZBTF9TVFI7Ci0JCX0KLQotCQlmZHMgPSAoZmRfc2V0ICopIG1hbGxvYyhmZHNpemUpOwotCQlpZiAoZmRzID09IE5VTEwpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOwotCi0JCW91dHN0clswXSA9ICdcMCc7Ci0JCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLQkJCWludCBmaXJzdCA9IDE7Ci0JCQljaGFyIHN0clsyMF07Ci0KLQkJCXRjcC0+YXV4c3RyID0gb3V0c3RyOwotCQkJYXJnID0gYXJnc1tpKzFdOwotCQkJaWYgKGZkcyA9PSBOVUxMIHx8ICFhcmcgfHwKLQkJCSAgICB1bW92ZW4odGNwLCBhcmcsIGZkc2l6ZSwgKGNoYXIgKikgZmRzKSA8IDApCi0JCQkJY29udGludWU7Ci0JCQlmb3IgKGogPSAwOyBqIDwgYXJnc1swXTsgaisrKSB7Ci0JCQkJaWYgKEZEX0lTU0VUKGosIGZkcykpIHsKLQkJCQkJaWYgKGZpcnN0KSB7Ci0JCQkJCQlzcHJpbnRmKHN0ciwgIiVzJXMgWyV1Iiwgc2VwLAotCQkJCQkJCWkgPT0gMCA/ICJpbiIgOgotCQkJCQkJCWkgPT0gMSA/ICJvdXQiIDoKLQkJCQkJCQkiZXhjZXB0Iiwgaik7Ci0JCQkJCQlmaXJzdCA9IDA7Ci0JCQkJCQlzZXAgPSAiLCAiOwotCQkJCQl9Ci0JCQkJCWVsc2UKLQkJCQkJCXNwcmludGYoc3RyLCAiICV1Iiwgaik7Ci0JCQkJCWN1bWxlbiArPSBzdHJsZW4oc3RyKTsKLQkJCQkJaWYgKGN1bWxlbiA8IHNpemVvZihvdXRzdHIpKQotCQkJCQkJc3RyY2F0KG91dHN0ciwgc3RyKTsKLQkJCQkJbmZkcy0tOwotCQkJCX0KLQkJCX0KLQkJCWlmIChjdW1sZW4pCi0JCQkJc3RyY2F0KG91dHN0ciwgIl0iKTsKLQkJCWlmIChuZmRzID09IDApCi0JCQkJYnJlYWs7Ci0JCX0KLQkJZnJlZShmZHMpOwotI2lmZGVmIExJTlVYCi0JCS8qIFRoaXMgY29udGFpbnMgbm8gdXNlZnVsIGluZm9ybWF0aW9uIG9uIFN1bk9TLiAgKi8KLQkJaWYgKGFyZ3NbNF0pIHsKLQkJCWNoYXIgc3RyWzY0XTsKLQotCQkJaWYgKHVtb3ZlKHRjcCwgYXJnc1s0XSwgJnR2KSA+PSAwKSB7Ci0jaWZkZWYgQUxQSEEKLQkJCQlpZiAoYml0bmVzcykgewotCQkJCQl0djMyPShzdHJ1Y3QgdGltZXZhbDMyKikmdHY7Ci0JCQkJCXNwcmludGYoc3RyLCAiJXNsZWZ0IHsldSwgJXV9Iiwgc2VwLAotCQkJCQkJdHYzMi0+dHZfc2VjLCB0djMyLT50dl91c2VjKTsKLQkJCQl9IGVsc2UKLSNlbmRpZgotCQkJCQlzcHJpbnRmKHN0ciwgIiVzbGVmdCB7JWx1LCAlbHV9Iiwgc2VwLAotCQkJCQkJKGxvbmcpIHR2LnR2X3NlYywgKGxvbmcpIHR2LnR2X3VzZWMpOwotCi0JCQkJaWYgKChjdW1sZW4gKz0gc3RybGVuKHN0cikpIDwgc2l6ZW9mKG91dHN0cikpCi0JCQkJCXN0cmNhdChvdXRzdHIsIHN0cik7Ci0JCQl9Ci0JCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCQlyZXR1cm4gUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVgKLQotaW50Ci1zeXNfb2xkc2VsZWN0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlsb25nIGFyZ3NbNV07Ci0KLQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIGFyZ3MsIChjaGFyICopIGFyZ3MpIDwgMCkgewotCQl0cHJpbnRmKCJbLi4uXSIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIGRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCAwKTsKLX0KLQotI2lmZGVmIEFMUEhBCi1pbnQKLXN5c19vc2Zfc2VsZWN0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlsb25nICphcmdzID0gdGNwLT51X2FyZzsKLQlyZXR1cm4gZGVjb2RlX3NlbGVjdCh0Y3AsIGFyZ3MsIDEpOwotfQotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgeGxhdCBlcG9sbGN0bHNbXSA9IHsKLSNpZmRlZiBFUE9MTF9DVExfQURECi0JeyBFUE9MTF9DVExfQURELAkiRVBPTExfQ1RMX0FERCIJfSwKLSNlbmRpZgotI2lmZGVmIEVQT0xMX0NUTF9NT0QKLQl7IEVQT0xMX0NUTF9NT0QsCSJFUE9MTF9DVExfTU9EIgl9LAotI2VuZGlmCi0jaWZkZWYgRVBPTExfQ1RMX0RFTAotCXsgRVBPTExfQ1RMX0RFTCwJIkVQT0xMX0NUTF9ERUwiCX0sCi0jZW5kaWYKLQl7IDAsCQkJTlVMTAkJfQotfTsKLQotc3RhdGljIHN0cnVjdCB4bGF0IGVwb2xsZXZlbnRzW10gPSB7Ci0jaWZkZWYgRVBPTExJTgotCXsgRVBPTExJTiwJIkVQT0xMSU4iCX0sCi0jZW5kaWYKLSNpZmRlZiBFUE9MTFBSSQotCXsgRVBPTExQUkksCSJFUE9MTFBSSSIJfSwKLSNlbmRpZgotI2lmZGVmIEVQT0xMT1VUCi0JeyBFUE9MTE9VVCwJIkVQT0xMT1VUIgl9LAotI2VuZGlmCi0jaWZkZWYgRVBPTExSRE5PUk0KLQl7IEVQT0xMUkROT1JNLAkiRVBPTExSRE5PUk0iCX0sCi0jZW5kaWYKLSNpZmRlZiBFUE9MTFJEQkFORAotCXsgRVBPTExSREJBTkQsCSJFUE9MTFJEQkFORCIJfSwKLSNlbmRpZgotI2lmZGVmIEVQT0xMV1JOT1JNCi0JeyBFUE9MTFdSTk9STSwJIkVQT0xMV1JOT1JNIgl9LAotI2VuZGlmCi0jaWZkZWYgRVBPTExXUkJBTkQKLQl7IEVQT0xMV1JCQU5ELAkiRVBPTExXUkJBTkQiCX0sCi0jZW5kaWYKLSNpZmRlZiBFUE9MTE1TRwotCXsgRVBPTExNU0csCSJFUE9MTE1TRyIJfSwKLSNlbmRpZgotI2lmZGVmIEVQT0xMRVJSCi0JeyBFUE9MTEVSUiwJIkVQT0xMRVJSIgl9LAotI2VuZGlmCi0jaWZkZWYgRVBPTExIVVAKLQl7IEVQT0xMSFVQLAkiRVBPTExIVVAiCX0sCi0jZW5kaWYKLSNpZmRlZiBFUE9MTE9ORVNIT1QKLQl7IEVQT0xMT05FU0hPVCwJIkVQT0xMT05FU0hPVCIJfSwKLSNlbmRpZgotI2lmZGVmIEVQT0xMRVQKLQl7IEVQT0xMRVQsCSJFUE9MTEVUIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfQotfTsKLQotaW50Ci1zeXNfZXBvbGxfY3JlYXRlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBIQVZFX1NZU19FUE9MTF9ICi1zdGF0aWMgdm9pZAotcHJpbnRfZXBvbGxfZXZlbnQoZXYpCi1zdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2OwotewotCXRwcmludGYoInsiKTsKLQlwcmludGZsYWdzKGVwb2xsZXZlbnRzLCBldi0+ZXZlbnRzLCAiRVBPTEw/Pz8iKTsKLQkvKiBXZSBjYW5ub3Qga25vdyB3aGF0IGZvcm1hdCB0aGUgcHJvZ3JhbSB1c2VzLCBzbyBwcmludCB1MzIgYW5kIHU2NAotCSAgIHdoaWNoIHdpbGwgY292ZXIgZXZlcnkgdmFsdWUuICAqLwotCXRwcmludGYoIiwge3UzMj0lIiBQUkl1MzIgIiwgdTY0PSUiIFBSSXU2NCAifX0iLAotCQlldi0+ZGF0YS51MzIsIGV2LT5kYXRhLnU2NCk7Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfZXBvbGxfY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotICAgICAgICAgICAgICAgIHByaW50eHZhbChlcG9sbGN0bHMsIHRjcC0+dV9hcmdbMV0sICJFUE9MTF9DVExfPz8/Iik7Ci0JCXRwcmludGYoIiwgJWxkLCAiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJaWYgKHRjcC0+dV9hcmdbM10gPT0gMCkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSB7Ci0jaWZkZWYgSEFWRV9TWVNfRVBPTExfSAotCQkJc3RydWN0IGVwb2xsX2V2ZW50IGV2OwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJmV2KSA9PSAwKQotCQkJCXByaW50X2Vwb2xsX2V2ZW50KCZldik7Ci0JCQllbHNlCi0jZW5kaWYKLQkJCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19lcG9sbF93YWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQllbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZSBpZiAodGNwLT51X3J2YWwgPT0gMCkKLQkJCXRwcmludGYoInt9Iik7Ci0JCWVsc2UgewotI2lmZGVmIEhBVkVfU1lTX0VQT0xMX0gKLQkJCXN0cnVjdCBlcG9sbF9ldmVudCBldiwgKnN0YXJ0LCAqY3VyLCAqZW5kOwotCQkJaW50IGZhaWxlZCA9IDA7Ci0KLQkJCXRwcmludGYoInsiKTsKLQkJCXN0YXJ0ID0gKHN0cnVjdCBlcG9sbF9ldmVudCAqKSB0Y3AtPnVfYXJnWzFdOwotCQkJZW5kID0gc3RhcnQgKyB0Y3AtPnVfcnZhbDsKLQkJCWZvciAoY3VyID0gc3RhcnQ7IGN1ciA8IGVuZDsgKytjdXIpIHsKLQkJCQlpZiAoY3VyID4gc3RhcnQpCi0JCQkJCXRwcmludGYoIiwgIik7Ci0JCQkJaWYgKHVtb3ZlKHRjcCwgKGxvbmcpIGN1ciwgJmV2KSA9PSAwKQotCQkJCQlwcmludF9lcG9sbF9ldmVudCgmZXYpOwotCQkJCWVsc2UgewotCQkJCQl0cHJpbnRmKCI/Iik7Ci0JCQkJCWZhaWxlZCA9IDE7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQkJCXRwcmludGYoIn0iKTsKLQkJCWlmIChmYWlsZWQpCi0JCQkJdHByaW50ZigiICUjbHgiLCAobG9uZykgc3RhcnQpOwotI2Vsc2UKLQkJCXRwcmludGYoInsuLi59Iik7Ci0jZW5kaWYKLQkJfQotCQl0cHJpbnRmKCIsICVsZCwgJWxkIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19pb19zZXR1cCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiMHglMGx4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgewotCQkJdW5zaWduZWQgbG9uZyB1c2VyX2lkOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnVzZXJfaWQpID09IDApCi0JCQkJdHByaW50ZigieyVsdX0iLCB1c2VyX2lkKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19pb19kZXN0cm95KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2lvX3N1Ym1pdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JbG9uZyBucjsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICVsZCwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCW5yID0gdGNwLT51X2FyZ1sxXTsKLQkJLyogYW5kIGlmIG5yIGlzIG5lZ2F0aXZlPyAqLwotCQlpZiAobnIgPT0gMCkKLQkJCXRwcmludGYoInt9Iik7Ci0JCWVsc2UgewotI2lmZGVmIEhBVkVfTElCQUlPX0gKLQkJCWxvbmcgaTsKLQkJCXN0cnVjdCBpb2NiICppb2NicCwgKippb2NicyA9ICh2b2lkICopdGNwLT51X2FyZ1syXTsKLQotCQkJZm9yIChpID0gMDsgaSA8IG5yOyBpKyssIGlvY2JzKyspIHsKLQkJCQlzdHJ1Y3QgaW9jYiBpb2NiOwotCQkJCWlmIChpID09IDApCi0JCQkJCXRwcmludGYoInsiKTsKLQkJCQllbHNlCi0JCQkJCXRwcmludGYoIiwgIik7Ci0KLQkJCQlpZiAodW1vdmUodGNwLCAodW5zaWduZWQgbG9uZylpb2NicywgJmlvY2JwKSB8fAotCQkJCSAgICB1bW92ZSh0Y3AsICh1bnNpZ25lZCBsb25nKWlvY2JwLCAmaW9jYikpIHsKLQkJCQkJdHByaW50Zigiey4uLn0iKTsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJCXRwcmludGYoInslcCwgJXUsICVodSwgJWh1LCAlZH0iLAotCQkJCQlpb2NiLmRhdGEsIGlvY2Iua2V5LAotCQkJCQlpb2NiLmFpb19saW9fb3Bjb2RlLAotCQkJCQlpb2NiLmFpb19yZXFwcmlvLCBpb2NiLmFpb19maWxkZXMpOwotCQkJfQotCQkJaWYgKGkpCi0JCQkJdHByaW50ZigifSIpOwotI2Vsc2UKLQkJCXRwcmludGYoInsuLi59Iik7Ci0jZW5kaWYKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfaW9fY2FuY2VsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotI2lmZGVmIEhBVkVfTElCQUlPX0gKLQkJc3RydWN0IGlvY2IgaW9jYjsKLSNlbmRpZgotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotI2lmZGVmIEhBVkVfTElCQUlPX0gKLQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJmlvY2IpID09IDApIHsKLQkJCXRwcmludGYoInslcCwgJXUsICVodSwgJWh1LCAlZH0sICIsCi0JCQkJaW9jYi5kYXRhLCBpb2NiLmtleSwKLQkJCQlpb2NiLmFpb19saW9fb3Bjb2RlLAotCQkJCWlvY2IuYWlvX3JlcXByaW8sIGlvY2IuYWlvX2ZpbGRlcyk7Ci0JCX0gZWxzZQotI2VuZGlmCi0JCQl0cHJpbnRmKCJ7Li4ufSwgIik7Ci0JfSBlbHNlIHsKLQkJaWYgKHRjcC0+dV9ydmFsIDwgMCkKLQkJCXRwcmludGYoInsuLi59Iik7Ci0JCWVsc2UgewotI2lmZGVmIEhBVkVfTElCQUlPX0gKLQkJCXN0cnVjdCBpb19ldmVudCBldmVudDsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZldmVudCkgPT0gMCkKLQkJCQl0cHJpbnRmKCJ7JXAsICVwLCAlbGQsICVsZH0iLAotCQkJCQlldmVudC5kYXRhLCBldmVudC5vYmosCi0JCQkJCWV2ZW50LnJlcywgZXZlbnQucmVzMik7Ci0JCQllbHNlIAotI2VuZGlmCi0JCQkJdHByaW50Zigiey4uLn0iKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfaW9fZ2V0ZXZlbnRzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdLAotCQkJdGNwLT51X2FyZ1syXSk7Ci0JfSBlbHNlIHsKLQkJaWYgKHRjcC0+dV9ydmFsID09IDApIHsKLQkJCXRwcmludGYoInt9Iik7Ci0JCX0gZWxzZSAgewotI2lmZGVmIEhBVkVfTElCQUlPX0gKLQkJCXN0cnVjdCBpb19ldmVudCAqZXZlbnRzID0gKHZvaWQgKil0Y3AtPnVfYXJnWzNdOwotCQkJbG9uZyBpLCBuciA9IHRjcC0+dV9ydmFsOwotCi0JCQlmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKywgZXZlbnRzKyspIHsKLQkJCQlzdHJ1Y3QgaW9fZXZlbnQgZXZlbnQ7Ci0KLQkJCQlpZiAoaSA9PSAwKQotCQkJCQl0cHJpbnRmKCJ7Iik7Ci0JCQkJZWxzZQotCQkJCQl0cHJpbnRmKCIsICIpOwotCi0JCQkJaWYgKHVtb3ZlKHRjcCwgKHVuc2lnbmVkIGxvbmcpZXZlbnRzLCAmZXZlbnQpICE9IDApIHsKLQkJCQkJdHByaW50Zigiey4uLn0iKTsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJCXRwcmludGYoInslcCwgJXAsICVsZCwgJWxkfSIsIGV2ZW50LmRhdGEsCi0JCQkJCWV2ZW50Lm9iaiwgZXZlbnQucmVzLCBldmVudC5yZXMyKTsKLQkJCX0KLQkJCXRwcmludGYoIn0sICIpOwotI2Vsc2UKLQkJCQl0cHJpbnRmKCJ7Li4ufSIpOwotI2VuZGlmCi0JCX0KLQotCQlpZiAodGNwLT51X2FyZ1s0XSA9PSAwKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIHsKLQkJCXN0cnVjdCB0aW1lc3BlYyB0bzsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZ0bykgPT0gMCkKLQkJCQl0cHJpbnRmKCJ7JWx1LCAlbHV9IiwgdG8udHZfc2VjLCB0by50dl9uc2VjKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIExJTlVYICovCi0KLWludAotc3lzX3NlbGVjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JbG9uZyAqYXJncyA9IHRjcC0+dV9hcmc7Ci0JcmV0dXJuIGRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCAwKTsKLX0KZGlmZiAtLWdpdCBhL2Vycm5vZW50LnNoIGIvZXJybm9lbnQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOGZkYTAuLjAwMDAwMDAKLS0tIGEvZXJybm9lbnQuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIS9iaW4vc2gKLSMgQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0jIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIwkkSWQ6IGVycm5vZW50LnNoLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIyOjA5IHdpY2hlcnQgRXhwICQKLQotYXdrICcKLS9eI2RlZmluZVsgCV0rRVtBLVowLTlfXStbIAldK1swLTldKy8gewotCWVycm5vWyQzXSA9ICQyCi0JaWYgKCQzID4gbWF4KQotCQltYXggPSAkMwotfQotRU5EIHsKLQlmb3IgKGkgPSAwOyBpIDw9IG1heDsgaSsrKSB7Ci0JCWlmICghZXJybm9baV0pCi0JCQllcnJub1tpXSA9ICJFUlJOT18iIGkKLQkJcHJpbnRmICJcdFwiJXNcIiwgLyogJWQgKi9cbiIsIGVycm5vW2ldLCBpCi0JfQotfQotJyAkKgpkaWZmIC0tZ2l0IGEvZmlsZS5jIGIvZmlsZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGY5NzE1Li4wMDAwMDAwCi0tLSBhL2ZpbGUuYworKysgL2Rldi9udWxsCkBAIC0xLDI1NjIgKzAsMCBAQAotLyoKLSNpZmRlZiBMSU5VWAotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogZmlsZS5jLHYgMS43NSAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpZiBkZWZpbmVkKExJTlVYKQotI2RlZmluZSBkaXJlbnQga2VybmVsX2RpcmVudAotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNkZWZpbmUgZGlyZW50NjQga2VybmVsX2RpcmVudDY0Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxsaW51eC9mYWR2aXNlLmg+Ci0KLS8vIEFORFJPSUQ6IEZyb20ga2VybmVsX2hlYWRlcnMvYXNtL3N0YXRmcy5oCi0KLS8qCi0gKiBXaXRoIEVBQkkgdGhlcmUgaXMgNCBieXRlcyBvZiBwYWRkaW5nIGFkZGVkIHRvIHRoaXMgc3RydWN0dXJlLgotICogTGV0J3MgcGFjayBpdCBzbyB0aGUgcGFkZGluZyBnb2VzIGF3YXkgdG8gc2ltcGxpZnkgZHVhbCBBQkkgc3VwcG9ydC4KLSAqIE5vdGUgdGhhdCB1c2VyIHNwYWNlIGRvZXMgTk9UIGhhdmUgdG8gcGFjayB0aGlzIHN0cnVjdHVyZS4KLSAqLwotc3RydWN0IHN0YXRmczY0IHsKLSAgICAgICAgX191MzIgZl90eXBlOwotICAgICAgICBfX3UzMiBmX2JzaXplOwotICAgICAgICBfX3U2NCBmX2Jsb2NrczsKLSAgICAgICAgX191NjQgZl9iZnJlZTsKLSAgICAgICAgX191NjQgZl9iYXZhaWw7Ci0gICAgICAgIF9fdTY0IGZfZmlsZXM7Ci0gICAgICAgIF9fdTY0IGZfZmZyZWU7Ci0gICAgICAgIF9fa2VybmVsX2ZzaWRfdCBmX2ZzaWQ7Ci0gICAgICAgIF9fdTMyIGZfbmFtZWxlbjsKLSAgICAgICAgX191MzIgZl9mcnNpemU7Ci0gICAgICAgIF9fdTMyIGZfc3BhcmVbNV07Ci19IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwotCi0KLQotCi0jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9kaXJlbnQuaD4KLSN1bmRlZiBkaXJlbnQKLSN1bmRlZiBkaXJlbnQ2NAotI2Vsc2UKLSNkZWZpbmUga2VybmVsX2RpcmVudCBkaXJlbnQKLSNlbmRpZgotCi0jaWZkZWYgTElOVVgKLSMgIGlmZGVmIExJTlVYU1BBUkMKLXN0cnVjdCBzdGF0IHsKLQl1bnNpZ25lZCBzaG9ydAlzdF9kZXY7Ci0JdW5zaWduZWQgaW50CXN0X2lubzsKLQl1bnNpZ25lZCBzaG9ydAlzdF9tb2RlOwotCXNob3J0CQlzdF9ubGluazsKLQl1bnNpZ25lZCBzaG9ydAlzdF91aWQ7Ci0JdW5zaWduZWQgc2hvcnQJc3RfZ2lkOwotCXVuc2lnbmVkIHNob3J0CXN0X3JkZXY7Ci0JdW5zaWduZWQgaW50CXN0X3NpemU7Ci0JaW50CQlzdF9hdGltZTsKLQl1bnNpZ25lZCBpbnQJX191bnVzZWQxOwotCWludAkJc3RfbXRpbWU7Ci0JdW5zaWduZWQgaW50CV9fdW51c2VkMjsKLQlpbnQJCXN0X2N0aW1lOwotCXVuc2lnbmVkIGludAlfX3VudXNlZDM7Ci0JaW50CQlzdF9ibGtzaXplOwotCWludAkJc3RfYmxvY2tzOwotCXVuc2lnbmVkIGludAlfX3VudXNlZDRbMl07Ci19OwotI2lmIGRlZmluZWQoU1BBUkM2NCkKLXN0cnVjdCBzdGF0X3NwYXJjNjQgewotCXVuc2lnbmVkIGludAlzdF9kZXY7Ci0JdW5zaWduZWQgbG9uZwlzdF9pbm87Ci0JdW5zaWduZWQgaW50CXN0X21vZGU7Ci0JdW5zaWduZWQgaW50CXN0X25saW5rOwotCXVuc2lnbmVkIGludAlzdF91aWQ7Ci0JdW5zaWduZWQgaW50CXN0X2dpZDsKLQl1bnNpZ25lZCBpbnQJc3RfcmRldjsKLQlsb25nCQlzdF9zaXplOwotCWxvbmcJCXN0X2F0aW1lOwotCWxvbmcJCXN0X210aW1lOwotCWxvbmcJCXN0X2N0aW1lOwotCWxvbmcJCXN0X2Jsa3NpemU7Ci0JbG9uZwkJc3RfYmxvY2tzOwotCXVuc2lnbmVkIGxvbmcJX191bnVzZWQ0WzJdOwotfTsKLSNlbmRpZiAvKiBTUEFSQzY0ICovCi0jICAgIGRlZmluZSBzdGF0IGtlcm5lbF9zdGF0Ci0jICAgIGluY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0jICAgIHVuZGVmIHN0YXQKLSMgIGVsc2UKLSMgICAgdW5kZWYgZGV2X3QKLSMgICAgdW5kZWYgaW5vX3QKLSMgICAgdW5kZWYgbW9kZV90Ci0jICAgIHVuZGVmIG5saW5rX3QKLSMgICAgdW5kZWYgdWlkX3QKLSMgICAgdW5kZWYgZ2lkX3QKLSMgICAgdW5kZWYgb2ZmX3QKLSMgICAgdW5kZWYgbG9mZl90Ci0KLSMgICAgZGVmaW5lIGRldl90IF9fa2VybmVsX2Rldl90Ci0jICAgIGRlZmluZSBpbm9fdCBfX2tlcm5lbF9pbm9fdAotIyAgICBkZWZpbmUgbW9kZV90IF9fa2VybmVsX21vZGVfdAotIyAgICBkZWZpbmUgbmxpbmtfdCBfX2tlcm5lbF9ubGlua190Ci0jICAgIGRlZmluZSB1aWRfdCBfX2tlcm5lbF91aWRfdAotIyAgICBkZWZpbmUgZ2lkX3QgX19rZXJuZWxfZ2lkX3QKLSMgICAgZGVmaW5lIG9mZl90IF9fa2VybmVsX29mZl90Ci0jICAgIGRlZmluZSBsb2ZmX3QgX19rZXJuZWxfbG9mZl90Ci0KLSMgICAgaW5jbHVkZSA8YXNtL3N0YXQuaD4KLQotIyAgICB1bmRlZiBkZXZfdAotIyAgICB1bmRlZiBpbm9fdAotIyAgICB1bmRlZiBtb2RlX3QKLSMgICAgdW5kZWYgbmxpbmtfdAotIyAgICB1bmRlZiB1aWRfdAotIyAgICB1bmRlZiBnaWRfdAotIyAgICB1bmRlZiBvZmZfdAotIyAgICB1bmRlZiBsb2ZmX3QKLQotIyAgICBkZWZpbmUgZGV2X3QgZGV2X3QKLSMgICAgZGVmaW5lIGlub190IGlub190Ci0jICAgIGRlZmluZSBtb2RlX3QgbW9kZV90Ci0jICAgIGRlZmluZSBubGlua190IG5saW5rX3QKLSMgICAgZGVmaW5lIHVpZF90IHVpZF90Ci0jICAgIGRlZmluZSBnaWRfdCBnaWRfdAotIyAgICBkZWZpbmUgb2ZmX3Qgb2ZmX3QKLSMgICAgZGVmaW5lIGxvZmZfdCBsb2ZmX3QKLSMgIGVuZGlmCi0jICBpZmRlZiBIUFBBCS8qIGFzbS1wYXJpc2Mvc3RhdC5oIGRlZmluZXMgc3RhdDY0ICovCi0jICAgIHVuZGVmIHN0YXQ2NAotIyAgZW5kaWYKLSMgIGRlZmluZSBzdGF0IGxpYmNfc3RhdAotIyAgZGVmaW5lIHN0YXQ2NCBsaWJjX3N0YXQ2NAotIyAgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSMgIHVuZGVmIHN0YXQKLSMgIHVuZGVmIHN0YXQ2NAotICAgLyogVGhlc2UgbWlnaHQgYmUgbWFjcm9zLiAqLwotIyAgdW5kZWYgc3RfYXRpbWUKLSMgIHVuZGVmIHN0X210aW1lCi0jICB1bmRlZiBzdF9jdGltZQotIyAgaWZkZWYgSFBQQQotIyAgICBkZWZpbmUgc3RhdDY0IGhwdXhfc3RhdDY0Ci0jICBlbmRpZgotI2Vsc2UKLSMgIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0KLSNpZmRlZiBTVlI0Ci0jICBpbmNsdWRlIDxzeXMvY3JlZC5oPgotI2VuZGlmIC8qIFNWUjQgKi8KLQotI2lmZGVmIEhBVkVfU1lTX1ZGU19ICi0jaW5jbHVkZSA8c3lzL3Zmcy5oPgotI2VuZGlmCi0KLSNpZmRlZiBIQVZFX0xJTlVYX1hBVFRSX0gKLSNpbmNsdWRlIDxsaW51eC94YXR0ci5oPgotI2VsaWYgZGVmaW5lZCBsaW51eAotI2RlZmluZSBYQVRUUl9DUkVBVEUgMQotI2RlZmluZSBYQVRUUl9SRVBMQUNFIDIKLSNlbmRpZgotCi0jaWZkZWYgRlJFRUJTRAotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotI2luY2x1ZGUgPHN5cy9tb3VudC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotI2lmIEhBVkVfTE9OR19MT05HX09GRl9UCi0vKgotICogVWdseSBoYWNrcyBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgdHlwZWRlZiBsb25nIGxvbmcgb2ZmX3QKLSAqLwotCi0jZGVmaW5lIHN0YXQ2NCBzdGF0Ci0jZGVmaW5lIEhBVkVfU1RBVDY0IDEJLyogVWdseSBoYWNrICovCi0KLSNkZWZpbmUJc3lzX3N0YXQ2NAlzeXNfc3RhdAotI2RlZmluZSBzeXNfZnN0YXQ2NAlzeXNfZnN0YXQKLSNkZWZpbmUgc3lzX2xzdGF0NjQJc3lzX2xzdGF0Ci0jZGVmaW5lIHN5c19sc2VlazY0CXN5c19sc2VlawotI2RlZmluZSBzeXNfdHJ1bmNhdGU2NAlzeXNfdHJ1bmNhdGUKLSNkZWZpbmUgc3lzX2Z0cnVuY2F0ZTY0CXN5c19mdHJ1bmNhdGUKLSNlbmRpZgotCi0jaWZkZWYgTUFKT1JfSU5fU1lTTUFDUk9TCi0jaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgotI2VuZGlmCi0KLSNpZmRlZiBNQUpPUl9JTl9NS0RFVgotI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgotI2VuZGlmCi0KLSNpZmRlZiBIQVZFX1NZU19BU1lOQ0hfSAotI2luY2x1ZGUgPHN5cy9hc3luY2guaD4KLSNlbmRpZgotCi0jaWZkZWYgU1VOT1M0Ci0jaW5jbHVkZSA8dXN0YXQuaD4KLSNlbmRpZgotCi0vKgotICogVGhpcyBpcyBhIHJlYWxseSBkaXJ0eSB0cmljayBidXQgaXQgc2hvdWxkIGFsd2F5cyB3b3JrLiAgVHJhZGl0aW9uYWwKLSAqIFVuaXggc2F5cyByL3cvcncgYXJlIDAvMS8yLCBzbyB3ZSBtYWtlIHRoZW0gdHJ1ZSBmbGFncyAxLzIvMyBieQotICogYWRkaW5nIDEuICBKdXN0IHJlbWVtYmVyIHRvIGFkZCAxIHRvIGFueSBhcmcgZGVjb2RlZCB3aXRoIG9wZW5tb2Rlcy4KLSAqLwotY29uc3Qgc3RydWN0IHhsYXQgb3Blbm1vZGVzW10gPSB7Ci0JeyBPX1JEV1IrMSwJIk9fUkRXUiIJfSwKLQl7IE9fUkRPTkxZKzEsCSJPX1JET05MWSIJfSwKLQl7IE9fV1JPTkxZKzEsCSJPX1dST05MWSIJfSwKLQl7IE9fTk9OQkxPQ0ssCSJPX05PTkJMT0NLIgl9LAotCXsgT19BUFBFTkQsCSJPX0FQUEVORCIJfSwKLQl7IE9fQ1JFQVQsCSJPX0NSRUFUIgl9LAotCXsgT19UUlVOQywJIk9fVFJVTkMiCX0sCi0JeyBPX0VYQ0wsCSJPX0VYQ0wiCX0sCi0JeyBPX05PQ1RUWSwJIk9fTk9DVFRZIgl9LAotI2lmZGVmIE9fU1lOQwotCXsgT19TWU5DLAkiT19TWU5DIgl9LAotI2VuZGlmCi0jaWZkZWYgT19BU1lOQwotCXsgT19BU1lOQywJIk9fQVNZTkMiCX0sCi0jZW5kaWYKLSNpZmRlZiBPX0RTWU5DCi0JeyBPX0RTWU5DLAkiT19EU1lOQyIJfSwKLSNlbmRpZgotI2lmZGVmIE9fUlNZTkMKLQl7IE9fUlNZTkMsCSJPX1JTWU5DIgl9LAotI2VuZGlmCi0jaWZkZWYgT19OREVMQVkKLQl7IE9fTkRFTEFZLAkiT19OREVMQVkiCX0sCi0jZW5kaWYKLSNpZmRlZiBPX1BSSVYKLQl7IE9fUFJJViwJIk9fUFJJViIJfSwKLSNlbmRpZgotI2lmZGVmIE9fRElSRUNUCi0JeyBPX0RJUkVDVCwJIk9fRElSRUNUIgl9LAotI2VuZGlmCi0jaWZkZWYgT19MQVJHRUZJTEUKLSMgaWYgT19MQVJHRUZJTEUgPT0gMAkJLyogYmlhcmNoIHBsYXRmb3JtcyBpbiA2NC1iaXQgbW9kZSAqLwotIyAgdW5kZWYgT19MQVJHRUZJTEUKLSMgIGlmZGVmIFNQQVJDNjQKLSMgICBkZWZpbmUgT19MQVJHRUZJTEUJMHg0MDAwMAotIyAgZWxpZiBkZWZpbmVkIFg4Nl82NCB8fCBkZWZpbmVkIFMzOTBYCi0jICAgZGVmaW5lIE9fTEFSR0VGSUxFCTAxMDAwMDAKLSMgIGVuZGlmCi0jIGVuZGlmCi0jIGlmZGVmIE9fTEFSR0VGSUxFCi0JeyBPX0xBUkdFRklMRSwJIk9fTEFSR0VGSUxFIiAgIH0sCi0jIGVuZGlmCi0jZW5kaWYKLSNpZmRlZiBPX0RJUkVDVE9SWQotCXsgT19ESVJFQ1RPUlksCSJPX0RJUkVDVE9SWSIgICB9LAotI2VuZGlmCi0jaWZkZWYgT19OT0ZPTExPVwotCXsgT19OT0ZPTExPVywgCSJPX05PRk9MTE9XIgl9LAotI2VuZGlmCi0jaWZkZWYgT19OT0FUSU1FCi0JeyBPX05PQVRJTUUsIAkiT19OT0FUSU1FIgl9LAotI2VuZGlmCi0KLSNpZmRlZiBGTkRFTEFZCi0JeyBGTkRFTEFZLAkiRk5ERUxBWSIJfSwKLSNlbmRpZgotI2lmZGVmIEZBUFBFTkQKLQl7IEZBUFBFTkQsCSJGQVBQRU5EIgl9LAotI2VuZGlmCi0jaWZkZWYgRk1BUksKLQl7IEZNQVJLLAkiRk1BUksiCQl9LAotI2VuZGlmCi0jaWZkZWYgRkRFRkVSCi0JeyBGREVGRVIsCSJGREVGRVIiCX0sCi0jZW5kaWYKLSNpZmRlZiBGQVNZTkMKLQl7IEZBU1lOQywJIkZBU1lOQyIJfSwKLSNlbmRpZgotI2lmZGVmIEZTSExPQ0sKLQl7IEZTSExPQ0ssCSJGU0hMT0NLIgl9LAotI2VuZGlmCi0jaWZkZWYgRkVYTE9DSwotCXsgRkVYTE9DSywJIkZFWExPQ0siCX0sCi0jZW5kaWYKLSNpZmRlZiBGQ1JFQVQKLQl7IEZDUkVBVCwJIkZDUkVBVCIJfSwKLSNlbmRpZgotI2lmZGVmIEZUUlVOQwotCXsgRlRSVU5DLAkiRlRSVU5DIgl9LAotI2VuZGlmCi0jaWZkZWYgRkVYQ0wKLQl7IEZFWENMLAkiRkVYQ0wiCQl9LAotI2VuZGlmCi0jaWZkZWYgRk5CSU8KLQl7IEZOQklPLAkiRk5CSU8iCQl9LAotI2VuZGlmCi0jaWZkZWYgRlNZTkMKLQl7IEZTWU5DLAkiRlNZTkMiCQl9LAotI2VuZGlmCi0jaWZkZWYgRk5PQ1RUWQotCXsgRk5PQ1RUWSwJIkZOT0NUVFkiCX0sCi0jZW5kaWYKLSNpZmRlZiBPX1NITE9DSwotCXsgT19TSExPQ0ssCSJPX1NITE9DSyIJfSwKLSNlbmRpZgotI2lmZGVmIE9fRVhMT0NLCi0JeyBPX0VYTE9DSywJIk9fRVhMT0NLIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX29wZW4odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQkvKiBmbGFncyAqLwotCQlwcmludGZsYWdzKG9wZW5tb2RlcywgdGNwLT51X2FyZ1sxXSArIDEsICJPXz8/PyIpOwotCQlpZiAodGNwLT51X2FyZ1sxXSAmIE9fQ1JFQVQpIHsKLQkJCS8qIG1vZGUgKi8KLQkJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbMl0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVhTUEFSQwotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG9wZW5tb2Rlc3NvbFtdID0gewotCXsgMCwJCSJPX1JEV1IiCX0sCi0JeyAxLAkJIk9fUkRPTkxZIgl9LAotCXsgMiwJCSJPX1dST05MWSIJfSwKLQl7IDB4ODAsCQkiT19OT05CTE9DSyIJfSwKLQl7IDgsCQkiT19BUFBFTkQiCX0sCi0JeyAweDEwMCwJIk9fQ1JFQVQiCX0sCi0JeyAweDIwMCwJIk9fVFJVTkMiCX0sCi0JeyAweDQwMCwJIk9fRVhDTCIJfSwKLQl7IDB4ODAwLAkiT19OT0NUVFkiCX0sCi0JeyAweDEwLAkJIk9fU1lOQyIJfSwKLQl7IDB4NDAsCQkiT19EU1lOQyIJfSwKLQl7IDB4ODAwMCwJIk9fUlNZTkMiCX0sCi0JeyA0LAkJIk9fTkRFTEFZIgl9LAotCXsgMHgxMDAwLAkiT19QUklWIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXNvbGFyaXNfb3Blbih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCS8qIGZsYWdzICovCi0JCXByaW50ZmxhZ3Mob3Blbm1vZGVzc29sLCB0Y3AtPnVfYXJnWzFdICsgMSwgIk9fPz8/Iik7Ci0JCWlmICh0Y3AtPnVfYXJnWzFdICYgMHgxMDApIHsKLQkJCS8qIG1vZGUgKi8KLQkJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbMl0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50Ci1zeXNfY3JlYXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhY2Nlc3NfZmxhZ3NbXSA9IHsKLQl7IEZfT0ssCQkiRl9PSyIsCQl9LAotCXsgUl9PSywJCSJSX09LIgkJfSwKLQl7IFdfT0ssCQkiV19PSyIJCX0sCi0JeyBYX09LLAkJIlhfT0siCQl9LAotI2lmZGVmIEVGRl9PTkxZX09LCi0JeyBFRkZfT05MWV9PSywJIkVGRl9PTkxZX09LIgl9LAotI2VuZGlmCi0jaWZkZWYgRVhfT0sKLQl7IEVYX09LLAkiRVhfT0siCQl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX2FjY2Vzcyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MoYWNjZXNzX2ZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiP19PSyIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfdW1hc2sodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbG8iLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIFJWQUxfT0NUQUw7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3aGVuY2VbXSA9IHsKLQl7IFNFRUtfU0VULAkiU0VFS19TRVQiCX0sCi0JeyBTRUVLX0NVUiwJIlNFRUtfQ1VSIgl9LAotCXsgU0VFS19FTkQsCSJTRUVLX0VORCIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotI2lmbmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAotaW50Ci1zeXNfbHNlZWsodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCW9mZl90IG9mZnNldDsKLQlpbnQgX3doZW5jZTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCW9mZnNldCA9IHRjcC0+dV9hcmdbMV07Ci0JCV93aGVuY2UgPSB0Y3AtPnVfYXJnWzJdOwotCQlpZiAoX3doZW5jZSA9PSBTRUVLX1NFVCkKLQkJCXRwcmludGYoIiVsdSwgIiwgb2Zmc2V0KTsKLQkJZWxzZQotCQkJdHByaW50ZigiJWxkLCAiLCBvZmZzZXQpOwotCQlwcmludHh2YWwod2hlbmNlLCBfd2hlbmNlLCAiU0VFS18/Pz8iKTsKLQl9Ci0JcmV0dXJuIFJWQUxfVURFQ0lNQUw7Ci19Ci0jZW5kaWYKLQotI2lmZGVmIExJTlVYCi1pbnQKLXN5c19sbHNlZWsgKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCS8qCi0JICogVGhpcyBvbmUgY2FsbCB0YWtlcyBleHBsaWNpdGx5IHR3byAzMi1iaXQgYXJndW1lbnRzIGhpLCBsbywKLQkgKiByYXRoZXIgdGhhbiBvbmUgNjQtYml0IGFyZ3VtZW50IGZvciB3aGljaCBMT05HX0xPTkcgd29ya3MKLQkgKiBhcHByb3ByaWF0ZSBmb3IgdGhlIG5hdGl2ZSBieXRlIG9yZGVyLgotCSAqLwotCWlmICh0Y3AtPnVfYXJnWzRdID09IFNFRUtfU0VUKQotCSAgICB0cHJpbnRmKCIlbGQsICVsbHUsICIsIHRjcC0+dV9hcmdbMF0sCi0JCSAgICAoKChsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdKSA8PCAzMgotCQkgICAgIHwgKHVuc2lnbmVkIGxvbmcgbG9uZykgKHVuc2lnbmVkKSB0Y3AtPnVfYXJnWzJdKSk7Ci0JZWxzZQotCSAgICB0cHJpbnRmKCIlbGQsICVsbGQsICIsIHRjcC0+dV9hcmdbMF0sCi0JCSAgICAoKChsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdKSA8PCAzMgotCQkgICAgIHwgKHVuc2lnbmVkIGxvbmcgbG9uZykgKHVuc2lnbmVkKSB0Y3AtPnVfYXJnWzJdKSk7Ci0gICAgfQotICAgIGVsc2UgewotCWxvbmcgbG9uZyBpbnQgb2ZmOwotCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJm9mZikgPCAwKQotCSAgICB0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzNdKTsKLQllbHNlCi0JICAgIHRwcmludGYoIlslbGx1XSwgIiwgb2ZmKTsKLQlwcmludHh2YWwod2hlbmNlLCB0Y3AtPnVfYXJnWzRdLCAiU0VFS18/Pz8iKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3JlYWRhaGVhZCAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWxkLCAlbGxkLCAlbGQiLCB0Y3AtPnVfYXJnWzBdLAotIyBpZiBkZWZpbmVkIElBNjQgfHwgZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBBTFBIQQotCQkobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXQotIyBlbHNlCi0JCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKSwgdGNwLT51X2FyZ1szXQotIyBlbmRpZgotCQkpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAotaW50Ci1zeXNfbHNlZWs2NCAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWxvbmcgbG9uZyBvZmZzZXQ7Ci0JCUFMSUdONjQgKHRjcCwgMSk7CS8qIEZyZWVCU0QgYWxpZ25zIG9mZl90IGFyZ3MgKi8KLQkJb2Zmc2V0ID0gTE9OR19MT05HKHRjcC0+dV9hcmcgWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJaWYgKHRjcC0+dV9hcmdbM10gPT0gU0VFS19TRVQpCi0JCQl0cHJpbnRmKCIlbGQsICVsbHUsICIsIHRjcC0+dV9hcmdbMF0sIG9mZnNldCk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiVsZCwgJWxsZCwgIiwgdGNwLT51X2FyZ1swXSwgb2Zmc2V0KTsKLQkJcHJpbnR4dmFsKHdoZW5jZSwgdGNwLT51X2FyZ1szXSwgIlNFRUtfPz8/Iik7Ci0JfQotCXJldHVybiBSVkFMX0xVREVDSU1BTDsKLX0KLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi1pbnQKLXN5c190cnVuY2F0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCi1pbnQKLXN5c190cnVuY2F0ZTY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlBTElHTjY0ICh0Y3AsIDEpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAlbGx1IiwgTE9OR19MT05HKHRjcC0+dV9hcmdbMV0sdGNwLT51X2FyZ1syXSkpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi1pbnQKLXN5c19mdHJ1bmNhdGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCi1pbnQKLXN5c19mdHJ1bmNhdGU2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJQUxJR042NCAodGNwLCAxKTsKLQkJdHByaW50ZigiJWxkLCAlbGx1IiwgdGNwLT51X2FyZ1swXSwKLQkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdICx0Y3AtPnVfYXJnWzJdKSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLS8qIHNldmVyYWwgc3RhdHMgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1vZGV0eXBlc1tdID0gewotCXsgU19JRlJFRywJIlNfSUZSRUciCX0sCi0JeyBTX0lGU09DSywJIlNfSUZTT0NLIgl9LAotCXsgU19JRklGTywJIlNfSUZJRk8iCX0sCi0JeyBTX0lGTE5LLAkiU19JRkxOSyIJfSwKLQl7IFNfSUZESVIsCSJTX0lGRElSIgl9LAotCXsgU19JRkJMSywJIlNfSUZCTEsiCX0sCi0JeyBTX0lGQ0hSLAkiU19JRkNIUiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKgotc3ByaW50bW9kZShtb2RlKQotaW50IG1vZGU7Ci17Ci0Jc3RhdGljIGNoYXIgYnVmWzY0XTsKLQljb25zdCBjaGFyICpzOwotCi0JaWYgKChtb2RlICYgU19JRk1UKSA9PSAwKQotCQlzID0gIiI7Ci0JZWxzZSBpZiAoKHMgPSB4bG9va3VwKG1vZGV0eXBlcywgbW9kZSAmIFNfSUZNVCkpID09IE5VTEwpIHsKLQkJc3ByaW50ZihidWYsICIlI28iLCBtb2RlKTsKLQkJcmV0dXJuIGJ1ZjsKLQl9Ci0Jc3ByaW50ZihidWYsICIlcyVzJXMlcyIsIHMsCi0JCShtb2RlICYgU19JU1VJRCkgPyAifFNfSVNVSUQiIDogIiIsCi0JCShtb2RlICYgU19JU0dJRCkgPyAifFNfSVNHSUQiIDogIiIsCi0JCShtb2RlICYgU19JU1ZUWCkgPyAifFNfSVNWVFgiIDogIiIpOwotCW1vZGUgJj0gfihTX0lGTVR8U19JU1VJRHxTX0lTR0lEfFNfSVNWVFgpOwotCWlmIChtb2RlKQotCQlzcHJpbnRmKGJ1ZiArIHN0cmxlbihidWYpLCAifCUjbyIsIG1vZGUpOwotCXMgPSAoKmJ1ZiA9PSAnfCcpID8gYnVmICsgMSA6IGJ1ZjsKLQlyZXR1cm4gKnMgPyBzIDogIjAiOwotfQotCi1zdGF0aWMgY2hhciAqCi1zcHJpbnR0aW1lKHQpCi10aW1lX3QgdDsKLXsKLQlzdHJ1Y3QgdG0gKnRtcDsKLQlzdGF0aWMgY2hhciBidWZbMzJdOwotCi0JaWYgKHQgPT0gMCkgewotCQlzcHJpbnRmKGJ1ZiwgIjAiKTsKLQkJcmV0dXJuIGJ1ZjsKLQl9Ci0JdG1wID0gbG9jYWx0aW1lKCZ0KTsKLQlzcHJpbnRmKGJ1ZiwgIiUwMmQvJTAyZC8lMDJkLSUwMmQ6JTAyZDolMDJkIiwKLQkJdG1wLT50bV95ZWFyICsgMTkwMCwgdG1wLT50bV9tb24gKyAxLCB0bXAtPnRtX21kYXksCi0JCXRtcC0+dG1faG91ciwgdG1wLT50bV9taW4sIHRtcC0+dG1fc2VjKTsKLQlyZXR1cm4gYnVmOwotfQotCi0jaWZkZWYgTElOVVhTUEFSQwotdHlwZWRlZiBzdHJ1Y3QgewotICAgICAgICBpbnQgICAgIHR2X3NlYzsKLSAgICAgICAgaW50ICAgICB0dl9uc2VjOwotfSB0aW1lc3RydWN0X3Q7Ci0KLXN0cnVjdCBzb2xzdGF0IHsKLSAgICAgICAgdW5zaWduZWQgICAgICAgIHN0X2RldjsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDFbM107ICAgICAvKiBuZXR3b3JrIGlkICovCi0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9pbm87Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9tb2RlOwotICAgICAgICB1bnNpZ25lZCAgICAgICAgc3Rfbmxpbms7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF91aWQ7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9naWQ7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9yZGV2OwotICAgICAgICBpbnQgICAgICAgICAgICAgc3RfcGFkMlsyXTsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3NpemU7Ci0gICAgICAgIGludCAgICAgICAgICAgICBzdF9wYWQzOyAgICAgICAgLyogc3Rfc2l6ZSwgb2ZmX3QgZXhwYW5zaW9uICovCi0gICAgICAgIHRpbWVzdHJ1Y3RfdCAgICBzdF9hdGltZTsKLSAgICAgICAgdGltZXN0cnVjdF90ICAgIHN0X210aW1lOwotICAgICAgICB0aW1lc3RydWN0X3QgICAgc3RfY3RpbWU7Ci0gICAgICAgIGludCAgICAgICAgICAgICBzdF9ibGtzaXplOwotICAgICAgICBpbnQgICAgICAgICAgICAgc3RfYmxvY2tzOwotICAgICAgICBjaGFyICAgICAgICAgICAgc3RfZnN0eXBlWzE2XTsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDRbOF07ICAgICAvKiBleHBhbnNpb24gYXJlYSAqLwotfTsKLQotc3RhdGljIHZvaWQKLXByaW50c3RhdHNvbCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0Jc3RydWN0IHNvbHN0YXQgc3RhdGJ1ZjsKLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCWlmICghYWJicmV2KHRjcCkpIHsKLQkJdHByaW50Zigie3N0X2Rldj1tYWtlZGV2KCVsdSwgJWx1KSwgc3RfaW5vPSVsdSwgc3RfbW9kZT0lcywgIiwKLQkJCSh1bnNpZ25lZCBsb25nKSAoKHN0YXRidWYuc3RfZGV2ID4+IDE4KSAmIDB4M2ZmZiksCi0JCQkodW5zaWduZWQgbG9uZykgKHN0YXRidWYuc3RfZGV2ICYgMHgzZmZmZiksCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCi0JCQlzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOwotCQl0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ubGluaywKLQkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X3VpZCwKLQkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X2dpZCk7Ci0JCXRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibGtzaXplKTsKLQkJdHByaW50Zigic3RfYmxvY2tzPSVsdSwgIiwgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfYmxvY2tzKTsKLQl9Ci0JZWxzZQotCQl0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLnN0X21vZGUpKTsKLQlzd2l0Y2ggKHN0YXRidWYuc3RfbW9kZSAmIFNfSUZNVCkgewotCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgotCQl0cHJpbnRmKCJzdF9yZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCAiLAotCQkJKHVuc2lnbmVkIGxvbmcpICgoc3RhdGJ1Zi5zdF9yZGV2ID4+IDE4KSAmIDB4M2ZmZiksCi0JCQkodW5zaWduZWQgbG9uZykgKHN0YXRidWYuc3RfcmRldiAmIDB4M2ZmZmYpKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJdHByaW50Zigic3Rfc2l6ZT0ldSwgIiwgc3RhdGJ1Zi5zdF9zaXplKTsKLQkJYnJlYWs7Ci0JfQotCWlmICghYWJicmV2KHRjcCkpIHsKLQkJdHByaW50Zigic3RfYXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9hdGltZSkpOwotCQl0cHJpbnRmKCJzdF9tdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLnN0X210aW1lKSk7Ci0JCXRwcmludGYoInN0X2N0aW1lPSVzfSIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOwotCX0KLQllbHNlCi0JCXRwcmludGYoIi4uLn0iKTsKLX0KLQotI2lmIGRlZmluZWQgKFNQQVJDNjQpCi1zdGF0aWMgdm9pZAotcHJpbnRzdGF0X3NwYXJjNjQodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotewotCXN0cnVjdCBzdGF0X3NwYXJjNjQgc3RhdGJ1ZjsKLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKCFhYmJyZXYodGNwKSkgewotCQl0cHJpbnRmKCJ7c3RfZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCBzdF9pbm89JWx1LCBzdF9tb2RlPSVzLCAiLAotCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYuc3RfZGV2KSwKLQkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLnN0X2RldiksCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCi0JCQlzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOwotCQl0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ubGluaywKLQkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X3VpZCwKLQkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X2dpZCk7Ci0JCXRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLAotCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfYmxrc2l6ZSk7Ci0JCXRwcmludGYoInN0X2Jsb2Nrcz0lbHUsICIsCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibG9ja3MpOwotCX0KLQllbHNlCi0JCXRwcmludGYoIntzdF9tb2RlPSVzLCAiLCBzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOwotCXN3aXRjaCAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JRk1UKSB7Ci0JY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6Ci0JCXRwcmludGYoInN0X3JkZXY9bWFrZWRldiglbHUsICVsdSksICIsCi0JCQkodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi5zdF9yZGV2KSwKLQkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLnN0X3JkZXYpKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJdHByaW50Zigic3Rfc2l6ZT0lbHUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7Ci0JCWJyZWFrOwotCX0KLQlpZiAoIWFiYnJldih0Y3ApKSB7Ci0JCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKLQkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOwotCQl0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOwotCQl0cHJpbnRmKCJ9Iik7Ci0JfQotCWVsc2UKLQkJdHByaW50ZigiLi4ufSIpOwotfQotI2VuZGlmIC8qIFNQQVJDNjQgKi8KLSNlbmRpZiAvKiBMSU5VWFNQQVJDICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmaWxlZmxhZ3NbXSA9IHsKLSNpZmRlZiBGUkVFQlNECi0JeyBVRl9OT0RVTVAsCSJVRl9OT0RVTVAiCX0sCi0JeyBVRl9JTU1VVEFCTEUsCSJVRl9JTU1VVEFCTEUiCX0sCi0JeyBVRl9BUFBFTkQsCSJVRl9BUFBFTkQiCX0sCi0JeyBVRl9PUEFRVUUsCSJVRl9PUEFRVUUiCX0sCi0JeyBVRl9OT1VOTElOSywJIlVGX05PVU5MSU5LIgl9LAotCXsgU0ZfQVJDSElWRUQsCSJTRl9BUkNISVZFRCIJfSwKLQl7IFNGX0lNTVVUQUJMRSwJIlNGX0lNTVVUQUJMRSIJfSwKLQl7IFNGX0FQUEVORCwJIlNGX0FQUEVORCIJfSwKLQl7IFNGX05PVU5MSU5LLAkiU0ZfTk9VTkxJTksiCX0sCi0jZWxpZiBVTklYV0FSRSA+PSAyCi0jaWZkZWYgCV9TX0lTTUxECi0JeyBfU19JU01MRCwgCSJfU19JU01MRCIJfSwKLSNlbmRpZgotI2lmZGVmIAlfU19JU01PVU5URUQKLQl7IF9TX0lTTU9VTlRFRCwgIl9TX0lTTU9VTlRFRCIJfSwKLSNlbmRpZgotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNpZmRlZiBGUkVFQlNECi1pbnQKLXN5c19jaGZsYWdzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhmaWxlZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJVRl8/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2ZjaGZsYWdzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludGZsYWdzKGZpbGVmbGFncywgdGNwLT51X2FyZ1sxXSwgIlVGXz8/PyIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi1zdGF0aWMgdm9pZAotcmVhbHByaW50c3RhdCh0Y3AsIHN0YXRidWYpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1zdHJ1Y3Qgc3RhdCAqc3RhdGJ1ZjsKLXsKLSAgICBpZiAoIWFiYnJldih0Y3ApKSB7Ci0JICAgIHRwcmludGYoIntzdF9kZXY9bWFrZWRldiglbHUsICVsdSksIHN0X2lubz0lbHUsIHN0X21vZGU9JXMsICIsCi0JCSAgICAodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfZGV2KSwKLQkJICAgICh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLT5zdF9kZXYpLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2lubywKLQkJICAgIHNwcmludG1vZGUoc3RhdGJ1Zi0+c3RfbW9kZSkpOwotCSAgICB0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCi0JCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfbmxpbmssCi0JCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfdWlkLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2dpZCk7Ci0jaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFCi0JICAgIHRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfYmxrc2l6ZSk7Ci0jZW5kaWYgLyogSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFICovCi0jaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MKLQkgICAgdHByaW50Zigic3RfYmxvY2tzPSVsdSwgIiwgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2Jsb2Nrcyk7Ci0jZW5kaWYgLyogSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgKi8KLSAgICB9Ci0gICAgZWxzZQotCSAgICB0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLT5zdF9tb2RlKSk7Ci0gICAgc3dpdGNoIChzdGF0YnVmLT5zdF9tb2RlICYgU19JRk1UKSB7Ci0gICAgY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6Ci0jaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWCi0JICAgIHRwcmludGYoInN0X3JkZXY9bWFrZWRldiglbHUsICVsdSksICIsCi0JCSAgICAodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfcmRldiksCi0JCSAgICAodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi0+c3RfcmRldikpOwotI2Vsc2UgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLwotCSAgICB0cHJpbnRmKCJzdF9zaXplPW1ha2VkZXYoJWx1LCAlbHUpLCAiLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYtPnN0X3NpemUpLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYtPnN0X3NpemUpKTsKLSNlbmRpZiAvKiAhSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWICovCi0JICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0JICAgIHRwcmludGYoInN0X3NpemU9JWx1LCAiLCBzdGF0YnVmLT5zdF9zaXplKTsKLQkgICAgYnJlYWs7Ci0gICAgfQotICAgIGlmICghYWJicmV2KHRjcCkpIHsKLQkgICAgdHByaW50Zigic3RfYXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfYXRpbWUpKTsKLQkgICAgdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfbXRpbWUpKTsKLQkgICAgdHByaW50Zigic3RfY3RpbWU9JXMiLCBzcHJpbnR0aW1lKHN0YXRidWYtPnN0X2N0aW1lKSk7Ci0jaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHUwotCQl0cHJpbnRmKCIsIHN0X2ZsYWdzPSIpOwotCQlwcmludGZsYWdzKGZpbGVmbGFncywgc3RhdGJ1Zi0+c3RfZmxhZ3MsICJVRl8/Pz8iKTsKLSNlbmRpZgotI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UCi0JCXRwcmludGYoIiwgc3RfYWNsY250PSVkIiwgc3RhdGJ1Zi0+c3RfYWNsY250KTsKLSNlbmRpZgotI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwKLQkJdHByaW50ZigiLCBzdF9sZXZlbD0lbGQiLCBzdGF0YnVmLT5zdF9sZXZlbCk7Ci0jZW5kaWYKLSNpZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZTVFlQRQotCQl0cHJpbnRmKCIsIHN0X2ZzdHlwZT0lLipzIiwKLQkJCShpbnQpIHNpemVvZiBzdGF0YnVmLT5zdF9mc3R5cGUsIHN0YXRidWYtPnN0X2ZzdHlwZSk7Ci0jZW5kaWYKLSNpZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0dFTgotCQl0cHJpbnRmKCIsIHN0X2dlbj0ldSIsIHN0YXRidWYtPnN0X2dlbik7Ci0jZW5kaWYKLQkJdHByaW50ZigifSIpOwotICAgIH0KLSAgICBlbHNlCi0JICAgIHRwcmludGYoIi4uLn0iKTsKLX0KLQotCi1zdGF0aWMgdm9pZAotcHJpbnRzdGF0KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwotCi0jaWZkZWYgTElOVVhTUEFSQwotIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7Ci0gCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKLSAJCXJldHVybjsKLSAJfQotI2lmZGVmIFNQQVJDNjQKLQllbHNlIGlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDIpIHsKLQkJcHJpbnRzdGF0X3NwYXJjNjQodGNwLCBhZGRyKTsKLQkJcmV0dXJuOwotCX0KLSNlbmRpZgotI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCi0JcmVhbHByaW50c3RhdCh0Y3AsICZzdGF0YnVmKTsKLX0KLSNlbmRpZgkvKiAhSEFWRV9MT05HX0xPTkdfT0ZGX1QgKi8KLQotI2lmZGVmIEhBVkVfU1RBVDY0Ci1zdGF0aWMgdm9pZAotcHJpbnRzdGF0NjQodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotewotCXN0cnVjdCBzdGF0NjQgc3RhdGJ1ZjsKLQotI2lmZGVmIExJTlVYU1BBUkMKLSAJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgewotIAkJcHJpbnRzdGF0c29sKHRjcCwgYWRkcik7Ci0gCQlyZXR1cm47Ci0gCX0KLSNpZmRlZiBTUEFSQzY0Ci0JZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAyKSB7Ci0JCXByaW50c3RhdF9zcGFyYzY0KHRjcCwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWFNQQVJDICovCi0KLQlpZiAoIWFkZHIpIHsKLQkJdHByaW50ZigiTlVMTCIpOwotCQlyZXR1cm47Ci0JfQotCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKLQkJdHByaW50Zigiey4uLn0iKTsKLQkJcmV0dXJuOwotCX0KLQotCWlmICghYWJicmV2KHRjcCkpIHsKLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotCQl0cHJpbnRmKCJ7c3RfZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCBzdF9pbm89JWxsdSwgc3RfbW9kZT0lcywgIiwKLSNlbHNlCi0JCXRwcmludGYoIntzdF9kZXY9bWFrZWRldiglbHUsICVsdSksIHN0X2lubz0lbHUsIHN0X21vZGU9JXMsICIsCi0jZW5kaWYKLQkJCSh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLnN0X2RldiksCi0JCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi5zdF9kZXYpLAotI2lmZGVmIEhBVkVfTE9OR19MT05HCi0JCQkodW5zaWduZWQgbG9uZyBsb25nKSBzdGF0YnVmLnN0X2lubywKLSNlbHNlCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCi0jZW5kaWYKLQkJCXNwcmludG1vZGUoc3RhdGJ1Zi5zdF9tb2RlKSk7Ci0JCXRwcmludGYoInN0X25saW5rPSVsdSwgc3RfdWlkPSVsdSwgc3RfZ2lkPSVsdSwgIiwKLQkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X25saW5rLAotCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfdWlkLAotCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfZ2lkKTsKLSNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUKLQkJdHByaW50Zigic3RfYmxrc2l6ZT0lbHUsICIsCi0JCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibGtzaXplKTsKLSNlbmRpZiAvKiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgKi8KLSNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUwotCQl0cHJpbnRmKCJzdF9ibG9ja3M9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibG9ja3MpOwotI2VuZGlmIC8qIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTICovCi0JfQotCWVsc2UKLQkJdHByaW50Zigie3N0X21vZGU9JXMsICIsIHNwcmludG1vZGUoc3RhdGJ1Zi5zdF9tb2RlKSk7Ci0Jc3dpdGNoIChzdGF0YnVmLnN0X21vZGUgJiBTX0lGTVQpIHsKLQljYXNlIFNfSUZDSFI6IGNhc2UgU19JRkJMSzoKLSNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYKLQkJdHByaW50Zigic3RfcmRldj1tYWtlZGV2KCVsdSwgJWx1KSwgIiwKLQkJCSh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLnN0X3JkZXYpLAotCQkJKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYuc3RfcmRldikpOwotI2Vsc2UgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLwotCQl0cHJpbnRmKCJzdF9zaXplPW1ha2VkZXYoJWx1LCAlbHUpLCAiLAotCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYuc3Rfc2l6ZSksCi0JCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi5zdF9zaXplKSk7Ci0jZW5kaWYgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLwotCQlicmVhazsKLQlkZWZhdWx0OgotCQl0cHJpbnRmKCJzdF9zaXplPSVsbHUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7Ci0JCWJyZWFrOwotCX0KLQlpZiAoIWFiYnJldih0Y3ApKSB7Ci0JCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKLQkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOwotCQl0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOwotI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MKLQkJdHByaW50ZigiLCBzdF9mbGFncz0iKTsKLQkJcHJpbnRmbGFncyhmaWxlZmxhZ3MsIHN0YXRidWYuc3RfZmxhZ3MsICJVRl8/Pz8iKTsKLSNlbmRpZgotI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UCi0JCXRwcmludGYoIiwgc3RfYWNsY250PSVkIiwgc3RhdGJ1Zi5zdF9hY2xjbnQpOwotI2VuZGlmCi0jaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTAotCQl0cHJpbnRmKCIsIHN0X2xldmVsPSVsZCIsIHN0YXRidWYuc3RfbGV2ZWwpOwotI2VuZGlmCi0jaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUKLQkJdHByaW50ZigiLCBzdF9mc3R5cGU9JS4qcyIsCi0JCQkoaW50KSBzaXplb2Ygc3RhdGJ1Zi5zdF9mc3R5cGUsIHN0YXRidWYuc3RfZnN0eXBlKTsKLSNlbmRpZgotI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOCi0JCXRwcmludGYoIiwgc3RfZ2VuPSV1Iiwgc3RhdGJ1Zi5zdF9nZW4pOwotI2VuZGlmCi0JCXRwcmludGYoIn0iKTsKLQl9Ci0JZWxzZQotCQl0cHJpbnRmKCIuLi59Iik7Ci19Ci0jZW5kaWYgLyogSEFWRV9TVEFUNjQgKi8KLQotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQpCi1zdGF0aWMgdm9pZAotY29udmVydG9sZHN0YXQob2xkYnVmLCBuZXdidWYpCi1jb25zdCBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgKm9sZGJ1ZjsKLXN0cnVjdCBzdGF0ICpuZXdidWY7Ci17Ci0gICAgbmV3YnVmLT5zdF9kZXY9b2xkYnVmLT5zdF9kZXY7Ci0gICAgbmV3YnVmLT5zdF9pbm89b2xkYnVmLT5zdF9pbm87Ci0gICAgbmV3YnVmLT5zdF9tb2RlPW9sZGJ1Zi0+c3RfbW9kZTsKLSAgICBuZXdidWYtPnN0X25saW5rPW9sZGJ1Zi0+c3Rfbmxpbms7Ci0gICAgbmV3YnVmLT5zdF91aWQ9b2xkYnVmLT5zdF91aWQ7Ci0gICAgbmV3YnVmLT5zdF9naWQ9b2xkYnVmLT5zdF9naWQ7Ci0gICAgbmV3YnVmLT5zdF9yZGV2PW9sZGJ1Zi0+c3RfcmRldjsKLSAgICBuZXdidWYtPnN0X3NpemU9b2xkYnVmLT5zdF9zaXplOwotICAgIG5ld2J1Zi0+c3RfYXRpbWU9b2xkYnVmLT5zdF9hdGltZTsKLSAgICBuZXdidWYtPnN0X210aW1lPW9sZGJ1Zi0+c3RfbXRpbWU7Ci0gICAgbmV3YnVmLT5zdF9jdGltZT1vbGRidWYtPnN0X2N0aW1lOwotICAgIG5ld2J1Zi0+c3RfYmxrc2l6ZT0wOwkvKiBub3Qgc3VwcG9ydGVkIGluIG9sZF9zdGF0ICovCi0gICAgbmV3YnVmLT5zdF9ibG9ja3M9MDsJCS8qIG5vdCBzdXBwb3J0ZWQgaW4gb2xkX3N0YXQgKi8KLX0KLQotCi1zdGF0aWMgdm9pZAotcHJpbnRvbGRzdGF0KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQlzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgc3RhdGJ1ZjsKLQlzdHJ1Y3Qgc3RhdCBuZXdzdGF0YnVmOwotCi0jaWZkZWYgTElOVVhTUEFSQwotIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7Ci0gCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKLSAJCXJldHVybjsKLSAJfQotI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCi0JY29udmVydG9sZHN0YXQoJnN0YXRidWYsICZuZXdzdGF0YnVmKTsKLQlyZWFscHJpbnRzdGF0KHRjcCwgJm5ld3N0YXRidWYpOwotfQotI2VuZGlmIC8qIExJTlVYICYmICFJQTY0ICYmICFIUFBBICYmICFYODZfNjQgJiYgIVMzOTAgJiYgIVMzOTBYICovCi0KLSNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKLWludAotc3lzX3N0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQKLXN5c19zdGF0NjQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotI2lmZGVmIEhBVkVfU1RBVDY0Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLQkJcHJpbnRzdGF0NjQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci0jZWxzZQotCXJldHVybiBwcmludGFyZ3ModGNwKTsKLSNlbmRpZgotfQotCi0jaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCkKLWludAotc3lzX29sZHN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCXByaW50b2xkc3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBMSU5VWCAmJiBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAqLwotCi0jaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi1pbnQKLXN5c19mc3RhdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JZWxzZSB7Ci0JCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQKLXN5c19mc3RhdDY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSNpZmRlZiBIQVZFX1NUQVQ2NAotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UgewotCQlwcmludHN0YXQ2NCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLSNlbHNlCi0JcmV0dXJuIHByaW50YXJncyh0Y3ApOwotI2VuZGlmCi19Ci0KLSNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUKQotaW50Ci1zeXNfb2xkZnN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UgewotCQlwcmludG9sZHN0YXQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTElOVVggJiYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgKi8KLQotI2lmbmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAotaW50Ci1zeXNfbHN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQKLXN5c19sc3RhdDY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSNpZmRlZiBIQVZFX1NUQVQ2NAotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCXByaW50c3RhdDY0KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotI2Vsc2UKLQlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7Ci0jZW5kaWYKLX0KLQotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQpCi1pbnQKLXN5c19vbGRsc3RhdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLQkJcHJpbnRvbGRzdGF0KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIExJTlVYICYmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUICovCi0KLQotI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChMSU5VWFNQQVJDKQotCi1pbnQKLXN5c194c3RhdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLSNpZmRlZiBfU1RBVDY0X1ZFUgotCQlpZiAodGNwLT51X2FyZ1swXSA9PSBfU1RBVDY0X1ZFUikKLQkJCXByaW50c3RhdDY0ICh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0jZW5kaWYKLQkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1syXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19meHN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIlbGQsICVsZCwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JZWxzZSB7Ci0jaWZkZWYgX1NUQVQ2NF9WRVIKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gX1NUQVQ2NF9WRVIpCi0JCQlwcmludHN0YXQ2NCAodGNwLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZWxzZQotI2VuZGlmCi0JCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfbHhzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQl9IGVsc2UgewotI2lmZGVmIF9TVEFUNjRfVkVSCi0JCWlmICh0Y3AtPnVfYXJnWzBdID09IF9TVEFUNjRfVkVSKQotCQkJcHJpbnRzdGF0NjQgKHRjcCwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UKLSNlbmRpZgotCQlwcmludHN0YXQodGNwLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3hta25vZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaW50IG1vZGUgPSB0Y3AtPnVfYXJnWzJdOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJXMiLCBzcHJpbnRtb2RlKG1vZGUpKTsKLQkJc3dpdGNoIChtb2RlICYgU19JRk1UKSB7Ci0JCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgotI2lmZGVmIExJTlVYU1BBUkMKLQkJCXRwcmludGYoIiwgbWFrZWRldiglbHUsICVsdSkiLAotCQkJCSh1bnNpZ25lZCBsb25nKSAoKHRjcC0+dV9hcmdbM10gPj4gMTgpICYgMHgzZmZmKSwKLQkJCQkodW5zaWduZWQgbG9uZykgKHRjcC0+dV9hcmdbM10gJiAweDNmZmZmKSk7Ci0jZWxzZQotCQkJdHByaW50ZigiLCBtYWtlZGV2KCVsdSwgJWx1KSIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHRjcC0+dV9hcmdbM10pLAotCQkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcih0Y3AtPnVfYXJnWzNdKSk7Ci0jZW5kaWYKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBIQVZFX1NZU19BQ0xfSAotCi0jaW5jbHVkZSA8c3lzL2FjbC5oPgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWNsY21kc1tdID0gewotI2lmZGVmIFNFVEFDTAotCXsgU0VUQUNMLAkiU0VUQUNMIgl9LAotI2VuZGlmCi0jaWZkZWYgR0VUQUNMCi0JeyBHRVRBQ0wsCSJHRVRBQ0wiCX0sCi0jZW5kaWYKLSNpZmRlZiBHRVRBQ0xDTlQKLQl7IEdFVEFDTENOVCwJIkdFVEFDTENOVCIJfSwKLSNlbmRpZgotI2lmZGVmIEFDTF9HRVQKLQl7IEFDTF9HRVQsCSJBQ0xfR0VUIgl9LAotI2VuZGlmCi0jaWZkZWYgQUNMX1NFVAotCXsgQUNMX1NFVCwJIkFDTF9TRVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBBQ0xfQ05UCi0JeyBBQ0xfQ05ULAkiQUNMX0NOVCIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c19hY2wodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHh2YWwoYWNsY21kcywgdGNwLT51X2FyZ1sxXSwgIj8/P0FDTD8/PyIpOwotCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbMl0pOwotCQkvKgotCQkgKiBGSVhNRSAtIGR1bXAgb3V0IHRoZSBsaXN0IG9mIGFjbGVudF90J3MgcG9pbnRlZCB0bwotCQkgKiBieSAidGNwLT51X2FyZ1szXSIgaWYgaXQncyBub3QgTlVMTC4KLQkJICovCi0JCWlmICh0Y3AtPnVfYXJnWzNdKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiwgTlVMTCIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotCi1pbnQKLXN5c19mYWNsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHh2YWwoYWNsY21kcywgdGNwLT51X2FyZ1sxXSwgIj8/P0FDTD8/PyIpOwotCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbMl0pOwotCQkvKgotCQkgKiBGSVhNRSAtIGR1bXAgb3V0IHRoZSBsaXN0IG9mIGFjbGVudF90J3MgcG9pbnRlZCB0bwotCQkgKiBieSAidGNwLT51X2FyZ1szXSIgaWYgaXQncyBub3QgTlVMTC4KLQkJICovCi0JCWlmICh0Y3AtPnVfYXJnWzNdKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiwgTlVMTCIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWNsaXBjW10gPSB7Ci0jaWZkZWYgSVBDX1NITQotCXsgSVBDX1NITSwJIklQQ19TSE0iCX0sCi0jZW5kaWYKLSNpZmRlZiBJUENfU0VNCi0JeyBJUENfU0VNLAkiSVBDX1NFTSIJfSwKLSNlbmRpZgotI2lmZGVmIElQQ19NU0cKLQl7IElQQ19NU0csCSJJUENfTVNHIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLQotaW50Ci1zeXNfYWNsaXBjKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoYWNsaXBjLCB0Y3AtPnVfYXJnWzBdLCAiPz8/SVBDPz8/Iik7Ci0JCXRwcmludGYoIiwgJSNseCwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50eHZhbChhY2xjbWRzLCB0Y3AtPnVfYXJnWzJdLCAiPz8/QUNMPz8/Iik7Ci0JCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1szXSk7Ci0JCS8qCi0JCSAqIEZJWE1FIC0gZHVtcCBvdXQgdGhlIGxpc3Qgb2YgYWNsZW50X3QncyBwb2ludGVkIHRvCi0JCSAqIGJ5ICJ0Y3AtPnVfYXJnWzRdIiBpZiBpdCdzIG5vdCBOVUxMLgotCQkgKi8KLQkJaWYgKHRjcC0+dV9hcmdbNF0pCi0JCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzRdKTsKLQkJZWxzZQotCQkJdHByaW50ZigiLCBOVUxMIik7Ci0JfQotCXJldHVybiAwOwotfQotCi0KLQotI2VuZGlmIC8qIEhBVkVfU1lTX0FDTF9IICovCi0KLSNlbmRpZiAvKiBTVlI0IHx8IExJTlVYU1BBUkMgKi8KLQotI2lmZGVmIExJTlVYCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmc21hZ2ljW10gPSB7Ci0JeyAweDczNzU3MjQ1LAkiQ09EQV9TVVBFUl9NQUdJQyIJfSwKLQl7IDB4MDEyZmY3YjcsCSJDT0hfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDEzNzMsCSJERVZGU19TVVBFUl9NQUdJQyIJfSwKLQl7IDB4MWNkMSwJIkRFVlBUU19TVVBFUl9NQUdJQyIJfSwKLQl7IDB4NDE0QTUzLAkiRUZTX1NVUEVSX01BR0lDIgl9LAotCXsgMHhlZjUxLAkiRVhUMl9PTERfU1VQRVJfTUFHSUMiCX0sCi0JeyAweGVmNTMsCSJFWFQyX1NVUEVSX01BR0lDIgl9LAotCXsgMHgxMzdkLAkiRVhUX1NVUEVSX01BR0lDIgl9LAotCXsgMHhmOTk1ZTg0OSwJIkhQRlNfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDk2NjAsCSJJU09GU19TVVBFUl9NQUdJQyIJfSwKLQl7IDB4MTM3ZiwJIk1JTklYX1NVUEVSX01BR0lDIgl9LAotCXsgMHgxMzhmLAkiTUlOSVhfU1VQRVJfTUFHSUMyIgl9LAotCXsgMHgyNDY4LAkiTUlOSVgyX1NVUEVSX01BR0lDIgl9LAotCXsgMHgyNDc4LAkiTUlOSVgyX1NVUEVSX01BR0lDMiIJfSwKLQl7IDB4NGQ0NCwJIk1TRE9TX1NVUEVSX01BR0lDIgl9LAotCXsgMHg1NjRjLAkiTkNQX1NVUEVSX01BR0lDIgl9LAotCXsgMHg2OTY5LAkiTkZTX1NVUEVSX01BR0lDIgl9LAotCXsgMHg5ZmEwLAkiUFJPQ19TVVBFUl9NQUdJQyIJfSwKLQl7IDB4MDAyZiwJIlFOWDRfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDUyNjU0OTczLAkiUkVJU0VSRlNfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDAyMDExOTk0LAkiU0hNRlNfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDUxN2IsCSJTTUJfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDAxMmZmN2I2LAkiU1lTVjJfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDAxMmZmN2I1LAkiU1lTVjRfU1VQRVJfTUFHSUMiCX0sCi0JeyAweDAwMDExOTU0LAkiVUZTX01BR0lDIgkJfSwKLQl7IDB4NTQxOTAxMDAsCSJVRlNfQ0lHQU0iCQl9LAotCXsgMHgwMTJmZjdiNCwJIlhFTklYX1NVUEVSX01BR0lDIgl9LAotCXsgMHgwMTJmZDE2ZCwJIlhJQUZTX1NVUEVSX01BR0lDIgl9LAotCXsgMHg2MjY1NjU3MiwJIlNZU0ZTX01BR0lDIgkJfSwKLQl7IDAsCQlOVUxMCQkJfSwKLX07Ci0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZuZGVmIFNWUjQKLQotc3RhdGljIGNvbnN0IGNoYXIgKgotc3ByaW50ZnN0eXBlKG1hZ2ljKQotaW50IG1hZ2ljOwotewotCXN0YXRpYyBjaGFyIGJ1ZlszMl07Ci0jaWZkZWYgTElOVVgKLQljb25zdCBjaGFyICpzOwotCi0JcyA9IHhsb29rdXAoZnNtYWdpYywgbWFnaWMpOwotCWlmIChzKSB7Ci0JCXNwcmludGYoYnVmLCAiXCIlc1wiIiwgcyk7Ci0JCXJldHVybiBidWY7Ci0JfQotI2VuZGlmIC8qIExJTlVYICovCi0Jc3ByaW50ZihidWYsICIlI3giLCBtYWdpYyk7Ci0JcmV0dXJuIGJ1ZjsKLX0KLQotc3RhdGljIHZvaWQKLXByaW50c3RhdGZzKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQlzdHJ1Y3Qgc3RhdGZzIHN0YXRidWY7Ci0KLQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQkJcmV0dXJuOwotCX0KLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3RhdGJ1ZikgPCAwKSB7Ci0JCXRwcmludGYoInsuLi59Iik7Ci0JCXJldHVybjsKLQl9Ci0jaWZkZWYgQUxQSEEKLQotCXRwcmludGYoIntmX3R5cGU9JXMsIGZfZmJzaXplPSV1LCBmX2Jsb2Nrcz0ldSwgZl9iZnJlZT0ldSwgIiwKLQkJc3ByaW50ZnN0eXBlKHN0YXRidWYuZl90eXBlKSwKLQkJc3RhdGJ1Zi5mX2JzaXplLCBzdGF0YnVmLmZfYmxvY2tzLCBzdGF0YnVmLmZfYmZyZWUpOwotCXRwcmludGYoImZfYmF2YWlsPSV1LCBmX2ZpbGVzPSV1LCBmX2ZmcmVlPSV1LCBmX2ZzaWQ9eyVkLCAlZH0sIGZfbmFtZWxlbj0ldSIsCi0JCXN0YXRidWYuZl9iYXZhaWwsc3RhdGJ1Zi5mX2ZpbGVzLCBzdGF0YnVmLmZfZmZyZWUsCi0JCXN0YXRidWYuZl9mc2lkLl9fdmFsWzBdLCBzdGF0YnVmLmZfZnNpZC5fX3ZhbFsxXSwKLQkJc3RhdGJ1Zi5mX25hbWVsZW4pOwotI2Vsc2UgLyogIUFMUEhBICovCi0JdHByaW50Zigie2ZfdHlwZT0lcywgZl9ic2l6ZT0lbHUsIGZfYmxvY2tzPSVsdSwgZl9iZnJlZT0lbHUsICIsCi0JCXNwcmludGZzdHlwZShzdGF0YnVmLmZfdHlwZSksCi0JCSh1bnNpZ25lZCBsb25nKXN0YXRidWYuZl9ic2l6ZSwKLQkJKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX2Jsb2NrcywKLQkJKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX2JmcmVlKTsKLQl0cHJpbnRmKCJmX2JhdmFpbD0lbHUsIGZfZmlsZXM9JWx1LCBmX2ZmcmVlPSVsdSwgZl9mc2lkPXslZCwgJWR9IiwKLQkJKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX2JhdmFpbCwKLQkJKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX2ZpbGVzLAotCQkodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfZmZyZWUsCi0JCXN0YXRidWYuZl9mc2lkLl9fdmFsWzBdLCBzdGF0YnVmLmZfZnNpZC5fX3ZhbFsxXSk7Ci0jaWZkZWYgTElOVVgKLQl0cHJpbnRmKCIsIGZfbmFtZWxlbj0lbHUiLCAodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfbmFtZWxlbik7Ci0jZW5kaWYgLyogTElOVVggKi8KLSNlbmRpZiAvKiAhQUxQSEEgKi8KLSNpZmRlZiBfU1RBVEZTX0ZfRlJTSVpFCi0JdHByaW50ZigiLCBmX2Zyc2l6ZT0lbHUiLCAodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfZnJzaXplKTsKLSNlbmRpZgotCXRwcmludGYoIn0iKTsKLX0KLQotaW50Ci1zeXNfc3RhdGZzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQl9IGVsc2UgewotCQlwcmludHN0YXRmcyh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZnN0YXRmcyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlwcmludHN0YXRmcyh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIExJTlVYIAotc3RhdGljIHZvaWQKLXByaW50c3RhdGZzNjQodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotewotCXN0cnVjdCBzdGF0ZnM2NCBzdGF0YnVmOwotCi0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIntmX3R5cGU9JXMsIGZfYnNpemU9JWxsdSwgZl9ibG9ja3M9JWxsdSwgZl9iZnJlZT0lbGx1LCAiLAotCQlzcHJpbnRmc3R5cGUoc3RhdGJ1Zi5mX3R5cGUpLAotCQkodW5zaWduZWQgbG9uZyBsb25nKXN0YXRidWYuZl9ic2l6ZSwKLQkJKHVuc2lnbmVkIGxvbmcgbG9uZylzdGF0YnVmLmZfYmxvY2tzLAotCQkodW5zaWduZWQgbG9uZyBsb25nKXN0YXRidWYuZl9iZnJlZSk7Ci0JdHByaW50ZigiZl9iYXZhaWw9JWxsdSwgZl9maWxlcz0lbGx1LCBmX2ZmcmVlPSVsbHUsIGZfZnNpZD17JWQsICVkfSIsCi0JCSh1bnNpZ25lZCBsb25nIGxvbmcpc3RhdGJ1Zi5mX2JhdmFpbCwKLQkJKHVuc2lnbmVkIGxvbmcgbG9uZylzdGF0YnVmLmZfZmlsZXMsCi0JCSh1bnNpZ25lZCBsb25nIGxvbmcpc3RhdGJ1Zi5mX2ZmcmVlLAotCQlzdGF0YnVmLmZfZnNpZC5fX3ZhbFswXSwgc3RhdGJ1Zi5mX2ZzaWQuX192YWxbMV0pOwotCXRwcmludGYoIiwgZl9uYW1lbGVuPSVsdSIsICh1bnNpZ25lZCBsb25nKXN0YXRidWYuZl9uYW1lbGVuKTsKLSNpZmRlZiBfU1RBVEZTX0ZfRlJTSVpFCi0JdHByaW50ZigiLCBmX2Zyc2l6ZT0lbGx1IiwgKHVuc2lnbmVkIGxvbmcgbG9uZylzdGF0YnVmLmZfZnJzaXplKTsKLSNlbmRpZgotCXRwcmludGYoIn0iKTsKLX0KLQotaW50Ci1zeXNfc3RhdGZzNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JfSBlbHNlIHsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gc2l6ZW9mIChzdHJ1Y3Qgc3RhdGZzNjQpKQotCQkJcHJpbnRzdGF0ZnM2NCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQl0cHJpbnRmKCJ7Pz8/fSIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZnN0YXRmczY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfSBlbHNlIHsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gc2l6ZW9mIChzdHJ1Y3Qgc3RhdGZzNjQpKQotCQkJcHJpbnRzdGF0ZnM2NCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQl0cHJpbnRmKCJ7Pz8/fSIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChfX2FscGhhKQotCi1pbnQKLW9zZl9zdGF0ZnModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCXByaW50c3RhdGZzKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLW9zZl9mc3RhdGZzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCXByaW50c3RhdGZzKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIExJTlVYICYmIF9fYWxwaGEgKi8KLQotI2VuZGlmIC8qICFTVlI0ICovCi0KLSNpZmRlZiBTVU5PUzQKLQotaW50Ci1zeXNfdXN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCB1c3RhdCBzdGF0YnVmOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigibWFrZWRldiglbHUsICVsdSksICIsCi0JCQkJKGxvbmcpIG1ham9yKHRjcC0+dV9hcmdbMF0pLAotCQkJCShsb25nKSBtaW5vcih0Y3AtPnVfYXJnWzBdKSk7Ci0JfQotCWVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZzdGF0YnVmKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIntmX3RmcmVlPSVsdSwgZl90aW5vZGU9JWx1LCAiLAotCQkJCXN0YXRidWYuZl90ZnJlZSwgc3RhdGJ1Zi5mX3Rpbm9kZSk7Ci0JCQl0cHJpbnRmKCJmX2ZuYW1lPVwiJS4qc1wiLCAiLAotCQkJCShpbnQpIHNpemVvZihzdGF0YnVmLmZfZm5hbWUpLAotCQkJCXN0YXRidWYuZl9mbmFtZSk7Ci0JCQl0cHJpbnRmKCJmX2ZwYWNrPVwiJS4qc1wifSIsCi0JCQkJKGludCkgc2l6ZW9mKHN0YXRidWYuZl9mcGFjayksCi0JCQkJc3RhdGJ1Zi5mX2ZwYWNrKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIFNVTk9TNCAqLwotCi1pbnQKLXN5c19waXZvdHJvb3QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLQotLyogZGlyZWN0b3J5ICovCi1pbnQKLXN5c19jaGRpcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19ta2Rpcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfcm1kaXIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZmNoZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2Nocm9vdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19mY2hyb290KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2xpbmsodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3VubGluayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zeW1saW5rKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19yZWFkbGluayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UKLQkJCXByaW50cGF0aG4odGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19yZW5hbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2Nob3duKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZmNob3duKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfY2htb2QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2ZjaG1vZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlI2xvIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgQUxQSEEKLWludAotc3lzX29zZl91dGltZXModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHR2MzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfdXRpbWVzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfdXRpbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWxvbmcgdXRbMl07Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKCF0Y3AtPnVfYXJnWzFdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzFdLCBzaXplb2YgdXQsCi0JCSAgICAoY2hhciAqKSB1dCkgPCAwKQotCQkJdHByaW50ZigiWz8sID9dIik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiWyVzLCIsIHNwcmludHRpbWUodXRbMF0pKTsKLQkJCXRwcmludGYoIiAlc10iLCBzcHJpbnR0aW1lKHV0WzFdKSk7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX21rbm9kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgbW9kZSA9IHRjcC0+dV9hcmdbMV07Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAlcyIsIHNwcmludG1vZGUobW9kZSkpOwotCQlzd2l0Y2ggKG1vZGUgJiBTX0lGTVQpIHsKLQkJY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6Ci0jaWZkZWYgTElOVVhTUEFSQwotCQkJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkKLQkJCXRwcmludGYoIiwgbWFrZWRldiglbHUsICVsdSkiLAotCQkJCSh1bnNpZ25lZCBsb25nKSAoKHRjcC0+dV9hcmdbMl0gPj4gMTgpICYgMHgzZmZmKSwKLQkJCQkodW5zaWduZWQgbG9uZykgKHRjcC0+dV9hcmdbMl0gJiAweDNmZmZmKSk7Ci0JCQllbHNlCi0jZW5kaWYKLQkJCXRwcmludGYoIiwgbWFrZWRldiglbHUsICVsdSkiLAotCQkJCSh1bnNpZ25lZCBsb25nKSBtYWpvcih0Y3AtPnVfYXJnWzJdKSwKLQkJCQkodW5zaWduZWQgbG9uZykgbWlub3IodGNwLT51X2FyZ1syXSkpOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlicmVhazsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfbWtmaWZvKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAlI2xvIiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19mc3luYyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVgKLQotc3RhdGljIHZvaWQKLXByaW50ZGlyKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQlzdHJ1Y3QgZGlyZW50IGQ7Ci0KLQlpZiAoIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmQpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIntkX2lubz0lbGQsICIsICh1bnNpZ25lZCBsb25nKSBkLmRfaW5vKTsKLQl0cHJpbnRmKCJkX25hbWU9Iik7Ci0JcHJpbnRwYXRobih0Y3AsIChsb25nKSAoKHN0cnVjdCBkaXJlbnQgKikgYWRkciktPmRfbmFtZSwgZC5kX3JlY2xlbik7Ci0JdHByaW50ZigifSIpOwotfQotCi1pbnQKLXN5c19yZWFkZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApIHx8IHRjcC0+dV9ydmFsID09IDAgfHwgIXZlcmJvc2UodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZQotCQkJcHJpbnRkaXIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJLyogTm90IG11Y2ggcG9pbnQgaW4gcHJpbnRpbmcgdGhpcyBvdXQsIGl0IGlzIGFsd2F5cyAxLiAqLwotCQlpZiAodGNwLT51X2FyZ1syXSAhPSAxKQotCQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWYgZGVmaW5lZCBGUkVFQlNEIHx8IGRlZmluZWQgTElOVVgKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBkaXJlbnR0eXBlc1tdID0gewotCXsgRFRfVU5LTk9XTiwJIkRUX1VOS05PV04iIAl9LAotCXsgRFRfRklGTywJIkRUX0ZJRk8iIAl9LAotCXsgRFRfQ0hSLAkiRFRfQ0hSIiAJfSwKLQl7IERUX0RJUiwJIkRUX0RJUiIgCX0sCi0JeyBEVF9CTEssCSJEVF9CTEsiIAl9LAotCXsgRFRfUkVHLAkiRFRfUkVHIiAJfSwKLQl7IERUX0xOSywJIkRUX0xOSyIgCX0sCi0JeyBEVF9TT0NLLAkiRFRfU09DSyIgCX0sCi0JeyBEVF9XSFQsCSJEVF9XSFQiIAl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jZW5kaWYKLQotaW50Ci1zeXNfZ2V0ZGVudHModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCBpLCBsZW4sIGRlbnRzID0gMDsKLQljaGFyICpidWY7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWxlbiA9IHRjcC0+dV9ydmFsOwotCWlmICgoYnVmID0gbWFsbG9jKGxlbikpID09IE5VTEwpIHsKLQkJdHByaW50ZigiJSNseCwgJWx1IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgbGVuLCBidWYpIDwgMCkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZnJlZShidWYpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKCFhYmJyZXYodGNwKSkKLQkJdHByaW50ZigieyIpOwotCWZvciAoaSA9IDA7IGkgPCBsZW47KSB7Ci0JCXN0cnVjdCBrZXJuZWxfZGlyZW50ICpkID0gKHN0cnVjdCBrZXJuZWxfZGlyZW50ICopICZidWZbaV07Ci0jaWZkZWYgTElOVVgKLQkJaWYgKCFhYmJyZXYodGNwKSkgewotCQkJdHByaW50ZigiJXN7ZF9pbm89JWx1LCBkX29mZj0lbHUsICIsCi0JCQkJaSA/ICIgIiA6ICIiLCBkLT5kX2lubywgZC0+ZF9vZmYpOwotCQkJdHByaW50ZigiZF9yZWNsZW49JXUsIGRfbmFtZT1cIiVzXCJ9IiwKLQkJCQlkLT5kX3JlY2xlbiwgZC0+ZF9uYW1lKTsKLQkJfQotI2VuZGlmIC8qIExJTlVYICovCi0jaWZkZWYgU1ZSNAotCQlpZiAoIWFiYnJldih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlc3tkX2lubz0lbHUsIGRfb2ZmPSVsdSwgIiwKLQkJCQlpID8gIiAiIDogIiIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpIGQtPmRfaW5vLAotCQkJCSh1bnNpZ25lZCBsb25nKSBkLT5kX29mZik7Ci0JCQl0cHJpbnRmKCJkX3JlY2xlbj0ldSwgZF9uYW1lPVwiJXNcIn0iLAotCQkJCWQtPmRfcmVjbGVuLCBkLT5kX25hbWUpOwotCQl9Ci0jZW5kaWYgLyogU1ZSNCAqLwotI2lmZGVmIFNVTk9TNAotCQlpZiAoIWFiYnJldih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlc3tkX29mZj0lbHUsIGRfZmlsZW5vPSVsdSwgZF9yZWNsZW49JXUsICIsCi0JCQkJaSA/ICIgIiA6ICIiLCBkLT5kX29mZiwgZC0+ZF9maWxlbm8sCi0JCQkJZC0+ZF9yZWNsZW4pOwotCQkJdHByaW50ZigiZF9uYW1sZW49JXUsIGRfbmFtZT1cIiUuKnNcIn0iLAotCQkJCWQtPmRfbmFtbGVuLCBkLT5kX25hbWxlbiwgZC0+ZF9uYW1lKTsKLQkJfQotI2VuZGlmIC8qIFNVTk9TNCAqLwotI2lmZGVmIEZSRUVCU0QKLQkJaWYgKCFhYmJyZXYodGNwKSkgewotCQkJdHByaW50ZigiJXN7ZF9maWxlbm89JXUsIGRfcmVjbGVuPSV1LCBkX3R5cGU9IiwKLQkJCQlpID8gIiAiIDogIiIsIGQtPmRfZmlsZW5vLCBkLT5kX3JlY2xlbik7Ci0JCQlwcmludHh2YWwoZGlyZW50dHlwZXMsIGQtPmRfdHlwZSwgIkRUXz8/PyIpOwotCQkJdHByaW50ZigiLCBkX25hbWxlbj0ldSwgZF9uYW1lPVwiJS4qc1wifSIsCi0JCQkJZC0+ZF9uYW1sZW4sIGQtPmRfbmFtbGVuLCBkLT5kX25hbWUpOwotCQl9Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCQlpZiAoIWQtPmRfcmVjbGVuKSB7Ci0JCQl0cHJpbnRmKCIvKiBkX3JlY2xlbiA9PSAwLCBwcm9ibGVtIGhlcmUgKi8iKTsKLQkJCWJyZWFrOwotCQl9Ci0JCWkgKz0gZC0+ZF9yZWNsZW47Ci0JCWRlbnRzKys7Ci0JfQotCWlmICghYWJicmV2KHRjcCkpCi0JCXRwcmludGYoIn0iKTsKLQllbHNlCi0JCXRwcmludGYoIi8qICV1IGVudHJpZXMgKi8iLCBkZW50cyk7Ci0JdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQlmcmVlKGJ1Zik7Ci0JcmV0dXJuIDA7Ci19Ci0KLQotI2lmIF9MRlM2NF9MQVJHRUZJTEUKLWludAotc3lzX2dldGRlbnRzNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCBpLCBsZW4sIGRlbnRzID0gMDsKLQljaGFyICpidWY7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWxlbiA9IHRjcC0+dV9ydmFsOwotCWlmICgoYnVmID0gbWFsbG9jKGxlbikpID09IE5VTEwpIHsKLQkJdHByaW50ZigiJSNseCwgJWx1IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgbGVuLCBidWYpIDwgMCkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZnJlZShidWYpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKCFhYmJyZXYodGNwKSkKLQkJdHByaW50ZigieyIpOwotCWZvciAoaSA9IDA7IGkgPCBsZW47KSB7Ci0JCXN0cnVjdCBkaXJlbnQ2NCAqZCA9IChzdHJ1Y3QgZGlyZW50NjQgKikgJmJ1ZltpXTsKLSNpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKFNWUjQpCi0JCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCXRwcmludGYoIiVze2RfaW5vPSVsbHUsIGRfb2ZmPSVsbHUsICIsCi0JCQkJaSA/ICIgIiA6ICIiLAotCQkJCWQtPmRfaW5vLAotCQkJCWQtPmRfb2ZmKTsKLSNpZmRlZiBMSU5VWAotCQkJdHByaW50ZigiZF90eXBlPSIpOwotCQkJcHJpbnR4dmFsKGRpcmVudHR5cGVzLCBkLT5kX3R5cGUsICJEVF8/Pz8iKTsKLQkJCXRwcmludGYoIiwgIik7Ci0jZW5kaWYKLQkJCXRwcmludGYoImRfcmVjbGVuPSV1LCBkX25hbWU9XCIlc1wifSIsCi0JCQkJZC0+ZF9yZWNsZW4sIGQtPmRfbmFtZSk7Ci0JCX0KLSNlbmRpZiAvKiBMSU5VWCB8fCBTVlI0ICovCi0jaWZkZWYgU1VOT1M0Ci0JCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCXRwcmludGYoIiVze2Rfb2ZmPSVsdSwgZF9maWxlbm89JWx1LCBkX3JlY2xlbj0ldSwgIiwKLQkJCQlpID8gIiAiIDogIiIsIGQtPmRfb2ZmLCBkLT5kX2ZpbGVubywKLQkJCQlkLT5kX3JlY2xlbik7Ci0JCQl0cHJpbnRmKCJkX25hbWxlbj0ldSwgZF9uYW1lPVwiJS4qc1wifSIsCi0JCQkJZC0+ZF9uYW1sZW4sIGQtPmRfbmFtbGVuLCBkLT5kX25hbWUpOwotCQl9Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0JCWkgKz0gZC0+ZF9yZWNsZW47Ci0JCWRlbnRzKys7Ci0JfQotCWlmICghYWJicmV2KHRjcCkpCi0JCXRwcmludGYoIn0iKTsKLQllbHNlCi0JCXRwcmludGYoIi8qICV1IGVudHJpZXMgKi8iLCBkZW50cyk7Ci0JdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQlmcmVlKGJ1Zik7Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotI2lmZGVmIEZSRUVCU0QKLWludAotc3lzX2dldGRpcmVudHJpZXModGNwKQotc3RydWN0IHRjYiAqIHRjcDsKLXsKLQlpbnQgaSwgbGVuLCBkZW50cyA9IDA7Ci0JbG9uZyBiYXNlcDsKLQljaGFyICpidWY7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWxlbiA9IHRjcC0+dV9ydmFsOwotCWlmICgoYnVmID0gbWFsbG9jKGxlbikpID09IE5VTEwpIHsKLQkJdHByaW50ZigiJSNseCwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgbGVuLCBidWYpIDwgMCkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKLQkJZnJlZShidWYpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKCFhYmJyZXYodGNwKSkKLQkJdHByaW50ZigieyIpOwotCWZvciAoaSA9IDA7IGkgPCBsZW47KSB7Ci0JCXN0cnVjdCBrZXJuZWxfZGlyZW50ICpkID0gKHN0cnVjdCBrZXJuZWxfZGlyZW50ICopICZidWZbaV07Ci0JCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCXRwcmludGYoIiVze2RfZmlsZW5vPSV1LCBkX3JlY2xlbj0ldSwgZF90eXBlPSIsCi0JCQkJaSA/ICIgIiA6ICIiLCBkLT5kX2ZpbGVubywgZC0+ZF9yZWNsZW4pOwotCQkJcHJpbnR4dmFsKGRpcmVudHR5cGVzLCBkLT5kX3R5cGUsICJEVF8/Pz8iKTsKLQkJCXRwcmludGYoIiwgZF9uYW1sZW49JXUsIGRfbmFtZT1cIiUuKnNcIn0iLAotCQkJCWQtPmRfbmFtbGVuLCBkLT5kX25hbWxlbiwgZC0+ZF9uYW1lKTsKLQkJfQotCQlpICs9IGQtPmRfcmVjbGVuOwotCQlkZW50cysrOwotCX0KLQlpZiAoIWFiYnJldih0Y3ApKQotCQl0cHJpbnRmKCJ9Iik7Ci0JZWxzZQotCQl0cHJpbnRmKCIvKiAldSBlbnRyaWVzICovIiwgZGVudHMpOwotCWZyZWUoYnVmKTsKLQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZiYXNlcCkgPCAwKQotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQllbHNlCi0JCXRwcmludGYoIiwgWyVsdV0iLCBiYXNlcCk7Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotI2lmZGVmIExJTlVYCi1pbnQKLXN5c19nZXRjd2QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChleGl0aW5nKHRjcCkpIHsKLQlpZiAoc3lzZXJyb3IodGNwKSkKLQkgICAgdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UKLQkgICAgcHJpbnRwYXRobih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9ydmFsIC0gMSk7Ci0JdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTElOVVggKi8KLQotI2lmZGVmIEZSRUVCU0QKLWludAotc3lzX19fZ2V0Y3dkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JaWYgKHN5c2Vycm9yKHRjcCkpCi0JICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQllbHNlCi0JICAgIHByaW50cGF0aG4odGNwLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9TWVNfQVNZTkNIX0gKLQotaW50Ci1zeXNfYWlvcmVhZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IGFpb19yZXN1bHRfdCByZXM7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlCi0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKLQkJcHJpbnR4dmFsKHdoZW5jZSwgdGNwLT51X2FyZ1s0XSwgIkxfPz8/Iik7Ci0JCWlmIChzeXNlcnJvcih0Y3ApIHx8IHRjcC0+dV9hcmdbNV0gPT0gMAotCQkgICAgfHwgdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzVdLCAmcmVzKSA8IDApCi0JCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzVdKTsKLQkJZWxzZQotCQkJdHByaW50ZigiLCB7YWlvX3JldHVybiAlZCBhaW9fZXJybm8gJWR9IiwKLQkJCQlyZXMuYWlvX3JldHVybiwgcmVzLmFpb19lcnJubyk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19haW93cml0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IGFpb19yZXN1bHRfdCByZXM7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKLQkJcHJpbnR4dmFsKHdoZW5jZSwgdGNwLT51X2FyZ1s0XSwgIkxfPz8/Iik7Ci0JfQotCWVsc2UgewotCQlpZiAodGNwLT51X2FyZ1s1XSA9PSAwKQotCQkJdHByaW50ZigiLCBOVUxMIik7Ci0JCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkKLQkJICAgIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s1XSwgJnJlcykgPCAwKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s1XSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiwge2Fpb19yZXR1cm4gJWQgYWlvX2Vycm5vICVkfSIsCi0JCQkJcmVzLmFpb19yZXR1cm4sIHJlcy5haW9fZXJybm8pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfYWlvd2FpdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfYWlvY2FuY2VsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgYWlvX3Jlc3VsdF90IHJlczsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKQotCQkgICAgfHwgdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmcmVzKSA8IDApCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoInthaW9fcmV0dXJuICVkIGFpb19lcnJubyAlZH0iLAotCQkJCXJlcy5haW9fcmV0dXJuLCByZXMuYWlvX2Vycm5vKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBIQVZFX1NZU19BU1lOQ0hfSCAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgeGF0dHJmbGFnc1tdID0gewotI2lmZGVmIFhBVFRSX0NSRUFURQotCXsgWEFUVFJfQ1JFQVRFLAkgIlhBVFRSX0NSRUFURSIgfSwKLQl7IFhBVFRSX1JFUExBQ0UsICJYQVRUUl9SRVBMQUNFIiB9LAotI2VuZGlmCi0JeyAwLAkJIE5VTEwgfQotfTsKLQotc3RhdGljIHZvaWQKLXByaW50X3hhdHRyX3ZhbCh0Y3AsIGZhaWxlZCwgYXJnLCBpbnNpemUsIHNpemUpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgZmFpbGVkOwotdW5zaWduZWQgbG9uZyBhcmc7Ci11bnNpZ25lZCBsb25nIGluc2l6ZSwgc2l6ZTsKLXsKLSAgICBpZiAoIWZhaWxlZCkgewotCXVuc2lnbmVkIGxvbmcgY2FwYWNpdHkgPSA0ICogc2l6ZSArIDE7Ci0JdW5zaWduZWQgY2hhciAqYnVmID0gKGNhcGFjaXR5IDwgc2l6ZSkgPyBOVUxMIDogbWFsbG9jKGNhcGFjaXR5KTsKLQlpZiAoYnVmID09IE5VTEwgfHwgLyogcHJvYmFibHkgYSBib2d1cyBzaXplIGFyZ3VtZW50ICovCi0JICAgIHVtb3Zlbih0Y3AsIGFyZywgc2l6ZSwgKGNoYXIgKikgJmJ1ZlszICogc2l6ZV0pIDwgMCkgewotCSAgICBmYWlsZWQgPSAxOwotCX0KLQllbHNlIHsKLQkgICAgdW5zaWduZWQgY2hhciAqb3V0ID0gYnVmOwotCSAgICB1bnNpZ25lZCBjaGFyICppbiA9ICZidWZbMyAqIHNpemVdOwotCSAgICBzaXplX3QgaTsKLQkgICAgZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkKLQkJaWYgKGlzcHJpbnQoaW5baV0pKQotCQkgICAgKm91dCsrID0gaW5baV07Ci0JCWVsc2UgewotI2RlZmluZSB0b2hleChuKSAiMDEyMzQ1Njc4OWFiY2RlZiJbbl0KLQkJICAgICpvdXQrKyA9ICdcXCc7Ci0JCSAgICAqb3V0KysgPSAneCc7Ci0JCSAgICAqb3V0KysgPSB0b2hleChpbltpXSAvIDE2KTsKLQkJICAgICpvdXQrKyA9IHRvaGV4KGluW2ldICUgMTYpOwotCQl9Ci0JICAgIC8qIERvbid0IHByaW50IHRlcm1pbmF0aW5nIE5VTCBpZiB0aGVyZSBpcyBvbmUuICAqLwotCSAgICBpZiAoaW5baSAtIDFdID09ICdcMCcpCi0JCW91dCAtPSA0OwotCSAgICAqb3V0ID0gJ1wwJzsKLQkgICAgdHByaW50ZigiLCBcIiVzXCIsICVsZCIsIGJ1ZiwgaW5zaXplKTsKLQl9Ci0JZnJlZShidWYpOwotICAgIH0KLSAgICBpZiAoZmFpbGVkKQotCXRwcmludGYoIiwgMHglbHgsICVsZCIsIGFyZywgaW5zaXplKTsKLX0KLQotaW50Ci1zeXNfc2V0eGF0dHIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLQlwcmludF94YXR0cl92YWwodGNwLCAwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzNdKTsKLQl0cHJpbnRmKCIsICIpOwotCXByaW50ZmxhZ3MoeGF0dHJmbGFncywgdGNwLT51X2FyZ1s0XSwgIlhBVFRSXz8/PyIpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZnNldHhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0JcHJpbnRfeGF0dHJfdmFsKHRjcCwgMCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1szXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludGZsYWdzKHhhdHRyZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJYQVRUUl8/Pz8iKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldHhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCXRwcmludGYoIiwgIik7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0gICAgfSBlbHNlIHsKLQlwcmludF94YXR0cl92YWwodGNwLCBzeXNlcnJvcih0Y3ApLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLAotCQkJdGNwLT51X3J2YWwpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZmdldHhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0gICAgfSBlbHNlIHsKLQlwcmludF94YXR0cl92YWwodGNwLCBzeXNlcnJvcih0Y3ApLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLAotCQkJdGNwLT51X3J2YWwpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfbGlzdHhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotICAgIH0gZWxzZSB7Ci0JLyogWFhYIFByaW50IHZhbHVlIGluIGZvcm1hdCAqLwotCXRwcmludGYoIiwgJXAsICVsdSIsICh2b2lkICopIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZmxpc3R4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLSAgICB9IGVsc2UgewotCS8qIFhYWCBQcmludCB2YWx1ZSBpbiBmb3JtYXQgKi8KLQl0cHJpbnRmKCIsICVwLCAlbHUiLCAodm9pZCAqKSB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3JlbW92ZXhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCXRwcmludGYoIiwgIik7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1pbnQKLXN5c19mcmVtb3ZleGF0dHIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhZHZpc2VbXSA9IHsKLSAgeyBQT1NJWF9GQURWX05PUk1BTCwJCSJQT1NJWF9GQURWX05PUk1BTCIJfSwKLSAgeyBQT1NJWF9GQURWX1JBTkRPTSwJCSJQT1NJWF9GQURWX1JBTkRPTSIJfSwKLSAgeyBQT1NJWF9GQURWX1NFUVVFTlRJQUwsCSJQT1NJWF9GQURWX1NFUVVFTlRJQUwiCX0sCi0gIHsgUE9TSVhfRkFEVl9XSUxMTkVFRCwJIlBPU0lYX0ZBRFZfV0lMTE5FRUQiCX0sCi0gIHsgUE9TSVhfRkFEVl9ET05UTkVFRCwJIlBPU0lYX0ZBRFZfRE9OVE5FRUQiCX0sCi0gIHsgUE9TSVhfRkFEVl9OT1JFVVNFLAkJIlBPU0lYX0ZBRFZfTk9SRVVTRSIJfSwKLSAgeyAwLAkJCQlOVUxMCQkJfQotfTsKLQotCi0jaWZkZWYgTElOVVgKLWludAotc3lzX2ZhZHZpc2U2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsbGQsICVsZCwgIiwKLQkJdGNwLT51X2FyZ1swXSwKLSMgaWYgZGVmaW5lZCBJQTY0IHx8IGRlZmluZWQgWDg2XzY0IHx8IGRlZmluZWQgQUxQSEEKLQkJKGxvbmcgbG9uZyBpbnQpIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCXByaW50eHZhbChhZHZpc2UsIHRjcC0+dV9hcmdbM10sICJQT1NJWF9GQURWXz8/PyIpOwotI2Vsc2UKLQkJTE9OR19MT05HKHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pLCB0Y3AtPnVfYXJnWzNdKTsKLQlwcmludHh2YWwoYWR2aXNlLCB0Y3AtPnVfYXJnWzRdLCAiUE9TSVhfRkFEVl8/Pz8iKTsKLSNlbmRpZgotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0KLWludAotc3lzX2ZhZHZpc2U2NF82NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsbGQsICVsbGQsICIsCi0JCXRjcC0+dV9hcmdbMF0sCi0jIGlmIGRlZmluZWQgSUE2NCB8fCBkZWZpbmVkIFg4Nl82NCB8fCBkZWZpbmVkIEFMUEhBCi0JCShsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdLCAobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1syXSk7Ci0JcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1szXSwgIlBPU0lYX0ZBRFZfPz8/Iik7Ci0jZWxzZQotCQlMT05HX0xPTkcodGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSksCi0JCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7Ci0JcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1s1XSwgIlBPU0lYX0ZBRFZfPz8/Iik7Ci0jZW5kaWYKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8vI2VuZGlmIC8qSEFWRV9BTkRST0lEX09TICovCmRpZmYgLS1naXQgYS9pbnN0YWxsLXNoIGIvaW5zdGFsbC1zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzZmOTZmMy4uMDAwMDAwMAotLS0gYS9pbnN0YWxsLXNoCisrKyAvZGV2L251bGwKQEAgLTEsMjc2ICswLDAgQEAKLSMhL2Jpbi9zaAotIwotIyBpbnN0YWxsIC0gaW5zdGFsbCBhIHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKLSMgVGhpcyBjb21lcyBmcm9tIFgxMVI1IChtaXQvdXRpbC9zY3JpcHRzL2luc3RhbGwuc2gpLgotIwotIyBDb3B5cmlnaHQgMTk5MSBieSB0aGUgTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neQotIwotIyBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlLCBhbmQgc2VsbCB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLSMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKLSMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0Ci0jIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcKLSMgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgTS5JLlQuIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCi0jIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYywKLSMgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgTS5JLlQuIG1ha2VzIG5vIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUKLSMgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdCBpcyBwcm92aWRlZCAiYXMgaXMiCi0jIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5LgotIwotIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAotIyBgbWFrZScgaW1wbGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZpbGUgY2FsbGVkIGluc3RhbGwgZnJvbSBpdAotIyB3aGVuIHRoZXJlIGlzIG5vIE1ha2VmaWxlLgotIwotIyBUaGlzIHNjcmlwdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNjcmlwdCwgYnV0IHdhcyB3cml0dGVuCi0jIGZyb20gc2NyYXRjaC4gIEl0IGNhbiBvbmx5IGluc3RhbGwgb25lIGZpbGUgYXQgYSB0aW1lLCBhIHJlc3RyaWN0aW9uCi0jIHNoYXJlZCB3aXRoIG1hbnkgT1MncyBpbnN0YWxsIHByb2dyYW1zLgotCi0KLSMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAotCi0jIERvbid0IHVzZSA6LSBzaW5jZSA0LjNCU0QgYW5kIGVhcmxpZXIgc2hlbGxzIGRvbid0IGxpa2UgaXQuCi1kb2l0PSIke0RPSVRQUk9HLX0iCi0KLQotIyBwdXQgaW4gYWJzb2x1dGUgcGF0aHMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7IG9yIHVzZSBlbnYuIHZhcnMuCi0KLW12cHJvZz0iJHtNVlBST0ctbXZ9IgotY3Bwcm9nPSIke0NQUFJPRy1jcH0iCi1jaG1vZHByb2c9IiR7Q0hNT0RQUk9HLWNobW9kfSIKLWNob3ducHJvZz0iJHtDSE9XTlBST0ctY2hvd259IgotY2hncnBwcm9nPSIke0NIR1JQUFJPRy1jaGdycH0iCi1zdHJpcHByb2c9IiR7U1RSSVBQUk9HLXN0cmlwfSIKLXJtcHJvZz0iJHtSTVBST0ctcm19IgotbWtkaXJwcm9nPSIke01LRElSUFJPRy1ta2Rpcn0iCi0KLXRyYW5zZm9ybWJhc2VuYW1lPSIiCi10cmFuc2Zvcm1fYXJnPSIiCi1pbnN0Y21kPSIkbXZwcm9nIgotY2htb2RjbWQ9IiRjaG1vZHByb2cgMDc1NSIKLWNob3duY21kPSIiCi1jaGdycGNtZD0iIgotc3RyaXBjbWQ9IiIKLXJtY21kPSIkcm1wcm9nIC1mIgotbXZjbWQ9IiRtdnByb2ciCi1zcmM9IiIKLWRzdD0iIgotZGlyX2FyZz0iIgotCi13aGlsZSBbIHgiJDEiICE9IHggXTsgZG8KLSAgICBjYXNlICQxIGluCi0JLWMpIGluc3RjbWQ9JGNwcHJvZwotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktZCkgZGlyX2FyZz10cnVlCi0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCS1tKSBjaG1vZGNtZD0iJGNobW9kcHJvZyAkMiIKLQkgICAgc2hpZnQKLQkgICAgc2hpZnQKLQkgICAgY29udGludWU7OwotCi0JLW8pIGNob3duY21kPSIkY2hvd25wcm9nICQyIgotCSAgICBzaGlmdAotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktZykgY2hncnBjbWQ9IiRjaGdycHByb2cgJDIiCi0JICAgIHNoaWZ0Ci0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCS1zKSBzdHJpcGNtZD0kc3RyaXBwcm9nCi0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCS10PSopIHRyYW5zZm9ybWFyZz1gZWNobyAkMSB8IHNlZCAncy8tdD0vLydgCi0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCS1iPSopIHRyYW5zZm9ybWJhc2VuYW1lPWBlY2hvICQxIHwgc2VkICdzLy1iPS8vJ2AKLQkgICAgc2hpZnQKLQkgICAgY29udGludWU7OwotCi0JKikgIGlmIFsgeCIkc3JjIiA9IHggXQotCSAgICB0aGVuCi0JCXNyYz0kMQotCSAgICBlbHNlCi0JCSMgdGhpcyBjb2xvbiBpcyB0byB3b3JrIGFyb3VuZCBhIDM4NkJTRCAvYmluL3NoIGJ1ZwotCQk6Ci0JCWRzdD0kMQotCSAgICBmaQotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0gICAgZXNhYwotZG9uZQotCi1pZiBbIHgiJHNyYyIgPSB4IF0KLXRoZW4KLQllY2hvICIkMDogbm8gaW5wdXQgZmlsZSBzcGVjaWZpZWQiID4mMgotCWV4aXQgMQotZWxzZQotCToKLWZpCi0KLWlmIFsgeCIkZGlyX2FyZyIgIT0geCBdOyB0aGVuCi0JZHN0PSRzcmMKLQlzcmM9IiIKLQotCWlmIFsgLWQgIiRkc3QiIF07IHRoZW4KLQkJaW5zdGNtZD06Ci0JCWNobW9kY21kPSIiCi0JZWxzZQotCQlpbnN0Y21kPSRta2RpcnByb2cKLQlmaQotZWxzZQotCi0jIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkaW5zdGNtZCAkc3JjICRkc3R0bXAiIGNvbW1hbmQKLSMgbWlnaHQgY2F1c2UgZGlyZWN0b3JpZXMgdG8gYmUgY3JlYXRlZCwgd2hpY2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKLSMgaWYgJHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgotCi0JaWYgWyAtZiAiJHNyYyIgXSB8fCBbIC1kICIkc3JjIiBdCi0JdGhlbgotCQk6Ci0JZWxzZQotCQllY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdCIgPiYyCi0JCWV4aXQgMQotCWZpCi0KLQlpZiBbIHgiJGRzdCIgPSB4IF0KLQl0aGVuCi0JCWVjaG8gIiQwOiBubyBkZXN0aW5hdGlvbiBzcGVjaWZpZWQiID4mMgotCQlleGl0IDEKLQllbHNlCi0JCToKLQlmaQotCi0jIElmIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyBpZiB5b3VyIHN5c3RlbQotIyBkb2VzIG5vdCBsaWtlIGRvdWJsZSBzbGFzaGVzIGluIGZpbGVuYW1lcywgeW91IG1heSBuZWVkIHRvIGFkZCBzb21lIGxvZ2ljCi0KLQlpZiBbIC1kICIkZHN0IiBdCi0JdGhlbgotCQlkc3Q9JGRzdC9gYmFzZW5hbWUgIiRzcmMiYAotCWVsc2UKLQkJOgotCWZpCi1maQotCi0jIyB0aGlzIHNlZCBjb21tYW5kIGVtdWxhdGVzIHRoZSBkaXJuYW1lIGNvbW1hbmQKLWRzdGRpcj1gZWNobyAiJGRzdCIgfCBzZWQgLWUgJ3MsW14vXSokLCw7cywvJCwsO3MsXiQsLiwnYAotCi0jIE1ha2Ugc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzLgotIyAgdGhpcyBwYXJ0IGlzIHRha2VuIGZyb20gTm9haCBGcmllZG1hbidzIG1raW5zdGFsbGRpcnMgc2NyaXB0Ci0KLSMgU2tpcCBsb3RzIG9mIHN0YXQgY2FsbHMgaW4gdGhlIHVzdWFsIGNhc2UuCi1pZiBbICEgLWQgIiRkc3RkaXIiIF07IHRoZW4KLWRlZmF1bHRJRlM9JwotCScKLUlGUz0iJHtJRlMtJGRlZmF1bHRJRlN9IgotCi1vSUZTPSRJRlMKLSMgU29tZSBzaCdzIGNhbid0IGhhbmRsZSBJRlM9LyBmb3Igc29tZSByZWFzb24uCi1JRlM9JyUnCi1zZXQgLSBgZWNobyAiJGRzdGRpciIgfCBzZWQgLWUgJ3NAL0AlQGcnIC1lICdzQF4lQC9AJ2AKLUlGUz0kb0lGUwotCi1wYXRoY29tcD0nJwotCi13aGlsZSBbICQjIC1uZSAwIF0gOyBkbwotCXBhdGhjb21wPSRwYXRoY29tcCQxCi0Jc2hpZnQKLQotCWlmIFsgISAtZCAiJHBhdGhjb21wIiBdIDsKLSAgICAgICAgdGhlbgotCQkkbWtkaXJwcm9nICIkcGF0aGNvbXAiCi0JZWxzZQotCQk6Ci0JZmkKLQotCXBhdGhjb21wPSRwYXRoY29tcC8KLWRvbmUKLWZpCi0KLWlmIFsgeCIkZGlyX2FyZyIgIT0geCBdCi10aGVuCi0JJGRvaXQgJGluc3RjbWQgIiRkc3QiICYmCi0KLQlpZiBbIHgiJGNob3duY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNob3duY21kICIkZHN0IjsgZWxzZSA6IDsgZmkgJiYKLQlpZiBbIHgiJGNoZ3JwY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNoZ3JwY21kICIkZHN0IjsgZWxzZSA6IDsgZmkgJiYKLQlpZiBbIHgiJHN0cmlwY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJHN0cmlwY21kICIkZHN0IjsgZWxzZSA6IDsgZmkgJiYKLQlpZiBbIHgiJGNobW9kY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNobW9kY21kICIkZHN0IjsgZWxzZSA6IDsgZmkKLWVsc2UKLQotIyBJZiB3ZSdyZSBnb2luZyB0byByZW5hbWUgdGhlIGZpbmFsIGV4ZWN1dGFibGUsIGRldGVybWluZSB0aGUgbmFtZSBub3cuCi0KLQlpZiBbIHgiJHRyYW5zZm9ybWFyZyIgPSB4IF0KLQl0aGVuCi0JCWRzdGZpbGU9YGJhc2VuYW1lICIkZHN0ImAKLQllbHNlCi0JCWRzdGZpbGU9YGJhc2VuYW1lICIkZHN0IiAkdHJhbnNmb3JtYmFzZW5hbWUgfAotCQkJc2VkICR0cmFuc2Zvcm1hcmdgJHRyYW5zZm9ybWJhc2VuYW1lCi0JZmkKLQotIyBkb24ndCBhbGxvdyB0aGUgc2VkIGNvbW1hbmQgdG8gY29tcGxldGVseSBlbGltaW5hdGUgdGhlIGZpbGVuYW1lCi0KLQlpZiBbIHgiJGRzdGZpbGUiID0geCBdCi0JdGhlbgotCQlkc3RmaWxlPWBiYXNlbmFtZSAiJGRzdCJgCi0JZWxzZQotCQk6Ci0JZmkKLQotIyBNYWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1lcyBpbiB0aGUgcHJvcGVyIGRpcmVjdG9yeS4KLQotCWRzdHRtcD0kZHN0ZGlyLyNpbnN0LiQkIwotCXJtdG1wPSRkc3RkaXIvI3JtLiQkIwotCi0jIFRyYXAgdG8gY2xlYW4gdXAgdGVtcCBmaWxlcyBhdCBleGl0LgotCi0JdHJhcCAnc3RhdHVzPSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkc3RhdHVzJyAwCi0JdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKLQotIyBNb3ZlIG9yIGNvcHkgdGhlIGZpbGUgbmFtZSB0byB0aGUgdGVtcCBuYW1lCi0KLQkkZG9pdCAkaW5zdGNtZCAiJHNyYyIgIiRkc3R0bXAiICYmCi0KLSMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cwotCi0jIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCi0jIGlnbm9yZSBlcnJvcnMgZnJvbSBhbnkgb2YgdGhlc2UsIGp1c3QgbWFrZSBzdXJlIG5vdCB0byBpZ25vcmUKLSMgZXJyb3JzIGZyb20gdGhlIGFib3ZlICIkZG9pdCAkaW5zdGNtZCAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCi0KLQlpZiBbIHgiJGNob3duY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNob3duY21kICIkZHN0dG1wIjsgZWxzZSA6O2ZpICYmCi0JaWYgWyB4IiRjaGdycGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IGVsc2UgOjtmaSAmJgotCWlmIFsgeCIkc3RyaXBjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkc3RyaXBjbWQgIiRkc3R0bXAiOyBlbHNlIDo7ZmkgJiYKLQlpZiBbIHgiJGNobW9kY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNobW9kY21kICIkZHN0dG1wIjsgZWxzZSA6O2ZpICYmCi0KLSMgTm93IHJlbW92ZSBvciBtb3ZlIGFzaWRlIGFueSBvbGQgZmlsZSBhdCBkZXN0aW5hdGlvbiBsb2NhdGlvbi4gIFdlIHRyeSB0aGlzCi0jIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZSBzeXN0ZW1zIGFuZCB0aGUgZGVzdGluYXRpb24KLSMgZmlsZSBtaWdodCBiZSBidXN5IGZvciBvdGhlciByZWFzb25zLiAgSW4gdGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cAotIyBtaWdodCBmYWlsIGJ1dCB0aGUgbmV3IGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgotCi17Ci0JaWYgWyAtZiAiJGRzdGRpci8kZHN0ZmlsZSIgXQotCXRoZW4KLQkJJGRvaXQgJHJtY21kIC1mICIkZHN0ZGlyLyRkc3RmaWxlIiAyPi9kZXYvbnVsbCB8fAotCQkkZG9pdCAkbXZjbWQgLWYgIiRkc3RkaXIvJGRzdGZpbGUiICIkcm10bXAiIDI+L2Rldi9udWxsIHx8Ci0JCXsKLQkJICBlY2hvICIkMDogY2Fubm90IHVubGluayBvciByZW5hbWUgJGRzdGRpci8kZHN0ZmlsZSIgPiYyCi0JCSAgKGV4aXQgMSk7IGV4aXQKLQkJfQotCWVsc2UKLQkJOgotCWZpCi19ICYmCi0KLSMgTm93IHJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KLQotCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3RkaXIvJGRzdGZpbGUiCi0KLWZpICYmCi0KLSMgVGhlIGZpbmFsIGxpdHRsZSB0cmljayB0byAiY29ycmVjdGx5IiBwYXNzIHRoZSBleGl0IHN0YXR1cyB0byB0aGUgZXhpdCB0cmFwLgotCi17Ci0JKGV4aXQgMCk7IGV4aXQKLX0KZGlmZiAtLWdpdCBhL2lvLmMgYi9pby5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjg2ZjU5Li4wMDAwMDAwCi0tLSBhL2lvLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGlvLmMsdiAxLjIwIDIwMDUvMDYvMDEgMTk6MjI6MDggcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaWYgSEFWRV9TWVNfVUlPX0gKLSNpbmNsdWRlIDxzeXMvdWlvLmg+Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi0vKgotICogSGFja3MgZm9yIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG9uZyBsb25nIG9mZl90Ci0gKi8KLQotI2RlZmluZSBzeXNfcHJlYWQ2NAlzeXNfcHJlYWQKLSNkZWZpbmUgc3lzX3B3cml0ZTY0CXN5c19wd3JpdGUKLSNlbmRpZgotCi1pbnQKLXN5c19yZWFkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlCi0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3dyaXRlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmIEhBVkVfU1lTX1VJT19ICi12b2lkCi10cHJpbnRfaW92KHRjcCwgbGVuLCBhZGRyKQotc3RydWN0IHRjYiAqIHRjcDsKLXVuc2lnbmVkIGxvbmcgbGVuOwotdW5zaWduZWQgbG9uZyBhZGRyOwotewotCXN0cnVjdCBpb3ZlYyBpb3Y7Ci0JdW5zaWduZWQgbG9uZyBzaXplLCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKLQlpbnQgZmFpbGVkID0gMDsKLQotCWlmICghbGVuKSB7Ci0JCXRwcmludGYoIltdIik7Ci0JCXJldHVybjsKLQl9Ci0Jc2l6ZSA9IGxlbiAqIHNpemVvZihpb3YpOwotCWVuZCA9IGFkZHIgKyBzaXplOwotCWlmICghdmVyYm9zZSh0Y3ApIHx8IHNpemUgLyBzaXplb2YoaW92KSAhPSBsZW4gfHwgZW5kIDwgYWRkcikgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKGFiYnJldih0Y3ApKSB7Ci0JCWFiYnJldl9lbmQgPSBhZGRyICsgbWF4X3N0cmxlbiAqIHNpemVvZihpb3YpOwotCQlpZiAoYWJicmV2X2VuZCA8IGFkZHIpCi0JCQlhYmJyZXZfZW5kID0gZW5kOwotCX0gZWxzZSB7Ci0JCWFiYnJldl9lbmQgPSBlbmQ7Ci0JfQotCXRwcmludGYoIlsiKTsKLQlmb3IgKGN1ciA9IGFkZHI7IGN1ciA8IGVuZDsgY3VyICs9IHNpemVvZihpb3YpKSB7Ci0JCWlmIChjdXIgPiBhZGRyKQotCQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7Ci0JCQl0cHJpbnRmKCIuLi4iKTsKLQkJCWJyZWFrOwotCQl9Ci0JCWlmICh1bW92ZW4odGNwLCBjdXIsIHNpemVvZiBpb3YsIChjaGFyICopICZpb3YpIDwgMCkgewotCQkJdHByaW50ZigiPyIpOwotCQkJZmFpbGVkID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCXRwcmludGYoInsiKTsKLQkJcHJpbnRzdHIodGNwLCAobG9uZykgaW92Lmlvdl9iYXNlLCBpb3YuaW92X2xlbik7Ci0JCXRwcmludGYoIiwgJWx1fSIsICh1bnNpZ25lZCBsb25nKWlvdi5pb3ZfbGVuKTsKLQl9Ci0JdHByaW50ZigiXSIpOwotCWlmIChmYWlsZWQpCi0JCXRwcmludGYoIiAlI2x4IiwgYWRkcik7Ci19Ci0KLWludAotc3lzX3JlYWR2KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlI2x4LCAlbHUiLAotCQkJCQl0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXRwcmludF9pb3YodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3dyaXRldih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50X2lvdih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChTVlI0KQotCi1pbnQKLXN5c19wcmVhZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZQotCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7Ci0jaWYgVU5JWFdBUkUKLQkJLyogb2ZmX3QgaXMgc2lnbmVkIGludCAqLwotCQl0cHJpbnRmKCIsICVsdSwgJWxkIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZQotCQl0cHJpbnRmKCIsICVsdSwgJWxsdSIsIHRjcC0+dV9hcmdbMl0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOwotI2VuZGlmCi0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19wd3JpdGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0jaWYgVU5JWFdBUkUKLQkJLyogb2ZmX3QgaXMgc2lnbmVkIGludCAqLwotCQl0cHJpbnRmKCIsICVsdSwgJWxkIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZQotCQl0cHJpbnRmKCIsICVsdSwgJWxsdSIsIHRjcC0+dV9hcmdbMl0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOwotI2VuZGlmCi0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIFNWUjQgKi8KLQotI2lmZGVmIEZSRUVCU0QKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0KLWludAotc3lzX3NlbmRmaWxlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxsdSwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSwKLQkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKSwKLQkJCXRjcC0+dV9hcmdbNF0pOwotCX0gZWxzZSB7Ci0JCW9mZl90IG9mZnNldDsKLQotCQlpZiAoIXRjcC0+dV9hcmdbNV0pCi0JCQl0cHJpbnRmKCIsIE5VTEwiKTsKLQkJZWxzZSB7Ci0JCQlzdHJ1Y3Qgc2ZfaGR0ciBoZHRyOwotCi0JCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzVdLCAmaGR0cikgPCAwKQotCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNV0pOwotCQkJZWxzZSB7Ci0JCQkJdHByaW50ZigiLCB7ICIpOwotCQkJCXRwcmludF9pb3YodGNwLCBoZHRyLmhkcl9jbnQsIGhkdHIuaGVhZGVycyk7Ci0JCQkJdHByaW50ZigiLCAldSwgIiwgaGR0ci5oZHJfY250KTsKLQkJCQl0cHJpbnRfaW92KHRjcCwgaGR0ci50cmxfY250LCBoZHRyLnRyYWlsZXJzKTsKLQkJCQl0cHJpbnRmKCIsICV1IH0iLCBoZHRyLmhkcl9jbnQpOwotCQkJfQotCQl9Ci0JCWlmICghdGNwLT51X2FyZ1s2XSkKLQkJCXRwcmludGYoIiwgTlVMTCIpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNl0sICZvZmZzZXQpIDwgMCkKLQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNl0pOwotCQllbHNlCi0JCQl0cHJpbnRmKCIsIFslbGx1XSIsIG9mZnNldCk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s3XSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLQotI2lmZGVmIExJTlVYCi0KLS8qIFRoZSBTSDQgQUJJIGRvZXMgYWxsb3cgbG9uZyBsb25ncyBpbiBvZGQtbnVtYmVyZWQgcmVnaXN0ZXJzLCBidXQKLSAgIGRvZXMgbm90IGFsbG93IHRoZW0gdG8gYmUgc3BsaXQgYmV0d2VlbiByZWdpc3RlcnMgYW5kIG1lbW9yeSAtIGFuZAotICAgdGhlcmUgYXJlIG9ubHkgZm91ciBhcmd1bWVudCByZWdpc3RlcnMgZm9yIG5vcm1hbCBmdW5jdGlvbnMuICBBcyBhCi0gICByZXN1bHQgcHJlYWQgdGFrZXMgYW4gZXh0cmEgcGFkZGluZyBhcmd1bWVudCBiZWZvcmUgdGhlIG9mZnNldC4gIFRoaXMKLSAgIHdhcyBjaGFuZ2VkIGxhdGUgaW4gdGhlIDIuNCBzZXJpZXMgKGFyb3VuZCAyLjQuMjApLiAgKi8KLSNpZiBkZWZpbmVkKFNIKQotI2RlZmluZSBQUkVBRF9PRkZTRVRfQVJHIDQKLSNlbHNlCi0jZGVmaW5lIFBSRUFEX09GRlNFVF9BUkcgMwotI2VuZGlmCi0KLWludAotc3lzX3ByZWFkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlCi0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJQUxJR042NCAodGNwLCBQUkVBRF9PRkZTRVRfQVJHKTsgLyogUG93ZXJQQyBhbGlnbm1lbnQgcmVzdHJpY3Rpb24gKi8KLQkJdHByaW50ZigiLCAlbHUsICVsbHUiLCB0Y3AtPnVfYXJnWzJdLAotCQkJKih1bnNpZ25lZCBsb25nIGxvbmcgKikmdGNwLT51X2FyZ1tQUkVBRF9PRkZTRVRfQVJHXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19wd3JpdGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCUFMSUdONjQgKHRjcCwgUFJFQURfT0ZGU0VUX0FSRyk7IC8qIFBvd2VyUEMgYWxpZ25tZW50IHJlc3RyaWN0aW9uICovCi0JCXRwcmludGYoIiwgJWx1LCAlbGx1IiwgdGNwLT51X2FyZ1syXSwKLQkJCSoodW5zaWduZWQgbG9uZyBsb25nICopJnRjcC0+dV9hcmdbUFJFQURfT0ZGU0VUX0FSR10pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2VuZGZpbGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCW9mZl90IG9mZnNldDsKLQotCQl0cHJpbnRmKCIlbGQsICVsZCwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCWlmICghdGNwLT51X2FyZ1syXSkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmb2Zmc2V0KSA8IDApCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIlslbHVdIiwgb2Zmc2V0KTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzNdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NlbmRmaWxlNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWxvZmZfdCBvZmZzZXQ7Ci0KLQkJdHByaW50ZigiJWxkLCAlbGQsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQlpZiAoIXRjcC0+dV9hcmdbMl0pCi0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJm9mZnNldCkgPCAwKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQl0cHJpbnRmKCJbJWxsdV0iLCAodW5zaWduZWQgbG9uZyBsb25nIGludCkgb2Zmc2V0KTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzNdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAotaW50Ci1zeXNfcHJlYWQ2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlBTElHTjY0ICh0Y3AsIDMpOwotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZQotCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7Ci0JCXRwcmludGYoIiwgJWx1LCAlI2xseCIsIHRjcC0+dV9hcmdbMl0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfcHdyaXRlNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCUFMSUdONjQgKHRjcCwgMyk7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIiwgJWx1LCAlI2xseCIsIHRjcC0+dV9hcmdbMl0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQKLXN5c19pb2N0bCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JY29uc3Qgc3RydWN0IGlvY3RsZW50ICppb3A7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlpb3AgPSBpb2N0bF9sb29rdXAodGNwLT51X2FyZ1sxXSk7Ci0JCWlmIChpb3ApIHsKLQkJCXRwcmludGYoIiVzIiwgaW9wLT5zeW1ib2wpOwotCQkJd2hpbGUgKChpb3AgPSBpb2N0bF9uZXh0X21hdGNoKGlvcCkpKQotCQkJCXRwcmludGYoIiBvciAlcyIsIGlvcC0+c3ltYm9sKTsKLQkJfSBlbHNlCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWlvY3RsX2RlY29kZSh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCX0KLQllbHNlIHsKLQkJaW50IHJldDsKLQkJaWYgKCEocmV0ID0gaW9jdGxfZGVjb2RlKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSkpKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UKLQkJCXJldHVybiByZXQgLSAxOwotCX0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2lvY3RsLmMgYi9pb2N0bC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTQwMjYwLi4wMDAwMDAwCi0tLSBhL2lvY3RsLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMTk5Ni0yMDAxIFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGlvY3RsLmMsdiAxLjE0IDIwMDUvMDIvMDIgMjA6MzI6MTMgcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotY29uc3Qgc3RydWN0IGlvY3RsZW50IGlvY3RsZW50MFtdID0gewotLyoKLSAqIGBpb2N0bGVudC5oJyBtYXkgYmUgZ2VuZXJhdGVkIGZyb20gYGlvY3RsZW50LnJhdycgYnkgdGhlIGF1eGlsaWFyeQotICogcHJvZ3JhbSBgaW9jdGxzb3J0Jywgc3VjaCB0aGF0IHRoZSBsaXN0IGlzIHNvcnRlZCBieSB0aGUgYGNvZGUnIGZpZWxkLgotICogVGhpcyBoYXMgdGhlIHNpZGUtZWZmZWN0IG9mIHJlc29sdmluZyB0aGUgX0lPLi4gbWFjcm9zIGludG8KLSAqIHBsYWluIGludGVnZXJzLCBlbGltaW5hdGluZyB0aGUgbmVlZCB0byBpbmNsdWRlIGhlcmUgZXZlcnl0aGluZwotICogaW4gIi91c3IvaW5jbHVkZSIgLgotICovCi0jaW5jbHVkZSAiaW9jdGxlbnQuaCIKLX07Ci0KLSNpZmRlZiBMSU5VWAotI2luY2x1ZGUgPGFzbS9pb2N0bC5oPgotI2VuZGlmCi0KLWNvbnN0IGludCBuaW9jdGxlbnRzMCA9IHNpemVvZiBpb2N0bGVudDAgLyBzaXplb2YgaW9jdGxlbnQwWzBdOwotCi0jaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgotY29uc3Qgc3RydWN0IGlvY3RsZW50IGlvY3RsZW50MVtdID0gewotI2luY2x1ZGUgImlvY3RsZW50MS5oIgotfTsKLQotY29uc3QgaW50IG5pb2N0bGVudHMxID0gc2l6ZW9mIGlvY3RsZW50MSAvIHNpemVvZiBpb2N0bGVudDFbMF07Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLwotCi0jaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMwotY29uc3Qgc3RydWN0IGlvY3RsZW50IGlvY3RsZW50MltdID0gewotI2luY2x1ZGUgImlvY3RsZW50Mi5oIgotfTsKLQotY29uc3QgaW50IG5pb2N0bGVudHMyID0gc2l6ZW9mIGlvY3RsZW50MiAvIHNpemVvZiBpb2N0bGVudDJbMF07Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLwotCi1jb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsZW50OwotaW50IG5pb2N0bGVudHM7Ci0KLXN0YXRpYyBpbnQKLWNvbXBhcmUoYSwgYikKLWNvbnN0IHZvaWQgKmE7Ci1jb25zdCB2b2lkICpiOwotewotCXVuc2lnbmVkIGxvbmcgY29kZTEgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBhKS0+Y29kZTsKLQl1bnNpZ25lZCBsb25nIGNvZGUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPmNvZGU7Ci0JcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IDA7Ci19Ci0KLWNvbnN0IHN0cnVjdCBpb2N0bGVudCAqCi1pb2N0bF9sb29rdXAoY29kZSkKLWxvbmcgY29kZTsKLXsKLQlzdHJ1Y3QgaW9jdGxlbnQgKmlvcCwgaW9lbnQ7Ci0KLQlpb2VudC5jb2RlID0gY29kZTsKLSNpZmRlZiBMSU5VWAotCWlvZW50LmNvZGUgJj0gKF9JT0NfTlJNQVNLPDxfSU9DX05SU0hJRlQpIHwgKF9JT0NfVFlQRU1BU0s8PF9JT0NfVFlQRVNISUZUKTsKLSNlbmRpZgotCWlvcCA9IChzdHJ1Y3QgaW9jdGxlbnQgKikgYnNlYXJjaCgoY2hhciAqKSAmaW9lbnQsIChjaGFyICopIGlvY3RsZW50LAotCQkJbmlvY3RsZW50cywgc2l6ZW9mKHN0cnVjdCBpb2N0bGVudCksIGNvbXBhcmUpOwotCXdoaWxlIChpb3AgPiBpb2N0bGVudCkKLQkJaWYgKCgtLWlvcCktPmNvZGUgIT0gaW9lbnQuY29kZSkgewotCQkJaW9wKys7Ci0JCQlicmVhazsKLQkJfQotCXJldHVybiBpb3A7Ci19Ci0KLWNvbnN0IHN0cnVjdCBpb2N0bGVudCAqCi1pb2N0bF9uZXh0X21hdGNoKGlvcCkKLWNvbnN0IHN0cnVjdCBpb2N0bGVudCAqaW9wOwotewotCWxvbmcgY29kZTsKLQotCWNvZGUgPSAoaW9wKyspLT5jb2RlOwotCWlmIChpb3AgPCBpb2N0bGVudCArIG5pb2N0bGVudHMgJiYgaW9wLT5jb2RlID09IGNvZGUpCi0JCXJldHVybiBpb3A7Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLWludAotaW9jdGxfZGVjb2RlKHRjcCwgY29kZSwgYXJnKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBjb2RlLCBhcmc7Ci17Ci0Jc3dpdGNoICgoY29kZSA+PiA4KSAmIDB4ZmYpIHsKLSNpZmRlZiBMSU5VWAotI2lmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoUE9XRVJQQykKLQljYXNlICdmJzogY2FzZSAndCc6IGNhc2UgJ1QnOgotI2Vsc2UgLyogIUFMUEhBICovCi0JY2FzZSAweDU0OgotI2VuZGlmIC8qICFBTFBIQSAqLwotI2Vsc2UgLyogIUxJTlVYICovCi0JY2FzZSAnZic6IGNhc2UgJ3QnOiBjYXNlICdUJzoKLSNlbmRpZiAvKiAhTElOVVggKi8KLQkJcmV0dXJuIHRlcm1faW9jdGwodGNwLCBjb2RlLCBhcmcpOwotI2lmZGVmIExJTlVYCi0JY2FzZSAweDg5OgotI2Vsc2UgLyogIUxJTlVYICovCi0JY2FzZSAncic6IGNhc2UgJ3MnOiBjYXNlICdpJzoKLSNpZm5kZWYgRlJFRUJTRAotCWNhc2UgJ3AnOgotI2VuZGlmCi0jZW5kaWYgLyogIUxJTlVYICovCi0JCXJldHVybiBzb2NrX2lvY3RsKHRjcCwgY29kZSwgYXJnKTsKLSNpZmRlZiBVU0VfUFJPQ0ZTCi0jaWZuZGVmIEhBVkVfTVBfUFJPQ0ZTCi0jaWZuZGVmIEZSRUVCU0QKLQljYXNlICdxJzoKLSNlbHNlCi0JY2FzZSAncCc6Ci0jZW5kaWYKLQkJcmV0dXJuIHByb2NfaW9jdGwodGNwLCBjb2RlLCBhcmcpOwotI2VuZGlmCi0jZW5kaWYgLyogVVNFX1BST0NGUyAqLwotI2lmZGVmIEhBVkVfU1lTX1NUUkVBTV9ICi0JY2FzZSAnUyc6Ci0JCXJldHVybiBzdHJlYW1faW9jdGwodGNwLCBjb2RlLCBhcmcpOwotI2VuZGlmIC8qIEhBVkVfU1lTX1NUUkVBTV9IICovCi0jaWZkZWYgTElOVVgKLQljYXNlICdwJzoKLQkJcmV0dXJuIHJ0Y19pb2N0bCh0Y3AsIGNvZGUsIGFyZyk7Ci0jZW5kaWYKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBSZWdpc3RyeSBvZiBpb2N0bCBjaGFyYWN0ZXJzLCBjdWxsZWQgZnJvbQotICoJQCgjKWlvY2NvbS5oIDEuNyA4OS8wNi8xNiBTTUk7IGZyb20gVUNCIGlvY3RsLmggNy4xIDYvNC84NgotICoKLSAqIGNoYXIJZmlsZSB3aGVyZSBkZWZpbmVkCQlub3RlcwotICogLS0tLQktLS0tLS0tLS0tLS0tLS0tLS0JCS0tLS0tCi0gKiAgIEYJc3VuL2ZiaW8uaAotICogICBHCXN1bi9ncGlvLmgKLSAqICAgSAl2YXhpZi9pZl9oeS5oCi0gKiAgIE0Jc3VuZGV2L21jcGNtZC5oCQkJKm92ZXJsYXAqCi0gKiAgIE0Jc3lzL21vZGVtLmgJCQkqb3ZlcmxhcCoKLSAqICAgUwlzeXMvc3Ryb3B0cy5oCi0gKiAgIFQJc3lzL3Rlcm1pby5oCQkJLW5vIG92ZXJsYXAtCi0gKiAgIFQJc3lzL3Rlcm1pb3MuaAkJCS1ubyBvdmVybGFwLQotICogICBWCXN1bmRldi9tZHJlZy5oCi0gKiAgIGEJdmF4dWJhL2FkcmVnLmgKLSAqICAgZAlzdW4vZGtpby5oCQkJLW5vIG92ZXJsYXAgd2l0aCBzeXMvZGVzLmgtCi0gKiAgIGQJc3lzL2Rlcy5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIGQJdmF4L2RraW8uaAkJCShwb3NzaWJsZSBvdmVybGFwKQotICogICBkCXZheHViYS9yeHJlZy5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIGYJc3lzL2ZpbGlvLmgKLSAqICAgZwlzdW53aW5kb3cvd2luX2lvY3RsLmgJCS1ubyBvdmVybGFwLQotICogICBnCXN1bndpbmRvd2Rldi93aW5pb2N0bC5jCQkhbm8gbWFuaWZlc3QgY29uc3RhbnQhIC1ubyBvdmVybGFwLQotICogICBoCXN1bmRldi9ocmNfY29tbW9uLmgKLSAqICAgaQlzeXMvc29ja2lvLmgJCQkqb3ZlcmxhcCoKLSAqICAgaQl2YXh1YmEvaWtyZWcuaAkJCSpvdmVybGFwKgotICogICBrCXN1bmRldi9rYmlvLmgKLSAqICAgbQlzdW5kZXYvbXNpby5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIG0Jc3VuZGV2L21zcmVnLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgbQlzeXMvbXRpby5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIG4Jc3VuL25kaW8uaAotICogICBwCW5ldC9uaXRfYnVmLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgcAluZXQvbml0X2lmLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgcAluZXQvbml0X3BmLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgcAlzdW5kZXYvZnBhcmVnLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgcAlzeXMvc29ja2lvLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKLSAqICAgcAl2YXh1YmEvcHNyZWcuaAkJCShwb3NzaWJsZSBvdmVybGFwKQotICogICBxCXN1bi9zcXouaAotICogICByCXN5cy9zb2NraW8uaAotICogICBzCXN5cy9zb2NraW8uaAotICogICB0CXN5cy90dG9sZC5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIHQJc3lzL3R0eWNvbS5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCi0gKiAgIHYJc3VuZGV2L3Z1aWRfZXZlbnQuaAkJKm92ZXJsYXAqCi0gKiAgIHYJc3lzL3ZjbWQuaAkJCSpvdmVybGFwKgotICoKLSAqIEVuZCBvZiBSZWdpc3RyeQotICovCmRpZmYgLS1naXQgYS9pb2N0bHNvcnQuYyBiL2lvY3Rsc29ydC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzMyZmJjLi4wMDAwMDAwCi0tLSBhL2lvY3Rsc29ydC5jCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGlvY3Rsc29ydC5jLHYgMS4yIDIwMDEvMDMvMTcgMTc6MjY6MzQgd2ljaGVydCBFeHAgJAotICovCi0KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNpZmRlZiBTVERDX0hFQURFUlMKLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNlbmRpZgotCi1zdHJ1Y3QgaW9jdGxlbnQgewotCWNoYXIgKmRvdGg7Ci0JY2hhciAqc3ltYm9sOwotCXVuc2lnbmVkIGxvbmcgY29kZTsKLX07Ci0KLSNpbmNsdWRlICJpb2N0bGVudC5yYXciCi0KLWludCBuaW9jdGxlbnRzID0gc2l6ZW9mIGlvY3RsZW50IC8gc2l6ZW9mIGlvY3RsZW50WzBdOwotCi1pbnQKLWNvbXBhcmUoYSwgYikKLWNvbnN0IHZvaWQgKmE7Ci1jb25zdCB2b2lkICpiOwotewotCXVuc2lnbmVkIGxvbmcgY29kZTEgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBhKS0+Y29kZTsKLQl1bnNpZ25lZCBsb25nIGNvZGUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPmNvZGU7Ci0JcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IDA7Ci19Ci0KLWludAotbWFpbihhcmdjLCBhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107Ci17Ci0JaW50IGk7Ci0KLQlxc29ydChpb2N0bGVudCwgbmlvY3RsZW50cywgc2l6ZW9mIGlvY3RsZW50WzBdLCBjb21wYXJlKTsKLQlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsZW50czsgaSsrKSB7Ci0JCXByaW50Zigie1wiJXNcIiwgXCIlc1wiLCAlI2x4fSxcbiIsCi0JCQlpb2N0bGVudFtpXS5kb3RoLCBpb2N0bGVudFtpXS5zeW1ib2wsIGlvY3RsZW50W2ldLmNvZGUpOwotCX0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2lwYy5jIGIvaXBjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjYTM5MTQuLjAwMDAwMDAKLS0tIGEvaXBjLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0OTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBVbHJpY2ggUGVnZWxvdyA8cGVnZWxvd0Btb29yZWEudW5pLW11ZW5zdGVyLmRlPgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBpcGMuYyx2IDEuMTAgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotCi0jaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQotIyBpZmRlZiBIQVZFX01RVUVVRV9ICi0jICBpbmNsdWRlIDxtcXVldWUuaD4KLSMgZW5kaWYKLQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL2lwYy5oPgotI2luY2x1ZGUgPHN5cy9zZW0uaD4KLSNpbmNsdWRlIDxzeXMvbXNnLmg+Ci0jaW5jbHVkZSA8c3lzL3NobS5oPgotCi0jaWZuZGVmIE1TR19TVEFUCi0jZGVmaW5lIE1TR19TVEFUIDExCi0jZW5kaWYKLSNpZm5kZWYgTVNHX0lORk8KLSNkZWZpbmUgTVNHX0lORk8gMTIKLSNlbmRpZgotI2lmbmRlZiBTSE1fU1RBVAotI2RlZmluZSBTSE1fU1RBVCAxMwotI2VuZGlmCi0jaWZuZGVmIFNITV9JTkZPCi0jZGVmaW5lIFNITV9JTkZPIDE0Ci0jZW5kaWYKLSNpZm5kZWYgU0VNX1NUQVQKLSNkZWZpbmUgU0VNX1NUQVQgMTgKLSNlbmRpZgotI2lmbmRlZiBTRU1fSU5GTwotI2RlZmluZSBTRU1fSU5GTyAxOQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIExJTlVYICYmICFkZWZpbmVkIElQQ182NAotIyBkZWZpbmUgSVBDXzY0IDB4MTAwCi0jZW5kaWYKLQotZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IG9wZW5tb2Rlc1tdOwotZXh0ZXJuIHZvaWQgcHJpbnRzaWdldmVudChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYXJnKTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1zZ2N0bF9mbGFnc1tdID0gewotCXsgSVBDX1JNSUQsCSJJUENfUk1JRCIJfSwKLQl7IElQQ19TRVQsCSJJUENfU0VUIgl9LAotCXsgSVBDX1NUQVQsCSJJUENfU1RBVCIJfSwKLSNpZmRlZiBMSU5VWAotCXsgSVBDX0lORk8sCSJJUENfSU5GTyIJfSwKLQl7IE1TR19TVEFULAkiTVNHX1NUQVQiCX0sCi0JeyBNU0dfSU5GTywJIk1TR19JTkZPIgl9LAotI2VuZGlmIC8qIExJTlVYICovCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzZW1jdGxfZmxhZ3NbXSA9IHsKLQl7IElQQ19STUlELAkiSVBDX1JNSUQiCX0sCi0JeyBJUENfU0VULAkiSVBDX1NFVCIJfSwKLQl7IElQQ19TVEFULAkiSVBDX1NUQVQiCX0sCi0jaWZkZWYgTElOVVgKLQl7IElQQ19JTkZPLAkiSVBDX0lORk8iCX0sCi0JeyBTRU1fU1RBVCwJIlNFTV9TVEFUIgl9LAotCXsgU0VNX0lORk8sCSJTRU1fSU5GTyIJfSwKLSNlbmRpZiAvKiBMSU5VWCAqLwotCXsgR0VUUElELAkiR0VUUElEIgl9LAotCXsgR0VUVkFMLAkiR0VUVkFMIgl9LAotCXsgR0VUQUxMLAkiR0VUQUxMIgl9LAotCXsgR0VUTkNOVCwJIkdFVE5DTlQiCX0sCi0JeyBHRVRaQ05ULAkiR0VUWkNOVCIJfSwKLQl7IFNFVFZBTCwJIlNFVFZBTCIJfSwKLQl7IFNFVEFMTCwJIlNFVEFMTCIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNobWN0bF9mbGFnc1tdID0gewotCXsgSVBDX1JNSUQsCSJJUENfUk1JRCIJfSwKLQl7IElQQ19TRVQsCSJJUENfU0VUIgl9LAotCXsgSVBDX1NUQVQsCSJJUENfU1RBVCIJfSwKLSNpZmRlZiBMSU5VWAotCXsgSVBDX0lORk8sCSJJUENfSU5GTyIJfSwKLQl7IFNITV9TVEFULAkiU0hNX1NUQVQiCX0sCi0JeyBTSE1fSU5GTywJIlNITV9JTkZPIgl9LAotI2VuZGlmIC8qIExJTlVYICovCi0jaWZkZWYgU0hNX0xPQ0sKLQl7IFNITV9MT0NLLAkiU0hNX0xPQ0siCX0sCi0jZW5kaWYKLSNpZmRlZiBTSE1fVU5MT0NLCi0JeyBTSE1fVU5MT0NLLAkiU0hNX1VOTE9DSyIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcmVzb3VyY2VfZmxhZ3NbXSA9IHsKLQl7IElQQ19DUkVBVCwJIklQQ19DUkVBVCIJfSwKLQl7IElQQ19FWENMLAkiSVBDX0VYQ0wiCX0sCi0JeyBJUENfTk9XQUlULAkiSVBDX05PV0FJVCIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNobV9yZXNvdXJjZV9mbGFnc1tdID0gewotCXsgSVBDX0NSRUFULAkiSVBDX0NSRUFUIgl9LAotCXsgSVBDX0VYQ0wsCSJJUENfRVhDTCIJfSwKLSNpZmRlZiBTSE1fSFVHRVRMQgotCXsgU0hNX0hVR0VUTEIsCSJTSE1fSFVHRVRMQiIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2htX2ZsYWdzW10gPSB7Ci0jaWZkZWYgTElOVVgKLQl7IFNITV9SRU1BUCwJIlNITV9SRU1BUCIJfSwKLSNlbmRpZiAvKiBMSU5VWCAqLwotCXsgU0hNX1JET05MWSwJIlNITV9SRE9OTFkiCX0sCi0JeyBTSE1fUk5ELAkiU0hNX1JORCIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1zZ19mbGFnc1tdID0gewotCXsgTVNHX05PRVJST1IsCSJNU0dfTk9FUlJPUiIJfSwKLSNpZmRlZiBMSU5VWAotCXsgTVNHX0VYQ0VQVCwJIk1TR19FWENFUFQiCX0sCi0jZW5kaWYgLyogTElOVVggKi8KLQl7IElQQ19OT1dBSVQsCSJJUENfTk9XQUlUIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQgc3lzX21zZ2dldCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMF0pCi0JCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJZWxzZQotCQkJdHByaW50ZigiSVBDX1BSSVZBVEUiKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKHByaW50ZmxhZ3MocmVzb3VyY2VfZmxhZ3MsIHRjcC0+dV9hcmdbMV0gJiB+MDc3NywgTlVMTCkgIT0gMCkKLQkJCXRwcmludGYoInwiKTsKLQkJdHByaW50ZigiJSNsbyIsIHRjcC0+dV9hcmdbMV0gJiAwNzc3KTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBJUENfNjQKLSMgZGVmaW5lIFBSSU5UQ1RMKGZsYWdzZXQsIGFyZywgZGZsdCkgXAotCWlmICgoYXJnKSAmIElQQ182NCkgdHByaW50ZigiSVBDXzY0fCIpOyBcCi0JcHJpbnR4dmFsKChmbGFnc2V0KSwgKGFyZykgJn4gSVBDXzY0LCBkZmx0KQotI2Vsc2UKLSMgZGVmaW5lIFBSSU5UQ1RMIHByaW50eHZhbAotI2VuZGlmCi0KLWludCBzeXNfbXNnY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlQUklOVENUTChtc2djdGxfZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJNU0dfPz8/Iik7Ci0jaWZkZWYgTElOVVgKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0jZW5kaWYgLyogIUxJTlVYICovCi0JfQotCXJldHVybiAwOwotfQotCi1pbnQgc3lzX21zZ3NuZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JbG9uZyBtdHlwZTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOwotI2lmZGVmIExJTlVYCi0JCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJm10eXBlKTsKLQkJdHByaW50ZigiLCB7JWx1LCAiLCBtdHlwZSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1szXSArIHNpemVvZihsb25nKSwKLQkJCXRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCJ9LCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmbXR5cGUpOwotCQl0cHJpbnRmKCIsIHslbHUsICIsIG10eXBlKTsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdICsgc2l6ZW9mKGxvbmcpLAotCQkJdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIn0sICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKLSNlbmRpZiAvKiAhTElOVVggKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfbXNncmN2KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlsb25nIG10eXBlOwotI2lmZGVmIExJTlVYCi0Jc3RydWN0IGlwY193cmFwcGVyIHsKLQkJc3RydWN0IG1zZ2J1ZiAqbXNncDsKLQkJbG9uZyBtc2d0eXA7Ci0JfSB0bXA7Ci0jZW5kaWYKLQotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLSNpZmRlZiBMSU5VWAotCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZ0bXApOwotCQl1bW92ZSh0Y3AsIChsb25nKSB0bXAubXNncCwgJm10eXBlKTsKLQkJdHByaW50ZigiLCB7JWx1LCAiLCBtdHlwZSk7Ci0JCXByaW50c3RyKHRjcCwgKGxvbmcpICh0bXAubXNncCkgKyBzaXplb2YobG9uZyksCi0JCQl0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigifSwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJWxkIiwgdG1wLm1zZ3R5cCk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiTVNHXz8/PyIpOwotI2Vsc2UgLyogIUxJTlVYICovCi0JCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJm10eXBlKTsKLQkJdHByaW50ZigiLCB7JWx1LCAiLCBtdHlwZSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSArIHNpemVvZihsb25nKSwKLQkJCXRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCJ9LCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJNU0dfPz8/Iik7Ci0jZW5kaWYgLyogIUxJTlVYICovCi0JfQotCXJldHVybiAwOwotfQotCi1pbnQgc3lzX3NlbW9wKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLSNpZmRlZiBMSU5VWAotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLSNlbHNlIC8qICFMSU5VWCAqLwotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLSNlbmRpZiAvKiAhTElOVVggKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBMSU5VWAotaW50IHN5c19zZW10aW1lZG9wKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbNV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQgc3lzX3NlbWdldCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMF0pCi0JCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJZWxzZQotCQkJdHByaW50ZigiSVBDX1BSSVZBVEUiKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKHByaW50ZmxhZ3MocmVzb3VyY2VfZmxhZ3MsIHRjcC0+dV9hcmdbMl0gJiB+MDc3NywgTlVMTCkgIT0gMCkKLQkJCXRwcmludGYoInwiKTsKLQkJdHByaW50ZigiJSNsbyIsIHRjcC0+dV9hcmdbMl0gJiAwNzc3KTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfc2VtY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMV0pOwotCQlQUklOVENUTChzZW1jdGxfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJTRU1fPz8/Iik7Ci0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50IHN5c19zaG1nZXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWlmICh0Y3AtPnVfYXJnWzBdKQotCQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIklQQ19QUklWQVRFIik7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWlmIChwcmludGZsYWdzKHNobV9yZXNvdXJjZV9mbGFncywgdGNwLT51X2FyZ1syXSAmIH4wNzc3LCBOVUxMKSAhPSAwKQotCQkJdHByaW50ZigifCIpOwotCQl0cHJpbnRmKCIlI2xvIiwgdGNwLT51X2FyZ1syXSAmIDA3NzcpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50IHN5c19zaG1jdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCVBSSU5UQ1RMKHNobWN0bF9mbGFncywgdGNwLT51X2FyZ1sxXSwgIlNITV8/Pz8iKTsKLSNpZmRlZiBMSU5VWAotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLSNlbHNlIC8qICFMSU5VWCAqLwotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKLSNlbmRpZiAvKiAhTElOVVggKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfc2htYXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotI2lmZGVmIExJTlVYCi0JdW5zaWduZWQgbG9uZyByYWRkcjsKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLSNpZmRlZiBMSU5VWAotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhzaG1fZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJTSE1fPz8/Iik7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3Moc2htX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiU0hNXz8/PyIpOwotI2VuZGlmIC8qICFMSU5VWCAqLwotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXJldHVybiAwOwotI2lmZGVmIExJTlVYCi0JCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZyYWRkcikgPCAwKQotCQkJcmV0dXJuIFJWQUxfTk9ORTsKLQkJdGNwLT51X3J2YWwgPSByYWRkcjsKLSNlbmRpZiAvKiBMSU5VWCAqLwotCQlyZXR1cm4gUlZBTF9IRVg7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQgc3lzX3NobWR0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLSNpZmRlZiBMSU5VWAotCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotI2VuZGlmIC8qICFMSU5VWCAqLwotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkgKi8KLQotI2lmZGVmIExJTlVYCi1pbnQgc3lzX21xX29wZW4odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQkvKiBmbGFncyAqLwotCQlwcmludGZsYWdzKG9wZW5tb2RlcywgdGNwLT51X2FyZ1sxXSArIDEsICJPXz8/PyIpOwotCQlpZiAodGNwLT51X2FyZ1sxXSAmIE9fQ1JFQVQpIHsKLSMgaWZuZGVmIEhBVkVfTVFVRVVFX0gKLQkJCXRwcmludGYoIiwgJWx4IiwgdGNwLT51X2FyZ1syXSk7Ci0jIGVsc2UKLQkJCXN0cnVjdCBtcV9hdHRyIGF0dHI7Ci0JCQkvKiBtb2RlICovCi0JCQl0cHJpbnRmKCIsICUjbG8sICIsIHRjcC0+dV9hcmdbMl0pOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJmF0dHIpIDwgMCkKLQkJCQl0cHJpbnRmKCJ7ID8/PyB9Iik7Ci0JCQllbHNlCi0JCQkJdHByaW50Zigie21xX21heG1zZz0lbGQsIG1xX21zZ3NpemU9JWxkfSIsCi0JCQkJCWF0dHIubXFfbWF4bXNnLCBhdHRyLm1xX21zZ3NpemUpOwotIyBlbmRpZgotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQgc3lzX21xX3RpbWVkc2VuZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJdHByaW50ZigiLCAlbHUsICVsZCwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzRdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfbXFfdGltZWRyZWNlaXZlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQllbHNlIHsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJdHByaW50ZigiLCAlbHUsICVsZCwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzRdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfbXFfbm90aWZ5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHNpZ2V2ZW50KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBwcmludG1xYXR0cih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0JaWYgKGFkZHIgPT0gMCkKLQkJdHByaW50ZigiTlVMTCIpOwotCWVsc2UgewotIyBpZm5kZWYgSEFWRV9NUVVFVUVfSAotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0jIGVsc2UKLQkJc3RydWN0IG1xX2F0dHIgYXR0cjsKLQkJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmF0dHIpIDwgMCkgewotCQkJdHByaW50Zigiey4uLn0iKTsKLQkJCXJldHVybjsKLQkJfQotCQl0cHJpbnRmKCJ7bXFfZmxhZ3M9Iik7Ci0JCXByaW50ZmxhZ3Mob3Blbm1vZGVzLCBhdHRyLm1xX2ZsYWdzICsgMSwgIk9fPz8/Iik7Ci0JCXRwcmludGYoIiwgbXFfbWF4bXNnPSVsZCwgbXFfbXNnc2l6ZT0lbGQsIG1xX2N1cm1zZz0lbGR9IiwKLQkJCWF0dHIubXFfbWF4bXNnLCBhdHRyLm1xX21zZ3NpemUsIGF0dHIubXFfY3VybXNncyk7Ci0jIGVuZGlmCi0JfQotfQotCi1pbnQgc3lzX21xX2dldHNldGF0dHIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50bXFhdHRyKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlCi0JCXByaW50bXFhdHRyKHRjcCwgdGNwLT51X2FyZ1syXSk7Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2xpbnV4L2R1bW15LmggYi9saW51eC9kdW1teS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTc4ZmFkLi4wMDAwMDAwCi0tLSBhL2xpbnV4L2R1bW15LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogZHVtbXkuaCx2IDEuMTcgMjAwNC8wNC8xNiAyMTo0ODo0NCByb2xhbmQgRXhwICQKLSAqLwotCi0vKiBzdGlsbCB1bmZpbmlzaGVkICovCi0jZGVmaW5lCXN5c19pb3Blcm0JCXByaW50YXJncwotI2RlZmluZQlzeXNfc3lzbG9nCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lvcGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfdm04Nm9sZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRfa2VybmVsX3N5bXMJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19iZGZsdXNoCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N5c2ZzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Fmc19zeXNjYWxsCQlwcmludGFyZ3MKLQotLyogbWFjaGluZS1zcGVjaWZpYyAqLwotI2lmbmRlZiBJMzg2Ci0jZGVmaW5lCXN5c19tb2RpZnlfbGR0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2dldF90aHJlYWRfYXJlYQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NldF90aHJlYWRfYXJlYQlwcmludGFyZ3MKLSNlbmRpZgotCi0jZGVmaW5lIHN5c19zY2hlZF95aWVsZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluCi0jZGVmaW5lIHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgcHJpbnRhcmdzCi0KLS8qIGxpa2UgYW5vdGhlciBjYWxsICovCi0jZGVmaW5lCXN5c191c2VsaWIJCXN5c19jaGRpcgotI2RlZmluZQlzeXNfdW1vdW50CQlzeXNfY2hkaXIKLSNkZWZpbmUJc3lzX3N3YXBvbgkJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19zd2Fwb2ZmCQlzeXNfY2hkaXIKLSNkZWZpbmUJc3lzX2RlbGV0ZV9tb2R1bGUJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19mY2hkaXIJCXN5c19jbG9zZQotI2RlZmluZQlzeXNfc2V0ZnN1aWQJCXN5c19zZXR1aWQKLSNkZWZpbmUJc3lzX3NldGZzZ2lkCQlzeXNfc2V0Z2lkCi0jZGVmaW5lIHN5c19uYW5vc2xlZXAJCXN5c19hZGp0aW1lCi0jZGVmaW5lCXN5c19hY2N0CQlzeXNfY2hkaXIKLSNkZWZpbmUgc3lzX2ZkYXRhc3luYwkJc3lzX2Nsb3NlCi0jZGVmaW5lIHN5c19tbG9jawkJc3lzX211bm1hcAotI2RlZmluZSBzeXNfbXVubG9jawkJc3lzX211bm1hcAotI2RlZmluZSBzeXNfY2xvY2tfZ2V0cmVzCXN5c19jbG9ja19nZXR0aW1lCi0jZGVmaW5lIHN5c19tcV91bmxpbmsJCXN5c191bmxpbmsKLQotLyogcHJpbnRhcmdzIGRvZXMgdGhlIHJpZ2h0IHRoaW5nICovCi0jZGVmaW5lCXN5c19zZXR1cAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0dWlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3BhdXNlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N5bmMJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0Z2lkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGV1aWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0ZWdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwcGlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHBncnAJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0c2lkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3ZoYW5ndXAJCXByaW50YXJncwotI2RlZmluZQlzeXNfaWRsZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwZ2lkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX211bmxvY2thbGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfdGltZXJfZ2V0b3ZlcnJ1bglwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3RpbWVyX2RlbGV0ZQlwcmludGFyZ3MKLQotLyogc3ViY2FsbCBlbnRyeSBwb2ludHMgKi8KLSNkZWZpbmUJc3lzX3NvY2tldGNhbGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfaXBjCQkJcHJpbnRhcmdzCi0KLS8qIHVuaW1wbGVtZW50ZWQgKi8KLSNkZWZpbmUJc3lzX3N0dHkJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ3R0eQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mdGltZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19wcm9mCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3BoeXMJCXByaW50YXJncwotI2RlZmluZQlzeXNfbG9jawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tcHgJCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3VsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19wcm9maWwJCXByaW50YXJncwotI2RlZmluZQlzeXNfdXN0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfYnJlYWsJCXByaW50YXJncwotCi0vKiBkZXByZWNhdGVkICovCi0jZGVmaW5lCXN5c19vbGR1bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19vbGRvbGR1bmFtZQkJcHJpbnRhcmdzCi0KLS8qIG5vIGxpYnJhcnkgc3VwcG9ydCAqLwotI2lmbmRlZiBIQVZFX1NFTkRNU0cKLSNkZWZpbmUgc3lzX3NlbmRtc2cJCXByaW50YXJncwotI2RlZmluZSBzeXNfcmVjdm1zZwkJcHJpbnRhcmdzCi0jZW5kaWYKLQotI2lmbmRlZiBTWVNfZ2V0cG1zZwotI2RlZmluZSBzeXNfZ2V0cG1zZwkJcHJpbnRhcmdzCi0jZW5kaWYKLSNpZm5kZWYgU1lTX3B1dHBtc2cKLSNkZWZpbmUgc3lzX3B1dHBtc2cJCXByaW50YXJncwotI2VuZGlmCi0KLSNpZm5kZWYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQKLSNkZWZpbmUgc3lzX29sZHN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkZnN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkbHN0YXQJCXByaW50YXJncwotI2VuZGlmCi0KLSNpZiBET05FCi0jZGVmaW5lIHN5c19vbGRzZWxlY3QJCXByaW50YXJncwotI2RlZmluZQlzeXNfbXN5bmMJCXByaW50YXJncwotI2RlZmluZQlzeXNfZmxvY2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0ZGVudHMJCXByaW50YXJncwotI2RlZmluZQlzeXNfc3RpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfdGltZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c190aW1lcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tb3VudAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19uaWNlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21wcm90ZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ3Byb2NtYXNrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2FkanRpbWV4CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N5c2luZm8JCXByaW50YXJncwotI2RlZmluZQlzeXNfaXBjCQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRkb21haW5uYW1lCXByaW50YXJncwotI2RlZmluZQlzeXNfc3RhdGZzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZzdGF0ZnMJCXByaW50YXJncwotI2RlZmluZQlzeXNfcHRyYWNlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ3JldHVybgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mc3luYwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19hbGFybQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zb2NrZXRjYWxsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ3N1c3BlbmQJCXByaW50YXJncwotI2RlZmluZQlzeXNfdXRpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfYnJrCQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tbWFwCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX211bm1hcAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZWxlY3QJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0dWlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldGdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRyZXVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRyZWdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRncm91cHMJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0Z3JvdXBzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHJsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cnVzYWdlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHByaW9yaXR5CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHByaW9yaXR5CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHBnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfYWNjZXNzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldGhvc3RuYW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3JlYWRkaXIJCXByaW50YXJncwotI2RlZmluZQlzeXNfd2FpdHBpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c193YWl0NAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19leGVjdmUJCXByaW50YXJncwotI2RlZmluZQlzeXNfZm9yawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19waXBlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ2dldG1hc2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2lnc2V0bWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19leGl0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2tpbGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2lnbmFsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ2FjdGlvbgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdwZW5kaW5nCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZjbnRsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2R1cAkJCXByaW50YXJncwotI2RlZmluZQlzeXNfZHVwMgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19jbG9zZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19pb2N0bAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWFkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3dyaXRlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX29wZW4JCXByaW50YXJncwotI2RlZmluZQlzeXNfY3JlYXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfbGluawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bmxpbmsJCXByaW50YXJncwotI2RlZmluZQlzeXNfY2hkaXIJCXByaW50YXJncwotI2RlZmluZQlzeXNfbWtub2QJCXByaW50YXJncwotI2RlZmluZQlzeXNfY2htb2QJCXByaW50YXJncwotI2RlZmluZQlzeXNfY2hvd24JCXByaW50YXJncwotI2RlZmluZQlzeXNfbHNlZWsJCXByaW50YXJncwotI2RlZmluZQlzeXNfcmVuYW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21rZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3JtZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3VtYXNrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Nocm9vdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeW1saW5rCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3JlYWRsaW5rCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3RydW5jYXRlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Z0cnVuY2F0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mY2htb2QJCXByaW50YXJncwotI2RlZmluZQlzeXNfZmNob3duCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldGl0aW1lcgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRpdGltZXIJCXByaW50YXJncwotI2RlZmluZQlzeXNfc3RhdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19sc3RhdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mc3RhdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19wZXJzb25hbGl0eQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wb2xsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NyZWF0ZV9tb2R1bGUJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19pbml0X21vZHVsZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19xdW90YWN0bAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tbG9ja2FsbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWJvb3QJCXByaW50YXJncwotI2VuZGlmCi0KLQotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotCi0jZGVmaW5lIHN5c19tcV9vcGVuIHByaW50YXJncwotI2RlZmluZSBzeXNfbXFfdGltZWRzZW5kIHByaW50YXJncwotI2RlZmluZSBzeXNfbXFfdGltZWRyZWNlaXZlIHByaW50YXJncwotI2RlZmluZSBzeXNfbXFfbm90aWZ5IHByaW50YXJncwotI2RlZmluZSBzeXNfbXFfZ2V0c2V0YXR0ciBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NlbW9wIHByaW50YXJncwotI2RlZmluZSBzeXNfc2VtZ2V0IHByaW50YXJncwotI2RlZmluZSBzeXNfc2VtY3RsIHByaW50YXJncwotI2RlZmluZSBzeXNfc2VtdGltZWRvcCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zZ3NuZCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zZ3JjdiBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zZ2dldCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zZ2N0bCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NobWF0IHByaW50YXJncwotI2RlZmluZSBzeXNfc2htZHQgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaG1nZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaG1jdGwgcHJpbnRhcmdzCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2xpbnV4L2Vycm5vZW50LmggYi9saW51eC9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGIyYWRjLi4wMDAwMDAwCi0tLSBhL2xpbnV4L2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MjkgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFREVBRExLIiwgLyogMzUgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KLQkiRU5PTENLIiwgLyogMzcgKi8KLQkiRU5PU1lTIiwgLyogMzggKi8KLQkiRU5PVEVNUFRZIiwgLyogMzkgKi8KLQkiRUxPT1AiLCAvKiA0MCAqLwotCSJFUlJOT180MSIsIC8qIDQxICovCi0JIkVOT01TRyIsIC8qIDQyICovCi0JIkVJRFJNIiwgLyogNDMgKi8KLQkiRUNIUk5HIiwgLyogNDQgKi8KLQkiRUwyTlNZTkMiLCAvKiA0NSAqLwotCSJFTDNITFQiLCAvKiA0NiAqLwotCSJFTDNSU1QiLCAvKiA0NyAqLwotCSJFTE5STkciLCAvKiA0OCAqLwotCSJFVU5BVENIIiwgLyogNDkgKi8KLQkiRU5PQ1NJIiwgLyogNTAgKi8KLQkiRUwySExUIiwgLyogNTEgKi8KLQkiRUJBREUiLCAvKiA1MiAqLwotCSJFQkFEUiIsIC8qIDUzICovCi0JIkVYRlVMTCIsIC8qIDU0ICovCi0JIkVOT0FOTyIsIC8qIDU1ICovCi0JIkVCQURSUUMiLCAvKiA1NiAqLwotCSJFQkFEU0xUIiwgLyogNTcgKi8KLQkiRVJSTk9fNTgiLCAvKiA1OCAqLwotCSJFQkZPTlQiLCAvKiA1OSAqLwotCSJFTk9TVFIiLCAvKiA2MCAqLwotCSJFTk9EQVRBIiwgLyogNjEgKi8KLQkiRVRJTUUiLCAvKiA2MiAqLwotCSJFTk9TUiIsIC8qIDYzICovCi0JIkVOT05FVCIsIC8qIDY0ICovCi0JIkVOT1BLRyIsIC8qIDY1ICovCi0JIkVSRU1PVEUiLCAvKiA2NiAqLwotCSJFTk9MSU5LIiwgLyogNjcgKi8KLQkiRUFEViIsIC8qIDY4ICovCi0JIkVTUk1OVCIsIC8qIDY5ICovCi0JIkVDT01NIiwgLyogNzAgKi8KLQkiRVBST1RPIiwgLyogNzEgKi8KLQkiRU1VTFRJSE9QIiwgLyogNzIgKi8KLQkiRURPVERPVCIsIC8qIDczICovCi0JIkVCQURNU0ciLCAvKiA3NCAqLwotCSJFT1ZFUkZMT1ciLCAvKiA3NSAqLwotCSJFTk9UVU5JUSIsIC8qIDc2ICovCi0JIkVCQURGRCIsIC8qIDc3ICovCi0JIkVSRU1DSEciLCAvKiA3OCAqLwotCSJFTElCQUNDIiwgLyogNzkgKi8KLQkiRUxJQkJBRCIsIC8qIDgwICovCi0JIkVMSUJTQ04iLCAvKiA4MSAqLwotCSJFTElCTUFYIiwgLyogODIgKi8KLQkiRUxJQkVYRUMiLCAvKiA4MyAqLwotCSJFSUxTRVEiLCAvKiA4NCAqLwotCSJFUkVTVEFSVCIsIC8qIDg1ICovCi0JIkVTVFJQSVBFIiwgLyogODYgKi8KLQkiRVVTRVJTIiwgLyogODcgKi8KLQkiRU5PVFNPQ0siLCAvKiA4OCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiA4OSAqLwotCSJFTVNHU0laRSIsIC8qIDkwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA5MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDkyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDkzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDk0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA5NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA5NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA5NyAqLwotCSJFQUREUklOVVNFIiwgLyogOTggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDk5ICovCi0JIkVORVRET1dOIiwgLyogMTAwICovCi0JIkVORVRVTlJFQUNIIiwgLyogMTAxICovCi0JIkVORVRSRVNFVCIsIC8qIDEwMiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiAxMDMgKi8KLQkiRUNPTk5SRVNFVCIsIC8qIDEwNCAqLwotCSJFTk9CVUZTIiwgLyogMTA1ICovCi0JIkVJU0NPTk4iLCAvKiAxMDYgKi8KLQkiRU5PVENPTk4iLCAvKiAxMDcgKi8KLQkiRVNIVVRET1dOIiwgLyogMTA4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDEwOSAqLwotCSJFVElNRURPVVQiLCAvKiAxMTAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogMTExICovCi0JIkVIT1NURE9XTiIsIC8qIDExMiAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiAxMTMgKi8KLQkiRUFMUkVBRFkiLCAvKiAxMTQgKi8KLQkiRUlOUFJPR1JFU1MiLCAvKiAxMTUgKi8KLQkiRVNUQUxFIiwgLyogMTE2ICovCi0JIkVVQ0xFQU4iLCAvKiAxMTcgKi8KLQkiRU5PVE5BTSIsIC8qIDExOCAqLwotCSJFTkFWQUlMIiwgLyogMTE5ICovCi0JIkVJU05BTSIsIC8qIDEyMCAqLwotCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KLQkiRURRVU9UIiwgLyogMTIyICovCi0JIkVOT01FRElVTSIsIC8qIDEyMyAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDEyNCAqLwotCSJFUlJOT18xMjUiLCAvKiAxMjUgKi8KLQkiRVJSTk9fMTI2IiwgLyogMTI2ICovCi0JIkVSUk5PXzEyNyIsIC8qIDEyNyAqLwotCSJFUlJOT18xMjgiLCAvKiAxMjggKi8KLQkiRVJSTk9fMTI5IiwgLyogMTI5ICovCi0JIkVSUk5PXzEzMCIsIC8qIDEzMCAqLwotCSJFUlJOT18xMzEiLCAvKiAxMzEgKi8KLQkiRVJSTk9fMTMyIiwgLyogMTMyICovCi0JIkVSUk5PXzEzMyIsIC8qIDEzMyAqLwotCSJFUlJOT18xMzQiLCAvKiAxMzQgKi8KLQkiRVJSTk9fMTM1IiwgLyogMTM1ICovCi0JIkVSUk5PXzEzNiIsIC8qIDEzNiAqLwotCSJFUlJOT18xMzciLCAvKiAxMzcgKi8KLQkiRVJSTk9fMTM4IiwgLyogMTM4ICovCi0JIkVSUk5PXzEzOSIsIC8qIDEzOSAqLwotCSJFUlJOT18xNDAiLCAvKiAxNDAgKi8KLQkiRVJSTk9fMTQxIiwgLyogMTQxICovCi0JIkVSUk5PXzE0MiIsIC8qIDE0MiAqLwotCSJFUlJOT18xNDMiLCAvKiAxNDMgKi8KLQkiRVJSTk9fMTQ0IiwgLyogMTQ0ICovCi0JIkVSUk5PXzE0NSIsIC8qIDE0NSAqLwotCSJFUlJOT18xNDYiLCAvKiAxNDYgKi8KLQkiRVJSTk9fMTQ3IiwgLyogMTQ3ICovCi0JIkVSUk5PXzE0OCIsIC8qIDE0OCAqLwotCSJFUlJOT18xNDkiLCAvKiAxNDkgKi8KLQkiRVJSTk9fMTUwIiwgLyogMTUwICovCi0JIkVSUk5PXzE1MSIsIC8qIDE1MSAqLwotCSJFUlJOT18xNTIiLCAvKiAxNTIgKi8KLQkiRVJSTk9fMTUzIiwgLyogMTUzICovCi0JIkVSUk5PXzE1NCIsIC8qIDE1NCAqLwotCSJFUlJOT18xNTUiLCAvKiAxNTUgKi8KLQkiRVJSTk9fMTU2IiwgLyogMTU2ICovCi0JIkVSUk5PXzE1NyIsIC8qIDE1NyAqLwotCSJFUlJOT18xNTgiLCAvKiAxNTggKi8KLQkiRVJSTk9fMTU5IiwgLyogMTU5ICovCi0JIkVSUk5PXzE2MCIsIC8qIDE2MCAqLwotCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KLQkiRVJSTk9fMTYyIiwgLyogMTYyICovCi0JIkVSUk5PXzE2MyIsIC8qIDE2MyAqLwotCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KLQkiRVJSTk9fMTY1IiwgLyogMTY1ICovCi0JIkVSUk5PXzE2NiIsIC8qIDE2NiAqLwotCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KLQkiRVJSTk9fMTY4IiwgLyogMTY4ICovCi0JIkVSUk5PXzE2OSIsIC8qIDE2OSAqLwotCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KLQkiRVJSTk9fMTcxIiwgLyogMTcxICovCi0JIkVSUk5PXzE3MiIsIC8qIDE3MiAqLwotCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KLQkiRVJSTk9fMTc0IiwgLyogMTc0ICovCi0JIkVSUk5PXzE3NSIsIC8qIDE3NSAqLwotCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KLQkiRVJSTk9fMTc3IiwgLyogMTc3ICovCi0JIkVSUk5PXzE3OCIsIC8qIDE3OCAqLwotCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KLQkiRVJSTk9fMTgwIiwgLyogMTgwICovCi0JIkVSUk5PXzE4MSIsIC8qIDE4MSAqLwotCSJFUlJOT18xODIiLCAvKiAxODIgKi8KLQkiRVJSTk9fMTgzIiwgLyogMTgzICovCi0JIkVSUk5PXzE4NCIsIC8qIDE4NCAqLwotCSJFUlJOT18xODUiLCAvKiAxODUgKi8KLQkiRVJSTk9fMTg2IiwgLyogMTg2ICovCi0JIkVSUk5PXzE4NyIsIC8qIDE4NyAqLwotCSJFUlJOT18xODgiLCAvKiAxODggKi8KLQkiRVJSTk9fMTg5IiwgLyogMTg5ICovCi0JIkVSUk5PXzE5MCIsIC8qIDE5MCAqLwotCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KLQkiRVJSTk9fMTkyIiwgLyogMTkyICovCi0JIkVSUk5PXzE5MyIsIC8qIDE5MyAqLwotCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KLQkiRVJSTk9fMTk1IiwgLyogMTk1ICovCi0JIkVSUk5PXzE5NiIsIC8qIDE5NiAqLwotCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KLQkiRVJSTk9fMTk4IiwgLyogMTk4ICovCi0JIkVSUk5PXzE5OSIsIC8qIDE5OSAqLwotCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KLQkiRVJSTk9fMjAxIiwgLyogMjAxICovCi0JIkVSUk5PXzIwMiIsIC8qIDIwMiAqLwotCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KLQkiRVJSTk9fMjA0IiwgLyogMjA0ICovCi0JIkVSUk5PXzIwNSIsIC8qIDIwNSAqLwotCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KLQkiRVJSTk9fMjA3IiwgLyogMjA3ICovCi0JIkVSUk5PXzIwOCIsIC8qIDIwOCAqLwotCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KLQkiRVJSTk9fMjEwIiwgLyogMjEwICovCi0JIkVSUk5PXzIxMSIsIC8qIDIxMSAqLwotCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KLQkiRVJSTk9fMjEzIiwgLyogMjEzICovCi0JIkVSUk5PXzIxNCIsIC8qIDIxNCAqLwotCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KLQkiRVJSTk9fMjE2IiwgLyogMjE2ICovCi0JIkVSUk5PXzIxNyIsIC8qIDIxNyAqLwotCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KLQkiRVJSTk9fMjE5IiwgLyogMjE5ICovCi0JIkVSUk5PXzIyMCIsIC8qIDIyMCAqLwotCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KLQkiRVJSTk9fMjIyIiwgLyogMjIyICovCi0JIkVSUk5PXzIyMyIsIC8qIDIyMyAqLwotCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KLQkiRVJSTk9fMjI1IiwgLyogMjI1ICovCi0JIkVSUk5PXzIyNiIsIC8qIDIyNiAqLwotCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KLQkiRVJSTk9fMjI4IiwgLyogMjI4ICovCi0JIkVSUk5PXzIyOSIsIC8qIDIyOSAqLwotCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KLQkiRVJSTk9fMjMxIiwgLyogMjMxICovCi0JIkVSUk5PXzIzMiIsIC8qIDIzMiAqLwotCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KLQkiRVJSTk9fMjM0IiwgLyogMjM0ICovCi0JIkVSUk5PXzIzNSIsIC8qIDIzNSAqLwotCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KLQkiRVJSTk9fMjM3IiwgLyogMjM3ICovCi0JIkVSUk5PXzIzOCIsIC8qIDIzOCAqLwotCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KLQkiRVJSTk9fMjQwIiwgLyogMjQwICovCi0JIkVSUk5PXzI0MSIsIC8qIDI0MSAqLwotCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KLQkiRVJSTk9fMjQzIiwgLyogMjQzICovCi0JIkVSUk5PXzI0NCIsIC8qIDI0NCAqLwotCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KLQkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCi0JIkVSUk5PXzI0NyIsIC8qIDI0NyAqLwotCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KLQkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCi0JIkVSUk5PXzI1MCIsIC8qIDI1MCAqLwotCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KLQkiRVJSTk9fMjUyIiwgLyogMjUyICovCi0JIkVSUk5PXzI1MyIsIC8qIDI1MyAqLwotCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KLQkiRVJSTk9fMjU1IiwgLyogMjU1ICovCi0JIkVSUk5PXzI1NiIsIC8qIDI1NiAqLwotCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KLQkiRVJSTk9fMjU4IiwgLyogMjU4ICovCi0JIkVSUk5PXzI1OSIsIC8qIDI1OSAqLwotCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KLQkiRVJSTk9fMjYxIiwgLyogMjYxICovCi0JIkVSUk5PXzI2MiIsIC8qIDI2MiAqLwotCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KLQkiRVJSTk9fMjY0IiwgLyogMjY0ICovCi0JIkVSUk5PXzI2NSIsIC8qIDI2NSAqLwotCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KLQkiRVJSTk9fMjY3IiwgLyogMjY3ICovCi0JIkVSUk5PXzI2OCIsIC8qIDI2OCAqLwotCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KLQkiRVJSTk9fMjcwIiwgLyogMjcwICovCi0JIkVSUk5PXzI3MSIsIC8qIDI3MSAqLwotCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KLQkiRVJSTk9fMjczIiwgLyogMjczICovCi0JIkVSUk5PXzI3NCIsIC8qIDI3NCAqLwotCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KLQkiRVJSTk9fMjc2IiwgLyogMjc2ICovCi0JIkVSUk5PXzI3NyIsIC8qIDI3NyAqLwotCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KLQkiRVJSTk9fMjc5IiwgLyogMjc5ICovCi0JIkVSUk5PXzI4MCIsIC8qIDI4MCAqLwotCSJFUlJOT18yODEiLCAvKiAyODEgKi8KLQkiRVJSTk9fMjgyIiwgLyogMjgyICovCi0JIkVSUk5PXzI4MyIsIC8qIDI4MyAqLwotCSJFUlJOT18yODQiLCAvKiAyODQgKi8KLQkiRVJSTk9fMjg1IiwgLyogMjg1ICovCi0JIkVSUk5PXzI4NiIsIC8qIDI4NiAqLwotCSJFUlJOT18yODciLCAvKiAyODcgKi8KLQkiRVJSTk9fMjg4IiwgLyogMjg4ICovCi0JIkVSUk5PXzI4OSIsIC8qIDI4OSAqLwotCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KLQkiRVJSTk9fMjkxIiwgLyogMjkxICovCi0JIkVSUk5PXzI5MiIsIC8qIDI5MiAqLwotCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KLQkiRVJSTk9fMjk0IiwgLyogMjk0ICovCi0JIkVSUk5PXzI5NSIsIC8qIDI5NSAqLwotCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KLQkiRVJSTk9fMjk3IiwgLyogMjk3ICovCi0JIkVSUk5PXzI5OCIsIC8qIDI5OCAqLwotCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KLQkiRVJSTk9fMzAwIiwgLyogMzAwICovCi0JIkVSUk5PXzMwMSIsIC8qIDMwMSAqLwotCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KLQkiRVJSTk9fMzAzIiwgLyogMzAzICovCi0JIkVSUk5PXzMwNCIsIC8qIDMwNCAqLwotCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KLQkiRVJSTk9fMzA2IiwgLyogMzA2ICovCi0JIkVSUk5PXzMwNyIsIC8qIDMwNyAqLwotCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KLQkiRVJSTk9fMzA5IiwgLyogMzA5ICovCi0JIkVSUk5PXzMxMCIsIC8qIDMxMCAqLwotCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KLQkiRVJSTk9fMzEyIiwgLyogMzEyICovCi0JIkVSUk5PXzMxMyIsIC8qIDMxMyAqLwotCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KLQkiRVJSTk9fMzE1IiwgLyogMzE1ICovCi0JIkVSUk5PXzMxNiIsIC8qIDMxNiAqLwotCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KLQkiRVJSTk9fMzE4IiwgLyogMzE4ICovCi0JIkVSUk5PXzMxOSIsIC8qIDMxOSAqLwotCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KLQkiRVJSTk9fMzIxIiwgLyogMzIxICovCi0JIkVSUk5PXzMyMiIsIC8qIDMyMiAqLwotCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KLQkiRVJSTk9fMzI0IiwgLyogMzI0ICovCi0JIkVSUk5PXzMyNSIsIC8qIDMyNSAqLwotCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KLQkiRVJSTk9fMzI3IiwgLyogMzI3ICovCi0JIkVSUk5PXzMyOCIsIC8qIDMyOCAqLwotCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KLQkiRVJSTk9fMzMwIiwgLyogMzMwICovCi0JIkVSUk5PXzMzMSIsIC8qIDMzMSAqLwotCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KLQkiRVJSTk9fMzMzIiwgLyogMzMzICovCi0JIkVSUk5PXzMzNCIsIC8qIDMzNCAqLwotCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KLQkiRVJSTk9fMzM2IiwgLyogMzM2ICovCi0JIkVSUk5PXzMzNyIsIC8qIDMzNyAqLwotCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KLQkiRVJSTk9fMzM5IiwgLyogMzM5ICovCi0JIkVSUk5PXzM0MCIsIC8qIDM0MCAqLwotCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KLQkiRVJSTk9fMzQyIiwgLyogMzQyICovCi0JIkVSUk5PXzM0MyIsIC8qIDM0MyAqLwotCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KLQkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCi0JIkVSUk5PXzM0NiIsIC8qIDM0NiAqLwotCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KLQkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCi0JIkVSUk5PXzM0OSIsIC8qIDM0OSAqLwotCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KLQkiRVJSTk9fMzUxIiwgLyogMzUxICovCi0JIkVSUk5PXzM1MiIsIC8qIDM1MiAqLwotCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KLQkiRVJSTk9fMzU0IiwgLyogMzU0ICovCi0JIkVSUk5PXzM1NSIsIC8qIDM1NSAqLwotCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KLQkiRVJSTk9fMzU3IiwgLyogMzU3ICovCi0JIkVSUk5PXzM1OCIsIC8qIDM1OCAqLwotCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KLQkiRVJSTk9fMzYwIiwgLyogMzYwICovCi0JIkVSUk5PXzM2MSIsIC8qIDM2MSAqLwotCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KLQkiRVJSTk9fMzYzIiwgLyogMzYzICovCi0JIkVSUk5PXzM2NCIsIC8qIDM2NCAqLwotCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KLQkiRVJSTk9fMzY2IiwgLyogMzY2ICovCi0JIkVSUk5PXzM2NyIsIC8qIDM2NyAqLwotCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KLQkiRVJSTk9fMzY5IiwgLyogMzY5ICovCi0JIkVSUk5PXzM3MCIsIC8qIDM3MCAqLwotCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KLQkiRVJSTk9fMzcyIiwgLyogMzcyICovCi0JIkVSUk5PXzM3MyIsIC8qIDM3MyAqLwotCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KLQkiRVJSTk9fMzc1IiwgLyogMzc1ICovCi0JIkVSUk5PXzM3NiIsIC8qIDM3NiAqLwotCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KLQkiRVJSTk9fMzc4IiwgLyogMzc4ICovCi0JIkVSUk5PXzM3OSIsIC8qIDM3OSAqLwotCSJFUlJOT18zODAiLCAvKiAzODAgKi8KLQkiRVJSTk9fMzgxIiwgLyogMzgxICovCi0JIkVSUk5PXzM4MiIsIC8qIDM4MiAqLwotCSJFUlJOT18zODMiLCAvKiAzODMgKi8KLQkiRVJSTk9fMzg0IiwgLyogMzg0ICovCi0JIkVSUk5PXzM4NSIsIC8qIDM4NSAqLwotCSJFUlJOT18zODYiLCAvKiAzODYgKi8KLQkiRVJSTk9fMzg3IiwgLyogMzg3ICovCi0JIkVSUk5PXzM4OCIsIC8qIDM4OCAqLwotCSJFUlJOT18zODkiLCAvKiAzODkgKi8KLQkiRVJSTk9fMzkwIiwgLyogMzkwICovCi0JIkVSUk5PXzM5MSIsIC8qIDM5MSAqLwotCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KLQkiRVJSTk9fMzkzIiwgLyogMzkzICovCi0JIkVSUk5PXzM5NCIsIC8qIDM5NCAqLwotCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KLQkiRVJSTk9fMzk2IiwgLyogMzk2ICovCi0JIkVSUk5PXzM5NyIsIC8qIDM5NyAqLwotCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KLQkiRVJSTk9fMzk5IiwgLyogMzk5ICovCi0JIkVSUk5PXzQwMCIsIC8qIDQwMCAqLwotCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KLQkiRVJSTk9fNDAyIiwgLyogNDAyICovCi0JIkVSUk5PXzQwMyIsIC8qIDQwMyAqLwotCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KLQkiRVJSTk9fNDA1IiwgLyogNDA1ICovCi0JIkVSUk5PXzQwNiIsIC8qIDQwNiAqLwotCSJFUlJOT180MDciLCAvKiA0MDcgKi8KLQkiRVJSTk9fNDA4IiwgLyogNDA4ICovCi0JIkVSUk5PXzQwOSIsIC8qIDQwOSAqLwotCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KLQkiRVJSTk9fNDExIiwgLyogNDExICovCi0JIkVSUk5PXzQxMiIsIC8qIDQxMiAqLwotCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KLQkiRVJSTk9fNDE0IiwgLyogNDE0ICovCi0JIkVSUk5PXzQxNSIsIC8qIDQxNSAqLwotCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KLQkiRVJSTk9fNDE3IiwgLyogNDE3ICovCi0JIkVSUk5PXzQxOCIsIC8qIDQxOCAqLwotCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KLQkiRVJSTk9fNDIwIiwgLyogNDIwICovCi0JIkVSUk5PXzQyMSIsIC8qIDQyMSAqLwotCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KLQkiRVJSTk9fNDIzIiwgLyogNDIzICovCi0JIkVSUk5PXzQyNCIsIC8qIDQyNCAqLwotCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KLQkiRVJSTk9fNDI2IiwgLyogNDI2ICovCi0JIkVSUk5PXzQyNyIsIC8qIDQyNyAqLwotCSJFUlJOT180MjgiLCAvKiA0MjggKi8KLQkiRVJSTk9fNDI5IiwgLyogNDI5ICovCi0JIkVSUk5PXzQzMCIsIC8qIDQzMCAqLwotCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KLQkiRVJSTk9fNDMyIiwgLyogNDMyICovCi0JIkVSUk5PXzQzMyIsIC8qIDQzMyAqLwotCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KLQkiRVJSTk9fNDM1IiwgLyogNDM1ICovCi0JIkVSUk5PXzQzNiIsIC8qIDQzNiAqLwotCSJFUlJOT180MzciLCAvKiA0MzcgKi8KLQkiRVJSTk9fNDM4IiwgLyogNDM4ICovCi0JIkVSUk5PXzQzOSIsIC8qIDQzOSAqLwotCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KLQkiRVJSTk9fNDQxIiwgLyogNDQxICovCi0JIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLwotCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KLQkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCi0JIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLwotCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KLQkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCi0JIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLwotCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KLQkiRVJSTk9fNDUwIiwgLyogNDUwICovCi0JIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLwotCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KLQkiRVJSTk9fNDUzIiwgLyogNDUzICovCi0JIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLwotCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KLQkiRVJSTk9fNDU2IiwgLyogNDU2ICovCi0JIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLwotCSJFUlJOT180NTgiLCAvKiA0NTggKi8KLQkiRVJSTk9fNDU5IiwgLyogNDU5ICovCi0JIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLwotCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KLQkiRVJSTk9fNDYyIiwgLyogNDYyICovCi0JIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLwotCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KLQkiRVJSTk9fNDY1IiwgLyogNDY1ICovCi0JIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLwotCSJFUlJOT180NjciLCAvKiA0NjcgKi8KLQkiRVJSTk9fNDY4IiwgLyogNDY4ICovCi0JIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLwotCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KLQkiRVJSTk9fNDcxIiwgLyogNDcxICovCi0JIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLwotCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KLQkiRVJSTk9fNDc0IiwgLyogNDc0ICovCi0JIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLwotCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KLQkiRVJSTk9fNDc3IiwgLyogNDc3ICovCi0JIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLwotCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KLQkiRVJSTk9fNDgwIiwgLyogNDgwICovCi0JIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLwotCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KLQkiRVJSTk9fNDgzIiwgLyogNDgzICovCi0JIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLwotCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KLQkiRVJSTk9fNDg2IiwgLyogNDg2ICovCi0JIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLwotCSJFUlJOT180ODgiLCAvKiA0ODggKi8KLQkiRVJSTk9fNDg5IiwgLyogNDg5ICovCi0JIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLwotCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KLQkiRVJSTk9fNDkyIiwgLyogNDkyICovCi0JIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLwotCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KLQkiRVJSTk9fNDk1IiwgLyogNDk1ICovCi0JIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLwotCSJFUlJOT180OTciLCAvKiA0OTcgKi8KLQkiRVJSTk9fNDk4IiwgLyogNDk4ICovCi0JIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLwotCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KLQkiRVJSTk9fNTAxIiwgLyogNTAxICovCi0JIkVSUk5PXzUwMiIsIC8qIDUwMiAqLwotCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KLQkiRVJSTk9fNTA0IiwgLyogNTA0ICovCi0JIkVSUk5PXzUwNSIsIC8qIDUwNSAqLwotCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KLQkiRVJSTk9fNTA3IiwgLyogNTA3ICovCi0JIkVSUk5PXzUwOCIsIC8qIDUwOCAqLwotCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KLQkiRVJSTk9fNTEwIiwgLyogNTEwICovCi0JIkVSUk5PXzUxMSIsIC8qIDUxMSAqLwotCSJFUkVTVEFSVFNZUyIsIC8qIDUxMiAqLwotCSJFUkVTVEFSVE5PSU5UUiIsIC8qIDUxMyAqLwotCSJFUkVTVEFSVE5PSEFORCIsIC8qIDUxNCAqLwotCSJFTk9JT0NUTENNRCIsIC8qIDUxNSAqLwotCSJFUlJOT181MTYiLCAvKiA1MTYgKi8KLQkiRVJSTk9fNTE3IiwgLyogNTE3ICovCi0JIkVSUk5PXzUxOCIsIC8qIDUxOCAqLwotCSJFUlJOT181MTkiLCAvKiA1MTkgKi8KLQkiRVJSTk9fNTIwIiwgLyogNTIwICovCi0JIkVCQURIQU5ETEUiLCAvKiA1MjEgKi8KLQkiRU5PVFNZTkMiLCAvKiA1MjIgKi8KLQkiRUJBRENPT0tJRSIsIC8qIDUyMyAqLwotCSJFTk9UU1VQUCIsIC8qIDUyNCAqLwotCSJFVE9PU01BTEwiLCAvKiA1MjUgKi8KLQkiRVNFUlZFUkZBVUxUIiwgLyogNTI2ICovCi0JIkVCQURUWVBFIiwgLyogNTI3ICovCi0JIkVKVUtFQk9YIiwgLyogNTI4ICovCmRpZmYgLS1naXQgYS9saW51eC9pb2N0bGVudC5oIGIvbGludXgvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdhMjA3MC4uMDAwMDAwMAotLS0gYS9saW51eC9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTMxMiArMCwwIEBACi0JLyogR2VuZXJhdGVkIGJ5IGlvY3Rsc29ydCAqLwotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRMQVNUU0VDVCIsCTB4MTI2Y30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFVExBU1RTRUNUIiwJMHgxMjZkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfVElNRU9VVCIsCTB4MjIwMX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1RJTUVPVVQiLAkweDIyMDJ9LAotCXsic2NzaS9zZy5oIiwJIlNHX0VNVUxBVEVEX0hPU1QiLAkweDIyMDN9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9UUkFOU0ZPUk0iLAkweDIyMDR9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9UUkFOU0ZPUk0iLAkweDIyMDV9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9DT01NQU5EX1EiLAkweDIyNzB9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9DT01NQU5EX1EiLAkweDIyNzF9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwJMHgyMjcyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3NX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NDU0lfSUQiLAkweDIyNzZ9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwJMHgyMjc5fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfTE9XX0RNQSIsCTB4MjI3YX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0ZPUkNFX1BBQ0tfSUQiLAkweDIyN2J9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9QQUNLX0lEIiwJMHgyMjdjfSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfTlVNX1dBSVRJTkciLAkweDIyN2R9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9ERUJVRyIsCTB4MjI3ZX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NHX1RBQkxFU0laRSIsCTB4MjI3Zn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1ZFUlNJT05fTlVNIiwJMHgyMjgyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19ORVhUX0NNRF9MRU4iLAkweDIyODN9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NDU0lfUkVTRVQiLAkweDIyODR9LAotCXsic2NzaS9zZy5oIiwJIlNHX0lPIiwJMHgyMjg1fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVRVUVTVF9UQUJMRSIsCTB4MjI4Nn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg3fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfS0VFUF9PUlBIQU4iLAkweDIyODh9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9BQ0NFU1NfQ09VTlQiLAkweDIyODl9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1JTVFJBVCIsCTB4MzIwMX0sCi0JeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9HV1NUUkFUIiwJMHgzMjAyfSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NSU1RSQVQiLAkweDMyMDN9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPU1dTVFJBVCIsCTB4MzIwNH0sCi0JeyJhc20vcHJvY2Vzc29yLmgiLAkiTUlDUk9DT0RFX0lPQ0ZSRUUiLAkweDM2MDB9LAotCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9HRVRfTUlSUk9SIiwJMHg0MDAzfSwKLQl7ImxpbnV4L3JhZGVvbmZiLmgiLAkiRkJJT19SQURFT05fU0VUX01JUlJPUiIsCTB4NDAwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR1JBQl9CQUNLTElHSFQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0RFUkVHRElTSyIsCTB4NDIwY30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0RJU0siLAkweDQyMGR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRUdORVdEIiwJMHg0MjBlfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVTQ0FORElTSyIsCTB4NDIxMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVExVTklORk8iLAkweDQyMTF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19CSUdfUEFTU1RIUlUiLAkweDQyMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JBQiIsCTB4NDU5MH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAotCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0ZDVVJTT1JJTkZPIiwJMHg0NjA3fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQ1VSU09SSU5GTyIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQ1VSU09SIiwJMHg0NjA4fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WQ1VSU09SSU5GTyIsCTB4NDYwOX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ1VSU09SU1RBVEUiLAkweDQ2MGF9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX0NVUlNPUlNUQVRFIiwJMHg0NjBifSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9DT04yRkJNQVAiLAkweDQ2MGZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX0NPTjJGQk1BUCIsCTB4NDYxMH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9CTEFOSyIsCTB4NDYxMX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT19BTExPQyIsCTB4NDYxM30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fRlJFRSIsCTB4NDYxNH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfR0xZUEgiLAkweDQ2MTV9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0hXQ0lORk8iLAkweDQ2MTZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX01PREVJTkZPIiwJMHg0NjE3fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9ESVNQSU5GTyIsCTB4NDYxOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIkZCSU9fV0FJVEZPUlZTWU5DIiwJMHg0NjIwfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRkxBRyIsCTB4NDgwZX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTRkxBRyIsCTB4NDgwZn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklOREVYIiwJMHg0ODEwfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0lORk8iLAkweDQ4MTB9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfSU5GTyIsCTB4NDgxMH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklORk8iLAkweDQ4MTF9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfQ09ERV9QT0tFIiwJMHg0ODExfSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX0xPQURfQ09ERSIsCTB4NDgxMX0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9DT0RFX1BFRUsiLAkweDQ4MTJ9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfVU5MT0FEX0NPREUiLAkweDQ4MTJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFUyIsCTB4NDgxM30sCi0JeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9TVEFSVCIsCTB4NDgxM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0VTIiwJMHg0ODE0fSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1NUT1AiLAkweDQ4MTR9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfUEFVU0UiLAkweDQ4MTV9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfUkVTVEFSVCIsCTB4NDgxNn0sCi0JeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9JTkZPIiwJMHg0ODIwfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1RSQU1fU0VUVVAiLAkweDQ4MjB9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfUkVTRVQiLAkweDQ4MjF9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfVFJBTV9QT0tFIiwJMHg0ODIxfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1BMQVlfTk9URSIsCTB4NDgyMn0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9UUkFNX1BFRUsiLAkweDQ4MjJ9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX1ZPSUNFIiwJMHg0ODIzfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9QQVJBTVMiLAkweDQ4MjR9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX01PREUiLAkweDQ4MjV9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX0NPTk5FQ1RJT04iLAkweDQ4MjZ9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfUENNX1BPS0UiLAkweDQ4MzB9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfUENNX1BFRUsiLAkweDQ4MzF9LAotCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX1BFQUtfUk1TIiwJMHg0ODQwfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9DT05GSUdfSU5GTyIsCTB4NDg0MX0sCi0JeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9VUExPQURfRklSTVdBUkUiLAkweDQ4NDJ9LAotCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX1ZFUlNJT04iLAkweDQ4NDN9LAotCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX01JWEVSIiwJMHg0ODQ0fSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF85NjMyX0FFQiIsCTB4NDg0NX0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9TVE9QIiwJMHg0ODgwfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0NPTlRJTlVFIiwJMHg0ODgxfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1pFUk9fVFJBTV9DT1VOVEVSIiwJMHg0ODgyfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1NJTkdMRV9TVEVQIiwJMHg0ODgzfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0RCR19SRUFEIiwJMHg0ODg0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0lPQ1NPVU5EIiwJMHg0YjJmfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RNS1RPTkUiLAkweDRiMzB9LAotCXsibGludXgva2QuaCIsCSJLREdFVExFRCIsCTB4NGIzMX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTEVEIiwJMHg0YjMyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JUWVBFIiwJMHg0YjMzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RBRERJTyIsCTB4NGIzNH0sCi0JeyJsaW51eC9rZC5oIiwJIktEREVMSU8iLAkweDRiMzV9LAotCXsibGludXgva2QuaCIsCSJLREVOQUJJTyIsCTB4NGIzNn0sCi0JeyJsaW51eC9rZC5oIiwJIktERElTQUJJTyIsCTB4NGIzN30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTU9ERSIsCTB4NGIzYX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUTU9ERSIsCTB4NGIzYn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUFQRElTUCIsCTB4NGIzY30sCi0JeyJsaW51eC9rZC5oIiwJIktEVU5NQVBESVNQIiwJMHg0YjNkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1NDUk5NQVAiLAkweDRiNDB9LAotCXsibGludXgva2QuaCIsCSJQSU9fU0NSTk1BUCIsCTB4NGI0MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTU9ERSIsCTB4NGI0NH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTU9ERSIsCTB4NGI0NX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCRU5UIiwJMHg0YjQ2fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JFTlQiLAkweDRiNDd9LAotCXsibGludXgva2QuaCIsCSJLREdLQlNFTlQiLAkweDRiNDh9LAotCXsibGludXgva2QuaCIsCSJLRFNLQlNFTlQiLAkweDRiNDl9LAotCXsibGludXgva2QuaCIsCSJLREdLQkRJQUNSIiwJMHg0YjRhfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JESUFDUiIsCTB4NGI0Yn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUS0VZQ09ERSIsCTB4NGI0Y30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUS0VZQ09ERSIsCTB4NGI0ZH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0lHQUNDRVBUIiwJMHg0YjRlfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RLQkRSRVAiLAkweDRiNTJ9LAotCXsibGludXgva2QuaCIsCSJHSU9fRk9OVCIsCTB4NGI2MH0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19GT05UIiwJMHg0YjYxfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNRVRBIiwJMHg0YjYyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNRVRBIiwJMHg0YjYzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JMRUQiLAkweDRiNjR9LAotCXsibGludXgva2QuaCIsCSJLRFNLQkxFRCIsCTB4NGI2NX0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19VTklNQVAiLAkweDRiNjZ9LAotCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQIiwJMHg0YjY3fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUENMUiIsCTB4NGI2OH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19VTklTQ1JOTUFQIiwJMHg0YjY5fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSVNDUk5NQVAiLAkweDRiNmF9LAotCXsibGludXgva2QuaCIsCSJHSU9fRk9OVFgiLAkweDRiNmJ9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFgiLAkweDRiNmN9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFJFU0VUIiwJMHg0YjZkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0NNQVAiLAkweDRiNzB9LAotCXsibGludXgva2QuaCIsCSJQSU9fQ01BUCIsCTB4NGI3MX0sCi0JeyJsaW51eC9rZC5oIiwJIktERk9OVE9QIiwJMHg0YjcyfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19BRERfRU5UUlkiLAkweDRkMDB9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX1NFVF9FTlRSWSIsCTB4NGQwMX0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfREVMX0VOVFJZIiwJMHg0ZDAyfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19HRVRfRU5UUlkiLAkweDRkMDN9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0tJTExfRU5UUlkiLAkweDRkMDR9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0FERF9QQUdFX0VOVFJZIiwJMHg0ZDA1fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19TRVRfUEFHRV9FTlRSWSIsCTB4NGQwNn0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfREVMX1BBR0VfRU5UUlkiLAkweDRkMDd9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0dFVF9QQUdFX0VOVFJZIiwJMHg0ZDA4fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19LSUxMX1BBR0VfRU5UUlkiLAkweDRkMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfVElNRU9VVCIsCTB4NGUyMH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfREVWSUNFIiwJMHg0ZTIxfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9SRVNFVF9QSVBFUyIsCTB4NGUyMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCi0JeyJzb3VuZC9zc2NhcGVfaW9jdGwuaCIsCSJTTkRfU1NDQVBFX0xPQURfQk9PVEIiLAkweDUwNjR9LAotCXsic291bmQvc3NjYXBlX2lvY3RsLmgiLAkiU05EX1NTQ0FQRV9MT0FEX01DT0RFIiwJMHg1MDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9QVkVSU0lPTiIsCTB4NTMwMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUEFVU0UiLAkweDUzMDF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9DTElFTlRfSUQiLAkweDUzMDF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU1VNRSIsCTB4NTMwMn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NZU1RFTV9JTkZPIiwJMHg1MzAyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZTVNGIiwJMHg1MzAzfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUlVOTklOR19NT0RFIiwJMHg1MzAzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZVFJLSU5EIiwJMHg1MzA0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DSERSIiwJMHg1MzA1fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DRU5UUlkiLAkweDUzMDZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUT1AiLAkweDUzMDd9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUQVJUIiwJMHg1MzA4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVCIsCTB4NTMwOX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MQ1RSTCIsCTB4NTMwYX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1VCQ0hOTCIsCTB4NTMwYn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUyIiwJMHg1MzBjfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTEiLAkweDUzMGR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBVURJTyIsCTB4NTMwZX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1RfU1ciLAkweDUzMGZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTU1VTFRJU0VTU0lPTiIsCTB4NTMxMH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9DTElFTlRfSU5GTyIsCTB4NTMxMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9NQ04iLAkweDUzMTF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfQ0xJRU5UX0lORk8iLAkweDUzMTF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU0VUIiwJMHg1MzEyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xSRUFEIiwJMHg1MzEzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEUkFXIiwJMHg1MzE0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQ09PS0VEIiwJMHg1MzE1fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRUVLIiwJMHg1MzE2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZQkxLIiwJMHg1MzE3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQUxMIiwJMHg1MzE4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01DTE9TRVRSQVkiLAkweDUzMTl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUdFVFNQSU5ET1dOIiwJMHg1MzFkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRVRTUElORE9XTiIsCTB4NTMxZX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFVF9PUFRJT05TIiwJMHg1MzIwfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ1JFQVRFX1BPUlQiLAkweDUzMjB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DTEVBUl9PUFRJT05TIiwJMHg1MzIxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfREVMRVRFX1BPUlQiLAkweDUzMjF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfU1BFRUQiLAkweDUzMjJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUE9SVF9JTkZPIiwJMHg1MzIyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX0RJU0MiLAkweDUzMjN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUE9SVF9JTkZPIiwJMHg1MzIzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTUVESUFfQ0hBTkdFRCIsCTB4NTMyNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RSSVZFX1NUQVRVUyIsCTB4NTMyNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RJU0NfU1RBVFVTIiwJMHg1MzI3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0hBTkdFUl9OU0xPVFMiLAkweDUzMjh9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MT0NLRE9PUiIsCTB4NTMyOX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RFQlVHIiwJMHg1MzMwfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU1VCU0NSSUJFX1BPUlQiLAkweDUzMzB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsCTB4NTMzMX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1VOU1VCU0NSSUJFX1BPUlQiLAkweDUzMzF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9DUkVBVEVfUVVFVUUiLAkweDUzMzJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9ERUxFVEVfUVVFVUUiLAkweDUzMzN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfSU5GTyIsCTB4NTMzNH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9JTkZPIiwJMHg1MzM1fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX05BTUVEX1FVRVVFIiwJMHg1MzM2fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1NUQVRVUyIsCTB4NTM0MH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9URU1QTyIsCTB4NTM0MX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9URU1QTyIsCTB4NTM0Mn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9PV05FUiIsCTB4NTM0M30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9PV05FUiIsCTB4NTM0NH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9USU1FUiIsCTB4NTM0NX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9USU1FUiIsCTB4NTM0Nn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9DTElFTlQiLAkweDUzNDl9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfQ0xJRU5UIiwJMHg1MzRhfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX0NMSUVOVF9QT09MIiwJMHg1MzRifSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX0NMSUVOVF9QT09MIiwJMHg1MzRjfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUkVNT1ZFX0VWRU5UUyIsCTB4NTM0ZX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1FVRVJZX1NVQlMiLAkweDUzNGZ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfU1VCU0NSSVBUSU9OIiwJMHg1MzUwfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUVVFUllfTkVYVF9DTElFTlQiLAkweDUzNTF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9RVUVSWV9ORVhUX1BPUlQiLAkweDUzNTJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfU1lOQyIsCTB4NTM1M30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9TWU5DIiwJMHg1MzU0fSwKLQl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUkxPQ0siLAkweDUzODB9LAotCXsic2NzaS9zY3NpX2lvY3RsLmgiLAkiU0NTSV9JT0NUTF9ET09SVU5MT0NLIiwJMHg1MzgxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01BVURJT0JVRlNJWiIsCTB4NTM4Mn0sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsCTB4NTM4Mn0sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1RBR0dFRF9FTkFCTEUiLAkweDUzODN9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRElTQUJMRSIsCTB4NTM4NH0sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLAkweDUzODV9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfQlVTX05VTUJFUiIsCTB4NTM4Nn0sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9QQ0kiLAkweDUzODd9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfUkVBRF9TVFJVQ1QiLAkweDUzOTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfV1JJVEVfU1RSVUNUIiwJMHg1MzkxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX0FVVEgiLAkweDUzOTJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRU5EX1BBQ0tFVCIsCTB4NTM5M30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX05FWFRfV1JJVEFCTEUiLAkweDUzOTR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MQVNUX1dSSVRURU4iLAkweDUzOTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0RFViIsCTB4NTQzMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9RU0laRSIsCTB4NTQ2MH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9ERVZfQ1JFQVRFIiwJMHg1NTAxfSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9ERVNUUk9ZIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDT05ORUNUIiwJMHg1NTE2fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1QiLAkweDU1MTd9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0VWQklUIiwJMHg1NTY0fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9LRVlCSVQiLAkweDU1NjV9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX1JFTEJJVCIsCTB4NTU2Nn0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfQUJTQklUIiwJMHg1NTY3fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9NU0NCSVQiLAkweDU1Njh9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0xFREJJVCIsCTB4NTU2OX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfU05EQklUIiwJMHg1NTZhfSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9GRkJJVCIsCTB4NTU2Yn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllDQVAiLAkweDU2MDB9LAotCXsibGludXgvdnQuaCIsCSJWVF9PUEVOUVJZIiwJMHg1NjAwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19SRVNFUlZFRCIsCTB4NTYwMX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVE1PREUiLAkweDU2MDF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1fRk1UIiwJMHg1NjAyfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VUTU9ERSIsCTB4NTYwMn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVFNUQVRFIiwJMHg1NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZNVCIsCTB4NTYwNH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1NFTkRTSUciLAkweDU2MDR9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRk1UIiwJMHg1NjA1fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVMRElTUCIsCTB4NTYwNX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DT01QIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfQUNUSVZBVEUiLAkweDU2MDZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ09NUCIsCTB4NTYwN30sCi0JeyJsaW51eC92dC5oIiwJIlZUX1dBSVRBQ1RJVkUiLAkweDU2MDd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFUUJVRlMiLAkweDU2MDh9LAotCXsibGludXgvdnQuaCIsCSJWVF9ESVNBTExPQ0FURSIsCTB4NTYwOH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllCVUYiLAkweDU2MDl9LAotCXsibGludXgvdnQuaCIsCSJWVF9SRVNJWkUiLAkweDU2MDl9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRkJVRiIsCTB4NTYwYX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRVgiLAkweDU2MGF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRkJVRiIsCTB4NTYwYn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0xPQ0tTV0lUQ0giLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9VTkxPQ0tTV0lUQ0giLAkweDU2MGN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX09WRVJMQVkiLAkweDU2MGV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FCVUYiLAkweDU2MGZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0RRQlVGIiwJMHg1NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PTiIsCTB4NTYxMn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU1RSRUFNT0ZGIiwJMHg1NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1BBUk0iLAkweDU2MTV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfUEFSTSIsCTB4NTYxNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19TVEQiLAkweDU2MTd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfU1REIiwJMHg1NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNU1REIiwJMHg1NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNSU5QVVQiLAkweDU2MWF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HX1RWT0NUUkwiLAkweDU2MWJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1RSTCIsCTB4NTYxYn0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NfVFZPQ1RSTCIsCTB4NTYxY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DVFJMIiwJMHg1NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1RVTkVSIiwJMHg1NjFkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1RVTkVSIiwJMHg1NjFlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRElPIiwJMHg1NjIxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRElPIiwJMHg1NjIyfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfVFZPUVVFUllDVFJMIiwJMHg1NjI0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNUUkwiLAkweDU2MjR9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZTUVOVSIsCTB4NTYyNX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19JTlBVVCIsCTB4NTYyNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19JTlBVVCIsCTB4NTYyN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19PVVRQVVQiLAkweDU2MmV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfT1VUUFVUIiwJMHg1NjJmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNT1VUUFVUIiwJMHg1NjMwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRE9VVCIsCTB4NTYzMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19BVURPVVQiLAkweDU2MzJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfTU9EVUxBVE9SIiwJMHg1NjM2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX01PRFVMQVRPUiIsCTB4NTYzN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GUkVRVUVOQ1kiLAkweDU2Mzh9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRlJFUVVFTkNZIiwJMHg1NjM5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19DUk9QQ0FQIiwJMHg1NjNhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NST1AiLAkweDU2M2J9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ1JPUCIsCTB4NTYzY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19KUEVHQ09NUCIsCTB4NTYzZH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19KUEVHQ09NUCIsCTB4NTYzZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllTVEQiLAkweDU2M2Z9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1RSWV9GTVQiLAkweDU2NDB9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1BVURJTyIsCTB4NTY0MX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTUFVRE9VVCIsCTB4NTY0Mn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19QUklPUklUWSIsCTB4NTY0M30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19QUklPUklUWSIsCTB4NTY0NH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1faGUuaCIsCSJIRV9HRVRfUkVHIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtYnIyNjg0LmgiLAkiQlIyNjg0X1NFVEZJTFQiLAkweDYxOTB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX05FV0JBQ0tFTkRJRiIsCTB4NjFmM30sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fU1RBVFVTIiwJMHg2NzAxfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fRkxVU0giLAkweDY3MDJ9LAotCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfQ0xFQVJfSEFMVCIsCTB4NjcwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0dfVFJVTkMiLAkweDY5MGJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0ciLAkweDY5MGN9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VORF9DT01NQU5EIiwJMHg2OTBkfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGV9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfVU5SRUdJU1RFUl9GT1JfQ01EIiwJMHg2OTBmfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9HRVRTX0VWRU5UU19DTUQiLAkweDY5MTB9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTExfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9BRERSRVNTX0NNRCIsCTB4NjkxMn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfTFVOX0NNRCIsCTB4NjkxM30sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9HRVRfTVlfTFVOX0NNRCIsCTB4NjkxNH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NJRiIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR0lGIiwJMHg2ZDBifSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L3Npc2ZiLmgiLAkiU0lTRkJfR0VUX0lORk8iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9HRVQiLAkweDcwMTF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9TRVQiLAkweDcwMTJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19ERVZJQ0UiLAkweDcwNTB9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFSU5US01MIiwJMHg3MDUxfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfUkNWRCIsCTB4NzA1Mn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0lPQ1RMX1VJRCIsCTB4NzA1M30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0tNTF9TSVpFIiwJMHg3MDU0fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19QVVJHRV9GSUxFX0RBVEEiLAkweDcwNTV9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NPTk5FQ1QiLAkweDcwNTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dPX0ZFVENIX0tNTCIsCTB4NzA1N30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfTUFSSyIsCTB4NzA1OH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ0xFQVJfRlNFVCIsCTB4NzA1OX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ0xFQVJfQUxMX0ZTRVRTIiwJMHg3MDYwfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfRlNFVCIsCTB4NzA2MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUkVWT0tFX1BFUk1JVCIsCTB4NzA2Mn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0tNTFNJWkUiLAkweDcwNjN9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMSUVOVF9NQUtFX0JSQU5DSCIsCTB4NzA2NH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VSVkVSX01BS0VfQlJBTkNIIiwJMHg3MDY1fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19CUkFOQ0hfVU5ETyIsCTB4NzA2Nn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQlJBTkNIX1JFRE8iLAkweDcwNjd9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9QSUQiLAkweDcwNjh9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9DSEFOTkVMIiwJMHg3MDY5fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfQ0hBTk5FTCIsCTB4NzA3MH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0ZJTEVJRCIsCTB4NzA3MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQURKVVNUX0xNTCIsCTB4NzA3Mn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0ZJTEVJRCIsCTB4NzA3M30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUkVQU1RBVFVTIiwJMHg3MDc0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJU0VSX0RFTEFZIiwJMHg3MGEwfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9USU1FT1VUIiwJMHg3MGExfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVBBUl9ERUxBWSIsCTB4NzBhOH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfVElNRU9VVCIsCTB4NzBhOX0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg4OTAxfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg4OTAyfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg4OTAzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg4OTA0fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4ODkwNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDg5MDZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERSVCIsCTB4ODkwYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTFJUIiwJMHg4OTBjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUlRNU0ciLAkweDg5MGR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZOQU1FIiwJMHg4OTEwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTElOSyIsCTB4ODkxMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPTkYiLAkweDg5MTJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZGTEFHUyIsCTB4ODkxM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkZMQUdTIiwJMHg4OTE0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQUREUiIsCTB4ODkxNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkFERFIiLAkweDg5MTZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZEU1RBRERSIiwJMHg4OTE3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRFNUQUREUiIsCTB4ODkxOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSREFERFIiLAkweDg5MTl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUkRBRERSIiwJMHg4OTFhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkVUTUFTSyIsCTB4ODkxYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5FVE1BU0siLAkweDg5MWN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRVRSSUMiLAkweDg5MWR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRVRSSUMiLAkweDg5MWV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRU0iLAkweDg5MWZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRU0iLAkweDg5MjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNVFUiLAkweDg5MjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNVFUiLAkweDg5MjJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZOQU1FIiwJMHg4OTIzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdBRERSIiwJMHg4OTI0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRU5DQVAiLAkweDg5MjV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZFTkNBUCIsCTB4ODkyNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkhXQUREUiIsCTB4ODkyN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlNMQVZFIiwJMHg4OTI5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGU0xBVkUiLAkweDg5MzB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERNVUxUSSIsCTB4ODkzMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTE1VTFRJIiwJMHg4OTMyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSU5ERVgiLAkweDg5MzN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZQRkxBR1MiLAkweDg5MzR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZQRkxBR1MiLAkweDg5MzV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NESUZBRERSIiwJMHg4OTM2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdCUk9BRENBU1QiLAkweDg5Mzd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT1VOVCIsCTB4ODkzOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSIiwJMHg4OTQwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlIiLAkweDg5NDF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZUWFFMRU4iLAkweDg5NDJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZUWFFMRU4iLAkweDg5NDN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZESVZFUlQiLAkweDg5NDR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZESVZFUlQiLAkweDg5NDV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NFVEhUT09MIiwJMHg4OTQ2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVBIWSIsCTB4ODk0N30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlSRUciLAkweDg5NDh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTTUlJUkVHIiwJMHg4OTQ5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DV0FOREVWIiwJMHg4OTRhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREFSUCIsCTB4ODk1M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dBUlAiLAkweDg5NTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTQVJQIiwJMHg4OTU1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRFJBUlAiLAkweDg5NjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHUkFSUCIsCTB4ODk2MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NSQVJQIiwJMHg4OTYyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUFQIiwJMHg4OTcwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUFQIiwJMHg4OTcxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURERExDSSIsCTB4ODk4MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTERMQ0kiLAkweDg5ODF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZWTEFOIiwJMHg4OTgyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVkxBTiIsCTB4ODk4M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRFTlNMQVZFIiwJMHg4OTkwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFJFTEVBU0UiLAkweDg5OTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0VUSFdBRERSIiwJMHg4OTkyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNMQVZFSU5GT1FVRVJZIiwJMHg4OTkzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORElORk9RVUVSWSIsCTB4ODk5NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRDSEFOR0VBQ1RJVkUiLAkweDg5OTV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NQUk9UT1BSSVZBVEUiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERVZQUklWQVRFIiwJMHg4OWYwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0NPTU1JVCIsCTB4OGIwMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOQU1FIiwJMHg4YjAxfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05XSUQiLAkweDhiMDJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTldJRCIsCTB4OGIwM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkVRIiwJMHg4YjA0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSRVEiLAkweDhiMDV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTU9ERSIsCTB4OGIwNn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdNT0RFIiwJMHg4YjA3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NFTlMiLAkweDhiMDh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0VOUyIsCTB4OGIwOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQU5HRSIsCTB4OGIwYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQU5HRSIsCTB4OGIwYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQUklWIiwJMHg4YjBjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BSSVYiLAkweDhiMGR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1RBVFMiLAkweDhiMGV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1RBVFMiLAkweDhiMGZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1BZIiwJMHg4YjEwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NQWSIsCTB4OGIxMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUSFJTUFkiLAkweDhiMTJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVEhSU1BZIiwJMHg4YjEzfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0FQIiwJMHg4YjE0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQIiwJMHg4YjE1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQTElTVCIsCTB4OGIxN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTQ0FOIiwJMHg4YjE4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NDQU4iLAkweDhiMTl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRVNTSUQiLAkweDhiMWF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRVNTSUQiLAkweDhiMWJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTklDS04iLAkweDhiMWN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTklDS04iLAkweDhiMWR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFURSIsCTB4OGIyMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQVRFIiwJMHg4YjIxfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JUUyIsCTB4OGIyMn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSVFMiLAkweDhiMjN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJBRyIsCTB4OGIyNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkFHIiwJMHg4YjI1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RYUE9XIiwJMHg4YjI2fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RYUE9XIiwJMHg4YjI3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JFVFJZIiwJMHg4YjI4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JFVFJZIiwJMHg4YjI5fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VOQ09ERSIsCTB4OGIyYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFTkNPREUiLAkweDhiMmJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUE9XRVIiLAkweDhiMmN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUE9XRVIiLAkweDhiMmR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVFBSSVYiLAkweDhiZTB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdMQVNUUFJJViIsCTB4OGJmZn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1ZFUlNJT04iLAkweGZkMDB9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9SRU1PVkVfQUxMIiwJMHhmZDAxfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fTElTVF9ERVZJQ0VTIiwJMHhmZDAyfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX0NSRUFURSIsCTB4ZmQwM30sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9SRU1PVkUiLAkweGZkMDR9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfUkVOQU1FIiwJMHhmZDA1fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1NVU1BFTkQiLAkweGZkMDZ9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfU1RBVFVTIiwJMHhmZDA3fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1dBSVQiLAkweGZkMDh9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9MT0FEIiwJMHhmZDA5fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfQ0xFQVIiLAkweGZkMGF9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9ERVBTIiwJMHhmZDBifSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfU1RBVFVTIiwJMHhmZDBjfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fTElTVF9WRVJTSU9OUyIsCTB4ZmQwZH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCi0JeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZlOWF9LApkaWZmIC0tZ2l0IGEvbGludXgvaW9jdGxlbnQuc2ggYi9saW51eC9pb2N0bGVudC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYzZDc0Yi4uMDAwMDAwMAotLS0gYS9saW51eC9pb2N0bGVudC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLSMhIC9iaW4vc2gKLSMKLSMgQ29weXJpZ2h0IChjKSAyMDAxIFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0jICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0jIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0jIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jCSRJZDogaW9jdGxlbnQuc2gsdiAxLjEyIDIwMDQvMTAvMDYgMjI6MzE6Mzggcm9sYW5kIEV4cCAkCi0jCi0KLSMgVmFsaWRhdGUgYXJnIGNvdW50LgotY2FzZSAkIyBpbgotMSkKLQlkaXI9IiQxIgotCWFzbT1hc20KLQk7OwotMikKLQlkaXI9IiQxIgotCWFzbT0iJDIiCi0JOzsKLSopCi0gICAgICAgIGVjaG8gInVzYWdlOiAkMCBpbmNsdWRlLWRpcmVjdG9yeSBbYXNtLXN1YmRpcmVjdG9yeV0iID4mMgotICAgICAgICBleGl0IDEKLQk7OwotZXNhYwotCi1sb29rdXBfaW9jdGxzKCkKLXsKLQl0eXBlPSIkMSIKLQlzaGlmdAotCi0JIyBCdWlsZCB0aGUgbGlzdCBvZiBhbGwgaW9jdGxzCi0JcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrMHgnIiR0eXBlIicuLlw+JwotCShjZCAiJGRpciIgOyBncmVwICIkcmVnZXhwIiAiJEAiIC9kZXYvbnVsbCAyPi9kZXYvbnVsbCApIHwKLQkJc2VkIC1uZSAicywkYXNtLyxhc20vLGciJwotcy9eXCguKlwpOltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXSpcKFtBLVowLTlfXSpcKVtbOnNwYWNlOl1dKlwoMHgnIiR0eXBlIicuLlwpLiovCXsgIlwxIiwJIlwyIiwJXDMJfSwvcCcgXAotCQk+PiBpb2N0bHMuaAotfQotCi06ID4gaW9jdGxzLmgKLWxvb2t1cF9pb2N0bHMgMjIgc2NzaS9zZy5oCi1sb29rdXBfaW9jdGxzIDQ2IGxpbnV4L2ZiLmgKLWxvb2t1cF9pb2N0bHMgNEIgbGludXgva2QuaAotbG9va3VwX2lvY3RscyA1MyBsaW51eC9jZHJvbS5oIHNjc2kvc2NzaS5oIHNjc2kvc2NzaV9pb2N0bC5oCi1sb29rdXBfaW9jdGxzIDU0ICRhc20vaW9jdGxzLmgKLWxvb2t1cF9pb2N0bHMgNTYgbGludXgvdnQuaAotbG9va3VwX2lvY3RscyAnN1sxMl0nIGxpbnV4L3ZpZGVvdGV4dC5oCi1sb29rdXBfaW9jdGxzIDg5ICRhc20vc29ja2lvcy5oIGxpbnV4L3NvY2tpb3MuaAotbG9va3VwX2lvY3RscyA4QiBsaW51eC93aXJlbGVzcy5oCi0KLWZpbGVzPSJsaW51eC8qICRhc20vKiBzY3NpLyogc291bmQvKiIKLQotIyBCdWlsZCB0aGUgbGlzdCBvZiBhbGwgaW9jdGxzCi1yZWdleHA9J15bWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV1cK1tBLVpdW0EtWjAtOV9dKltbOnNwYWNlOl1dXCtfU1w/XChJT1x8SU9XXHxJT1JcfElPV1JcKVw+JwotKGNkICRkaXIgOyBncmVwICRyZWdleHAgJGZpbGVzIDI+L2Rldi9udWxsICkgfCBcCi0Jc2VkIC1uZSAicywkYXNtLyxhc20vLGciJwotcy9eXCguKlwpOltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXSpcKFtBLVowLTlfXSpcKVtbOnNwYWNlOl1dKl9TXD9JLiooXChbXlssXSpcKVtbOnNwYWNlOl1dKixbWzpzcGFjZTpdXSpcKFteLCldKlwpLiovCXsgIlwxIiwJIlwyIiwJX0lPQyhfSU9DX05PTkUsXDMsXDQsMCkJfSwvcCcgXAotCT4+IGlvY3Rscy5oCi0KLSMgU29tZSB1c2UgYSBzcGVjaWFsIGJhc2UgdG8gb2Zmc2V0IHRoZWlyIGlvY3RscyBvbi4gRXh0cmFjdCB0aGF0IGFzIHdlbGwuCi06ID4gaW9jdGxkZWZzLmgKLQotYmFzZXM9JChzZWQgLW5lICdzLy4qX0lPQ19OT05FLiosW1s6c3BhY2U6XV0qXChbQS1aXVtBLVowLTlfXVwrXClbWzpzcGFjZTpdKyxdLiovXDEvcCcgaW9jdGxzLmggfCB1bmlxIHwgc29ydCkKLWZvciBiYXNlIGluICRiYXNlcyA7IGRvCi0JZWNobyAiTG9va2luZyBmb3IgJGJhc2UiCi0JcmVnZXhwPSJeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCskYmFzZSIKLQkoY2QgJGRpciA7IGdyZXAgLWggJHJlZ2V4cCAyPi9kZXYvbnVsbCAkZmlsZXMgKSB8IFwKLQkJZ3JlcCAtdiAnXDxfSU8nID4+IGlvY3RsZGVmcy5oCi1kb25lCmRpZmYgLS1naXQgYS9saW51eC9pb2N0bHNvcnQuYyBiL2xpbnV4L2lvY3Rsc29ydC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTQ0ZDg0Li4wMDAwMDAwCi0tLSBhL2xpbnV4L2lvY3Rsc29ydC5jCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpbmNsdWRlIDxhc20vaW9jdGwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0jaW5jbHVkZSAiaW9jdGxkZWZzLmgiCi0jaW5jbHVkZSA8bGludXgvYXRtaW9jLmg+Ci0KLXN0cnVjdCBpb2N0bGVudCB7Ci0JY29uc3QgY2hhcioJaGVhZGVyOwotCWNvbnN0IGNoYXIqCW5hbWU7Ci0JdW5zaWduZWQgbG9uZwljb2RlOwotfTsKLQotc3RydWN0IGlvY3RsZW50IGlvY3Rsc1tdID0gewotI2luY2x1ZGUgImlvY3Rscy5oIgotfTsKLQotaW50IG5pb2N0bHMgPSBzaXplb2YoaW9jdGxzKSAvIHNpemVvZihpb2N0bHNbMF0pOwotCi0KLWludCBjb21wYXJlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpIHsKLQl1bnNpZ25lZCBsb25nIGNvZGUxID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYSktPmNvZGU7Ci0JdW5zaWduZWQgbG9uZyBjb2RlMiA9ICgoc3RydWN0IGlvY3RsZW50ICopIGIpLT5jb2RlOwotCWNvbnN0IGNoYXIgKm5hbWUxID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYSktPm5hbWU7Ci0JY29uc3QgY2hhciAqbmFtZTIgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBiKS0+bmFtZTsKLQlyZXR1cm4gKGNvZGUxID4gY29kZTIpID8gMSA6IChjb2RlMSA8IGNvZGUyKSA/IC0xIDogc3RyY21wIChuYW1lMSwgbmFtZTIpOwotfQotCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewotCWludCBpOwotCi0jaWZkZWYgUE9XRVJQQwkJCS8qIHVuc3BlYWthYmxlIGtsdWRnZSAqLwotCWZvciAoaSA9IDA7IGkgPCBuaW9jdGxzOyBpKyspCi0JCWlvY3Rsc1tpXS5jb2RlICY9IH5fSU9DX0RJUk1BU0s7Ci0jZW5kaWYKLQotCXFzb3J0KGlvY3RscywgbmlvY3Rscywgc2l6ZW9mKGlvY3Rsc1swXSksIGNvbXBhcmUpOwotCXB1dHMgKCJcdC8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8iKTsKLQlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQotCQlpZiAoaSA9PSAwIHx8IGlvY3Rsc1tpXS5jb2RlICE9IGlvY3Rsc1tpLTFdLmNvZGUgfHwKLQkJICAgIHN0cmNtcCAoaW9jdGxzW2ldLm5hbWUsIGlvY3Rsc1tpLTFdLm5hbWUpKQotCQkJcHJpbnRmKCJcdHtcIiVzXCIsXHRcIiVzXCIsXHQlI2x4fSxcbiIsCi0JCQkJaW9jdGxzW2ldLmhlYWRlciwgaW9jdGxzW2ldLm5hbWUsIGlvY3Rsc1tpXS5jb2RlKTsKLQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvbGludXgvc2lnbmFsZW50LmggYi9saW51eC9zaWduYWxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEyZjc0Ni4uMDAwMDAwMAotLS0gYS9saW51eC9zaWduYWxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0FCUlQiLAkvKiA2ICovCi0JIlNJR0JVUyIsCS8qIDcgKi8KLQkiU0lHRlBFIiwJLyogOCAqLwotCSJTSUdLSUxMIiwJLyogOSAqLwotCSJTSUdVU1IxIiwJLyogMTAgKi8KLQkiU0lHU0VHViIsCS8qIDExICovCi0JIlNJR1VTUjIiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdTVEtGTFQiLAkvKiAxNiAqLwotCSJTSUdDSExEIiwJLyogMTcgKi8KLQkiU0lHQ09OVCIsCS8qIDE4ICovCi0JIlNJR1NUT1AiLAkvKiAxOSAqLwotCSJTSUdUU1RQIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdVUkciLAkvKiAyMyAqLwotCSJTSUdYQ1BVIiwJLyogMjQgKi8KLQkiU0lHWEZTWiIsCS8qIDI1ICovCi0JIlNJR1ZUQUxSTSIsCS8qIDI2ICovCi0JIlNJR1BST0YiLAkvKiAyNyAqLwotCSJTSUdXSU5DSCIsCS8qIDI4ICovCi0JIlNJR0lPIiwJLyogMjkgKi8KLQkiU0lHUFdSIiwJLyogMzAgKi8KLQkiU0lHU1lTIiwJLyogMzEgKi8KLQkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvbGludXgvc3lzY2FsbC5oIGIvbGludXgvc3lzY2FsbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGE1OTkzLi4wMDAwMDAwCi0tLSBhL2xpbnV4L3N5c2NhbGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDI5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsLmgsdiAxLjQ1IDIwMDUvMDYvMDcgMjM6MjE6Mjggcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImR1bW15LmgiCi0KLS8qIHByaW1hcnkgc3lzY2FsbHMgKi8KLQotaW50IHN5c19zZXR1cCgpLCBzeXNfZXhpdCgpLCBzeXNfZm9yaygpLCBzeXNfcmVhZCgpLCBzeXNfd3JpdGUoKTsKLWludCBzeXNfb3BlbigpLCBzeXNfY2xvc2UoKSwgc3lzX3dhaXRwaWQoKSwgc3lzX2NyZWF0KCksIHN5c19saW5rKCk7Ci1pbnQgc3lzX3VubGluaygpLCBzeXNfZXhlY3ZlKCksIHN5c19jaGRpcigpLCBzeXNfdGltZSgpLCBzeXNfbWtub2QoKTsKLWludCBzeXNfY2htb2QoKSwgc3lzX2Nob3duKCksIHN5c19icmVhaygpLCBzeXNfb2xkc3RhdCgpOwotaW50IHN5c19sc2VlaygpLCBzeXNfZ2V0cGlkKCksIHN5c19tb3VudCgpLCBzeXNfdW1vdW50KCksIHN5c191bW91bnQyKCk7Ci1pbnQgc3lzX3NldHVpZCgpLCBzeXNfZ2V0dWlkKCksIHN5c19zdGltZSgpLCBzeXNfcHRyYWNlKCk7Ci1pbnQgc3lzX2FsYXJtKCksIHN5c19vbGRmc3RhdCgpLCBzeXNfcGF1c2UoKSwgc3lzX3V0aW1lKCk7Ci1pbnQgc3lzX3N0dHkoKSwgc3lzX2d0dHkoKSwgc3lzX2FjY2VzcygpLCBzeXNfbmljZSgpLCBzeXNfZnRpbWUoKTsKLWludCBzeXNfc3luYygpLCBzeXNfa2lsbCgpLCBzeXNfcmVuYW1lKCksIHN5c19ta2RpcigpLCBzeXNfcm1kaXIoKTsKLWludCBzeXNfZHVwKCksIHN5c19waXBlKCksIHN5c190aW1lcygpLCBzeXNfcHJvZigpLCBzeXNfYnJrKCk7Ci1pbnQgc3lzX3NldGdpZCgpLCBzeXNfZ2V0Z2lkKCksIHN5c19zaWduYWwoKSwgc3lzX2dldGV1aWQoKTsKLWludCBzeXNfZ2V0ZWdpZCgpLCBzeXNfYWNjdCgpLCBzeXNfcGh5cygpLCBzeXNfbG9jaygpLCBzeXNfaW9jdGwoKTsKLWludCBzeXNfZmNudGwoKSwgc3lzX21weCgpLCBzeXNfc2V0cGdpZCgpLCBzeXNfdWxpbWl0KCk7Ci1pbnQgc3lzX29sZHVuYW1lKCksIHN5c191bWFzaygpLCBzeXNfY2hyb290KCksIHN5c191c3RhdCgpOwotaW50IHN5c19kdXAyKCksIHN5c19nZXRwcGlkKCksIHN5c19nZXRwZ3JwKCksIHN5c19zZXRzaWQoKTsKLWludCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdnZXRtYXNrKCksIHN5c19zaWdzZXRtYXNrKCk7Ci1pbnQgc3lzX3NldHJldWlkKCksIHN5c19zZXRyZWdpZCgpLCBzeXNfc2lnc3VzcGVuZCgpOwotaW50IHN5c19zaWdwZW5kaW5nKCksIHN5c19zZXRob3N0bmFtZSgpLCBzeXNfc2V0cmxpbWl0KCk7Ci1pbnQgc3lzX2dldHJsaW1pdCgpLCBzeXNfZ2V0cnVzYWdlKCksIHN5c19nZXR0aW1lb2ZkYXkoKTsKLWludCBzeXNfc2V0dGltZW9mZGF5KCksIHN5c19nZXRncm91cHMoKSwgc3lzX3NldGdyb3VwcygpOwotaW50IHN5c19zZXRncm91cHMzMigpLCBzeXNfZ2V0Z3JvdXBzMzIoKTsKLWludCBzeXNfb2xkc2VsZWN0KCksIHN5c19zeW1saW5rKCksIHN5c19vbGRsc3RhdCgpLCBzeXNfcmVhZGxpbmsoKTsKLWludCBzeXNfdXNlbGliKCksIHN5c19zd2Fwb24oKSwgc3lzX3JlYm9vdCgpLCBzeXNfcmVhZGRpcigpOwotaW50IHN5c19tbWFwKCksIHN5c19tdW5tYXAoKSwgc3lzX3RydW5jYXRlKCksIHN5c19mdHJ1bmNhdGUoKTsKLWludCBzeXNfZmNobW9kKCksIHN5c19mY2hvd24oKSwgc3lzX2dldHByaW9yaXR5KCk7Ci1pbnQgc3lzX3NldHByaW9yaXR5KCksIHN5c19wcm9maWwoKSwgc3lzX3N0YXRmcygpLCBzeXNfZnN0YXRmcygpOwotaW50IHN5c19pb3Blcm0oKSwgc3lzX3NvY2tldGNhbGwoKSwgc3lzX3N5c2xvZygpLCBzeXNfc2V0aXRpbWVyKCk7Ci1pbnQgc3lzX2dldGl0aW1lcigpLCBzeXNfc3RhdCgpLCBzeXNfbHN0YXQoKSwgc3lzX2ZzdGF0KCk7Ci1pbnQgc3lzX3VuYW1lKCksIHN5c19pb3BsKCksIHN5c192aGFuZ3VwKCksIHN5c19pZGxlKCksIHN5c192bTg2KCk7Ci1pbnQgc3lzX3dhaXQ0KCksIHN5c19zd2Fwb2ZmKCksIHN5c19pcGMoKSwgc3lzX3NpZ3JldHVybigpOwotaW50IHN5c19mc3luYygpLCBzeXNfY2xvbmUoKSwgc3lzX3NldGRvbWFpbm5hbWUoKSwgc3lzX3N5c2luZm8oKTsKLWludCBzeXNfbW9kaWZ5X2xkdCgpLCBzeXNfYWRqdGltZXgoKSwgc3lzX21wcm90ZWN0KCk7Ci1pbnQgc3lzX3NpZ3Byb2NtYXNrKCksIHN5c19jcmVhdGVfbW9kdWxlKCksIHN5c19pbml0X21vZHVsZSgpOwotaW50IHN5c19kZWxldGVfbW9kdWxlKCksIHN5c19nZXRfa2VybmVsX3N5bXMoKSwgc3lzX3F1b3RhY3RsKCk7Ci1pbnQgc3lzX2dldHBnaWQoKSwgc3lzX2ZjaGRpcigpLCBzeXNfYmRmbHVzaCgpOwotaW50IHN5c19zeXNmcygpLCBzeXNfcGVyc29uYWxpdHkoKSwgc3lzX2Fmc19zeXNjYWxsKCk7Ci1pbnQgc3lzX3NldGZzdWlkKCksIHN5c19zZXRmc2dpZCgpLCBzeXNfbGxzZWVrKCk7Ci1pbnQgc3lzX2dldGRlbnRzKCksIHN5c19mbG9jaygpLCBzeXNfbXN5bmMoKTsKLWludCBzeXNfcmVhZHYoKSwgc3lzX3dyaXRldigpLCBzeXNfc2VsZWN0KCk7Ci1pbnQgc3lzX2dldHNpZCgpLCBzeXNfZmRhdGFzeW5jKCksIHN5c19zeXNjdGwoKTsKLWludCBzeXNfbWxvY2soKSwgc3lzX211bmxvY2soKSwgc3lzX21sb2NrYWxsKCksIHN5c19tdW5sb2NrYWxsKCksIHN5c19tYWR2aXNlKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHBhcmFtKCksIHN5c19zY2hlZF9nZXRwYXJhbSgpOwotaW50IHN5c19zY2hlZF9zZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfeWllbGQoKTsKLWludCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCgpLCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigpOwotaW50IHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKSwgc3lzX25hbm9zbGVlcCgpLCBzeXNfbXJlbWFwKCk7Ci1pbnQgc3lzX3NlbmRtc2coKSwgc3lzX3JlY3Ztc2coKSwgc3lzX3NldHJlc3VpZCgpLCBzeXNfc2V0cmVzZ2lkKCk7Ci1pbnQgc3lzX2dldHJlc3VpZCgpLCBzeXNfZ2V0cmVzZ2lkKCksIHN5c19wcmVhZCgpLCBzeXNfcHdyaXRlKCksIHN5c19nZXRjd2QoKTsKLWludCBzeXNfc2lnYWx0c3RhY2soKSwgc3lzX3J0X3NpZ3Byb2NtYXNrKCksIHN5c19ydF9zaWdhY3Rpb24oKTsKLWludCBzeXNfcnRfc2lncGVuZGluZygpLCBzeXNfcnRfc2lnc3VzcGVuZCgpLCBzeXNfcnRfc2lncXVldWVpbmZvKCk7Ci1pbnQgc3lzX3J0X3NpZ3RpbWVkd2FpdCgpLCBzeXNfcHJjdGwoKSwgc3lzX3BvbGwoKSwgc3lzX3Zmb3JrKCk7Ci1pbnQgc3lzX3NlbmRmaWxlKCksIHN5c19vbGRfbW1hcCgpLCBzeXNfc3RhdDY0KCksIHN5c19sc3RhdDY0KCksIHN5c19mc3RhdDY0KCk7Ci1pbnQgc3lzX3RydW5jYXRlNjQoKSwgc3lzX2Z0cnVuY2F0ZTY0KCksIHN5c19waXZvdHJvb3QoKTsKLWludCBzeXNfZ2V0ZGVudHM2NCgpOwotaW50IHN5c19nZXRwbXNnKCksIHN5c19wdXRwbXNnKCksIHN5c19yZWFkYWhlYWQoKSwgc3lzX3NlbmRmaWxlNjQoKTsKLWludCBzeXNfc2V0eGF0dHIoKSwgc3lzX2ZzZXR4YXR0cigpLCBzeXNfZ2V0eGF0dHIoKSwgc3lzX2ZnZXR4YXR0cigpOwotaW50IHN5c19saXN0eGF0dHIoKSwgc3lzX2ZsaXN0eGF0dHIoKSwgc3lzX3JlbW92ZXhhdHRyKCksIHN5c19mcmVtb3ZleGF0dHIoKTsKLWludCBzeXNfc2NoZWRfc2V0YWZmaW5pdHkoKSwgc3lzX3NjaGVkX2dldGFmZmluaXR5KCksIHN5c19mdXRleCgpOwotaW50IHN5c19zZXRfdGhyZWFkX2FyZWEoKSwgc3lzX2dldF90aHJlYWRfYXJlYSgpLCBzeXNfcmVtYXBfZmlsZV9wYWdlcygpOwotaW50IHN5c190aW1lcl9jcmVhdGUoKSwgc3lzX3RpbWVyX2RlbGV0ZSgpLCBzeXNfdGltZXJfZ2V0b3ZlcnJ1bigpOwotaW50IHN5c190aW1lcl9nZXR0aW1lKCksIHN5c190aW1lcl9zZXR0aW1lKCksIHN5c19jbG9ja19zZXR0aW1lKCk7Ci1pbnQgc3lzX2Nsb2NrX2dldHRpbWUoKSwgc3lzX2Nsb2NrX2dldHJlcygpLCBzeXNfY2xvY2tfbmFub3NsZWVwKCk7Ci1pbnQgc3lzX3NlbXRpbWVkb3AoKSwgc3lzX3N0YXRmczY0KCksIHN5c19mc3RhdGZzNjQoKSwgc3lzX3Rna2lsbCgpOwotaW50IHN5c19tcV9vcGVuKCksIHN5c19tcV90aW1lZHNlbmQoKSwgc3lzX21xX3RpbWVkcmVjZWl2ZSgpOwotaW50IHN5c19tcV9ub3RpZnkoKSwgc3lzX21xX2dldHNldGF0dHIoKTsKLWludCBzeXNfZXBvbGxfY3JlYXRlKCksIHN5c19lcG9sbF9jdGwoKSwgc3lzX2Vwb2xsX3dhaXQoKTsKLWludCBzeXNfd2FpdGlkKCksIHN5c19mYWR2aXNlNjQoKSwgc3lzX2ZhZHZpc2U2NF82NCgpOwotaW50IHN5c19tYmluZCgpLCBzeXNfZ2V0X21lbXBvbGljeSgpLCBzeXNfc2V0X21lbXBvbGljeSgpOwotaW50IHN5c19hcmNoX3ByY3RsKCk7Ci1pbnQgc3lzX2lvX3NldHVwKCksIHN5c19pb19zdWJtaXQoKSwgc3lzX2lvX2NhbmNlbCgpLCBzeXNfaW9fZ2V0ZXZlbnRzKCksIHN5c19pb19kZXN0cm95KCk7Ci0KLS8qIHN5c19zb2NrZXRjYWxsIHN1YmNhbGxzICovCi0KLWludCBzeXNfc29ja2V0KCksIHN5c19iaW5kKCksIHN5c19jb25uZWN0KCksIHN5c19saXN0ZW4oKTsKLWludCBzeXNfYWNjZXB0KCksIHN5c19nZXRzb2NrbmFtZSgpLCBzeXNfZ2V0cGVlcm5hbWUoKSwgc3lzX3NvY2tldHBhaXIoKTsKLWludCBzeXNfc2VuZCgpLCBzeXNfcmVjdigpLCBzeXNfc2VuZHRvKCksIHN5c19yZWN2ZnJvbSgpOwotaW50IHN5c19zaHV0ZG93bigpLCBzeXNfc2V0c29ja29wdCgpLCBzeXNfZ2V0c29ja29wdCgpOwotCi0vKiBuZXcgb25lcyAqLwotaW50IHN5c19xdWVyeV9tb2R1bGUoKTsKLWludCBzeXNfcG9sbCgpOwotaW50IHN5c19taW5jb3JlKCk7Ci0KLS8qIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjYWxscyAqLwotI2lmZGVmIEFMUEhBCi1pbnQgc3lzX29zZl9zZWxlY3QoKTsKLWludCBzeXNfb3NmX2dldHRpbWVvZmRheSgpOwotaW50IHN5c19vc2Zfc2V0dGltZW9mZGF5KCk7Ci1pbnQgc3lzX29zZl9nZXRpdGltZXIoKTsKLWludCBzeXNfb3NmX3NldGl0aW1lcigpOwotaW50IHN5c19vc2ZfZ2V0cnVzYWdlKCk7Ci1pbnQgc3lzX29zZl93YWl0NCgpOwotaW50IHN5c19vc2ZfdXRpbWVzKCk7Ci0jZW5kaWYKLQotCi0jaWZuZGVmIFNZU193YWl0aWQKLSMgaWZkZWYgSTM4NgotIyAgZGVmaW5lIFNZU193YWl0aWQgMjg0Ci0jIGVsaWYgZGVmaW5lZCBBTFBIQQotIyAgZGVmaW5lIFNZU193YWl0aWQgNDM4Ci0jIGVsaWYgZGVmaW5lZCBBUk0KLSMgIGRlZmluZSBTWVNfd2FpdGlkIChOUl9TWVNDQUxMX0JBU0UgKyAyODApCi0jIGVsaWYgZGVmaW5lZCBJQTY0Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAxMjcwCi0jIGVsaWYgZGVmaW5lZCBNNjhLCi0jICBkZWZpbmUgU1lTX3dhaXRpZCAyNzcKLSMgZWxpZiBkZWZpbmVkIFBPV0VSUEMKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI3MgotIyBlbGlmIGRlZmluZWQgUzM5MCB8fCBkZWZpbmVkIFMzOTBYCi0jICBkZWZpbmUgU1lTX3dhaXRpZCAyODEKLSMgZWxpZiBkZWZpbmVkIFNINjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDMxMgotIyBlbGlmIGRlZmluZWQgU0g2NAotIyAgZGVmaW5lIFNZU193YWl0aWQgMzEyCi0jIGVsaWYgZGVmaW5lZCBTSAotIyAgZGVmaW5lIFNZU193YWl0aWQgMjg0Ci0jIGVsaWYgZGVmaW5lZCBTUEFSQyB8fCBkZWZpbmVkIFNQQVJDNjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI3OQotIyBlbGlmIGRlZmluZWQgWDg2XzY0Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAyNDcKLSMgZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKEhQUEEpCi0jIGlmZGVmCUlBNjQKLS8qCi0gKiAgSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQgaGVhZGVyCi0gKiAgZmlsZXMpIGFyZSBkaXNqb2ludCBmcm9tIElBMzIgc3lzY2FsbCBudW1iZXJzLiAgV2UgbmVlZCB0byBkZWZpbmUKLSAqICB0aGUgSUEzMiBzb2NrZXQgY2FsbCBudW1iZXIgaGVyZS4KLSAqLwotIyAgZGVmaW5lIFNZU19zb2NrZXRjYWxsCTEwMgotCi0jICB1bmRlZiBTWVNfc29ja2V0Ci0jICB1bmRlZiBTWVNfYmluZAotIyAgdW5kZWYgU1lTX2Nvbm5lY3QKLSMgIHVuZGVmIFNZU19saXN0ZW4KLSMgIHVuZGVmIFNZU19hY2NlcHQKLSMgIHVuZGVmIFNZU19nZXRzb2NrbmFtZQotIyAgdW5kZWYgU1lTX2dldHBlZXJuYW1lCi0jICB1bmRlZiBTWVNfc29ja2V0cGFpcgotIyAgdW5kZWYgU1lTX3NlbmQKLSMgIHVuZGVmIFNZU19yZWN2Ci0jICB1bmRlZiBTWVNfc2VuZHRvCi0jICB1bmRlZiBTWVNfcmVjdmZyb20KLSMgIHVuZGVmIFNZU19zaHV0ZG93bgotIyAgdW5kZWYgU1lTX3NldHNvY2tvcHQKLSMgIHVuZGVmIFNZU19nZXRzb2Nrb3B0Ci0jICB1bmRlZiBTWVNfc2VuZG1zZwotIyAgdW5kZWYgU1lTX3JlY3Ztc2cKLSMgZW5kaWYgLyogSUE2NCAqLwotIyAgZGVmaW5lIFNZU19zb2NrZXRfc3ViY2FsbAkzMDAKLSNkZWZpbmUgU1lTX3N1Yl9zb2NrZXQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfc3ViX2JpbmQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc3ViX2Nvbm5lY3QJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAzKQotI2RlZmluZSBTWVNfc3ViX2xpc3RlbgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNZU19zdWJfYWNjZXB0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNSkKLSNkZWZpbmUgU1lTX3N1Yl9nZXRzb2NrbmFtZQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNikKLSNkZWZpbmUgU1lTX3N1Yl9nZXRwZWVybmFtZQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNykKLSNkZWZpbmUgU1lTX3N1Yl9zb2NrZXRwYWlyCShTWVNfc29ja2V0X3N1YmNhbGwgKyA4KQotI2RlZmluZSBTWVNfc3ViX3NlbmQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA5KQotI2RlZmluZSBTWVNfc3ViX3JlY3YJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMCkKLSNkZWZpbmUgU1lTX3N1Yl9zZW5kdG8JCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMSkKLSNkZWZpbmUgU1lTX3N1Yl9yZWN2ZnJvbQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTIpCi0jZGVmaW5lIFNZU19zdWJfc2h1dGRvd24JKFNZU19zb2NrZXRfc3ViY2FsbCArIDEzKQotI2RlZmluZSBTWVNfc3ViX3NldHNvY2tvcHQJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE0KQotI2RlZmluZSBTWVNfc3ViX2dldHNvY2tvcHQJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE1KQotI2RlZmluZSBTWVNfc3ViX3NlbmRtc2cJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNikKLSNkZWZpbmUgU1lTX3N1Yl9yZWN2bXNnCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTcpCi0KLSNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMTgKLSNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgSFBQQSkgKi8KLQotLyogc3lzX2lwYyBzdWJjYWxscyAqLwotCi1pbnQgc3lzX3NlbWdldCgpLCBzeXNfc2VtY3RsKCksIHN5c19zZW1vcCgpOwotaW50IHN5c19tc2dzbmQoKSwgc3lzX21zZ3JjdigpLCBzeXNfbXNnZ2V0KCksIHN5c19tc2djdGwoKTsKLWludCBzeXNfc2htYXQoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKSwgc3lzX3NobWN0bCgpOwotCi0jaWYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChIUFBBKQotIyBpZmRlZglJQTY0Ci0gICAvKgotICAgICogSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQKLSAgICAqIGhlYWRlciBmaWxlcykgYXJlIGRpc2pvaW50IGZyb20gSUEzMiBzeXNjYWxsIG51bWJlcnMuICBXZSBuZWVkCi0gICAgKiB0byBkZWZpbmUgdGhlIElBMzIgc29ja2V0IGNhbGwgbnVtYmVyIGhlcmUuICBGb3J0dW5hdGVseSwgdGhpcwotICAgICogc3ltYm9sLCBgU1lTX2lwYycsIGlzIG5vdCB1c2VkIGJ5IGFueSBvZiB0aGUgSUE2NCBjb2RlIHNvCi0gICAgKiByZS1kZWZpbmluZyB0aGlzIHN5bWJvbCB3aWxsIG5vdCBjYXVzZSBhIHByb2JsZW0uCi0gICAqLwotIyAgdW5kZWYgU1lTX2lwYwotIyAgZGVmaW5lIFNZU19pcGMJCTExNwotIyAgdW5kZWYgU1lTX3NlbW9wCi0jICB1bmRlZiBTWVNfc2VtZ2V0Ci0jICB1bmRlZiBTWVNfc2VtY3RsCi0jICB1bmRlZiBTWVNfc2VtdGltZWRvcAotIyAgdW5kZWYgU1lTX21zZ3NuZAotIyAgdW5kZWYgU1lTX21zZ3JjdgotIyAgdW5kZWYgU1lTX21zZ2dldAotIyAgdW5kZWYgU1lTX21zZ2N0bAotIyAgdW5kZWYgU1lTX3NobWF0Ci0jICB1bmRlZiBTWVNfc2htZHQKLSMgIHVuZGVmIFNZU19zaG1nZXQKLSMgIHVuZGVmIFNZU19zaG1jdGwKLSMgZW5kaWYgLyogSUE2NCAqLwotI2RlZmluZSBTWVNfaXBjX3N1YmNhbGwJCSgoU1lTX3NvY2tldF9zdWJjYWxsKSsoU1lTX3NvY2tldF9uc3ViY2FsbHMpKQotI2RlZmluZSBTWVNfc3ViX3NlbW9wCQkoU1lTX2lwY19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX3N1Yl9zZW1nZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc3ViX3NlbWN0bAkJKFNZU19pcGNfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNZU19zdWJfc2VtdGltZWRvcAkoU1lTX2lwY19zdWJjYWxsICsgNCkKLSNkZWZpbmUgU1lTX3N1Yl9tc2dzbmQJCShTWVNfaXBjX3N1YmNhbGwgKyAxMSkKLSNkZWZpbmUgU1lTX3N1Yl9tc2dyY3YJCShTWVNfaXBjX3N1YmNhbGwgKyAxMikKLSNkZWZpbmUgU1lTX3N1Yl9tc2dnZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAxMykKLSNkZWZpbmUgU1lTX3N1Yl9tc2djdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAxNCkKLSNkZWZpbmUgU1lTX3N1Yl9zaG1hdAkJKFNZU19pcGNfc3ViY2FsbCArIDIxKQotI2RlZmluZSBTWVNfc3ViX3NobWR0CQkoU1lTX2lwY19zdWJjYWxsICsgMjIpCi0jZGVmaW5lIFNZU19zdWJfc2htZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMjMpCi0jZGVmaW5lIFNZU19zdWJfc2htY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMjQpCi0KLSNkZWZpbmUgU1lTX2lwY19uc3ViY2FsbHMJMjUKLSNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgU1BBUkMgfHwgSFBQQSkgKi8KLQotI2lmIGRlZmluZWQgU1lTX2lwY19zdWJjYWxsICYmICFkZWZpbmVkIFNZU19pcGMKLSMgZGVmaW5lIFNZU19pcGMgU1lTX2lwY19zdWJjYWxsCi0jZW5kaWYKLSNpZiBkZWZpbmVkIFNZU19zb2NrZXRfc3ViY2FsbCAmJiAhZGVmaW5lZCBTWVNfc29ja2V0Y2FsbAotIyBkZWZpbmUgU1lTX3NvY2tldGNhbGwgU1lTX3NvY2tldF9zdWJjYWxsCi0jZW5kaWYKLQotI2lmZGVmIElBNjQKLSAgLyoKLSAgICogSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQgaGVhZGVyCi0gICAqIGZpbGVzKSBhcmUgZGlzam9pbnQgZnJvbSBJQTMyIHN5c2NhbGwgbnVtYmVycy4gIFdlIG5lZWQgdG8gZGVmaW5lCi0gICAqIHNvbWUgSUEzMiBzcGVjaWZpYyBzeXNjYWxscyBoZXJlLgotICAgKi8KLSMgZGVmaW5lIFNZU19mb3JrCTIKLSMgZGVmaW5lIFNZU192Zm9yawkxOTAKLSMgZGVmaW5lIFNZUzMyX2V4aXQJMQotIyBkZWZpbmUgU1lTX3dhaXRwaWQJNwotIyBkZWZpbmUgU1lTMzJfd2FpdDQJMTE0Ci0jIGRlZmluZSBTWVMzMl9leGVjdmUJMTEKLSNlbmRpZiAvKiBJQTY0ICovCi0KLSNpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKElBNjQpCi1pbnQgc3lzX2dldHBhZ2VzaXplKCk7Ci0jZW5kaWYKLQotI2lmZGVmIEFMUEhBCi1pbnQgb3NmX3N0YXRmcygpLCBvc2ZfZnN0YXRmcygpOwotI2VuZGlmCi0KLSNpZmRlZiBJQTY0Ci1pbnQgc3lzX2dldHBtc2coKSwgc3lzX3B1dHBtc2coKTsJLyogU1RSRUFNUyBzdHVmZiAqLwotI2VuZGlmCi0KLSNpZmRlZiBNSVBTCi1pbnQgc3lzX3N5c21pcHMoKTsKLSNlbmRpZgotCi1pbnQgc3lzX3NldHBncnAoKSwgc3lzX2dldGhvc3RuYW1lKCksIHN5c19nZXRkdGFibGVzaXplKCksIHN5c191dGltZXMoKTsKLWludCBzeXNfY2FwZ2V0KCksIHN5c19jYXBzZXQoKTsKLQotI2lmZGVmIE02OEsKLWludCBzeXNfY2FjaGVmbHVzaCgpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC9zeXNjYWxsZW50LmggYi9saW51eC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1ZDViMjQuLjAwMDAwMDAKLS0tIGEvbGludXgvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMzQgMjAwNS8wNi8wNyAyMzoyMToyNCByb2xhbmQgRXhwICQKLSAqLwotCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiLCBTWVNfZXhpdCB9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIsIFNZU19mb3JrIH0sIC8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiLCBTWVNfcmVhZCB9LCAvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiLCBTWVNfd3JpdGUgfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIsIFNZU193YWl0NCB9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiLCBTWVNfZXhlY3ZlIH0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLSNpZmRlZiBNNjhLCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTYgKi8KLSNlbHNlCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTYgKi8KLSNlbmRpZgotCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogMTcgKi8KLQl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCi0JeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KLQl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLwotCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KLQl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCi0JeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KLQl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZF9nZXRybGltaXQiCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KLQl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCi0JeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KLQl7IDYsCTAsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIJfSwgLyogOTAgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA5MyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCi0JeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDEwMCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDEwMSAqLwotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCJ9LCAvKiAxMDIgKi8KLSNlbHNlCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIiwgU1lTX3NvY2tldGNhbGwgfSwgLyogMTAyICovCi0jZW5kaWYKLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMDggKi8KLQl7IDEsCTAsCXN5c19vbGR1bmFtZSwJCSJvbGR1bmFtZSIJfSwgLyogMTA5ICovCi0JeyAxLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgLyogMTEwICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTEgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQl9LCAvKiAxMTIgKi8KLQl7IDEsCTAsCXN5c192bTg2b2xkLAkJInZtODZvbGQiCX0sIC8qIDExMyAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIsIFNZU193YWl0NCB9LCAvKiAxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0JeyA2LAkwLAlzeXNfaXBjLAkJImlwYyJ9LCAvKiAxMTcgKi8KLSNlbHNlCi0JeyA2LAkwLAlzeXNfaXBjLAkJImlwYyIsIFNZU19pcGMgfSwgLyogMTE3ICovCi0jZW5kaWYKLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDExOCAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgl9LCAvKiAxMTkgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiLCBTWVNfY2xvbmUgfSwgLyogMTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCi0jaWZkZWYgTTY4SwotCXsgNCwJMCwJc3lzX2NhY2hlZmx1c2gsCQkiY2FjaGVmbHVzaCIJfSwgLyogMTIzICovCi0jZWxzZQotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCi0jZW5kaWYKLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDEyNSAqLwotCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogMTI3ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgLyogMTI4ICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDEyOSAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogMTMxICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMzIgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMzMgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCX0sIC8qIDEzNCAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIiwgU1lTX3N5c2ZzIH0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiLCBTWVNfcmVhZHYgfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIsIFNZU193cml0ZXYgfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KLSNpZmRlZiBNNjhLCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIJfSwgLyogMTY2ICovCi0jZWxzZQotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KLSNlbmRpZgotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTY3ICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KLQotCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZDY0IiwgU1lTX3JlYWQgfSwgLyogMTgwICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGU2NCIsIFNZU193cml0ZSB9LCAvKiAxODEgKi8KLSNpZmRlZiBNNjhLCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTgyICovCi0jZWxzZQotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLwotI2VuZGlmCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLwotCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJfSwgLyogMTg4ICovCi0JeyA1LAkwLAlzeXNfcHV0cG1zZywJCSJwdXRwbXNnIgl9LCAvKiAxODkgKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiLCBTWVNfdmZvcmsgfSwgLyogMTkwICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLwotCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLwotCXsgMywJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLwotCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZDMyIgl9LCAvKiAyMTEgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24zMiIJfSwgLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkMzIiCX0sIC8qIDIxNiAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJCSJtaW5jb3JlIgl9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgNCwJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCi0vKlRPRE8qL3sgNSwJMCwJcHJpbnRhcmdzLAkJInNlY3VyaXR5Igl9LCAvKiAyMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDIyNCAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyNSAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI2ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMjI4ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAyMjkgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAyMzAgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMzEgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMyICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzMgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzNCAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNiAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMjM3ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMzggKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGU2NCwJCSJzZW5kZmlsZTY0Igl9LCAvKiAyMzkgKi8KLQl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDI0MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjQxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNDIgKi8KLQl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX2dldF90aHJlYWRfYXJlYSwJImdldF90aHJlYWRfYXJlYSIgfSwgLyogMjQ0ICovCi0JeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0NSAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ2ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNDcgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDggKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyNDkgKi8KLQl7IDUsCVRGLAlzeXNfZmFkdmlzZTY0LAkJImZhZHZpc2U2NCIJfSwgLyogMjUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIsIF9fTlJfZXhpdF9ncm91cCB9LCAvKiAyNTIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiAyNTMgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI1NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDI1NSAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMjU2ICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjU3ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDI1OCAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU5ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI2MCAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNjEgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNjIgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI2MyAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNjQgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjY1ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjYgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjY3ICovCi0JeyAzLAlURiwJc3lzX3N0YXRmczY0LAkJInN0YXRmczY0Igl9LCAvKiAyNjggKi8KLQl7IDMsCVRGLAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJfSwgLyogMjY5ICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDI3MCAqLwotCXsgMiwJVEYsCXN5c191dGltZXMsCQkidXRpbWVzIgl9LCAvKiAyNzEgKi8KLQl7IDYsCVRGLAlzeXNfZmFkdmlzZTY0XzY0LAkiZmFkdmlzZTY0XzY0Igl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgl9LCAvKiAyNzMgKi8KLQl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJc3lzX2dldF9tZW1wb2xpY3ksCSJnZXRfbWVtcG9saWN5Igl9LCAvKiAyNzUgKi8KLQl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMjc2ICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAyNzcgKi8KLQl7IDEsCTAsCXN5c19tcV91bmxpbmssCQkibXFfdW5saW5rIgl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMjgwICovCi0JeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJfSwgLyogMjgxICovCi0JeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAyODMgKi8KLQl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIsIFNZU193YWl0aWQgfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCi0KLSNpZiBTWVNfc29ja2V0X3N1YmNhbGwgIT0gMzAwCi0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMzAwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDMwMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAzMDIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAzMDMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMzA0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDMwNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAzMDYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMzA3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMzA4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIsIFNZU19zdWJfc2VuZCB9LCAvKiAzMDkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IiwgU1lTX3N1Yl9yZWN2IH0sIC8qIDMxMCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIiwgU1lTX3N1Yl9zZW5kdG8gfSwgLyogMzExICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIiwgU1lTX3N1Yl9yZWN2ZnJvbSB9LCAvKiAzMTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDMxMyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDMxNCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDMxNSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDMxNiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDMxNyAqLwotCi0jaWYgU1lTX2lwY19zdWJjYWxsICE9IDMxOAotICNlcnJvciBmaXggbWUKLSNlbmRpZgotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMTggKi8KLQl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzMTkgKi8KLQl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMzIwICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDMyMSAqLwotCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDMyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyOCAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjkgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzMwICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDMzMSAqLwotCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAzMzIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzMzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzggKi8KLQl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzkgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzNDAgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMzQxICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDM0MiAqLwpkaWZmIC0tZ2l0IGEvbWVtLmMgYi9tZW0uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdmYzg1Ny4uMDAwMDAwMAotLS0gYS9tZW0uYworKysgL2Rldi9udWxsCkBAIC0xLDc3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQ29weXJpZ2h0IChjKSAyMDAwIFBvY2tldFBlbmd1aW5zIEluYy4gIExpbnV4IGZvciBIaXRhY2hpIFN1cGVySAotICogICAgICAgICAgICAgICAgICAgIHBvcnQgYnkgR3JlZyBCYW5rcyA8Z2JhbmtzQHBvY2tldHBlbmd1aW5zLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IG1lbS5jLHYgMS4zNiAyMDA1LzA2LzAxIDE5OjIyOjA3IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpZmRlZiBMSU5VWAotI2luY2x1ZGUgPGFzbS9tbWFuLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotCi0jaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChJMzg2KQotI2luY2x1ZGUgPGFzbS9sZHQuaD4KLSMgaWZkZWYgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDCi0jICBkZWZpbmUgbW9kaWZ5X2xkdF9sZHRfcyB1c2VyX2Rlc2MKLSMgZW5kaWYKLSNlbmRpZgotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoU0g2NCkKLSNpbmNsdWRlIDxhc20vcGFnZS5oPgkgICAgLyogZm9yIFBBR0VfU0hJRlQgKi8KLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKLS8qCi0gKiBVZ2x5IGhhY2tzIGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBhIGxvbmcgbG9uZyBvZmZfdAotICovCi0jZGVmaW5lIHN5c19tbWFwNjQJc3lzX21tYXAKLSNlbmRpZgotCi1pbnQKLXN5c19icmsodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0jaWZkZWYgTElOVVgKLQlyZXR1cm4gUlZBTF9IRVg7Ci0jZWxzZQotCXJldHVybiAwOwotI2VuZGlmCi19Ci0KLWludAotc3lzX3NicmsodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOwotCX0KLQlyZXR1cm4gUlZBTF9IRVg7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtbWFwX3Byb3RbXSA9IHsKLQl7IFBST1RfTk9ORSwJIlBST1RfTk9ORSIsCX0sCi0JeyBQUk9UX1JFQUQsCSJQUk9UX1JFQUQiCX0sCi0JeyBQUk9UX1dSSVRFLAkiUFJPVF9XUklURSIJfSwKLQl7IFBST1RfRVhFQywJIlBST1RfRVhFQyIJfSwKLSNpZmRlZiBQUk9UX1NFTQotCXsgUFJPVF9TRU0sCSJQUk9UX1NFTSIJfSwKLSNlbmRpZgotI2lmZGVmIFBST1RfR1JPV1NET1dOCi0JeyBQUk9UX0dST1dTRE9XTiwiUFJPVF9HUk9XU0RPV04ifSwKLSNlbmRpZgotI2lmZGVmIFBST1RfR1JPV1NVUAotCXsgUFJPVF9HUk9XU1VQLCAiUFJPVF9HUk9XU1VQIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtbWFwX2ZsYWdzW10gPSB7Ci0JeyBNQVBfU0hBUkVELAkiTUFQX1NIQVJFRCIJfSwKLQl7IE1BUF9QUklWQVRFLAkiTUFQX1BSSVZBVEUiCX0sCi0JeyBNQVBfRklYRUQsCSJNQVBfRklYRUQiCX0sCi0jaWZkZWYgTUFQX0FOT05ZTU9VUwotCXsgTUFQX0FOT05ZTU9VUywiTUFQX0FOT05ZTU9VUyIJfSwKLSNlbmRpZgotI2lmZGVmIE1BUF9SRU5BTUUKLQl7IE1BUF9SRU5BTUUsCSJNQVBfUkVOQU1FIgl9LAotI2VuZGlmCi0jaWZkZWYgTUFQX05PUkVTRVJWRQotCXsgTUFQX05PUkVTRVJWRSwiTUFQX05PUkVTRVJWRSIJfSwKLSNlbmRpZgotI2lmZGVmIE1BUF9QT1BVTEFURQotCXsgTUFQX1BPUFVMQVRFLCAiTUFQX1BPUFVMQVRFIiB9LAotI2VuZGlmCi0jaWZkZWYgTUFQX05PTkJMT0NLCi0JeyBNQVBfTk9OQkxPQ0ssICJNQVBfTk9OQkxPQ0siIH0sCi0jZW5kaWYKLQkvKgotCSAqIFhYWCAtIHRoaXMgd2FzIGludHJvZHVjZWQgaW4gU3VuT1MgNC54IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4KLQkgKiB0aGUgb2xkIHByZS00LnggIm1tYXAoKSIsIHdoaWNoOgotCSAqCi0JICoJb25seSBsZXQgeW91IG1hcCBkZXZpY2VzIHdpdGggYW4gIm1tYXAiIHJvdXRpbmUgKGUuZy4sCi0JICoJZnJhbWUgYnVmZmVycykgaW47Ci0JICoKLQkgKglyZXF1aXJlZCB5b3UgdG8gc3BlY2lmeSB0aGUgbWFwcGluZyBhZGRyZXNzOwotCSAqCi0JICoJcmV0dXJuZWQgMCBvbiBzdWNjZXNzIGFuZCAtMSBvbiBmYWlsdXJlOwotCSAqCi0JICogbWVtb3J5IGFuZCB3aGljaCwgYW5kIHRoZSA0LnggIm1tYXAoKSIgd2hpY2g6Ci0JICoKLQkgKgljYW4gbWFwIHBsYWluIGZpbGVzOwotCSAqCi0JICoJY2FuIGJlIGFza2VkIHRvIHBpY2sgd2hlcmUgdG8gbWFwIHRoZSBmaWxlOwotCSAqCi0JICoJcmV0dXJucyB0aGUgYWRkcmVzcyB3aGVyZSBpdCBtYXBwZWQgdGhlIGZpbGUgb24gc3VjY2VzcwotCSAqCWFuZCAtMSBvbiBmYWlsdXJlLgotCSAqCi0JICogSXQncyBub3QgYWN0dWFsbHkgdXNlZCBpbiBzb3VyY2UgY29kZSB0aGF0IGNhbGxzICJtbWFwKCkiOyB0aGUKLQkgKiAibW1hcCgpIiByb3V0aW5lIGFkZHMgaXQgZm9yIHlvdS4KLQkgKgotCSAqIEl0J2QgYmUgbmljZSB0byBjb21lIHVwIHdpdGggc29tZSB3YXkgb2YgZWxpbWluYXRpbmcgaXQgZnJvbQotCSAqIHRoZSBmbGFncywgZS5nLiByZXBvcnRpbmcgY2FsbHMgKndpdGhvdXQqIGl0IGFzICJvbGRfbW1hcCgpIgotCSAqIGFuZCBjYWxscyB3aXRoIGl0IGFzICJtbWFwKCkiLgotCSAqLwotI2lmZGVmIF9NQVBfTkVXCi0JeyBfTUFQX05FVywJIl9NQVBfTkVXIgl9LAotI2VuZGlmCi0jaWZkZWYgTUFQX0dST1dTRE9XTgotCXsgTUFQX0dST1dTRE9XTiwiTUFQX0dST1dTRE9XTiIJfSwKLSNlbmRpZgotI2lmZGVmIE1BUF9ERU5ZV1JJVEUKLQl7IE1BUF9ERU5ZV1JJVEUsIk1BUF9ERU5ZV1JJVEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBNQVBfRVhFQ1VUQUJMRQotCXsgTUFQX0VYRUNVVEFCTEUsIk1BUF9FWEVDVVRBQkxFIn0sCi0jZW5kaWYKLSNpZmRlZiBNQVBfSU5IRVJJVAotCXsgTUFQX0lOSEVSSVQsIk1BUF9JTkhFUklUIgl9LAotI2VuZGlmCi0jaWZkZWYgTUFQX0ZJTEUKLQl7IE1BUF9GSUxFLCJNQVBfRklMRSJ9LAotI2VuZGlmCi0jaWZkZWYgTUFQX0xPQ0tFRAotCXsgTUFQX0xPQ0tFRCwiTUFQX0xPQ0tFRCJ9LAotI2VuZGlmCi0JLyogRnJlZUJTRCBvbmVzICovCi0jaWZkZWYgTUFQX0FOT04KLQl7IE1BUF9BTk9OLAkJIk1BUF9BTk9OIgl9LAotI2VuZGlmCi0jaWZkZWYgTUFQX0hBU1NFTUFQSE9SRQotCXsgTUFQX0hBU1NFTUFQSE9SRSwJIk1BUF9IQVNTRU1BUEhPUkUiCX0sCi0jZW5kaWYKLSNpZmRlZiBNQVBfU1RBQ0sKLQl7IE1BUF9TVEFDSywJCSJNQVBfU1RBQ0siCX0sCi0jZW5kaWYKLSNpZmRlZiBNQVBfTk9TWU5DCi0JeyBNQVBfTk9TWU5DLAkJIk1BUF9OT1NZTkMiCX0sCi0jZW5kaWYKLSNpZmRlZiBNQVBfTk9DT1JFCi0JeyBNQVBfTk9DT1JFLAkJIk1BUF9OT0NPUkUiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotI2lmICFIQVZFX0xPTkdfTE9OR19PRkZfVAotc3RhdGljCi1pbnQKLXByaW50X21tYXAodGNwLHVfYXJnKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyAqdV9hcmc7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJLyogYWRkciAqLwotCQlpZiAoIXVfYXJnWzBdKQotCQkJdHByaW50ZigiTlVMTCwgIik7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiUjbHgsICIsIHVfYXJnWzBdKTsKLQkJLyogbGVuICovCi0JCXRwcmludGYoIiVsdSwgIiwgdV9hcmdbMV0pOwotCQkvKiBwcm90ICovCi0JCXByaW50ZmxhZ3MobW1hcF9wcm90LCB1X2FyZ1syXSwgIlBST1RfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCS8qIGZsYWdzICovCi0jaWZkZWYgTUFQX1RZUEUKLQkJcHJpbnR4dmFsKG1tYXBfZmxhZ3MsIHVfYXJnWzNdICYgTUFQX1RZUEUsICJNQVBfPz8/Iik7Ci0JCWFkZGZsYWdzKG1tYXBfZmxhZ3MsIHVfYXJnWzNdICYgfk1BUF9UWVBFKTsKLSNlbHNlCi0JCXByaW50ZmxhZ3MobW1hcF9mbGFncywgdV9hcmdbM10sICJNQVBfPz8/Iik7Ci0jZW5kaWYKLQkJLyogZmQgKGlzIGFsd2F5cyBpbnQsIG5vdCBsb25nKSAqLwotCQl0cHJpbnRmKCIsICVkLCAiLCAoaW50KXVfYXJnWzRdKTsKLQkJLyogb2Zmc2V0ICovCi0JCXRwcmludGYoIiUjbHgiLCB1X2FyZ1s1XSk7Ci0JfQotCXJldHVybiBSVkFMX0hFWDsKLX0KLQotI2lmZGVmIExJTlVYCi1pbnQgc3lzX29sZF9tbWFwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBsb25nIHVfYXJnWzZdOwotCi0jaWYJZGVmaW5lZChJQTY0KQotICAgIGludCBpLCB2OwotICAgIC8qCi0gICAgICogIElBNjQgcHJvY2Vzc2VzIG5ldmVyIGNhbGwgdGhpcyByb3V0aW5lLCB0aGV5IG9ubHkgdXNlIHRoZQotICAgICAqICBuZXcgYHN5c19tbWFwJyBpbnRlcmZhY2UuICBUaGlzIGNvZGUgY29udmVydHMgdGhlIGludGVnZXIKLSAgICAgKiAgYXJndW1lbnRzIHRoYXQgdGhlIElBMzIgcHJvY2VzcyBwdXNoZWQgb250byB0aGUgc3RhY2sgaW50bwotICAgICAqICBsb25ncy4KLSAgICAgKgotICAgICAqICBOb3RlIHRoYXQgYWRkcmVzc2VzIHdpdGggYml0IDMxIHNldCB3aWxsIGJlIHNpZ24gZXh0ZW5kZWQuCi0gICAgICogIEZvcnR1bmF0ZWx5LCB0aG9zZSBhZGRyZXNzZXMgYXJlIG5vdCBjdXJyZW50bHkgYmVpbmcgZ2VuZXJhdGVkCi0gICAgICogIGZvciBJQTMyIHByb2Nlc3NlcyBzbyBpdCdzIG5vdCBhIHByb2JsZW0uCi0gICAgICovCi0gICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykKLQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdICsgKGkgKiBzaXplb2YoaW50KSksICZ2KSA9PSAtMSkKLQkJcmV0dXJuIDA7Ci0JZWxzZQotCQl1X2FyZ1tpXSA9IHY7Ci0jZWxpZiBkZWZpbmVkKFNIKSB8fCBkZWZpbmVkKFNINjQpCi0gICAgLyogU0ggaGFzIGFsd2F5cyBwYXNzZWQgdGhlIGFyZ3MgaW4gcmVnaXN0ZXJzICovCi0gICAgaW50IGk7Ci0gICAgZm9yIChpPTA7IGk8NjsgaSsrKQotICAgICAgICB1X2FyZ1tpXSA9IHRjcC0+dV9hcmdbaV07Ci0jZWxzZQotICAgIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzBdLCBzaXplb2YgdV9hcmcsIChjaGFyICopIHVfYXJnKSA9PSAtMSkKLQkgICAgcmV0dXJuIDA7Ci0jZW5kaWYJLy8gZGVmaW5lZChJQTY0KQotICAgIHJldHVybiBwcmludF9tbWFwKHRjcCwgdV9hcmcpOwotCi19Ci0jZW5kaWYKLQotaW50Ci1zeXNfbW1hcCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0jaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChTSDY0KQotICAgIC8qCi0gICAgICogT2xkIG1tYXAgZGlmZmVycyBmcm9tIG5ldyBtbWFwIGluIHNwZWNpZnlpbmcgdGhlCi0gICAgICogb2Zmc2V0IGluIHVuaXRzIG9mIGJ5dGVzIHJhdGhlciB0aGFuIHBhZ2VzLiAgV2UKLSAgICAgKiBwcmV0ZW5kIGl0J3MgaW4gYnl0ZSB1bml0cyBzbyB0aGUgdXNlciBvbmx5IGV2ZXIKLSAgICAgKiBzZWVzIGJ5dGVzIGluIHRoZSBwcmludG91dC4KLSAgICAgKi8KLSAgICB0Y3AtPnVfYXJnWzVdIDw8PSBQQUdFX1NISUZUOwotI2VuZGlmCi0gICAgcmV0dXJuIHByaW50X21tYXAodGNwLCB0Y3AtPnVfYXJnKTsKLX0KLSNlbmRpZiAvKiAhSEFWRV9MT05HX0xPTkdfT0ZGX1QgKi8KLQotI2lmIF9MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1QKLWludAotc3lzX21tYXA2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0jaWZkZWYgbGludXgKLSNpZmRlZiBBTFBIQQotCWxvbmcgKnVfYXJnID0gdGNwLT51X2FyZzsKLSNlbHNlIC8qICFBTFBIQSAqLwotCWxvbmcgdV9hcmdbN107Ci0jZW5kaWYgLyogIUFMUEhBICovCi0jZWxzZSAvKiAhbGludXggKi8KLQlsb25nICp1X2FyZyA9IHRjcC0+dV9hcmc7Ci0jZW5kaWYgLyogIWxpbnV4ICovCi0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotI2lmZGVmIGxpbnV4Ci0jaWZuZGVmIEFMUEhBCi0JCWlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzBdLCBzaXplb2YgdV9hcmcsCi0JCQkJKGNoYXIgKikgdV9hcmcpID09IC0xKQotCQkJcmV0dXJuIDA7Ci0jZW5kaWYgLyogQUxQSEEgKi8KLSNlbmRpZiAvKiBsaW51eCAqLwotCQlBTElHTjY0ICh0Y3AsIDUpOwkvKiBGcmVlQlNEIHdpZXJkaWVzICovCi0KLQkJLyogYWRkciAqLwotCQl0cHJpbnRmKCIlI2x4LCAiLCB1X2FyZ1swXSk7Ci0JCS8qIGxlbiAqLwotCQl0cHJpbnRmKCIlbHUsICIsIHVfYXJnWzFdKTsKLQkJLyogcHJvdCAqLwotCQlwcmludGZsYWdzKG1tYXBfcHJvdCwgdV9hcmdbMl0sICJQUk9UXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQkvKiBmbGFncyAqLwotI2lmZGVmIE1BUF9UWVBFCi0JCXByaW50eHZhbChtbWFwX2ZsYWdzLCB1X2FyZ1szXSAmIE1BUF9UWVBFLCAiTUFQXz8/PyIpOwotCQlhZGRmbGFncyhtbWFwX2ZsYWdzLCB1X2FyZ1szXSAmIH5NQVBfVFlQRSk7Ci0jZWxzZQotCQlwcmludGZsYWdzKG1tYXBfZmxhZ3MsIHVfYXJnWzNdLCAiTUFQXz8/PyIpOwotI2VuZGlmCi0JCS8qIGZkICovCi0JCXRwcmludGYoIiwgJWxkLCAiLCB1X2FyZ1s0XSk7Ci0JCS8qIG9mZnNldCAqLwotCQl0cHJpbnRmKCIlI2xseCIsIExPTkdfTE9ORyh1X2FyZ1s1XSwgdV9hcmdbNl0pKTsKLQl9Ci0JcmV0dXJuIFJWQUxfSEVYOwotfQotI2VuZGlmCi0KLQotaW50Ci1zeXNfbXVubWFwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUiLAotCQkJdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19tcHJvdGVjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCwgJWx1LCAiLAotCQkJdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50ZmxhZ3MobW1hcF9wcm90LCB0Y3AtPnVfYXJnWzJdLCAiUFJPVF8/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBMSU5VWAotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXJlbWFwX2ZsYWdzW10gPSB7Ci0JeyBNUkVNQVBfTUFZTU9WRSwJIk1SRU1BUF9NQVlNT1ZFIgl9LAotCXsgMCwJCQlOVUxMCQkJfQotfTsKLQotaW50Ci1zeXNfbXJlbWFwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSwKLQkJCXRjcC0+dV9hcmdbMl0pOwotCQlwcmludGZsYWdzKG1yZW1hcF9mbGFncywgdGNwLT51X2FyZ1szXSwgIk1SRU1BUF8/Pz8iKTsKLQl9Ci0JcmV0dXJuIFJWQUxfSEVYOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWFkdmlzZV9mbGFnc1tdID0gewotI2lmZGVmIE1BRFZfTk9STUFMCi0JeyBNQURWX05PUk1BTCwJCSJNQURWX05PUk1BTCIgfSwKLSNlbmRpZgotI2lmZGVmIE1BRFpWX1JBTkRPTQotCXsgTUFEVl9SQU5ET00sCQkiTUFEVl9SQU5ET00iIH0sCi0jZW5kaWYKLSNpZmRlZiBNQURWX1NFUVVFTlRJQUwKLQl7IE1BRFZfU0VRVUVOVElBTCwJIk1BRFZfU0VRVUVOVElBTCIgfSwKLSNlbmRpZgotI2lmZGVmIE1BRFZfV0lMTE5FRUQKLQl7IE1BRFZfV0lMTE5FRUQsCSJNQURWX1dJTExORUVEIiB9LAotI2VuZGlmCi0jaWZkZWYgTUFEVl9ET05UTkVECi0JeyBNQURWX0RPTlRORUVELAkiTUFEVl9ET05UTkVFRCIgfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMIH0sCi19OwotCi0KLWludAotc3lzX21hZHZpc2UodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbHgsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50ZmxhZ3MobWFkdmlzZV9mbGFncywgdGNwLT51X2FyZ1syXSwgIk1BRFZfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtbG9ja2FsbF9mbGFnc1tdID0gewotI2lmZGVmIE1DTF9DVVJSRU5UCi0JeyBNQ0xfQ1VSUkVOVCwJIk1DTF9DVVJSRU5UIiB9LAotI2VuZGlmCi0jaWZkZWYgTUNMX0ZVVFVSRQotCXsgTUNMX0ZVVFVSRSwJIk1DTF9GVVRVUkUiIH0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMfQotfTsKLQotaW50Ci1zeXNfbWxvY2thbGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50ZmxhZ3MobWxvY2thbGxfZmxhZ3MsIHRjcC0+dV9hcmdbMF0sICJNQ0xfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgTVNfQVNZTkMKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1jdGxfc3luY1tdID0gewotI2lmZGVmIE1TX1NZTkMKLQl7IE1TX1NZTkMsCSJNU19TWU5DIgl9LAotI2VuZGlmCi0JeyBNU19BU1lOQywJIk1TX0FTWU5DIgl9LAotCXsgTVNfSU5WQUxJREFURSwiTVNfSU5WQUxJREFURSIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfbXN5bmModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCS8qIGFkZHIgKi8KLQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQkvKiBsZW4gKi8KLQkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMV0pOwotCQkvKiBmbGFncyAqLwotCQlwcmludGZsYWdzKG1jdGxfc3luYywgdGNwLT51X2FyZ1syXSwgIk1TXz8/PyIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIE1TX0FTWU5DICovCi0KLSNpZmRlZiBNQ19TWU5DCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtY3RsX2Z1bmNzW10gPSB7Ci0JeyBNQ19MT0NLLAkiTUNfTE9DSyIJfSwKLQl7IE1DX0xPQ0tBUywJIk1DX0xPQ0tBUyIJfSwKLQl7IE1DX1NZTkMsCSJNQ19TWU5DIgl9LAotCXsgTUNfVU5MT0NLLAkiTUNfVU5MT0NLIgl9LAotCXsgTUNfVU5MT0NLQVMsCSJNQ19VTkxPQ0tBUyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1jdGxfbG9ja2FzW10gPSB7Ci0JeyBNQ0xfQ1VSUkVOVCwJIk1DTF9DVVJSRU5UIgl9LAotCXsgTUNMX0ZVVFVSRSwJIk1DTF9GVVRVUkUiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX21jdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCBhcmcsIGZ1bmN0aW9uOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJLyogYWRkciAqLwotCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCS8qIGxlbiAqLwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCS8qIGZ1bmN0aW9uICovCi0JCWZ1bmN0aW9uID0gdGNwLT51X2FyZ1syXTsKLQkJcHJpbnRmbGFncyhtY3RsX2Z1bmNzLCBmdW5jdGlvbiwgIk1DXz8/PyIpOwotCQkvKiBhcmcgKi8KLQkJYXJnID0gdGNwLT51X2FyZ1szXTsKLQkJdHByaW50ZigiLCAiKTsKLQkJc3dpdGNoIChmdW5jdGlvbikgewotCQljYXNlIE1DX1NZTkM6Ci0JCQlwcmludGZsYWdzKG1jdGxfc3luYywgYXJnLCAiTVNfPz8/Iik7Ci0JCQlicmVhazsKLQkJY2FzZSBNQ19MT0NLQVM6Ci0JCQlwcmludGZsYWdzKG1jdGxfbG9ja2FzLCBhcmcsICJNQ0xfPz8/Iik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXRwcmludGYoIiUjeCIsIGFyZyk7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIE1DX1NZTkMgKi8KLQotaW50Ci1zeXNfbWluY29yZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JdW5zaWduZWQgbG9uZyBpLCBsZW47Ci0JY2hhciAqdmVjID0gTlVMTDsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbHgsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfSBlbHNlIHsKLQkJbGVuID0gdGNwLT51X2FyZ1sxXTsKLQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdGNwLT51X2FyZ1syXSA9PSAwIHx8Ci0JCQkodmVjID0gbWFsbG9jKGxlbikpID09IE5VTEwgfHwKLQkJCXVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMl0sIGxlbiwgdmVjKSA8IDApCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiWyIpOwotCQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0JCQkJaWYgKGFiYnJldih0Y3ApICYmIGkgPj0gbWF4X3N0cmxlbikgewotCQkJCQl0cHJpbnRmKCIuLi4iKTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJCXRwcmludGYoKHZlY1tpXSAmIDEpID8gIjEiIDogIjAiKTsKLQkJCX0KLQkJCXRwcmludGYoIl0iKTsKLQkJfQotCQlpZiAodmVjKQotCQkJZnJlZSh2ZWMpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0cGFnZXNpemUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpCi0JCXJldHVybiBSVkFMX0hFWDsKLQlyZXR1cm4gMDsKLX0KLQotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoX19pMzg2X18pCi12b2lkCi1wcmludF9sZHRfZW50cnkgKGxkdF9lbnRyeSkKLXN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zICpsZHRfZW50cnk7Ci17Ci0JdHByaW50ZigiYmFzZV9hZGRyOiUjMDhseCwgIgotCQkibGltaXQ6JWQsICIKLQkJInNlZ18zMmJpdDolZCwgIgotCQkiY29udGVudHM6JWQsICIKLQkJInJlYWRfZXhlY19vbmx5OiVkLCAiCi0JCSJsaW1pdF9pbl9wYWdlczolZCwgIgotCQkic2VnX25vdF9wcmVzZW50OiVkLCAiCi0JCSJ1c2VhYmxlOiVkfSIsCi0JCWxkdF9lbnRyeS0+YmFzZV9hZGRyLAotCQlsZHRfZW50cnktPmxpbWl0LAotCQlsZHRfZW50cnktPnNlZ18zMmJpdCwKLQkJbGR0X2VudHJ5LT5jb250ZW50cywKLQkJbGR0X2VudHJ5LT5yZWFkX2V4ZWNfb25seSwKLQkJbGR0X2VudHJ5LT5saW1pdF9pbl9wYWdlcywKLQkJbGR0X2VudHJ5LT5zZWdfbm90X3ByZXNlbnQsCi0JCWxkdF9lbnRyeS0+dXNlYWJsZSk7Ci19Ci0KLWludAotc3lzX21vZGlmeV9sZHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zIGNvcHk7Ci0JCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMF0pOwotCQlpZiAodGNwLT51X2FyZ1sxXSA9PSAwCi0JCQkJfHwgdGNwLT51X2FyZ1syXSAhPSBzaXplb2YgKHN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zKQotCQkJCXx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJmNvcHkpID09IC0xKQotCQkJdHByaW50ZigiLCAlbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCIsIHtlbnRyeV9udW1iZXI6JWQsICIsIGNvcHkuZW50cnlfbnVtYmVyKTsKLQkJCWlmICghdmVyYm9zZSh0Y3ApKQotCQkJCXRwcmludGYoIi4uLn0iKTsKLQkJCWVsc2UgewotCQkJCXByaW50X2xkdF9lbnRyeSgmY29weSk7Ci0JCQl9Ci0JCX0KLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldF90aHJlYWRfYXJlYSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IG1vZGlmeV9sZHRfbGR0X3MgY29weTsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmY29weSkgIT0gLTEpIHsKLQkJCWlmIChjb3B5LmVudHJ5X251bWJlciA9PSAtMSkKLQkJCQl0cHJpbnRmKCJ7ZW50cnlfbnVtYmVyOiVkIC0+ICIsCi0JCQkJCWNvcHkuZW50cnlfbnVtYmVyKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCJ7ZW50cnlfbnVtYmVyOiIpOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJmNvcHkpICE9IC0xKSB7Ci0JCQl0cHJpbnRmKCIlZCwgIiwgY29weS5lbnRyeV9udW1iZXIpOwotCQkJaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQkJdHByaW50ZigiLi4ufSIpOwotCQkJZWxzZSB7Ci0JCQkJcHJpbnRfbGR0X2VudHJ5KCZjb3B5KTsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCXRwcmludGYoIiVseCIsIHRjcC0+dV9hcmdbMF0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotCi19Ci0KLWludAotc3lzX2dldF90aHJlYWRfYXJlYSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IG1vZGlmeV9sZHRfbGR0X3MgY29weTsKLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZjb3B5KSAhPSAtMSkgewotCQkJdHByaW50Zigie2VudHJ5X251bWJlcjolZCwgIiwgY29weS5lbnRyeV9udW1iZXIpOwotCQkJaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQkJdHByaW50ZigiLi4ufSIpOwotCQkJZWxzZSB7Ci0JCQkJcHJpbnRfbGR0X2VudHJ5KCZjb3B5KTsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCXRwcmludGYoIiVseCIsIHRjcC0+dV9hcmdbMF0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotCi19Ci0jZW5kaWYgLyogTElOVVggJiYgX19pMzg2X18gKi8KLQotI2lmIGRlZmluZWQoTElOVVgpCi1pbnQKLXN5c19yZW1hcF9maWxlX3BhZ2VzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQlwcmludGZsYWdzKG1tYXBfcHJvdCwgdGNwLT51X2FyZ1syXSwgIlBST1RfPz8/Iik7Ci0JCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzNdKTsKLSNpZmRlZiBNQVBfVFlQRQotCQlwcmludHh2YWwobW1hcF9mbGFncywgdGNwLT51X2FyZ1s0XSAmIE1BUF9UWVBFLCAiTUFQXz8/PyIpOwotCQlhZGRmbGFncyhtbWFwX2ZsYWdzLCB0Y3AtPnVfYXJnWzRdICYgfk1BUF9UWVBFKTsKLSNlbHNlCi0JCXByaW50ZmxhZ3MobW1hcF9mbGFncywgdGNwLT51X2FyZ1s0XSwgIk1BUF8/Pz8iKTsKLSNlbmRpZgotCX0KLQlyZXR1cm4gMDsKLX0KLQotCi0jZGVmaW5lIE1QT0xfREVGQVVMVCAgICAwCi0jZGVmaW5lIE1QT0xfUFJFRkVSUkVEICAxCi0jZGVmaW5lIE1QT0xfQklORCAgICAgICAyCi0jZGVmaW5lIE1QT0xfSU5URVJMRUFWRSAzCi0KLSNkZWZpbmUgTVBPTF9GX05PREUgICAgICgxPDwwKQotI2RlZmluZSBNUE9MX0ZfQUREUiAgICAgKDE8PDEpCi0KLSNkZWZpbmUgTVBPTF9NRl9TVFJJQ1QgICgxPDwwKQotCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwb2xpY2llc1tdID0gewotCXsgTVBPTF9ERUZBVUxULAkJIk1QT0xfREVGQVVMVCIJCX0sCi0JeyBNUE9MX1BSRUZFUlJFRCwJIk1QT0xfUFJFRkVSUkVEIgl9LAotCXsgTVBPTF9CSU5ELAkJIk1QT0xfQklORCIJCX0sCi0JeyBNUE9MX0lOVEVSTEVBVkUsCSJNUE9MX0lOVEVSTEVBVkUiCX0sCi0JeyAwLAkJCU5VTEwJCQl9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWJpbmRmbGFnc1tdID0gewotCXsgTVBPTF9NRl9TVFJJQ1QsCSJNUE9MX01GX1NUUklDVCIJfSwKLQl7IDAsCQkJTlVMTAkJCX0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtZW1wb2xpY3lmbGFnc1tdID0gewotCXsgTVBPTF9GX05PREUsCQkiTVBPTF9GX05PREUiCQl9LAotCXsgTVBPTF9GX0FERFIsCQkiTVBPTF9GX0FERFIiCQl9LAotCXsgMCwJCQlOVUxMCQkJfQotfTsKLQotCi1zdGF0aWMgdm9pZAotZ2V0X25vZGVzKHRjcCwgcHRyLCBtYXhub2RlcywgZXJyKQotc3RydWN0IHRjYiAqdGNwOwotdW5zaWduZWQgbG9uZyBwdHI7Ci11bnNpZ25lZCBsb25nIG1heG5vZGVzOwotaW50IGVycjsKLXsKLQl1bnNpZ25lZCBsb25nIG5sb25ncywgc2l6ZSwgZW5kOwotCi0JbmxvbmdzID0gKG1heG5vZGVzICsgOCAqIHNpemVvZihsb25nKSAtIDEpIC8gKDggKiBzaXplb2YobG9uZykpOwotCXNpemUgPSBubG9uZ3MgKiBzaXplb2YobG9uZyk7Ci0JZW5kID0gcHRyICsgc2l6ZTsKLQlpZiAobmxvbmdzID09IDAgfHwgKChlcnIgfHwgdmVyYm9zZSh0Y3ApKSAmJiAoc2l6ZSAqIDggPT0gbWF4bm9kZXMpCi0JCQkgICAgJiYgKGVuZCA+IHB0cikpKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbiwgY3VyLCBhYmJyZXZfZW5kOwotCQlpbnQgZmFpbGVkID0gMDsKLQotCQlpZiAoYWJicmV2KHRjcCkpIHsKLQkJCWFiYnJldl9lbmQgPSBwdHIgKyBtYXhfc3RybGVuICogc2l6ZW9mKGxvbmcpOwotCQkJaWYgKGFiYnJldl9lbmQgPCBwdHIpCi0JCQkJYWJicmV2X2VuZCA9IGVuZDsKLQkJfSBlbHNlIHsKLQkJCWFiYnJldl9lbmQgPSBlbmQ7Ci0JCX0KLQkJdHByaW50ZigiLCB7Iik7Ci0JCWZvciAoY3VyID0gcHRyOyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YobG9uZykpIHsKLQkJCWlmIChjdXIgPiBwdHIpCi0JCQkJdHByaW50ZigiLCAiKTsKLQkJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgewotCQkJCXRwcmludGYoIi4uLiIpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mKG4pLCAoY2hhciAqKSAmbikgPCAwKSB7Ci0JCQkJdHByaW50ZigiPyIpOwotCQkJCWZhaWxlZCA9IDE7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQl0cHJpbnRmKCIlIzAqbHgiLCAoaW50KSBzaXplb2YobG9uZykgKiAyICsgMiwgbik7Ci0JCX0KLQkJdHByaW50ZigifSIpOwotCQlpZiAoZmFpbGVkKQotCQkJdHByaW50ZigiICUjbHgiLCBwdHIpOwotCX0gZWxzZQotCQl0cHJpbnRmKCIsICUjbHgiLCBwdHIpOwotCXRwcmludGYoIiwgJWx1IiwgbWF4bm9kZXMpOwotfQotCi1pbnQKLXN5c19tYmluZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQlwcmludHh2YWwocG9saWNpZXMsIHRjcC0+dV9hcmdbMl0sICJNUE9MXz8/PyIpOwotCQlnZXRfbm9kZXModGNwLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdLCAwKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtYmluZGZsYWdzLCB0Y3AtPnVfYXJnWzVdLCAiTVBPTF8/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldF9tZW1wb2xpY3kodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChwb2xpY2llcywgdGNwLT51X2FyZ1swXSwgIk1QT0xfPz8/Iik7Ci0JCWdldF9ub2Rlcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIDApOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0X21lbXBvbGljeSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpbnQgcG9sOwotCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnBvbCkgPCAwKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQllbHNlCi0JCQlwcmludHh2YWwocG9saWNpZXMsIHBvbCwgIk1QT0xfPz8/Iik7Ci0JCWdldF9ub2Rlcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHN5c2Vycm9yKHRjcCkpOwotCQl0cHJpbnRmKCIsICUjbHgsICIsIHRjcC0+dV9hcmdbM10pOwotCQlwcmludGZsYWdzKG1lbXBvbGljeWZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiTVBPTF8/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL21pc3NpbmcgYi9taXNzaW5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlN2VmODNhLi4wMDAwMDAwCi0tLSBhL21pc3NpbmcKKysrIC9kZXYvbnVsbApAQCAtMSwzNjAgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KLQotc2NyaXB0dmVyc2lvbj0yMDAzLTA5LTAyLjIzCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAzIAotIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KLQotIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0jIGFueSBsYXRlciB2ZXJzaW9uLgotCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0jIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BCi0jIDAyMTExLTEzMDcsIFVTQS4KLQotIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0jIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0KLWlmIHRlc3QgJCMgLWVxIDA7IHRoZW4KLSAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotICBleGl0IDEKLWZpCi0KLXJ1bj06Ci0KLSMgSW4gdGhlIGNhc2VzIHdoZXJlIHRoaXMgbWF0dGVycywgYG1pc3NpbmcnIGlzIGJlaW5nIHJ1biBpbiB0aGUKLSMgc3JjZGlyIGFscmVhZHkuCi1pZiB0ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhlbgotICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmFjCi1lbHNlCi0gIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KLWZpCi0KLW1zZz0ibWlzc2luZyBvbiB5b3VyIHN5c3RlbSIKLQotY2FzZSAiJDEiIGluCi0tLXJ1bikKLSAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgotICBydW49Ci0gIHNoaWZ0Ci0gICIkQCIgJiYgZXhpdCAwCi0gICMgRXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNpb24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMKLSAgIyB3aGVuIHRoZSB1c2VyIHRyeSB0byB1c2UgYW4gYW5jaWVudCB2ZXJzaW9uIG9mIGEgdG9vbCBvbgotICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCi0gICMgd2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IKLSAgIyBpZiAtLXJ1biBoYWRuJ3QgYmVlbiBwYXNzZWQuCi0gIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotICAgIHJ1bj06Ci0gICAgbXNnPSJwcm9iYWJseSB0b28gb2xkIgotICBmaQotICA7OwotZXNhYwotCi0jIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAotIyB0cnkgdG8gZW11bGF0ZSBpdC4KLWNhc2UgIiQxIiBpbgotCi0gIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKLSAgICBlY2hvICJcCi0kMCBbT1BUSU9OXS4uLiBQUk9HUkFNIFtBUkdVTUVOVF0uLi4KLQotSGFuZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgotZXJyb3Igc3RhdHVzIGlmIHRoZXJlIGlzIG5vIGtub3duIGhhbmRsaW5nIGZvciBQUk9HUkFNLgotCi1PcHRpb25zOgotICAtaCwgLS1oZWxwICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKLSAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gIC0tcnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11bGF0ZSBpdCBpZiBpdCBmYWlscwotCi1TdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0gIGFjbG9jYWwgICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKLSAgYXV0b2NvbmYgICAgIHRvdWNoIGZpbGUgXGBjb25maWd1cmUnCi0gIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0gIGF1dG9tYWtlICAgICB0b3VjaCBhbGwgXGBNYWtlZmlsZS5pbicgZmlsZXMKLSAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotICBmbGV4ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYwotICBoZWxwMm1hbiAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0gIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCi0gIG1ha2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSAgdGFyICAgICAgICAgIHRyeSB0YXIsIGdudXRhciwgZ3RhciwgdGhlbiB0YXIgd2l0aG91dCBub24tcG9ydGFibGUgZmxhZ3MKLSAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotCi1TZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uIgotICAgIDs7Ci0KLSAgLXZ8LS12fC0tdmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQotICAgIGVjaG8gIm1pc3NpbmcgJHNjcmlwdHZlcnNpb24gKEdOVSBBdXRvbWFrZSkiCi0gICAgOzsKLQotICAtKikKLSAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlvbiIKLSAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCi0gICAgZXhpdCAxCi0gICAgOzsKLQotICBhY2xvY2FsKikKLSAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgotICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAotICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIHRvdWNoIGFjbG9jYWwubTQKLSAgICA7OwotCi0gIGF1dG9jb25mKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSAgICAgICAgIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VCi0gICAgICAgICBhcmNoaXZlIHNpdGUuIgotICAgIHRvdWNoIGNvbmZpZ3VyZQotICAgIDs7Ci0KLSAgYXV0b2hlYWRlcikKLSAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgotICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcuaCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKLSAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0KLSAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbGVzPWBzZWQgLW4gJ3MvXlsgXSpBW0NNXV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZpZ3VyZV9hY31gCi0gICAgdGVzdCAteiAiJGZpbGVzIiAmJiBmaWxlcz0iY29uZmlnLmgiCi0gICAgdG91Y2hfZmlsZXM9Ci0gICAgZm9yIGYgaW4gJGZpbGVzOyBkbwotICAgICAgY2FzZSAiJGYiIGluCi0gICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAotCQkJCSAgICAgICBzZWQgLWUgJ3MvXlteOl0qOi8vJyAtZSAncy86LiovLydgOzsKLSAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKLSAgICAgIGVzYWMKLSAgICBkb25lCi0gICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0gICAgOzsKLQotICBhdXRvbWFrZSopCi0gICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KLSAgICAgICBleGl0IDEKLSAgICBmaQotCi0gICAgZWNobyAxPiYyICJcCi1XQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KLSAgICAgICAgIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgotICAgICAgICAgR3JhYiB0aGVtIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8Ci0JICAgc2VkICdzL1wuYW0kLy5pbi8nIHwKLQkgICB3aGlsZSByZWFkIGY7IGRvIHRvdWNoICIkZiI7IGRvbmUKLSAgICA7OwotCi0gIGF1dG9tNHRlKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBidXQgaXMgJG1zZy4KLSAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0gICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KLSAgICAgICAgIFlvdSBjYW4gZ2V0IFxgJDEnIGFzIHBhcnQgb2YgXGBBdXRvY29uZicgZnJvbSBhbnkgR05VCi0gICAgICAgICBhcmNoaXZlIHNpdGUuIgotCi0gICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLS1vdXRwdXRbID1dKlwoW14gXSpcKS4qL1wxL3AnYAotICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotb1sgXSpcKFteIF0qXCkuKi9cMS9wJ2AKLSAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLQl0b3VjaCAkZmlsZQotICAgIGVsc2UKLQl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKLQllY2hvICIjISAvYmluL3NoIgotCWVjaG8gIiMgQ3JlYXRlZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgotCWVjaG8gIiMgICQgJEAiCi0JZWNobyAiZXhpdCAwIgotCWNobW9kICt4ICRmaWxlCi0JZXhpdCAxCi0gICAgZmkKLSAgICA7OwotCi0gIGJpc29ufHlhY2MpCi0gICAgZWNobyAxPiYyICJcCi1XQVJOSU5HOiBcYCQxJyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSAgICAgICAgIFxgQmlzb24nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAotICAgIGlmIFsgJCMgLW5lIDEgXTsgdGhlbgotICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLQljYXNlICIkTEFTVEFSRyIgaW4KLQkqLnkpCi0JICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9jLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCi0JICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5jCi0JICAgIGZpCi0JICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCi0JICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCi0JICAgIGZpCi0JICA7OwotCWVzYWMKLSAgICBmaQotICAgIGlmIFsgISAtZiB5LnRhYi5oIF07IHRoZW4KLQllY2hvID55LnRhYi5oCi0gICAgZmkKLSAgICBpZiBbICEgLWYgeS50YWIuYyBdOyB0aGVuCi0JZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID55LnRhYi5jCi0gICAgZmkKLSAgICA7OwotCi0gIGxleHxmbGV4KQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKLSAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSAgICAgICAgIFxgRmxleCcgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0gICAgcm0gLWYgbGV4Lnl5LmMKLSAgICBpZiBbICQjIC1uZSAxIF07IHRoZW4KLSAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCi0JY2FzZSAiJExBU1RBUkciIGluCi0JKi5sKQotCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8nYAotCSAgICBpZiBbIC1mICIkU1JDRklMRSIgXTsgdGhlbgotCSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKLQkgICAgZmkKLQkgIDs7Ci0JZXNhYwotICAgIGZpCi0gICAgaWYgWyAhIC1mIGxleC55eS5jIF07IHRoZW4KLQllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55eS5jCi0gICAgZmkKLSAgICA7OwotCi0gIGhlbHAybWFuKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0JIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKLQkgXGBIZWxwMm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlCi0JIGVmZmVjdC4gIFlvdSBjYW4gZ2V0IFxgSGVscDJtYW4nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotCi0gICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLW8gXChbXiBdKlwpLiovXDEvcCdgCi0gICAgaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCi0JZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLS1vdXRwdXQ9XChbXiBdKlwpLiovXDEvcCdgCi0gICAgZmkKLSAgICBpZiBbIC1mICIkZmlsZSIgXTsgdGhlbgotCXRvdWNoICRmaWxlCi0gICAgZWxzZQotCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQotCWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCi0JZXhpdCAxCi0gICAgZmkKLSAgICA7OwotCi0gIG1ha2VpbmZvKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmIChtYWtlaW5mbyAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgbWFrZWluZm8sIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQotICAgICAgICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCi0gICAgICAgICBjYWxsIG1pZ2h0IGFsc28gYmUgdGhlIGNvbnNlcXVlbmNlIG9mIHVzaW5nIGEgYnVnZ3kgXGBtYWtlJyAoQUlYLAotICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCi0gICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAncy8uKi1vIFwoW14gXSpcKS4qL1wxL3AnYAotICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgotICAgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAotICAgICAgZmlsZT1gc2VkIC1uICcvXkBzZXRmaWxlbmFtZS8geyBzLy4qIFwoW14gXSpcKSAqJC9cMS87IHA7IHE7IH0nICRmaWxlYAotICAgIGZpCi0gICAgdG91Y2ggJGZpbGUKLSAgICA7OwotCi0gIHRhcikKLSAgICBzaGlmdAotICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0gICAgICBlY2hvIDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCi0gICAgICBleGl0IDEKLSAgICBmaQotCi0gICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0gICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBiZWZvcmUgaW52b2NhdGlvbiB0byBhdm9pZCB1Z2x5IGVycm9yCi0gICAgIyBtZXNzYWdlcy4KLSAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgotICAgICAgIGdudXRhciAiJEAiICYmIGV4aXQgMAotICAgIGZpCi0gICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0gICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAotICAgIGZpCi0gICAgZmlyc3Rhcmc9IiQxIgotICAgIGlmIHNoaWZ0OyB0aGVuCi0JY2FzZSAiJGZpcnN0YXJnIiBpbgotCSpvKikKLQkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9vLy9gCi0JICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotCSAgICA7OwotCWVzYWMKLQljYXNlICIkZmlyc3RhcmciIGluCi0JKmgqKQotCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLQkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCi0JICAgIDs7Ci0JZXNhYwotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IEkgY2FuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLgotICAgICAgICAgWW91IG1heSB3YW50IHRvIGluc3RhbGwgR05VIHRhciBvciBGcmVlIHBheHV0aWxzLCBvciBjaGVjayB0aGUKLSAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgotICAgIGV4aXQgMQotICAgIDs7Ci0KLSAgKikKLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCi0gICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQotICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uICBDaGVjayB0aGUgXGBSRUFETUUnIGZpbGUsCi0gICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0gICAgICAgICB0aGlzIHBhY2thZ2UuICBZb3UgbWF5IGFsc28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQotICAgICAgICAgc29tZSBvdGhlciBwYWNrYWdlIHdvdWxkIGNvbnRhaW4gdGhpcyBtaXNzaW5nIFxgJDEnIHByb2dyYW0uIgotICAgIGV4aXQgMQotICAgIDs7Ci1lc2FjCi0KLWV4aXQgMAotCi0jIExvY2FsIHZhcmlhYmxlczoKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0jIEVuZDoKZGlmZiAtLWdpdCBhL21raW5zdGFsbGRpcnMgYi9ta2luc3RhbGxkaXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2ZmJlNWUxLi4wMDAwMDAwCi0tLSBhL21raW5zdGFsbGRpcnMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBta2luc3RhbGxkaXJzIC0tLSBtYWtlIGRpcmVjdG9yeSBoaWVyYXJjaHkKLQotc2NyaXB0dmVyc2lvbj0yMDA0LTAyLTE1LjIwCi0KLSMgT3JpZ2luYWwgYXV0aG9yOiBOb2FoIEZyaWVkbWFuIDxmcmllZG1hbkBwcmVwLmFpLm1pdC5lZHU+Ci0jIENyZWF0ZWQ6IDE5OTMtMDUtMTYKLSMgUHVibGljIGRvbWFpbi4KLSMKLSMgVGhpcyBmaWxlIGlzIG1haW50YWluZWQgaW4gQXV0b21ha2UsIHBsZWFzZSByZXBvcnQKLSMgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+IG9yIHNlbmQgcGF0Y2hlcyB0bwotIyA8YXV0b21ha2UtcGF0Y2hlc0BnbnUub3JnPi4KLQotZXJyc3RhdHVzPTAKLWRpcm1vZGU9IiIKLQotdXNhZ2U9IlwKLVVzYWdlOiBta2luc3RhbGxkaXJzIFstaF0gWy0taGVscF0gWy0tdmVyc2lvbl0gWy1tIE1PREVdIERJUiAuLi4KLQotQ3JlYXRlIGVhY2ggZGlyZWN0b3J5IERJUiAod2l0aCBtb2RlIE1PREUsIGlmIHNwZWNpZmllZCksIGluY2x1ZGluZyBhbGwKLWxlYWRpbmcgZmlsZSBuYW1lIGNvbXBvbmVudHMuCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uIgotCi0jIHByb2Nlc3MgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtaCB8IC0taGVscCB8IC0taCopICAgICAgICAgIyAtaCBmb3IgaGVscAotICAgICAgZWNobyAiJHVzYWdlIgotICAgICAgZXhpdCAwCi0gICAgICA7OwotICAgIC1tKSAgICAgICAgICAgICAgICAgICAgICAgICAjIC1tIFBFUk0gYXJnCi0gICAgICBzaGlmdAotICAgICAgdGVzdCAkIyAtZXEgMCAmJiB7IGVjaG8gIiR1c2FnZSIgMT4mMjsgZXhpdCAxOyB9Ci0gICAgICBkaXJtb2RlPSQxCi0gICAgICBzaGlmdAotICAgICAgOzsKLSAgICAtLXZlcnNpb24pCi0gICAgICBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiIKLSAgICAgIGV4aXQgMAotICAgICAgOzsKLSAgICAtLSkgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICBzaGlmdAotICAgICAgYnJlYWsKLSAgICAgIDs7Ci0gICAgLSopICAgICAgICAgICAgICAgICAgICAgICAgICMgdW5rbm93biBvcHRpb24KLSAgICAgIGVjaG8gIiR1c2FnZSIgMT4mMgotICAgICAgZXhpdCAxCi0gICAgICA7OwotICAgICopICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZpcnN0IG5vbi1vcHQgYXJnCi0gICAgICBicmVhawotICAgICAgOzsKLSAgZXNhYwotZG9uZQotCi1mb3IgZmlsZQotZG8KLSAgaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0gICAgc2hpZnQKLSAgZWxzZQotICAgIGJyZWFrCi0gIGZpCi1kb25lCi0KLWNhc2UgJCMgaW4KLSAgMCkgZXhpdCAwIDs7Ci1lc2FjCi0KLSMgU29sYXJpcyA4J3MgbWtkaXIgLXAgaXNuJ3QgdGhyZWFkLXNhZmUuICBJZiB5b3UgbWtkaXIgLXAgYS9iIGFuZAotIyBta2RpciAtcCBhL2MgYXQgdGhlIHNhbWUgdGltZSwgYm90aCB3aWxsIGRldGVjdCB0aGF0IGEgaXMgbWlzc2luZywKLSMgb25lIHdpbGwgY3JlYXRlIGEsIHRoZW4gdGhlIG90aGVyIHdpbGwgdHJ5IHRvIGNyZWF0ZSBhIGFuZCBkaWUgd2l0aAotIyBhICJGaWxlIGV4aXN0cyIgZXJyb3IuICBUaGlzIGlzIGEgcHJvYmxlbSB3aGVuIGNhbGxpbmcgbWtpbnN0YWxsZGlycwotIyBmcm9tIGEgcGFyYWxsZWwgbWFrZS4gIFdlIHVzZSAtLXZlcnNpb24gaW4gdGhlIHByb2JlIHRvIHJlc3RyaWN0Ci0jIG91cnNlbHZlcyB0byBHTlUgbWtkaXIsIHdoaWNoIGlzIHRocmVhZC1zYWZlLgotY2FzZSAkZGlybW9kZSBpbgotICAnJykKLSAgICBpZiBta2RpciAtcCAtLXZlcnNpb24gLiA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAhIC1kIC4vLS12ZXJzaW9uOyB0aGVuCi0gICAgICBlY2hvICJta2RpciAtcCAtLSAkKiIKLSAgICAgIGV4ZWMgbWtkaXIgLXAgLS0gIiRAIgotICAgIGVsc2UKLSAgICAgICMgT24gTmV4dFN0ZXAgYW5kIE9wZW5TdGVwLCB0aGUgYG1rZGlyJyBjb21tYW5kIGRvZXMgbm90Ci0gICAgICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgICAgICMgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLCBhbmQgdGhlbiBhYm9ydCBiZWNhdXNlIGAuJyBhbHJlYWR5Ci0gICAgICAjIGV4aXN0cy4KLSAgICAgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gICAgICB0ZXN0IC1kIC4vLS12ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJzaW9uCi0gICAgZmkKLSAgICA7OwotICAqKQotICAgIGlmIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmCi0gICAgICAgdGVzdCAhIC1kIC4vLS12ZXJzaW9uOyB0aGVuCi0gICAgICBlY2hvICJta2RpciAtbSAkZGlybW9kZSAtcCAtLSAkKiIKLSAgICAgIGV4ZWMgbWtkaXIgLW0gIiRkaXJtb2RlIiAtcCAtLSAiJEAiCi0gICAgZWxzZQotICAgICAgIyBDbGVhbiB1cCBhZnRlciBOZXh0U3RlcCBhbmQgT3BlblN0ZXAgbWtkaXIuCi0gICAgICBmb3IgZCBpbiAuLy1tIC4vLXAgLi8tLXZlcnNpb24gIi4vJGRpcm1vZGUiOwotICAgICAgZG8KLSAgICAgICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICAgICAgZG9uZQotICAgIGZpCi0gICAgOzsKLWVzYWMKLQotZm9yIGZpbGUKLWRvCi0gIHNldCBmbm9yZCBgZWNobyAiOiRmaWxlIiB8IHNlZCAtbmUgJ3MvXjpcLy8jLztzL146Ly87cy9cLy8gL2c7cy9eIy9cLy87cCdgCi0gIHNoaWZ0Ci0KLSAgcGF0aGNvbXA9Ci0gIGZvciBkCi0gIGRvCi0gICAgcGF0aGNvbXA9IiRwYXRoY29tcCRkIgotICAgIGNhc2UgJHBhdGhjb21wIGluCi0gICAgICAtKikgcGF0aGNvbXA9Li8kcGF0aGNvbXAgOzsKLSAgICBlc2FjCi0KLSAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KLSAgICAgIGVjaG8gIm1rZGlyICRwYXRoY29tcCIKLQotICAgICAgbWtkaXIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPwotCi0gICAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KLQllcnJzdGF0dXM9JGxhc3RlcnIKLSAgICAgIGVsc2UKLQlpZiB0ZXN0ICEgLXogIiRkaXJtb2RlIjsgdGhlbgotCSAgZWNobyAiY2htb2QgJGRpcm1vZGUgJHBhdGhjb21wIgotCSAgbGFzdGVycj0iIgotCSAgY2htb2QgIiRkaXJtb2RlIiAiJHBhdGhjb21wIiB8fCBsYXN0ZXJyPSQ/Ci0KLQkgIGlmIHRlc3QgISAteiAiJGxhc3RlcnIiOyB0aGVuCi0JICAgIGVycnN0YXR1cz0kbGFzdGVycgotCSAgZmkKLQlmaQotICAgICAgZmkKLSAgICBmaQotCi0gICAgcGF0aGNvbXA9IiRwYXRoY29tcC8iCi0gIGRvbmUKLWRvbmUKLQotZXhpdCAkZXJyc3RhdHVzCi0KLSMgTG9jYWwgVmFyaWFibGVzOgotIyBtb2RlOiBzaGVsbC1zY3JpcHQKLSMgc2gtaW5kZW50YXRpb246IDIKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0jIEVuZDoKZGlmZiAtLWdpdCBhL25ldC5jIGIvbmV0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MGM3NjcuLjAwMDAwMDAKLS0tIGEvbmV0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTI1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMCBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBuZXQuYyx2IDEuNDggMjAwNS8wNi8wMSAxOToyMjowNyByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotCi0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3VuLmg+Ci0KLSNpZiBkZWZpbmVkKEhBVkVfU0lONl9TQ09QRV9JRF9MSU5VWCkKLSNkZWZpbmUgaW42X2FkZHIgaW42X2FkZHJfbGliYwotI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2xpYmMKLSNkZWZpbmUgc29ja2FkZHJfaW42IHNvY2thZGRyX2luNl9saWJjCi0jZW5kaWYKLQotI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLSNpZmRlZiBIQVZFX05FVElORVRfVENQX0gKLSNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgotI2VuZGlmCi0jaWZkZWYgSEFWRV9ORVRJTkVUX1VEUF9ICi0jaW5jbHVkZSA8bmV0aW5ldC91ZHAuaD4KLSNlbmRpZgotI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotI2luY2x1ZGUgPG5ldC9pZi5oPgotI2lmIGRlZmluZWQoTElOVVgpCi0jaW5jbHVkZSA8YXNtL3R5cGVzLmg+Ci0jaWYgZGVmaW5lZChfX0dMSUJDX18pICYmIChfX0dMSUJDX18gPj0gMikgJiYgKF9fR0xJQkNfXyArIF9fR0xJQkNfTUlOT1JfXyA+PSAzKQotIyAgaW5jbHVkZSA8bmV0aXB4L2lweC5oPgotI2Vsc2UKLSMgIGluY2x1ZGUgPGxpbnV4L2lweC5oPgotI2VuZGlmCi0jZW5kaWYgLyogTElOVVggKi8KLQotI2lmIGRlZmluZWQgKF9fR0xJQkNfXykgJiYgKCgoX19HTElCQ19fIDwgMikgfHwgKF9fR0xJQkNfXyA9PSAyICYmIF9fR0xJQkNfTUlOT1JfXyA8IDEpKSB8fCBkZWZpbmVkKEhBVkVfU0lONl9TQ09QRV9JRF9MSU5VWCkpCi0jaWYgZGVmaW5lZChIQVZFX0xJTlVYX0lONl9IKQotI2lmIGRlZmluZWQoSEFWRV9TSU42X1NDT1BFX0lEX0xJTlVYKQotI3VuZGVmIGluNl9hZGRyCi0jdW5kZWYgaXB2Nl9tcmVxCi0jdW5kZWYgc29ja2FkZHJfaW42Ci0jZGVmaW5lIGluNl9hZGRyIGluNl9hZGRyX2tlcm5lbAotI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2tlcm5lbAotI2RlZmluZSBzb2NrYWRkcl9pbjYgc29ja2FkZHJfaW42X2tlcm5lbAotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvaW42Lmg+Ci0jaWYgZGVmaW5lZChIQVZFX1NJTjZfU0NPUEVfSURfTElOVVgpCi0jdW5kZWYgaW42X2FkZHIKLSN1bmRlZiBpcHY2X21yZXEKLSN1bmRlZiBzb2NrYWRkcl9pbjYKLSNkZWZpbmUgaW42X2FkZHIgaW42X2FkZHJfbGliYwotI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2xpYmMKLSNkZWZpbmUgc29ja2FkZHJfaW42IHNvY2thZGRyX2luNl9rZXJuZWwKLSNlbmRpZgotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoSEFWRV9TWVNfVUlPX0gpCi0jaW5jbHVkZSA8c3lzL3Vpby5oPgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKEhBVkVfTElOVVhfTkVUTElOS19IKQotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IKQotI2luY2x1ZGUgPGxpbnV4L2lmX3BhY2tldC5oPgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKEhBVkVfTElOVVhfSUNNUF9IKQotI2luY2x1ZGUgPGxpbnV4L2ljbXAuaD4KLSNlbmRpZgotCi0jaWZuZGVmIFBGX1VOU1BFQwotI2RlZmluZSBQRl9VTlNQRUMgQUZfVU5TUEVDCi0jZW5kaWYKLQotI2lmIFVOSVhXQVJFID49IDcKLSNkZWZpbmUgSEFWRV9TRU5ETVNHCQkxCQkvKiBIQUNLIC0gKkZJWE1FKiAqLwotI2VuZGlmCi0KLSNpZmRlZiBMSU5VWAotLyogVW5kZXIgTGludXggdGhlc2UgYXJlIGVudW1zIHNvIHdlIGNhbid0IHRlc3QgZm9yIHRoZW0gd2l0aCBpZmRlZi4gKi8KLSNkZWZpbmUgSVBQUk9UT19FR1AgSVBQUk9UT19FR1AKLSNkZWZpbmUgSVBQUk9UT19QVVAgSVBQUk9UT19QVVAKLSNkZWZpbmUgSVBQUk9UT19JRFAgSVBQUk9UT19JRFAKLSNkZWZpbmUgSVBQUk9UT19JR01QIElQUFJPVE9fSUdNUAotI2RlZmluZSBJUFBST1RPX1JBVyBJUFBST1RPX1JBVwotI2RlZmluZSBJUFBST1RPX01BWCBJUFBST1RPX01BWAotI2VuZGlmCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBkb21haW5zW10gPSB7Ci0jaWZkZWYgUEZfQUFMNQotCXsgUEZfQUFMNSwJIlBGX0FBTDUiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9BUFBMRVRBTEsKLQl7IFBGX0FQUExFVEFMSywJIlBGX0FQUExFVEFMSyIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0FTSAotCXsgUEZfQVNILAkiUEZfQVNIIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfQVRNUFZDCi0JeyBQRl9BVE1QVkMsCSJQRl9BVE1QVkMiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9BVE1TVkMKLQl7IFBGX0FUTVNWQywJIlBGX0FUTVNWQyIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0FYMjUKLQl7IFBGX0FYMjUsCSJQRl9BWDI1Igl9LAotI2VuZGlmCi0jaWZkZWYgUEZfQkxVRVRPT1RICi0JeyBQRl9CTFVFVE9PVEgsCSJQRl9CTFVFVE9PVEgiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9CUklER0UKLQl7IFBGX0JSSURHRSwJIlBGX0JSSURHRSIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0RFQ25ldAotCXsgUEZfREVDbmV0LAkiUEZfREVDbmV0Igl9LAotI2VuZGlmCi0jaWZkZWYgUEZfREVDTkVUCi0JeyBQRl9ERUNORVQsCSJQRl9ERUNORVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9FQ09ORVQKLQl7IFBGX0VDT05FVCwJIlBGX0VDT05FVCIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0ZJTEUKLQl7IFBGX0ZJTEUsCSJQRl9GSUxFIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfSU1QTElOSwotCXsgUEZfSU1QTElOSywJIlBGX0lNUExJTksiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9JTkVUCi0JeyBQRl9JTkVULAkiUEZfSU5FVCIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0lORVQ2Ci0JeyBQRl9JTkVUNiwJIlBGX0lORVQ2Igl9LAotI2VuZGlmCi0jaWZkZWYgUEZfSVBYCi0JeyBQRl9JUFgsCSJQRl9JUFgiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9JUkRBCi0JeyBQRl9JUkRBLAkiUEZfSVJEQSIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0lTTwotCXsgUEZfSVNPLAkiUEZfSVNPIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfS0VZCi0JeyBQRl9LRVksCSJQRl9LRVkiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9VTklYCi0JeyBQRl9VTklYLAkiUEZfVU5JWCIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX0xPQ0FMCi0JeyBQRl9MT0NBTCwJIlBGX0xPQ0FMIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfTkVUQkVVSQotCXsgUEZfTkVUQkVVSSwJIlBGX05FVEJFVUkiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9ORVRMSU5LCi0JeyBQRl9ORVRMSU5LLAkiUEZfTkVUTElOSyIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX05FVFJPTQotCXsgUEZfTkVUUk9NLAkiUEZfTkVUUk9NIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfUEFDS0VUCi0JeyBQRl9QQUNLRVQsCSJQRl9QQUNLRVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9QUFBPWAotCXsgUEZfUFBQT1gsCSJQRl9QUFBPWCIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX1JPU0UKLQl7IFBGX1JPU0UsCSJQRl9ST1NFIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfUk9VVEUKLQl7IFBGX1JPVVRFLAkiUEZfUk9VVEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9TRUNVUklUWQotCXsgUEZfU0VDVVJJVFksCSJQRl9TRUNVUklUWSIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX1NOQQotCXsgUEZfU05BLAkiUEZfU05BIgl9LAotI2VuZGlmCi0jaWZkZWYgUEZfVU5TUEVDCi0JeyBQRl9VTlNQRUMsCSJQRl9VTlNQRUMiCX0sCi0jZW5kaWYKLSNpZmRlZiBQRl9XQU5QSVBFCi0JeyBQRl9XQU5QSVBFLAkiUEZfV0FOUElQRSIJfSwKLSNlbmRpZgotI2lmZGVmIFBGX1gyNQotCXsgUEZfWDI1LAkiUEZfWDI1Igl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci1jb25zdCBzdHJ1Y3QgeGxhdCBhZGRyZmFtc1tdID0gewotI2lmZGVmIEFGX0FQUExFVEFMSwotCXsgQUZfQVBQTEVUQUxLLAkiQUZfQVBQTEVUQUxLIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfQVNICi0JeyBBRl9BU0gsCSJBRl9BU0giCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9BVE1QVkMKLQl7IEFGX0FUTVBWQywJIkFGX0FUTVBWQyIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0FUTVNWQwotCXsgQUZfQVRNU1ZDLAkiQUZfQVRNU1ZDIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfQVgyNQotCXsgQUZfQVgyNSwJIkFGX0FYMjUiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9CTFVFVE9PVEgKLQl7IEFGX0JMVUVUT09USCwJIkFGX0JMVUVUT09USCIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0JSSURHRQotCXsgQUZfQlJJREdFLAkiQUZfQlJJREdFIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfREVDbmV0Ci0JeyBBRl9ERUNuZXQsCSJBRl9ERUNuZXQiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9FQ09ORVQKLQl7IEFGX0VDT05FVCwJIkFGX0VDT05FVCIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0ZJTEUKLQl7IEFGX0ZJTEUsCSJBRl9GSUxFIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfSU1QTElOSwotCXsgQUZfSU1QTElOSywJIkFGX0lNUExJTksiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9JTkVUCi0JeyBBRl9JTkVULAkiQUZfSU5FVCIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0lORVQ2Ci0JeyBBRl9JTkVUNiwJIkFGX0lORVQ2Igl9LAotI2VuZGlmCi0jaWZkZWYgQUZfSVBYCi0JeyBBRl9JUFgsCSJBRl9JUFgiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9JUkRBCi0JeyBBRl9JUkRBLAkiQUZfSVJEQSIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0lTTwotCXsgQUZfSVNPLAkiQUZfSVNPIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfS0VZCi0JeyBBRl9LRVksCSJBRl9LRVkiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9VTklYCi0JeyBBRl9VTklYLAkiQUZfVU5JWCIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX0xPQ0FMCi0JeyBBRl9MT0NBTCwJIkFGX0xPQ0FMIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfTkVUQkVVSQotCXsgQUZfTkVUQkVVSSwJIkFGX05FVEJFVUkiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9ORVRMSU5LCi0JeyBBRl9ORVRMSU5LLAkiQUZfTkVUTElOSyIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX05FVFJPTQotCXsgQUZfTkVUUk9NLAkiQUZfTkVUUk9NIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfUEFDS0VUCi0JeyBBRl9QQUNLRVQsCSJBRl9QQUNLRVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9QUFBPWAotCXsgQUZfUFBQT1gsCSJBRl9QUFBPWCIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX1JPU0UKLQl7IEFGX1JPU0UsCSJBRl9ST1NFIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfUk9VVEUKLQl7IEFGX1JPVVRFLAkiQUZfUk9VVEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9TRUNVUklUWQotCXsgQUZfU0VDVVJJVFksCSJBRl9TRUNVUklUWSIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX1NOQQotCXsgQUZfU05BLAkiQUZfU05BIgl9LAotI2VuZGlmCi0jaWZkZWYgQUZfVU5TUEVDCi0JeyBBRl9VTlNQRUMsCSJBRl9VTlNQRUMiCX0sCi0jZW5kaWYKLSNpZmRlZiBBRl9XQU5QSVBFCi0JeyBBRl9XQU5QSVBFLAkiQUZfV0FOUElQRSIJfSwKLSNlbmRpZgotI2lmZGVmIEFGX1gyNQotCXsgQUZfWDI1LAkiQUZfWDI1Igl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3R5cGVzW10gPSB7Ci0JeyBTT0NLX1NUUkVBTSwJIlNPQ0tfU1RSRUFNIgl9LAotCXsgU09DS19ER1JBTSwJIlNPQ0tfREdSQU0iCX0sCi0jaWZkZWYgU09DS19SQVcKLQl7IFNPQ0tfUkFXLAkiU09DS19SQVciCX0sCi0jZW5kaWYKLSNpZmRlZiBTT0NLX1NFUVBBQ0tFVAotCXsgU09DS19TRVFQQUNLRVQsIlNPQ0tfU0VRUEFDS0VUIn0sCi0jZW5kaWYKLSNpZmRlZiBTT0NLX1JETQotCXsgU09DS19SRE0sCSJTT0NLX1JETSIJfSwKLSNlbmRpZgotI2lmZGVmIFNPQ0tfUEFDS0VUCi0JeyBTT0NLX1BBQ0tFVCwJIlNPQ0tfUEFDS0VUIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja2V0bGF5ZXJzW10gPSB7Ci0jaWYgZGVmaW5lZChTT0xfSVApCi0JeyBTT0xfSVAsCSJTT0xfSVAiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9JQ01QKQotCXsgU09MX0lDTVAsCSJTT0xfSUNNUCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX1RDUCkKLQl7IFNPTF9UQ1AsCSJTT0xfVENQIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfVURQKQotCXsgU09MX1VEUCwJIlNPTF9VRFAiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9JUFY2KQotCXsgU09MX0lQVjYsCSJTT0xfSVBWNiIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX0lDTVBWNikKLQl7IFNPTF9JQ01QVjYsCSJTT0xfSUNNUFY2Igl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfUkFXKQotCXsgU09MX1JBVywJIlNPTF9SQVciCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9JUFgpCi0JeyBTT0xfSVBYLAkiU09MX0lQWCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX0lQWCkKLQl7IFNPTF9JUFgsCSJTT0xfSVBYIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfQVgyNSkKLQl7IFNPTF9BWDI1LAkiU09MX0FYMjUiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9BVEFMSykKLQl7IFNPTF9BVEFMSywJIlNPTF9BVEFMSyIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX05FVFJPTSkKLQl7IFNPTF9ORVRST00sCSJTT0xfTkVUUk9NIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfUk9TRSkKLQl7IFNPTF9ST1NFLAkiU09MX1JPU0UiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9ERUNORVQpCi0JeyBTT0xfREVDTkVULAkiU09MX0RFQ05FVCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX1gyNSkKLQl7IFNPTF9YMjUsCSJTT0xfWDI1Igl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfUEFDS0VUKQotCXsgU09MX1BBQ0tFVCwJIlNPTF9QQUNLRVQiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNPTF9BVE0pCi0JeyBTT0xfQVRNLAkiU09MX0FUTSIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoU09MX0FBTCkKLQl7IFNPTF9BQUwsCSJTT0xfQUFMIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfSVJEQSkKLQl7IFNPTF9JUkRBLAkiU09MX0lSREEiCX0sCi0jZW5kaWYKLQl7IFNPTF9TT0NLRVQsCSJTT0xfU09DS0VUIgl9LAkvKiBOZXZlciB1c2VkISAqLwotfTsKLS8qKiogV0FSTklORzogREFOR0VSIFdJTEwgUk9CSU5TT046IE5PVEUgInNvY2tldGxheWVycyIgYXJyYXkgYWJvdmUKLSAgICAgZmFsbHMgaW50byAicHJvdG9jb2xzIiBhcnJheSBiZWxvdyEhISEgICBUaGlzIGlzIGludGVuZGVkISEhICoqKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm90b2NvbHNbXSA9IHsKLQl7IElQUFJPVE9fSVAsCSJJUFBST1RPX0lQIgl9LAotCXsgSVBQUk9UT19JQ01QLAkiSVBQUk9UT19JQ01QIgl9LAotCXsgSVBQUk9UT19UQ1AsCSJJUFBST1RPX1RDUCIJfSwKLQl7IElQUFJPVE9fVURQLAkiSVBQUk9UT19VRFAiCX0sCi0jaWZkZWYgSVBQUk9UT19HR1AKLQl7IElQUFJPVE9fR0dQLAkiSVBQUk9UT19HR1AiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFBST1RPX0VHUAotCXsgSVBQUk9UT19FR1AsCSJJUFBST1RPX0VHUCIJfSwKLSNlbmRpZgotI2lmZGVmIElQUFJPVE9fUFVQCi0JeyBJUFBST1RPX1BVUCwJIklQUFJPVE9fUFVQIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBQUk9UT19JRFAKLQl7IElQUFJPVE9fSURQLAkiSVBQUk9UT19JRFAiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFBST1RPX0lQVjYKLQl7IElQUFJPVE9fSVBWNiwJIklQUFJPVE9fSVBWNiIJfSwKLSNlbmRpZgotI2lmZGVmIElQUFJPVE9fSUNNUFY2Ci0JeyBJUFBST1RPX0lDTVBWNiwiSVBQUk9UT19JQ01QVjYifSwKLSNlbmRpZgotI2lmZGVmIElQUFJPVE9fSUdNUAotCXsgSVBQUk9UT19JR01QLAkiSVBQUk9UT19JR01QIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBQUk9UT19IRUxMTwotCXsgSVBQUk9UT19IRUxMTywiSVBQUk9UT19IRUxMTyIJfSwKLSNlbmRpZgotI2lmZGVmIElQUFJPVE9fTkQKLQl7IElQUFJPVE9fTkQsCSJJUFBST1RPX05EIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBQUk9UT19SQVcKLQl7IElQUFJPVE9fUkFXLAkiSVBQUk9UT19SQVciCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFBST1RPX01BWAotCXsgSVBQUk9UT19NQVgsCSJJUFBST1RPX01BWCIJfSwKLSNlbmRpZgotI2lmZGVmIElQUFJPVE9fSVBJUAotCXsgSVBQUk9UT19JUElQLAkiSVBQUk9UT19JUElQIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnX2ZsYWdzW10gPSB7Ci0JeyBNU0dfT09CLAkiTVNHX09PQiIJfSwKLSNpZmRlZiBNU0dfRE9OVFJPVVRFCi0JeyBNU0dfRE9OVFJPVVRFLCJNU0dfRE9OVFJPVVRFIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX1BFRUsKLQl7IE1TR19QRUVLLAkiTVNHX1BFRUsiCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfQ1RSVU5DCi0JeyBNU0dfQ1RSVU5DLAkiTVNHX0NUUlVOQyIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19QUk9YWQotCXsgTVNHX1BST1hZLAkiTVNHX1BST1hZIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX0VPUgotCXsgTVNHX0VPUiwJIk1TR19FT1IiCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfV0FJVEFMTAotCXsgTVNHX1dBSVRBTEwsCSJNU0dfV0FJVEFMTCIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19UUlVOQwotCXsgTVNHX1RSVU5DLAkiTVNHX1RSVU5DIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX0NUUlVOQwotCXsgTVNHX0NUUlVOQywJIk1TR19DVFJVTkMiCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfRVJSUVVFVUUKLQl7IE1TR19FUlJRVUVVRSwJIk1TR19FUlJRVUVVRSIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19ET05UV0FJVAotCXsgTVNHX0RPTlRXQUlULAkiTVNHX0RPTlRXQUlUIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX0NPTkZJUk0KLQl7IE1TR19DT05GSVJNLAkiTVNHX0NPTkZJUk0iCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfUFJPQkUKLQl7IE1TR19QUk9CRSwJIk1TR19QUk9CRSIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19GSU4KLQl7IE1TR19GSU4sCSJNU0dfRklOIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX1NZTgotCXsgTVNHX1NZTiwJIk1TR19TWU4iCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfUlNUCi0JeyBNU0dfUlNULAkiTVNHX1JTVCIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19OT1NJR05BTAotCXsgTVNHX05PU0lHTkFMLAkiTVNHX05PU0lHTkFMIgl9LAotI2VuZGlmCi0jaWZkZWYgTVNHX01PUkUKLQl7IE1TR19NT1JFLAkiTVNHX01PUkUiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNvY2tvcHRpb25zW10gPSB7Ci0jaWZkZWYgU09fQUNDRVBUQ09OTgotCXsgU09fQUNDRVBUQ09OTiwJIlNPX0FDQ0VQVENPTk4iCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19BTExSQVcKLQl7IFNPX0FMTFJBVywJIlNPX0FMTFJBVyIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX0FUVEFDSF9GSUxURVIKLQl7IFNPX0FUVEFDSF9GSUxURVIsCSJTT19BVFRBQ0hfRklMVEVSIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fQklORFRPREVWSUNFCi0JeyBTT19CSU5EVE9ERVZJQ0UsCSJTT19CSU5EVE9ERVZJQ0UiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19CUk9BRENBU1QKLQl7IFNPX0JST0FEQ0FTVCwJIlNPX0JST0FEQ0FTVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX0JTRENPTVBBVAotCXsgU09fQlNEQ09NUEFULAkiU09fQlNEQ09NUEFUIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fREVCVUcKLQl7IFNPX0RFQlVHLAkiU09fREVCVUciCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19ERVRBQ0hfRklMVEVSCi0JeyBTT19ERVRBQ0hfRklMVEVSLAkiU09fREVUQUNIX0ZJTFRFUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX0RPTlRST1VURQotCXsgU09fRE9OVFJPVVRFLAkiU09fRE9OVFJPVVRFIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fRVJST1IKLQl7IFNPX0VSUk9SLAkiU09fRVJST1IiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19JQ1MKLQl7IFNPX0lDUywJIlNPX0lDUyIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX0lNQVNPQ0tFVAotCXsgU09fSU1BU09DS0VULAkiU09fSU1BU09DS0VUIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fS0VFUEFMSVZFCi0JeyBTT19LRUVQQUxJVkUsCSJTT19LRUVQQUxJVkUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19MSU5HRVIKLQl7IFNPX0xJTkdFUiwJIlNPX0xJTkdFUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX0xJU1RFTklORwotCXsgU09fTElTVEVOSU5HLAkiU09fTElTVEVOSU5HIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fTUdNVAotCXsgU09fTUdNVCwJIlNPX01HTVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19OT19DSEVDSwotCXsgU09fTk9fQ0hFQ0ssCSJTT19OT19DSEVDSyIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX09PQklOTElORQotCXsgU09fT09CSU5MSU5FLAkiU09fT09CSU5MSU5FIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fT1JEUkVMCi0JeyBTT19PUkRSRUwsCSJTT19PUkRSRUwiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19QQVJBTExFTFNWUgotCXsgU09fUEFSQUxMRUxTVlIsCSJTT19QQVJBTExFTFNWUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1BBU1NDUkVECi0JeyBTT19QQVNTQ1JFRCwJIlNPX1BBU1NDUkVEIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fUEVFUkNSRUQKLQl7IFNPX1BFRVJDUkVELAkiU09fUEVFUkNSRUQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19QRUVSTkFNRQotCXsgU09fUEVFUk5BTUUsCSJTT19QRUVSTkFNRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1BFRVJTRUMKLQl7IFNPX1BFRVJTRUMsCSJTT19QRUVSU0VDIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fUFJJT1JJVFkKLQl7IFNPX1BSSU9SSVRZLAkiU09fUFJJT1JJVFkiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19QUk9UT1RZUEUKLQl7IFNPX1BST1RPVFlQRSwJIlNPX1BST1RPVFlQRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1JDVkJVRgotCXsgU09fUkNWQlVGLAkiU09fUkNWQlVGIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fUkNWTE9XQVQKLQl7IFNPX1JDVkxPV0FULAkiU09fUkNWTE9XQVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19SQ1ZUSU1FTwotCXsgU09fUkNWVElNRU8sCSJTT19SQ1ZUSU1FTyIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1JEV1IKLQl7IFNPX1JEV1IsCSJTT19SRFdSIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fUkVVU0VBRERSCi0JeyBTT19SRVVTRUFERFIsCSJTT19SRVVTRUFERFIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19SRVVTRVBPUlQKLQl7IFNPX1JFVVNFUE9SVCwJIlNPX1JFVVNFUE9SVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OCi0JeyBTT19TRUNVUklUWV9BVVRIRU5USUNBVElPTiwiU09fU0VDVVJJVFlfQVVUSEVOVElDQVRJT04ifSwKLSNlbmRpZgotI2lmZGVmIFNPX1NFQ1VSSVRZX0VOQ1JZUFRJT05fTkVUV09SSwotCXsgU09fU0VDVVJJVFlfRU5DUllQVElPTl9ORVRXT1JLLCJTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksifSwKLSNlbmRpZgotI2lmZGVmIFNPX1NFQ1VSSVRZX0VOQ1JZUFRJT05fVFJBTlNQT1JUCi0JeyBTT19TRUNVUklUWV9FTkNSWVBUSU9OX1RSQU5TUE9SVCwiU09fU0VDVVJJVFlfRU5DUllQVElPTl9UUkFOU1BPUlQifSwKLSNlbmRpZgotI2lmZGVmIFNPX1NFTUEKLQl7IFNPX1NFTUEsCSJTT19TRU1BIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fU05EQlVGCi0JeyBTT19TTkRCVUYsCSJTT19TTkRCVUYiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19TTkRMT1dBVAotCXsgU09fU05ETE9XQVQsCSJTT19TTkRMT1dBVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1NORFRJTUVPCi0JeyBTT19TTkRUSU1FTywJIlNPX1NORFRJTUVPIgl9LAotI2VuZGlmCi0jaWZkZWYgU09fVElNRVNUQU1QCi0JeyBTT19USU1FU1RBTVAsCSJTT19USU1FU1RBTVAiCX0sCi0jZW5kaWYKLSNpZmRlZiBTT19UWVBFCi0JeyBTT19UWVBFLAkiU09fVFlQRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNPX1VTRUxPT1BCQUNLCi0JeyBTT19VU0VMT09QQkFDSywJIlNPX1VTRUxPT1BCQUNLIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNpZiAhZGVmaW5lZCAoU09MX0lQKSAmJiBkZWZpbmVkIChJUFBST1RPX0lQKQotI2RlZmluZSBTT0xfSVAgSVBQUk9UT19JUAotI2VuZGlmCi0KLSNpZmRlZiBTT0xfSVAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2NraXBvcHRpb25zW10gPSB7Ci0jaWZkZWYgSVBfVE9TCi0JeyBJUF9UT1MsCQkiSVBfVE9TIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQX1RUTAotCXsgSVBfVFRMLAkJIklQX1RUTCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9IRFJJTkNMCi0JeyBJUF9IRFJJTkNMLAkJIklQX0hEUklOQ0wiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfT1BUSU9OUwotCXsgSVBfT1BUSU9OUywJCSJJUF9PUFRJT05TIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQX1JPVVRFUl9BTEVSVAotCXsgSVBfUk9VVEVSX0FMRVJULAkiSVBfUk9VVEVSX0FMRVJUIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBfUkVDVk9QVElPTlMKLQl7IElQX1JFQ1ZPUFRJT05TLAkiSVBfUkVDVk9QVElPTlMiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9SRUNWT1BUUwotCXsgSVBfUkVDVk9QVFMsCQkiSVBfUkVDVk9QVFMiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfUkVDVlJFVE9QVFMKLQl7IElQX1JFQ1ZSRVRPUFRTLAkiSVBfUkVDVlJFVE9QVFMiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9SRUNWRFNUQUREUgotCXsgSVBfUkVDVkRTVEFERFIsCSJJUF9SRUNWRFNUQUREUiIJfSwKLSNlbmRpZgotI2lmZGVmIElQX1JFVE9QVFMKLQl7IElQX1JFVE9QVFMsCQkiSVBfUkVUT1BUUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9QS1RJTkZPCi0JeyBJUF9QS1RJTkZPLAkJIklQX1BLVElORk8iCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfUEtUT1BUSU9OUwotCXsgSVBfUEtUT1BUSU9OUywJIklQX1BLVE9QVElPTlMiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfTVRVX0RJU0NPVkVSCi0JeyBJUF9NVFVfRElTQ09WRVIsCSJJUF9NVFVfRElTQ09WRVIiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9SRUNWRVJSCi0JeyBJUF9SRUNWRVJSLAkJIklQX1JFQ1ZFUlIiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfUkVDVlRUTAotCXsgSVBfUkVDVlRUTCwJCSJJUF9SRUNSRUNWVFRMIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQX1JFQ1ZUT1MKLQl7IElQX1JFQ1ZUT1MsCQkiSVBfUkVDUkVDVlRPUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9NVFUKLQl7IElQX01UVSwJCSJJUF9NVFUiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBfTVVMVElDQVNUX0lGCi0JeyBJUF9NVUxUSUNBU1RfSUYsCSJJUF9NVUxUSUNBU1RfSUYiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9NVUxUSUNBU1RfVFRMCi0JeyBJUF9NVUxUSUNBU1RfVFRMLAkiSVBfTVVMVElDQVNUX1RUTCIJfSwKLSNlbmRpZgotI2lmZGVmIElQX01VTFRJQ0FTVF9MT09QCi0JeyBJUF9NVUxUSUNBU1RfTE9PUCwJIklQX01VTFRJQ0FTVF9MT09QIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBfQUREX01FTUJFUlNISVAKLQl7IElQX0FERF9NRU1CRVJTSElQLAkiSVBfQUREX01FTUJFUlNISVAiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9EUk9QX01FTUJFUlNISVAKLQl7IElQX0RST1BfTUVNQkVSU0hJUCwJIklQX0RST1BfTUVNQkVSU0hJUCIJfSwKLSNlbmRpZgotI2lmZGVmIElQX0JST0FEQ0FTVF9JRgotCXsgSVBfQlJPQURDQVNUX0lGLAkiSVBfQlJPQURDQVNUX0lGIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBfUkVDVklGSU5ERVgKLQl7IElQX1JFQ1ZJRklOREVYLAkiSVBfUkVDVklGSU5ERVgiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9NU0ZJTFRFUgotCXsgSVBfTVNGSUxURVIsCQkiSVBfTVNGSUxURVIiCQl9LAotI2VuZGlmCi0jaWZkZWYgTUNBU1RfTVNGSUxURVIKLQl7IE1DQVNUX01TRklMVEVSLAkiTUNBU1RfTVNGSUxURVIiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUF9GUkVFQklORAotCXsgSVBfRlJFRUJJTkQsCQkiSVBfRlJFRUJJTkQiCQl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLSNlbmRpZiAvKiBTT0xfSVAgKi8KLQotI2lmZGVmIFNPTF9JUFY2Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja2lwdjZvcHRpb25zW10gPSB7Ci0jaWZkZWYgSVBWNl9BRERSRk9STQotCXsgSVBWNl9BRERSRk9STSwJIklQVjZfQUREUkZPUk0iCQl9LAotI2VuZGlmCi0jaWZkZWYgTUNBU1RfRklMVEVSCi0JeyBNQ0FTVF9GSUxURVIsCQkiTUNBU1RfRklMVEVSIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQVjZfUEtUT1BUSU9OUwotCXsgSVBWNl9QS1RPUFRJT05TLAkiSVBWNl9QS1RPUFRJT05TIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9NVFUKLQl7IElQVjZfTVRVLAkJIklQVjZfTVRVIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQVjZfVjZPTkxZCi0JeyBJUFY2X1Y2T05MWSwJCSJJUFY2X1Y2T05MWSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFY2X1BLVElORk8KLQl7IElQVjZfUEtUSU5GTywJCSJJUFY2X1BLVElORk8iCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9IT1BMSU1JVAotCXsgSVBWNl9IT1BMSU1JVCwJIklQVjZfSE9QTElNSVQiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9SVEhEUgotCXsgSVBWNl9SVEhEUiwJCSJJUFY2X1JUSERSIgkJfSwKLSNlbmRpZgotI2lmZGVmIElQVjZfSE9QT1BUUwotCXsgSVBWNl9IT1BPUFRTLAkJIklQVjZfSE9QT1BUUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFY2X0RTVE9QVFMKLQl7IElQVjZfRFNUT1BUUywJCSJJUFY2X0RTVE9QVFMiCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9GTE9XSU5GTwotCXsgSVBWNl9GTE9XSU5GTywJIklQVjZfRkxPV0lORk8iCQl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9VTklDQVNUX0hPUFMKLQl7IElQVjZfVU5JQ0FTVF9IT1BTLAkiSVBWNl9VTklDQVNUX0hPUFMiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFY2X01VTFRJQ0FTVF9IT1BTCi0JeyBJUFY2X01VTFRJQ0FTVF9IT1BTLAkiSVBWNl9NVUxUSUNBU1RfSE9QUyIJfSwKLSNlbmRpZgotI2lmZGVmIElQVjZfTVVMVElDQVNUX0xPT1AKLQl7IElQVjZfTVVMVElDQVNUX0xPT1AsCSJJUFY2X01VTFRJQ0FTVF9MT09QIgl9LAotI2VuZGlmCi0jaWZkZWYgSVBWNl9NVUxUSUNBU1RfSUYKLQl7IElQVjZfTVVMVElDQVNUX0lGLAkiSVBWNl9NVUxUSUNBU1RfSUYiCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFY2X01UVV9ESVNDT1ZFUgotCXsgSVBWNl9NVFVfRElTQ09WRVIsCSJJUFY2X01UVV9ESVNDT1ZFUiIJfSwKLSNlbmRpZgotI2lmZGVmIElQVjZfUkVDVkVSUgotCXsgSVBWNl9SRUNWRVJSLAkJIklQVjZfUkVDVkVSUiIJCX0sCi0jZW5kaWYKLSNpZmRlZiBJUFY2X0ZMT1dJTkZPX1NFTkQKLQl7IElQVjZfRkxPV0lORk9fU0VORCwJIklQVjZfRkxPV0lORk9fU0VORCIJfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMCQkJfSwKLX07Ci0jZW5kaWYgLyogU09MX0lQVjYgKi8KLQotI2lmZGVmIFNPTF9JUFgKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2NraXB4b3B0aW9uc1tdID0gewotCXsgSVBYX1RZUEUsICAgICAiSVBYX1RZUEUiICAgICAgfSwKLQl7IDAsICAgICAgICAgICAgTlVMTCAgICAgICAgICAgIH0sCi19OwotI2VuZGlmIC8qIFNPTF9JUFggKi8KLQotI2lmZGVmIFNPTF9SQVcKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2NrcmF3b3B0aW9uc1tdID0gewotI2lmIGRlZmluZWQoSUNNUF9GSUxURVIpCi0JeyBJQ01QX0ZJTFRFUiwJCSJJQ01QX0ZJTFRFUiIJfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMCQl9LAotfTsKLSNlbmRpZiAvKiBTT0xfUkFXICovCi0KLSNpZmRlZiBTT0xfUEFDS0VUCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3BhY2tldG9wdGlvbnNbXSA9IHsKLQl7IFBBQ0tFVF9BRERfTUVNQkVSU0hJUCwJIlBBQ0tFVF9BRERfTUVNQkVSU0hJUCIJfSwKLQl7IFBBQ0tFVF9EUk9QX01FTUJFUlNISVAsCSJQQUNLRVRfRFJPUF9NRU1CRVJTSElQIn0sCi0jaWYgZGVmaW5lZChQQUNLRVRfUkVDVl9PVVRQVVQpCi0JeyBQQUNLRVRfUkVDVl9PVVRQVVQsCQkiUEFDS0VUX1JFQ1ZfT1VUUFVUIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChQQUNLRVRfUlhfUklORykKLQl7IFBBQ0tFVF9SWF9SSU5HLAkJIlBBQ0tFVF9SWF9SSU5HIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChQQUNLRVRfU1RBVElTVElDUykKLQl7IFBBQ0tFVF9TVEFUSVNUSUNTLAkJIlBBQ0tFVF9TVEFUSVNUSUNTIgl9LAotI2VuZGlmCi0JeyAwLAkJCQlOVUxMCQkJfSwKLX07Ci0jZW5kaWYgLyogU09MX1BBQ0tFVCAqLwotCi0jaWYgICFkZWZpbmVkIChTT0xfVENQKSAmJiBkZWZpbmVkIChJUFBST1RPX1RDUCkKLSNkZWZpbmUgU09MX1RDUCBJUFBST1RPX1RDUAotI2VuZGlmCi0KLSNpZmRlZiBTT0xfVENQCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3RjcG9wdGlvbnNbXSA9IHsKLQl7IFRDUF9OT0RFTEFZLAkJIlRDUF9OT0RFTEFZIgl9LAotCXsgVENQX01BWFNFRywJCSJUQ1BfTUFYU0VHIgl9LAotI2lmIGRlZmluZWQoVENQX0NPUkspCi0JeyBUQ1BfQ09SSywJCSJUQ1BfQ09SSyIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoVENQX0tFRVBJRExFKQotCXsgVENQX0tFRVBJRExFLAkJIlRDUF9LRUVQSURMRSIgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoVENQX0tFRVBJTlRWTCkKLQl7IFRDUF9LRUVQSU5UVkwsCSJUQ1BfS0VFUElOVFZMIiB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChUQ1BfS0VFUENOVCkKLQl7IFRDUF9LRUVQQ05ULAkJIlRDUF9LRUVQQ05UIiB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChUQ1BfTktFRVApCi0JeyBUQ1BfTktFRVAsCQkiVENQX05LRUVQIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChUQ1BfU1lOQ05UKQotCXsgVENQX1NZTkNOVCwJCSJUQ1BfU1lOQ05UIiB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChUQ1BfTElOR0VSMikKLQl7IFRDUF9MSU5HRVIyLAkJIlRDUF9MSU5HRVIyIiB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChUQ1BfREVGRVJfQUNDRVBUKQotCXsgVENQX0RFRkVSX0FDQ0VQVCwJIlRDUF9ERUZFUl9BQ0NFUFQiIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFRDUF9XSU5ET1dfQ0xBTVApCi0JeyBUQ1BfV0lORE9XX0NMQU1QLAkiVENQX1dJTkRPV19DTEFNUCIgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoVENQX0lORk8pCi0JeyBUQ1BfSU5GTywJCSJUQ1BfSU5GTyIgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoVENQX1FVSUNLQUNLKQotCXsgVENQX1FVSUNLQUNLLAkJIlRDUF9RVUlDS0FDSyIgfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMCQl9LAotfTsKLSNlbmRpZiAvKiBTT0xfVENQICovCi0KLSNpZmRlZiBTT0xfUkFXCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaWNtcGZpbHRlcmZsYWdzW10gPSB7Ci0jaWYgZGVmaW5lZChJQ01QX0VDSE9SRVBMWSkKLQl7ICgxPDxJQ01QX0VDSE9SRVBMWSksCQkiSUNNUF9FQ0hPUkVQTFkiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKElDTVBfREVTVF9VTlJFQUNIKQotCXsgKDE8PElDTVBfREVTVF9VTlJFQUNIKSwJIklDTVBfREVTVF9VTlJFQUNIIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChJQ01QX1NPVVJDRV9RVUVOQ0gpCi0JeyAoMTw8SUNNUF9TT1VSQ0VfUVVFTkNIKSwJIklDTVBfU09VUkNFX1FVRU5DSCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoSUNNUF9SRURJUkVDVCkKLQl7ICgxPDxJQ01QX1JFRElSRUNUKSwJCSJJQ01QX1JFRElSRUNUIgkJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoSUNNUF9FQ0hPKQotCXsgKDE8PElDTVBfRUNITyksCQkiSUNNUF9FQ0hPIgkJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoSUNNUF9USU1FX0VYQ0VFREVEKQotCXsgKDE8PElDTVBfVElNRV9FWENFRURFRCksCSJJQ01QX1RJTUVfRVhDRUVERUQiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKElDTVBfUEFSQU1FVEVSUFJPQikKLQl7ICgxPDxJQ01QX1BBUkFNRVRFUlBST0IpLAkiSUNNUF9QQVJBTUVURVJQUk9CIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChJQ01QX1RJTUVTVEFNUCkKLQl7ICgxPDxJQ01QX1RJTUVTVEFNUCksCQkiSUNNUF9USU1FU1RBTVAiCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKElDTVBfVElNRVNUQU1QUkVQTFkpCi0JeyAoMTw8SUNNUF9USU1FU1RBTVBSRVBMWSksCSJJQ01QX1RJTUVTVEFNUFJFUExZIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChJQ01QX0lORk9fUkVRVUVTVCkKLQl7ICgxPDxJQ01QX0lORk9fUkVRVUVTVCksCSJJQ01QX0lORk9fUkVRVUVTVCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoSUNNUF9JTkZPX1JFUExZKQotCXsgKDE8PElDTVBfSU5GT19SRVBMWSksCQkiSUNNUF9JTkZPX1JFUExZIgl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChJQ01QX0FERFJFU1MpCi0JeyAoMTw8SUNNUF9BRERSRVNTKSwJCSJJQ01QX0FERFJFU1MiCQl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChJQ01QX0FERFJFU1NSRVBMWSkKLQl7ICgxPDxJQ01QX0FERFJFU1NSRVBMWSksCSJJQ01QX0FERFJFU1NSRVBMWSIJfSwKLSNlbmRpZgotCXsgMCwJCQkJTlVMTAkJCX0sCi19OwotI2VuZGlmIC8qIFNPTF9SQVcgKi8KLQotI2lmIGRlZmluZWQoQUZfUEFDS0VUKSAvKiBmcm9tIGUuZy4gbGludXgvaWZfcGFja2V0LmggKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhZl9wYWNrZXRfdHlwZXNbXSA9IHsKLSNpZiBkZWZpbmVkKFBBQ0tFVF9IT1NUKQotCXsgUEFDS0VUX0hPU1QsCQkJIlBBQ0tFVF9IT1NUIgkJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX0JST0FEQ0FTVCkKLQl7IFBBQ0tFVF9CUk9BRENBU1QsCQkiUEFDS0VUX0JST0FEQ0FTVCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX01VTFRJQ0FTVCkKLQl7IFBBQ0tFVF9NVUxUSUNBU1QsCQkiUEFDS0VUX01VTFRJQ0FTVCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX09USEVSSE9TVCkKLQl7IFBBQ0tFVF9PVEhFUkhPU1QsCQkiUEFDS0VUX09USEVSSE9TVCIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX09VVEdPSU5HKQotCXsgUEFDS0VUX09VVEdPSU5HLAkJIlBBQ0tFVF9PVVRHT0lORyIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX0xPT1BCQUNLKQotCXsgUEFDS0VUX0xPT1BCQUNLLAkJIlBBQ0tFVF9MT09QQkFDSyIJfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoUEFDS0VUX0ZBU1RST1VURSkKLQl7IFBBQ0tFVF9GQVNUUk9VVEUsCQkiUEFDS0VUX0ZBU1RST1VURSIJfSwKLSNlbmRpZgotCXsgMCwJCQkJTlVMTAkJCX0sCi19OwotI2VuZGlmIC8qIGRlZmluZWQoQUZfUEFDS0VUKSAqLwotCi0KLXZvaWQKLXByaW50c29jayh0Y3AsIGFkZHIsIGFkZHJsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1pbnQgYWRkcmxlbjsKLXsKLQl1bmlvbiB7Ci0JCWNoYXIgcGFkWzEyOF07Ci0JCXN0cnVjdCBzb2NrYWRkciBzYTsKLQkJc3RydWN0IHNvY2thZGRyX2luIHNpbjsKLQkJc3RydWN0IHNvY2thZGRyX3VuIHNhdTsKLSNpZmRlZiBIQVZFX0lORVRfTlRPUAotCQlzdHJ1Y3Qgc29ja2FkZHJfaW42IHNhNjsKLSNlbmRpZgotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoQUZfSVBYKQotCQlzdHJ1Y3Qgc29ja2FkZHJfaXB4IHNpcHg7Ci0jZW5kaWYKLSNpZmRlZiBBRl9QQUNLRVQKLQkJc3RydWN0IHNvY2thZGRyX2xsIGxsOwotI2VuZGlmCi0jaWZkZWYgQUZfTkVUTElOSwotCQlzdHJ1Y3Qgc29ja2FkZHJfbmwgbmw7Ci0jZW5kaWYKLQl9IGFkZHJidWY7Ci0JY2hhciBzdHJpbmdfYWRkclsxMDBdOwotCi0JaWYgKGFkZHIgPT0gMCkgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKCF2ZXJib3NlKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCWlmICgoYWRkcmxlbjwyKSB8fCAoYWRkcmxlbj5zaXplb2YoYWRkcmJ1ZikpKQotCQlhZGRybGVuPXNpemVvZihhZGRyYnVmKTsKLQotCWlmICh1bW92ZW4odGNwLCBhZGRyLCBhZGRybGVuLCAoY2hhciopJmFkZHJidWYpIDwgMCkgewotCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQlyZXR1cm47Ci0JfQotCi0JdHByaW50Zigie3NhX2ZhbWlseT0iKTsKLQlwcmludHh2YWwoYWRkcmZhbXMsIGFkZHJidWYuc2Euc2FfZmFtaWx5LCAiQUZfPz8/Iik7Ci0JdHByaW50ZigiLCAiKTsKLQotCXN3aXRjaCAoYWRkcmJ1Zi5zYS5zYV9mYW1pbHkpIHsKLQljYXNlIEFGX1VOSVg6Ci0JCWlmIChhZGRybGVuPT0yKSB7Ci0JCQl0cHJpbnRmKCI8bmlsPiIpOwotCQl9IGVsc2UgaWYgKGFkZHJidWYuc2F1LnN1bl9wYXRoWzBdKSB7Ci0JCQl0cHJpbnRmKCJwYXRoPVwiJS0uKnNcIiIsIGFkZHJsZW4tMiwgYWRkcmJ1Zi5zYXUuc3VuX3BhdGgpOwotCQl9IGVsc2UgewotCQkJdHByaW50ZigicGF0aD1AJS0uKnMiLCBhZGRybGVuLTMsIGFkZHJidWYuc2F1LnN1bl9wYXRoKzEpOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgQUZfSU5FVDoKLQkJdHByaW50Zigic2luX3BvcnQ9aHRvbnMoJXUpLCBzaW5fYWRkcj1pbmV0X2FkZHIoXCIlc1wiKSIsCi0JCQludG9ocyhhZGRyYnVmLnNpbi5zaW5fcG9ydCksIGluZXRfbnRvYShhZGRyYnVmLnNpbi5zaW5fYWRkcikpOwotCQlicmVhazsKLSNpZmRlZiBIQVZFX0lORVRfTlRPUAotCWNhc2UgQUZfSU5FVDY6Ci0JCWluZXRfbnRvcChBRl9JTkVUNiwgJmFkZHJidWYuc2E2LnNpbjZfYWRkciwgc3RyaW5nX2FkZHIsIHNpemVvZihzdHJpbmdfYWRkcikpOwotCQl0cHJpbnRmKCJzaW42X3BvcnQ9aHRvbnMoJXUpLCBpbmV0X3B0b24oQUZfSU5FVDYsIFwiJXNcIiwgJnNpbjZfYWRkciksIHNpbjZfZmxvd2luZm89JXUiLAotCQkJCW50b2hzKGFkZHJidWYuc2E2LnNpbjZfcG9ydCksIHN0cmluZ19hZGRyLAotCQkJCWFkZHJidWYuc2E2LnNpbjZfZmxvd2luZm8pOwotI2lmZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECi0JCXsKLSNpZiBkZWZpbmVkKEhBVkVfSUZfSU5ERVhUT05BTUUpICYmIGRlZmluZWQoSU42X0lTX0FERFJfTElOS0xPQ0FMKSAmJiBkZWZpbmVkKElONl9JU19BRERSX01DX0xJTktMT0NBTCkKLQkJICAgIGludCBudW1lcmljc2NvcGUgPSAwOwotCQkgICAgaWYgKElONl9JU19BRERSX0xJTktMT0NBTCAoJmFkZHJidWYuc2E2LnNpbjZfYWRkcikKLQkJCSAgICB8fCBJTjZfSVNfQUREUl9NQ19MSU5LTE9DQUwgKCZhZGRyYnVmLnNhNi5zaW42X2FkZHIpKSB7Ci0JCQljaGFyIHNjb3BlYnVmW0lGTkFNU0laICsgMV07Ci0KLQkJCWlmIChpZl9pbmRleHRvbmFtZSAoYWRkcmJ1Zi5zYTYuc2luNl9zY29wZV9pZCwgc2NvcGVidWYpID09IE5VTEwpCi0JCQkgICAgbnVtZXJpY3Njb3BlKys7Ci0JCQllbHNlCi0JCQkgICAgdHByaW50ZigiLCBzaW42X3Njb3BlX2lkPWlmX25hbWV0b2luZGV4KFwiJXNcIikiLCBzY29wZWJ1Zik7Ci0JCSAgICB9IGVsc2UKLQkJCW51bWVyaWNzY29wZSsrOwotCi0JCSAgICBpZiAobnVtZXJpY3Njb3BlKQotI2VuZGlmCi0JCQl0cHJpbnRmKCIsIHNpbjZfc2NvcGVfaWQ9JXUiLCBhZGRyYnVmLnNhNi5zaW42X3Njb3BlX2lkKTsKLQkJfQotI2VuZGlmCi0JCSAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoQUZfSVBYKSAmJiBkZWZpbmVkKGxpbnV4KQotCWNhc2UgQUZfSVBYOgotCQl7Ci0JCQlpbnQgaTsKLQkJCXRwcmludGYoInNpcHhfcG9ydD1odG9ucygldSksICIsCi0JCQkJCW50b2hzKGFkZHJidWYuc2lweC5zaXB4X3BvcnQpKTsKLQkJCS8qIFllcywgSSBrbm93LCB0aGlzIGRvZXMgbm90IGxvb2sgdG9vCi0JCQkgKiBzdHJhY2UtaXNoLCBidXQgb3RoZXJ3aXNlIHRoZSBJUFgKLQkJCSAqIGFkZHJlc3NlcyBqdXN0IGxvb2sgbW9uc3Ryb3VzLi4uCi0JCQkgKiBBbnl3YXlzLCBmZWVsIGZyZWUgaWYgeW91IGRvbid0IGxpa2UKLQkJCSAqIHRoaXMgd2F5Li4gOikKLQkJCSAqLwotCQkJdHByaW50ZigiJTA4bHg6IiwgKHVuc2lnbmVkIGxvbmcpbnRvaGwoYWRkcmJ1Zi5zaXB4LnNpcHhfbmV0d29yaykpOwotCQkJZm9yIChpID0gMDsgaTxJUFhfTk9ERV9MRU47IGkrKykKLQkJCQl0cHJpbnRmKCIlMDJ4IiwgYWRkcmJ1Zi5zaXB4LnNpcHhfbm9kZVtpXSk7Ci0JCQl0cHJpbnRmKCIvWyUwMnhdIiwgYWRkcmJ1Zi5zaXB4LnNpcHhfdHlwZSk7Ci0JCX0KLQkJYnJlYWs7Ci0jZW5kaWYgLyogQUZfSVBYICYmIGxpbnV4ICovCi0jaWZkZWYgQUZfUEFDS0VUCi0JY2FzZSBBRl9QQUNLRVQ6Ci0JCXsKLQkJCWludCBpOwotCQkJdHByaW50ZigicHJvdG89JSMwNHgsIGlmJWQsIHBrdHR5cGU9IiwKLQkJCQkJbnRvaHMoYWRkcmJ1Zi5sbC5zbGxfcHJvdG9jb2wpLAotCQkJCQlhZGRyYnVmLmxsLnNsbF9pZmluZGV4KTsKLQkJCXByaW50eHZhbChhZl9wYWNrZXRfdHlwZXMsIGFkZHJidWYubGwuc2xsX3BrdHR5cGUsICI/Iik7Ci0JCQl0cHJpbnRmKCIsIGFkZHIoJWQpPXslZCwgIiwKLQkJCQkJYWRkcmJ1Zi5sbC5zbGxfaGFsZW4sCi0JCQkJCWFkZHJidWYubGwuc2xsX2hhdHlwZSk7Ci0JCQlmb3IgKGk9MDsgaTxhZGRyYnVmLmxsLnNsbF9oYWxlbjsgaSsrKQotCQkJCXRwcmludGYoIiUwMngiLCBhZGRyYnVmLmxsLnNsbF9hZGRyW2ldKTsKLQkJfQotCQlicmVhazsKLQotI2VuZGlmIC8qIEFGX0FQQUNLRVQgKi8KLSNpZmRlZiBBRl9ORVRMSU5LCi0JY2FzZSBBRl9ORVRMSU5LOgotCQl0cHJpbnRmKCJwaWQ9JWQsIGdyb3Vwcz0lMDh4IiwgYWRkcmJ1Zi5ubC5ubF9waWQsIGFkZHJidWYubmwubmxfZ3JvdXBzKTsKLQkJYnJlYWs7Ci0jZW5kaWYgLyogQUZfTkVUTElOSyAqLwotCS8qIEFGX0FYMjUgQUZfQVBQTEVUQUxLIEFGX05FVFJPTSBBRl9CUklER0UgQUZfQUFMNQotCUFGX1gyNSBBRl9ST1NFIGV0Yy4gc3RpbGwgbmVlZCB0byBiZSBkb25lICovCi0KLQlkZWZhdWx0OgotCQl0cHJpbnRmKCJzYV9kYXRhPSIpOwotCQlwcmludHN0cih0Y3AsIChsb25nKSAmKChzdHJ1Y3Qgc29ja2FkZHIgKikgYWRkciktPnNhX2RhdGEsCi0JCQlzaXplb2YgYWRkcmJ1Zi5zYS5zYV9kYXRhKTsKLQkJYnJlYWs7Ci0JfQotCXRwcmludGYoIn0iKTsKLX0KLQotI2lmIEhBVkVfU0VORE1TRwotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNjbXZhbHNbXSA9IHsKLSNpZmRlZiBTQ01fUklHSFRTCi0JeyBTQ01fUklHSFRTLAkJIlNDTV9SSUdIVFMiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0NNX0NSRURFTlRJQUxTCi0JeyBTQ01fQ1JFREVOVElBTFMsCSJTQ01fQ1JFREVOVElBTFMiCX0sCi0jZW5kaWYKLQl7IDAsCQkJTlVMTAkJCX0KLX07Ci0KLXN0YXRpYyB2b2lkCi1wcmludGNtc2doZHIodGNwLCBhZGRyLCBsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci11bnNpZ25lZCBsb25nIGFkZHI7Ci11bnNpZ25lZCBsb25nIGxlbjsKLXsKLQlzdHJ1Y3QgY21zZ2hkciAqY21zZyA9IGxlbiA8IHNpemVvZihzdHJ1Y3QgY21zZ2hkcikgPwotCQkJICAgICAgIE5VTEwgOiBtYWxsb2MobGVuKTsKLQlpZiAoY21zZyA9PSBOVUxMIHx8IHVtb3Zlbih0Y3AsIGFkZHIsIGxlbiwgKGNoYXIgKikgY21zZykgPCAwKSB7Ci0JCXRwcmludGYoIiwgbXNnX2NvbnRyb2w9JSNseCIsIGFkZHIpOwotCQlmcmVlKGNtc2cpOwotCQlyZXR1cm47Ci0JfQotCi0JdHByaW50ZigiLCB7Y21zZ19sZW49JXp1LCBjbXNnX2xldmVsPSIsIGNtc2ctPmNtc2dfbGVuKTsKLQlwcmludHh2YWwoc29ja2V0bGF5ZXJzLCBjbXNnLT5jbXNnX2xldmVsLCAiU09MXz8/PyIpOwotCXRwcmludGYoIiwgY21zZ190eXBlPSIpOwotCi0JaWYgKGNtc2ctPmNtc2dfbGV2ZWwgPT0gU09MX1NPQ0tFVCkgewotCQl1bnNpZ25lZCBsb25nIGNtc2dfbGVuOwotCi0JCXByaW50eHZhbChzY212YWxzLCBjbXNnLT5jbXNnX3R5cGUsICJTQ01fPz8/Iik7Ci0JCWNtc2dfbGVuID0gKGxlbiA8IGNtc2ctPmNtc2dfbGVuKSA/IGxlbiA6IGNtc2ctPmNtc2dfbGVuOwotCi0JCWlmIChjbXNnLT5jbXNnX3R5cGUgPT0gU0NNX1JJR0hUUwotCQkgICAgJiYgQ01TR19MRU4oc2l6ZW9mKGludCkpIDw9IGNtc2dfbGVuKSB7Ci0JCQlpbnQgKmZkcyA9IChpbnQgKikgQ01TR19EQVRBIChjbXNnKTsKLQkJCWludCBmaXJzdCA9IDE7Ci0KLQkJCXRwcmludGYoIiwgeyIpOwotCQkJd2hpbGUgKChjaGFyICopIGZkcyA8ICgoY2hhciAqKSBjbXNnICsgY21zZ19sZW4pKSB7Ci0JCQkJaWYgKCFmaXJzdCkKLQkJCQkJdHByaW50ZigiLCAiKTsKLQkJCQl0cHJpbnRmKCIlZCIsICpmZHMrKyk7Ci0JCQkJZmlyc3QgPSAwOwotCQkJfQotCQkJdHByaW50ZigifX0iKTsKLQkJCWZyZWUoY21zZyk7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJaWYgKGNtc2ctPmNtc2dfdHlwZSA9PSBTQ01fQ1JFREVOVElBTFMKLQkJICAgICYmIENNU0dfTEVOKHNpemVvZihzdHJ1Y3QgdWNyZWQpKSA8PSBjbXNnX2xlbikgewotCQkJc3RydWN0IHVjcmVkICp1YyA9IChzdHJ1Y3QgdWNyZWQgKikgQ01TR19EQVRBIChjbXNnKTsKLQotCQkJdHByaW50Zigie3BpZD0lbGQsIHVpZD0lbGQsIGdpZD0lbGR9fSIsCi0JCQkJKGxvbmcpdWMtPnBpZCwgKGxvbmcpdWMtPnVpZCwgKGxvbmcpdWMtPmdpZCk7Ci0JCQlmcmVlKGNtc2cpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCWZyZWUoY21zZyk7Ci0JdHByaW50ZigiLCAuLi59Iik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1wcmludG1zZ2hkcih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0Jc3RydWN0IG1zZ2hkciBtc2c7Ci0KLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmbXNnKSA8IDApIHsKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoInttc2dfbmFtZSglZCk9IiwgbXNnLm1zZ19uYW1lbGVuKTsKLQlwcmludHNvY2sodGNwLCAobG9uZyltc2cubXNnX25hbWUsIG1zZy5tc2dfbmFtZWxlbik7Ci0KLQl0cHJpbnRmKCIsIG1zZ19pb3YoJWx1KT0iLCAodW5zaWduZWQgbG9uZyltc2cubXNnX2lvdmxlbik7Ci0JdHByaW50X2lvdih0Y3AsICh1bnNpZ25lZCBsb25nKW1zZy5tc2dfaW92bGVuLAotCQkgICAodW5zaWduZWQgbG9uZyltc2cubXNnX2lvdik7Ci0KLSNpZmRlZiBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wKLQl0cHJpbnRmKCIsIG1zZ19jb250cm9sbGVuPSVsdSIsICh1bnNpZ25lZCBsb25nKW1zZy5tc2dfY29udHJvbGxlbik7Ci0JaWYgKG1zZy5tc2dfY29udHJvbGxlbikKLQkJcHJpbnRjbXNnaGRyKHRjcCwgKHVuc2lnbmVkIGxvbmcpIG1zZy5tc2dfY29udHJvbCwKLQkJCSAgICAgbXNnLm1zZ19jb250cm9sbGVuKTsKLQl0cHJpbnRmKCIsIG1zZ19mbGFncz0iKTsKLQlwcmludGZsYWdzKG1zZ19mbGFncywgbXNnLm1zZ19mbGFncywgIk1TR18/Pz8iKTsKLSNlbHNlIC8qICFIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgKi8KLQl0cHJpbnRmKCJtc2dfYWNjcmlnaHRzPSUjbHgsIG1zZ19hY2NyaWdodHNsZW49JXUiLAotCQkodW5zaWduZWQgbG9uZykgbXNnLm1zZ19hY2NyaWdodHMsIG1zZy5tc2dfYWNjcmlnaHRzbGVuKTsKLSNlbmRpZiAvKiAhSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MICovCi0JdHByaW50ZigifSIpOwotfQotCi0jZW5kaWYgLyogSEFWRV9TRU5ETVNHICovCi0KLWludAotc3lzX3NvY2tldCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKGRvbWFpbnMsIHRjcC0+dV9hcmdbMF0sICJQRl8/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR4dmFsKHNvY2t0eXBlcywgdGNwLT51X2FyZ1sxXSwgIlNPQ0tfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgewotCQljYXNlIFBGX0lORVQ6Ci0jaWZkZWYgUEZfSU5FVDYKLQkJY2FzZSBQRl9JTkVUNjoKLSNlbmRpZgotCQkJcHJpbnR4dmFsKHByb3RvY29scywgdGNwLT51X2FyZ1syXSwgIklQUFJPVE9fPz8/Iik7Ci0JCQlicmVhazsKLSNpZmRlZiBQRl9JUFgKLQkJY2FzZSBQRl9JUFg6Ci0JCQkvKiBCVFc6IEkgZG9uJ3QgYmVsaWV2ZSB0aGlzLi4gKi8KLQkJCXRwcmludGYoIlsiKTsKLQkJCXByaW50eHZhbChkb21haW5zLCB0Y3AtPnVfYXJnWzJdLCAiUEZfPz8/Iik7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCQlicmVhazsKLSNlbmRpZiAvKiBQRl9JUFggKi8KLQkJZGVmYXVsdDoKLQkJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NvX3NvY2tldCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJLyogbm90IHN1cmUgcmVhbGx5IHdoYXQgdGhlc2UgYXJncyBhcmUuLi4gYnV0IHRoaXMKLQkJICogaXMgaG93IHRydXNzIHByaW50cyBpdAotCQkgKi8KLQkJdHByaW50ZigiJWxkLCAlbGQsICVsZCwgIiwKLQkJICB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1szXSk7Ci0JCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1s0XSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zb19zb2NrZXRwYWlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCSAgCS8qIG5vdCBzdXJlIHdoYXQgdGhpcyBhcmcgaXMgKi8KLQkJdHByaW50ZigiMHglbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2JpbmQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfY29ubmVjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIHN5c19iaW5kKHRjcCk7Ci19Ci0KLWludAotc3lzX2xpc3Rlbih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlbHUiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2FjY2VwdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgaWYgKCF0Y3AtPnVfYXJnWzJdKQotCQl0cHJpbnRmKCIlI2x4LCBOVUxMIiwgdGNwLT51X2FyZ1sxXSk7Ci0JZWxzZSB7Ci0JCWlmICh0Y3AtPnVfYXJnWzFdID09IDAgfHwgc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQl9IGVsc2UgewotCQkJcHJpbnRzb2NrKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCX0KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzJdLCAiJWx1Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zZW5kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7Ci0JCS8qIGZsYWdzICovCi0JCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiTVNHXz8/PyIpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2VuZHRvKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7Ci0JCS8qIGZsYWdzICovCi0JCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiTVNHXz8/PyIpOwotCQkvKiB0byBhZGRyZXNzICovCi0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbNF0sIHRjcC0+dV9hcmdbNV0pOwotCQkvKiB0byBsZW5ndGggKi8KLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzVdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBIQVZFX1NFTkRNU0cKLQotaW50Ci1zeXNfc2VuZG1zZyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRtc2doZHIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJLyogZmxhZ3MgKi8KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogSEFWRV9TRU5ETVNHICovCi0KLWludAotc3lzX3JlY3YodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UKLQkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X3J2YWwpOwotCi0JCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNU0dfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19yZWN2ZnJvbSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaW50IGZyb21sZW47Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlI2x4LCAlbHUsICVsdSwgJSNseCwgJSNseCIsCi0JCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwKLQkJCQl0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzVdKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCS8qIGJ1ZiAqLwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJLyogbGVuICovCi0JCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJLyogZmxhZ3MgKi8KLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNU0dfPz8/Iik7Ci0JCS8qIGZyb20gYWRkcmVzcywgbGVuICovCi0JCWlmICghdGNwLT51X2FyZ1s0XSB8fCAhdGNwLT51X2FyZ1s1XSkgewotCQkJaWYgKHRjcC0+dV9hcmdbNF0gPT0gMCkKLQkJCQl0cHJpbnRmKCIsIE5VTEwiKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzRdKTsKLQkJCWlmICh0Y3AtPnVfYXJnWzVdID09IDApCi0JCQkJdHByaW50ZigiLCBOVUxMIik7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s1XSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzVdLCAmZnJvbWxlbikgPCAwKSB7Ci0JCQl0cHJpbnRmKCIsIHsuLi59LCBbP10iKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbNF0sIHRjcC0+dV9hcmdbNV0pOwotCQkvKiBmcm9tIGxlbmd0aCAqLwotCQl0cHJpbnRmKCIsIFsldV0iLCBmcm9tbGVuKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBIQVZFX1NFTkRNU0cKLQotaW50Ci1zeXNfcmVjdm1zZyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlCi0JCQlwcmludG1zZ2hkcih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCQkvKiBmbGFncyAqLwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1syXSwgIk1TR18/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBIQVZFX1NFTkRNU0cgKi8KLQotaW50Ci1zeXNfc2h1dGRvd24odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgJWxkIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCXN3aXRjaCAodGNwLT51X2FyZ1sxXSkgewotCQljYXNlIDA6Ci0JCQl0cHJpbnRmKCIlcyIsICIgLyogcmVjZWl2ZSAqLyIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgMToKLQkJCXRwcmludGYoIiVzIiwgIiAvKiBzZW5kICovIik7Ci0JCQlicmVhazsKLQkJY2FzZSAyOgotCQkJdHByaW50ZigiJXMiLCAiIC8qIHNlbmQgYW5kIHJlY2VpdmUgKi8iKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19nZXRzb2NrbmFtZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIHN5c19hY2NlcHQodGNwKTsKLX0KLQotaW50Ci1zeXNfZ2V0cGVlcm5hbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBzeXNfYWNjZXB0KHRjcCk7Ci19Ci0KLWludAotc3lzX3BpcGUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCi0jaWYgZGVmaW5lZChMSU5VWCkgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKFNIKSAmJiAhZGVmaW5lZChJQTY0KQotCWludCBmZHNbMl07Ci0KLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIGZkcywgKGNoYXIgKikgZmRzKSA8IDApCi0JCQl0cHJpbnRmKCJbLi4uXSIpOwotCQllbHNlCi0JCQl0cHJpbnRmKCJbJXUsICV1XSIsIGZkc1swXSwgZmRzWzFdKTsKLQl9Ci0jZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpIHx8IGRlZmluZWQoU0gpIHx8IGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKSB8fCBkZWZpbmVkKElBNjQpCi0JaWYgKGV4aXRpbmcodGNwKSkKLQkJdHByaW50ZigiWyVsdSwgJWx1XSIsIHRjcC0+dV9ydmFsLCBnZXRydmFsMih0Y3ApKTsKLSNlbmRpZgotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zb2NrZXRwYWlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSNpZmRlZiBMSU5VWAotCWludCBmZHNbMl07Ci0jZW5kaWYKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChkb21haW5zLCB0Y3AtPnVfYXJnWzBdLCAiUEZfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbChzb2NrdHlwZXMsIHRjcC0+dV9hcmdbMV0sICJTT0NLXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMF0pIHsKLQkJY2FzZSBQRl9JTkVUOgotCQkJcHJpbnR4dmFsKHByb3RvY29scywgdGNwLT51X2FyZ1syXSwgIklQUFJPVE9fPz8/Iik7Ci0JCQlicmVhazsKLSNpZmRlZiBQRl9JUFgKLQkJY2FzZSBQRl9JUFg6Ci0JCQkvKiBCVFc6IEkgZG9uJ3QgYmVsaWV2ZSB0aGlzLi4gKi8KLQkJCXRwcmludGYoIlsiKTsKLQkJCXByaW50eHZhbChkb21haW5zLCB0Y3AtPnVfYXJnWzJdLCAiUEZfPz8/Iik7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCQlicmVhazsKLSNlbmRpZiAvKiBQRl9JUFggKi8KLQkJZGVmYXVsdDoKLQkJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCQkJYnJlYWs7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotI2lmZGVmIExJTlVYCi0JCWlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzNdLCBzaXplb2YgZmRzLCAoY2hhciAqKSBmZHMpIDwgMCkKLQkJCXRwcmludGYoIiwgWy4uLl0iKTsKLQkJZWxzZQotCQkJdHByaW50ZigiLCBbJXUsICV1XSIsIGZkc1swXSwgZmRzWzFdKTsKLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQkJdHByaW50ZigiLCBbJWx1LCAlbHVdIiwgdGNwLT51X3J2YWwsIGdldHJ2YWwyKHRjcCkpOwotI2VuZGlmIC8qIFNVTk9TNCB8fCBTVlI0IHx8IEZSRUVCU0QgKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldHNvY2tvcHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50eHZhbChzb2NrZXRsYXllcnMsIHRjcC0+dV9hcmdbMV0sICJTT0xfPz8/Iik7Ci0JCXRwcmludGYgKCIsICIpOwotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSBTT0xfU09DS0VUOgotCQkJcHJpbnR4dmFsKHNvY2tvcHRpb25zLCB0Y3AtPnVfYXJnWzJdLCAiU09fPz8/Iik7Ci0JCQlicmVhazsKLSNpZmRlZiBTT0xfSVAKLQkJY2FzZSBTT0xfSVA6Ci0JCQlwcmludHh2YWwoc29ja2lwb3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIklQXz8/PyIpOwotCQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTT0xfSVBWNgotCQljYXNlIFNPTF9JUFY2OgotCQkJcHJpbnR4dmFsKHNvY2tpcHY2b3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIklQVjZfPz8/Iik7Ci0JCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFNPTF9JUFgKLQkJY2FzZSBTT0xfSVBYOgotCQkJcHJpbnR4dmFsKHNvY2tpcHhvcHRpb25zLCB0Y3AtPnVfYXJnWzJdLCAiSVBYXz8/PyIpOwotCQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTT0xfUEFDS0VUCi0JCWNhc2UgU09MX1BBQ0tFVDoKLQkJCXByaW50eHZhbChzb2NrcGFja2V0b3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIlBBQ0tFVF8/Pz8iKTsKLQkJCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgU09MX1RDUAotCQljYXNlIFNPTF9UQ1A6Ci0JCQlwcmludHh2YWwoc29ja3RjcG9wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJUQ1BfPz8/Iik7Ci0JCQlicmVhazsKLSNlbmRpZgotCi0JCS8qIFNPTF9BWDI1IFNPTF9ST1NFIFNPTF9BVEFMSyBTT0xfTkVUUk9NIFNPTF9VRFAgU09MX0RFQ05FVCBTT0xfWDI1Ci0JCSAqIGV0Yy4gc3RpbGwgbmVlZCB3b3JrICovCi0JCWRlZmF1bHQ6Ci0JCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJCWJyZWFrOwotCQl9Ci0JfSBlbHNlIHsKLQkJaW50IGxlbjsKLQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUgKHRjcCwgdGNwLT51X2FyZ1s0XSwgJmxlbikgPCAwKSB7Ci0JCQl0cHJpbnRmKCIsICUjbHgsICUjbHgiLAotCQkJCXRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSBTT0xfU09DS0VUOgotCQkJc3dpdGNoICh0Y3AtPnVfYXJnWzJdKSB7Ci0jaWZkZWYgU09fTElOR0VSCi0JCQljYXNlIFNPX0xJTkdFUjoKLQkJCSAgICAgICAgaWYgKGxlbiA9PSBzaXplb2YgKHN0cnVjdCBsaW5nZXIpKSB7Ci0JCQkJCXN0cnVjdCBsaW5nZXIgbGluZ2VyOwotCQkJCQlpZiAodW1vdmUgKHRjcCwKLQkJCQkJCSAgIHRjcC0+dV9hcmdbM10sCi0JCQkJCQkgICAmbGluZ2VyKSA8IDApCi0JCQkJCQlicmVhazsKLQkJCQkJdHByaW50ZigiLCB7b25vZmY9JWQsIGxpbmdlcj0lZH0sICIKLQkJCQkJCSJbJWRdIiwKLQkJCQkJCWxpbmdlci5sX29ub2ZmLAotCQkJCQkJbGluZ2VyLmxfbGluZ2VyLAotCQkJCQkJbGVuKTsKLQkJCQkJcmV0dXJuIDA7Ci0JCQkJfQotCQkJCWJyZWFrOwotI2VuZGlmCi0JCQl9Ci0JCQlicmVhazsKLQkJfQotCi0JCXRwcmludGYgKCIsICIpOwotCQlpZiAobGVuID09IHNpemVvZiAoaW50KSkgewotCQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzNdLCAiJWxkIik7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlwcmludHN0ciAodGNwLCB0Y3AtPnVfYXJnWzNdLCBsZW4pOwotCQl9Ci0JCXRwcmludGYoIiwgWyVkXSIsIGxlbik7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgZGVmaW5lZChJQ01QX0ZJTFRFUikKLXN0YXRpYyB2b2lkIHByaW50aWNtcGZpbHRlcih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0Jc3RydWN0IGljbXBfZmlsdGVyCWZpbHRlcjsKLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmZpbHRlcikgPCAwKSB7Ci0JCXRwcmludGYoInsuLi59Iik7Ci0JCXJldHVybjsKLQl9Ci0KLQl0cHJpbnRmKCJ+KCIpOwotCXByaW50ZmxhZ3MoaWNtcGZpbHRlcmZsYWdzLCB+ZmlsdGVyLmRhdGEsICJJQ01QXz8/PyIpOwotCXRwcmludGYoIikiKTsKLX0KLSNlbmRpZiAvKiBJQ01QX0ZJTFRFUiAqLwotCi1zdGF0aWMgaW50Ci1wcmludHNvY2tvcHQgKHRjcCwgbGV2ZWwsIG5hbWUsIGFkZHIsIGxlbikKLXN0cnVjdCB0Y2IgKnRjcDsKLWludCBsZXZlbDsKLWludCBuYW1lOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLXsKLQlwcmludHh2YWwoc29ja2V0bGF5ZXJzLCBsZXZlbCwgIlNPTF8/PyIpOwotCXRwcmludGYgKCIsICIpOwotCXN3aXRjaCAobGV2ZWwpIHsKLQkgICAgY2FzZSBTT0xfU09DS0VUOgotCQlwcmludHh2YWwoc29ja29wdGlvbnMsIG5hbWUsICJTT18/Pz8iKTsKLQkJc3dpdGNoIChuYW1lKSB7Ci0jaWYgZGVmaW5lZChTT19MSU5HRVIpCi0JCSAgICBjYXNlIFNPX0xJTkdFUjoKLQkJCWlmIChsZW4gPT0gc2l6ZW9mIChzdHJ1Y3QgbGluZ2VyKSkgewotCQkJCXN0cnVjdCBsaW5nZXIgbGluZ2VyOwotCQkJCWlmICh1bW92ZSAodGNwLCBhZGRyLCAmbGluZ2VyKSA8IDApCi0JCQkJCWJyZWFrOwotCQkJCXRwcmludGYoIiwge29ub2ZmPSVkLCBsaW5nZXI9JWR9IiwKLQkJCQkJbGluZ2VyLmxfb25vZmYsCi0JCQkJCWxpbmdlci5sX2xpbmdlcik7Ci0JCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCQlicmVhazsKLSNlbmRpZgotCQl9Ci0JCWJyZWFrOwotI2lmZGVmIFNPTF9JUAotCSAgICBjYXNlIFNPTF9JUDoKLQkJcHJpbnR4dmFsKHNvY2tpcG9wdGlvbnMsIG5hbWUsICJJUF8/Pz8iKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTT0xfSVBWNgotCSAgICBjYXNlIFNPTF9JUFY2OgotCQlwcmludHh2YWwoc29ja2lwdjZvcHRpb25zLCBuYW1lLCAiSVBWNl8/Pz8iKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTT0xfSVBYCi0JICAgIGNhc2UgU09MX0lQWDoKLQkJcHJpbnR4dmFsKHNvY2tpcHhvcHRpb25zLCBuYW1lLCAiSVBYXz8/PyIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFNPTF9QQUNLRVQKLQkgICAgY2FzZSBTT0xfUEFDS0VUOgotCQlwcmludHh2YWwoc29ja3BhY2tldG9wdGlvbnMsIG5hbWUsICJQQUNLRVRfPz8/Iik7Ci0JCS8qIFRPRE86IGRlY29kZSBwYWNrYXRlX21yZXEgZm9yIFBBQ0tFVF8qX01FTUJFUlNISVAgKi8KLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTT0xfVENQCi0JICAgIGNhc2UgU09MX1RDUDoKLQkJcHJpbnR4dmFsKHNvY2t0Y3BvcHRpb25zLCBuYW1lLCAiVENQXz8/PyIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFNPTF9SQVcKLQkgICAgY2FzZSBTT0xfUkFXOgotCQlwcmludHh2YWwoc29ja3Jhd29wdGlvbnMsIG5hbWUsICJSQVdfPz8/Iik7Ci0JCXN3aXRjaCAobmFtZSkgewotI2lmIGRlZmluZWQoSUNNUF9GSUxURVIpCi0JCSAgICBjYXNlIElDTVBfRklMVEVSOgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50aWNtcGZpbHRlcih0Y3AsIGFkZHIpOwotCQkJcmV0dXJuIDA7Ci0jZW5kaWYKLQkJfQotCQlicmVhazsKLSNlbmRpZgotCi0JCS8qIFNPTF9BWDI1IFNPTF9BVEFMSyBTT0xfTkVUUk9NIFNPTF9VRFAgU09MX0RFQ05FVCBTT0xfWDI1Ci0JCSAqIGV0Yy4gc3RpbGwgbmVlZCB3b3JrICAqLwotCi0JICAgIGRlZmF1bHQ6Ci0JCXRwcmludGYoIiV1IiwgbmFtZSk7Ci0JfQotCi0JLyogZGVmYXVsdCBhcmcgcHJpbnRpbmcgKi8KLQotCXRwcmludGYgKCIsICIpOwotCi0JaWYgKGxlbiA9PSBzaXplb2YgKGludCkpIHsKLQkJcHJpbnRudW0odGNwLCBhZGRyLCAiJWxkIik7Ci0JfQotCWVsc2UgewotCQlwcmludHN0ciAodGNwLCBhZGRyLCBsZW4pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotCi0jaWZkZWYgSEFWRV9TVFJVQ1RfT1BUSERSCi0KLXZvaWQKLXByaW50X3NvY2tfb3B0bWdtdCAodGNwLCBhZGRyLCBsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1pbnQgbGVuOwotewotCWludCBjID0gMDsKLQlzdHJ1Y3Qgb3B0aGRyIGhkcjsKLQotCXdoaWxlIChsZW4gPj0gKGludCkgc2l6ZW9mIGhkcikgewotCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmaGRyKSA8IDApIGJyZWFrOwotCQlpZiAoYysrKSB7Ci0JCQl0cHJpbnRmICgiLCAiKTsKLQkJfQotCQllbHNlIGlmIChsZW4gPiBoZHIubGVuICsgc2l6ZW9mIGhkcikgewotCQkJdHByaW50ZiAoIlsiKTsKLQkJfQotCQl0cHJpbnRmICgieyIpOwotCQlhZGRyICs9IHNpemVvZiBoZHI7Ci0JCWxlbiAtPSBzaXplb2YgaGRyOwotCQlwcmludHNvY2tvcHQgKHRjcCwgaGRyLmxldmVsLCBoZHIubmFtZSwgYWRkciwgaGRyLmxlbik7Ci0JCWlmIChoZHIubGVuID4gMCkgewotCQkJYWRkciArPSBoZHIubGVuOwotCQkJbGVuIC09IGhkci5sZW47Ci0JCX0KLQkJdHByaW50ZiAoIn0iKTsKLQl9Ci0JaWYgKGxlbiA+IDApIHsKLQkJaWYgKGMrKykgdHByaW50ZiAoIiwgIik7Ci0JCXByaW50c3RyICh0Y3AsIGFkZHIsIGxlbik7Ci0JfQotCWlmIChjID4gMSkgdHByaW50ZiAoIl0iKTsKLX0KLQotI2VuZGlmCi0KLWludAotc3lzX3NldHNvY2tvcHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50c29ja29wdCAodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdLAotCQkJICAgICAgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s0XSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgVU5JWFdBUkUgPj0gNwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja192ZXJzaW9uW10gPSB7Ci0JeyBfX05FVExJQl9VVzIxMV9TVlI0LAkiVVcyMTFfU1ZSNCIgfSwKLQl7IF9fTkVUTElCX1VXMjExX1hQRzQsCSJVVzIxMV9YUEc0IiB9LAotCXsgX19ORVRMSUJfR0VNSU5JX1NWUjQsCSJHRU1JTklfU1ZSNCIgfSwKLQl7IF9fTkVUTElCX0dFTUlOSV9YUEc0LAkiR0VNSU5JX1hQRzQiIH0sCi0JeyBfX05FVExJQl9GUDFfU1ZSNCwJIkZQMV9TVlI0IiB9LAotCXsgX19ORVRMSUJfRlAxX1hQRzQsCSJGUDFfWFBHNCIgfSwKLQl7IDAsICAgICAgICAgICAgTlVMTCAgICAgICAgICAgIH0sCi19OwotCi0KLWludAotbmV0bGliX2NhbGwodGNwLCBmdW5jKQotc3RydWN0IHRjYiAqdGNwOwotaW50ICgqZnVuYykgKCk7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaW50IGk7Ci0JCXByaW50eHZhbCAoc29ja192ZXJzaW9uLCB0Y3AtPnVfYXJnWzBdLCAiX19ORVRMSUJfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCS0tdGNwLT51X25hcmdzOwotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCi0JCQl0Y3AtPnVfYXJnW2ldID0gdGNwLT51X2FyZ1tpICsgMV07Ci0JCXJldHVybiBmdW5jICh0Y3ApOwotCi0JfQotCi0JcmV0dXJuIGZ1bmMgKHRjcCk7Ci19Ci0KLWludAotc3lzX3hzb2NrZXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfc29ja2V0KTsKLX0KLQotaW50Ci1zeXNfeHNvY2tldHBhaXIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfc29ja2V0cGFpcik7Ci19Ci0KLWludAotc3lzX3hiaW5kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX2JpbmQpOwotfQotCi1pbnQKLXN5c194Y29ubmVjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19jb25uZWN0KTsKLX0KLQotaW50Ci1zeXNfeGxpc3Rlbih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19saXN0ZW4pOwotfQotCi1pbnQKLXN5c194YWNjZXB0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX2FjY2VwdCk7Ci19Ci0KLWludAotc3lzX3hzZW5kbXNnKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX3NlbmRtc2cpOwotfQotCi1pbnQKLXN5c194cmVjdm1zZyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19yZWN2bXNnKTsKLX0KLQotaW50Ci1zeXNfeGdldHNvY2thZGRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwgKHNvY2tfdmVyc2lvbiwgdGNwLT51X2FyZ1swXSwgIl9fTkVUTElCXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlpZiAodGNwLT51X2FyZ1sxXSA9PSAwKSB7Ci0JCQl0cHJpbnRmICgiTE9DQUxOQU1FLCAiKTsKLQkJfQotCQllbHNlIGlmICh0Y3AtPnVfYXJnWzFdID09IDEpIHsKLQkJCXRwcmludGYgKCJSRU1PVEVOQU1FLCAiKTsKLQkJfQotCQllbHNlIHsKLQkJCXRwcmludGYgKCIlbGQsICIsIHRjcC0+dV9hcmcgWzFdKTsKLQkJfQotCQl0cHJpbnRmICgiJWxkLCAiLCB0Y3AtPnVfYXJnIFsyXSk7Ci0JfQotCWVsc2UgewotCQlpZiAodGNwLT51X2FyZ1szXSA9PSAwIHx8IHN5c2Vycm9yKHRjcCkpIHsKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJfSBlbHNlIHsKLQkJCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOwotCQl9Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50bnVtKHRjcCwgdGNwLT51X2FyZ1s0XSwgIiVsdSIpOwotCX0KLQotCXJldHVybiAwOwotCi19Ci0KLSNpZiAwCi0KLWludAotc3lzX3hzZXRzb2NrYWRkcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19zZXRzb2NrYWRkcik7Ci19Ci0KLSNlbmRpZgotCi1pbnQKLXN5c194Z2V0c29ja29wdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19nZXRzb2Nrb3B0KTsKLX0KLQotaW50Ci1zeXNfeHNldHNvY2tvcHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfc2V0c29ja29wdCk7Ci19Ci0KLWludAotc3lzX3hzaHV0ZG93bih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19zaHV0ZG93bik7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvcHJvYy5jIGIvcHJvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmN2M1NjM2Li4wMDAwMDAwCi0tLSBhL3Byb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDI2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBwcm9jLmMsdiAxLjcgMjAwNS8wNi8wMSAxOTowMjozNiByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotCi0jaWZkZWYgU1ZSNAotI2lmbmRlZiBIQVZFX01QX1BST0NGUwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY19zdGF0dXNfZmxhZ3NbXSA9IHsKLQl7IFBSX1NUT1BQRUQsCSJQUl9TVE9QUEVEIgl9LAotCXsgUFJfSVNUT1AsCSJQUl9JU1RPUCIJfSwKLQl7IFBSX0RTVE9QLAkiUFJfRFNUT1AiCX0sCi0JeyBQUl9BU0xFRVAsCSJQUl9BU0xFRVAiCX0sCi0JeyBQUl9GT1JLLAkiUFJfRk9SSyIJfSwKLQl7IFBSX1JMQywJIlBSX1JMQyIJfSwKLQl7IFBSX1BUUkFDRSwJIlBSX1BUUkFDRSIJfSwKLQl7IFBSX1BDSU5WQUwsCSJQUl9QQ0lOVkFMIgl9LAotCXsgUFJfSVNTWVMsCSJQUl9JU1NZUyIJfSwKLSNpZmRlZiBQUl9TVEVQCi0JeyBQUl9TVEVQLAkiUFJfU1RFUCIJfSwKLSNlbmRpZgotI2lmZGVmIFBSX0tMQwotCXsgUFJfS0xDLAkiUFJfS0xDIgl9LAotI2VuZGlmCi0jaWZkZWYgUFJfQVNZTkMKLQl7IFBSX0FTWU5DLAkiUFJfQVNZTkMiCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9QQ09NUEFUCi0JeyBQUl9QQ09NUEFULAkiUFJfUENPTVBBVCIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY19zdGF0dXNfd2h5W10gPSB7Ci0JeyBQUl9SRVFVRVNURUQsCSJQUl9SRVFVRVNURUQiCX0sCi0JeyBQUl9TSUdOQUxMRUQsCSJQUl9TSUdOQUxMRUQiCX0sCi0JeyBQUl9TWVNFTlRSWSwJIlBSX1NZU0VOVFJZIgl9LAotCXsgUFJfU1lTRVhJVCwJIlBSX1NZU0VYSVQiCX0sCi0JeyBQUl9KT0JDT05UUk9MLCJQUl9KT0JDT05UUk9MIgl9LAotCXsgUFJfRkFVTFRFRCwJIlBSX0ZBVUxURUQiCX0sCi0jaWZkZWYgUFJfU1VTUEVOREVECi0JeyBQUl9TVVNQRU5ERUQsCSJQUl9TVVNQRU5ERUQiCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9DSEVDS1BPSU5UCi0JeyBQUl9DSEVDS1BPSU5ULCJQUl9DSEVDS1BPSU5UIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm9jX3J1bl9mbGFnc1tdID0gewotCXsgUFJDU0lHLAkiUFJDU0lHIgl9LAotCXsgUFJDRkFVTFQsCSJQUkNGQVVMVCIJfSwKLQl7IFBSU1RSQUNFLAkiUFJTVFJBQ0UiCX0sCi0JeyBQUlNIT0xELAkiUFJTSE9MRCIJfSwKLQl7IFBSU0ZBVUxULAkiUFJTRkFVTFQiCX0sCi0JeyBQUlNWQUREUiwJIlBSU1ZBRERSIgl9LAotCXsgUFJTVEVQLAkiUFJTVEVQIgl9LAotCXsgUFJTQUJPUlQsCSJQUlNBQk9SVCIJfSwKLQl7IFBSU1RPUCwJIlBSU1RPUCIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1wcm9jX2lvY3RsKHRjcCwgY29kZSwgYXJnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IGNvZGUsIGFyZzsKLXsKLQlpbnQgdmFsOwotCXByc3RhdHVzX3Qgc3RhdHVzOwotCXBycnVuX3QgcnVuOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXJldHVybiAwOwotCi0Jc3dpdGNoIChjb2RlKSB7Ci0JY2FzZSBQSU9DU1RBVFVTOgotCWNhc2UgUElPQ1NUT1A6Ci0JY2FzZSBQSU9DV1NUT1A6Ci0JCWlmIChhcmcgPT0gMCkKLQkJCXRwcmludGYoIiwgTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiLCAlI3giLCBhcmcpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIGFyZywgJnN0YXR1cykgPCAwKQotCQkJdHByaW50ZigiLCB7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIiwge3ByX2ZsYWdzPSIpOwotCQkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c19mbGFncywgc3RhdHVzLnByX2ZsYWdzLCAiUFJfPz8/Iik7Ci0JCQlpZiAoc3RhdHVzLnByX3doeSkgewotCQkJCXRwcmludGYoIiwgcHJfd2h5PSIpOwotCQkJCXByaW50eHZhbChwcm9jX3N0YXR1c193aHksIHN0YXR1cy5wcl93aHksCi0JCQkJCSAgIlBSXz8/PyIpOwotCQkJfQotCQkJc3dpdGNoIChzdGF0dXMucHJfd2h5KSB7Ci0JCQljYXNlIFBSX1NJR05BTExFRDoKLQkJCWNhc2UgUFJfSk9CQ09OVFJPTDoKLQkJCQl0cHJpbnRmKCIsIHByX3doYXQ9Iik7Ci0JCQkJcHJpbnRzaWduYWwoc3RhdHVzLnByX3doYXQpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBQUl9GQVVMVEVEOgotCQkJCXRwcmludGYoIiwgcHJfd2hhdD0lZCIsIHN0YXR1cy5wcl93aGF0KTsKLQkJCQlicmVhazsKLQkJCWNhc2UgUFJfU1lTRU5UUlk6Ci0JCQljYXNlIFBSX1NZU0VYSVQ6Ci0JCQkJdHByaW50ZigiLCBwcl93aGF0PVNZU18lcyIsCi0JCQkJCXN5c2VudFtzdGF0dXMucHJfd2hhdF0uc3lzX25hbWUpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJdHByaW50ZigiLCAuLi59Iik7Ci0JCX0KLQkJcmV0dXJuIDE7Ci0JY2FzZSBQSU9DUlVOOgotCQlpZiAoYXJnID09IDApCi0JCQl0cHJpbnRmKCIsIE5VTEwiKTsKLQkJZWxzZSBpZiAodW1vdmUodGNwLCBhcmcsICZydW4pIDwgMCkKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCIsIHtwcl9mbGFncz0iKTsKLQkJCXByaW50ZmxhZ3MocHJvY19ydW5fZmxhZ3MsIHJ1bi5wcl9mbGFncywgIlBSPz8/Iik7Ci0JCQl0cHJpbnRmKCIsIC4uLn0iKTsKLQkJfQotCQlyZXR1cm4gMTsKLSNpZmRlZiBQSU9DU0VUCi0JY2FzZSBQSU9DU0VUOgotCWNhc2UgUElPQ1JFU0VUOgotCQlpZiAodW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKLQkJCXRwcmludGYoIiwgWz9dIik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiLCBbIik7Ci0JCQlwcmludGZsYWdzKHByb2Nfc3RhdHVzX2ZsYWdzLCB2YWwsICJQUl8/Pz8iKTsKLQkJCXRwcmludGYoIl0iKTsKLQkJfQotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBQSU9DU0VUICovCi0JY2FzZSBQSU9DS0lMTDoKLQljYXNlIFBJT0NVTktJTEw6Ci0JCS8qIHRha2VzIGEgcG9pbnRlciB0byBhIHNpZ25hbCAqLwotCQlpZiAodW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKLQkJCXRwcmludGYoIiwgWz9dIik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiLCBbIik7Ci0JCQlwcmludHNpZ25hbCh2YWwpOwotCQkJdHByaW50ZigiXSIpOwotCQl9Ci0JCXJldHVybiAxOwotCWNhc2UgUElPQ1NGT1JLOgotCWNhc2UgUElPQ1JGT1JLOgotCWNhc2UgUElPQ1NSTEM6Ci0JY2FzZSBQSU9DUlJMQzoKLQkJLyogZG9lc24ndCB0YWtlIGFuIGFyZyAqLwotCQlyZXR1cm4gMTsKLQlkZWZhdWx0OgotCQkvKiBhZCBuYXNldW0gKi8KLQkJcmV0dXJuIDA7Ci0JfQotfQotCi0jZW5kaWYgLyogSEFWRV9NUF9QUk9DRlMgKi8KLSNlbmRpZiAvKiBTVlI0ICovCi0KLSNpZmRlZiBGUkVFQlNECi0jaW5jbHVkZSA8c3lzL3Bpb2N0bC5oPgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY19zdGF0dXNfd2h5W10gPSB7Ci0JeyBTX0VYRUMsCSJTX0VYRUMiCX0sCi0JeyBTX1NJRywJIlNfU0lHIgkJfSwKLQl7IFNfU0NFLAkiU19TQ0UiCQl9LAotCXsgU19TQ1gsCSJTX1NDWCIJCX0sCi0JeyBTX0NPUkUsCSJTX0NPUkUiCX0sCi0JeyBTX0VYSVQsCSJTX0VYSVQiCX0sCi0JeyAwLAkJTlVMTAkJfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByb2Nfc3RhdHVzX2ZsYWdzW10gPSB7Ci0JeyBQRl9MSU5HRVIsCSJQRl9MSU5HRVIiCX0sCi0JeyBQRl9JU1VHSUQsCSJQRl9JU1VHSUQiCX0sCi0JeyAwLAkJTlVMTAkJfQotfTsKLQotaW50Ci1wcm9jX2lvY3RsKHRjcCwgY29kZSwgYXJnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IGNvZGUsIGFyZzsKLXsKLQlpbnQgdmFsOwotCXN0cnVjdCBwcm9jZnNfc3RhdHVzIHN0YXR1czsKLQotCWlmIChlbnRlcmluZyh0Y3ApKQotCQlyZXR1cm4gMDsKLQotCXN3aXRjaCAoY29kZSkgewotCWNhc2UgUElPQ1NUQVRVUzoKLQljYXNlIFBJT0NXQUlUOgotCQlpZiAoYXJnID09IDApCi0JCQl0cHJpbnRmKCIsIE5VTEwiKTsKLQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiwgJXgiLCBhcmcpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIGFyZywgJnN0YXR1cykgPCAwKQotCQkJdHByaW50ZigiLCB7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIiwge3N0YXRlPSVkLCBmbGFncz0iLCBzdGF0dXMuc3RhdGUpOwotCQkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c19mbGFncywgc3RhdHVzLmZsYWdzLCAiUEZfPz8/Iik7Ci0JCQl0cHJpbnRmKCIsIGV2ZW50cz0iKTsKLQkJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfd2h5LCBzdGF0dXMuZXZlbnRzLCAiU18/Pz8iKTsKLQkJCXRwcmludGYoIiwgd2h5PSIpOwotCQkJcHJpbnR4dmFsKHByb2Nfc3RhdHVzX3doeSwgc3RhdHVzLndoeSwgIlNfPz8/Iik7Ci0JCQl0cHJpbnRmKCIsIHZhbD0lbHV9Iiwgc3RhdHVzLnZhbCk7Ci0JCX0KLQkJcmV0dXJuIDE7Ci0JY2FzZSBQSU9DQklTOgotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKHByb2Nfc3RhdHVzX3doeSwgYXJnLCAiU18/Pz8iKTsKLQkJcmV0dXJuIDE7Ci0JCXJldHVybiAxOwotCWNhc2UgUElPQ1NGTDoKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c19mbGFncywgYXJnLCAiUEZfPz8/Iik7Ci0JCXJldHVybiAxOwotCWNhc2UgUElPQ0dGTDoKLQkgICAgICAgIGlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiLCAlI3giLCBhcmcpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIGFyZywgJnZhbCkgPCAwKQotCQkJdHByaW50ZigiLCB7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIiwgWyIpOwotCQkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c19mbGFncywgdmFsLCAiUEZfPz8/Iik7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCX0KLQkJcmV0dXJuIDE7Ci0JZGVmYXVsdDoKLQkJLyogYWQgbmFzZXVtICovCi0JCXJldHVybiAwOwotCX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvcHJvY2Vzcy5jIGIvcHJvY2Vzcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGJjOGQ1Li4wMDAwMDAwCi0tLSBhL3Byb2Nlc3MuYworKysgL2Rldi9udWxsCkBAIC0xLDMyNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCi0gKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKLSAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMDAgUG9ja2V0UGVuZ3VpbnMgSW5jLiAgTGludXggZm9yIEhpdGFjaGkgU3VwZXJICi0gKiAgICAgICAgICAgICAgICAgICAgcG9ydCBieSBHcmVnIEJhbmtzIDxnYmFua3NAcG9ja2V0cGVuZ3VpbnMuY29tPgotCi0gKgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogcHJvY2Vzcy5jLHYgMS45NyAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0jaW5jbHVkZSA8YXNtL3VzZXIuaD4KLSNlbHNlCi0jaW5jbHVkZSA8c3lzL3VzZXIuaD4KLSNlbmRpZgotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaWZkZWYgU1VOT1M0Ci0jaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4KLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmZGVmIEZSRUVCU0QKLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotLyogZm9yIHN0cnVjdCBzY2hlZF9wYXJhbSAqLwotI2RlZmluZSBzY2hlZF9wcmlvcml0eSAgX19zY2hlZF9wcmlvcml0eQotI2VuZGlmCi0KLSNpZiBIQVZFX0FTTV9SRUdfSAotI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotIyAgZGVmaW5lIGZwcSBrZXJuZWxfZnBxCi0jICBkZWZpbmUgZnEga2VybmVsX2ZxCi0jICBkZWZpbmUgZnB1IGtlcm5lbF9mcHUKLSNlbmRpZiAvKiBTUEFSQyB8fCBTUEFSQzY0ICovCi0jaW5jbHVkZSA8YXNtL3JlZy5oPgotI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotIyAgdW5kZWYgZnBxCi0jICB1bmRlZiBmcQotIyAgdW5kZWYgZnB1Ci0jZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLwotI2VuZGlmIC8qIEhBVkVfQVNNX1JFR19IICovCi0KLSNpZmRlZiBIQVZFX1NZU19SRUdfSAotIyBpbmNsdWRlIDxzeXMvcmVnLmg+Ci0jaWZuZGVmIFBUUkFDRV9QRUVLVVNSCi0jIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKLSNlbmRpZgotI2lmbmRlZiBQVFJBQ0VfUE9LRVVTUgotIyBkZWZpbmUgUFRSQUNFX1BPS0VVU1IgUFRSQUNFX1BPS0VVU0VSCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9MSU5VWF9QVFJBQ0VfSAotI3VuZGVmIFBUUkFDRV9TWVNDQUxMCi0jIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKLSMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCi0jIGVuZGlmCi0jIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKLSMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCi0jIGVuZGlmCi0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jIHVuZGVmIGlhNjRfZnByZWcKLSMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKLSMgZGVmaW5lIHJfcGMgcl90cGMKLSMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKLSMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKLSMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKLSMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKLSNlbmRpZiAvKiBMSU5VWCAmJiBTUEFSQzY0ICovCi0KLSNpZmRlZiBIQVZFX0xJTlVYX0ZVVEVYX0gKLSNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgotI2VuZGlmCi0jaWYgZGVmaW5lZCBMSU5VWAotIyBpZm5kZWYgRlVURVhfV0FJVAotIyAgZGVmaW5lIEZVVEVYX1dBSVQgMAotIyBlbmRpZgotIyBpZm5kZWYgRlVURVhfV0FLRQotIyAgZGVmaW5lIEZVVEVYX1dBS0UgMQotIyBlbmRpZgotIyBpZm5kZWYgRlVURVhfRkQKLSMgIGRlZmluZSBGVVRFWF9GRCAyCi0jIGVuZGlmCi0jIGlmbmRlZiBGVVRFWF9SRVFVRVVFCi0jICBkZWZpbmUgRlVURVhfUkVRVUVVRSAzCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmZGVmIExJTlVYCi0jaW5jbHVkZSA8c2NoZWQuaD4KLSNpbmNsdWRlIDxhc20vcG9zaXhfdHlwZXMuaD4KLSN1bmRlZiBHRVRHUk9VUFNfVAotI2RlZmluZSBHRVRHUk9VUFNfVCBfX2tlcm5lbF9naWRfdAotI3VuZGVmIEdFVEdST1VQUzMyX1QKLSNkZWZpbmUgR0VUR1JPVVBTMzJfVCBfX2tlcm5lbF9naWQzMl90Ci0jZW5kaWYgLyogTElOVVggKi8KLQotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSUE2NCkKLSMgaW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+Ci0jIGluY2x1ZGUgPGFzbS9yc2UuaD4KLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9QUkNUTAotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2VuZGlmCi0KLSNpZm5kZWYgV0NPUkVEVU1QCi0jZGVmaW5lIFdDT1JFRFVNUChzdGF0dXMpICgoc3RhdHVzKSAmIDAyMDApCi0jZW5kaWYKLQotLyogV1RBOiB0aGlzIHdhcyBgJiYgIWRlZmluZWQoTElOVVhTUEFSQyknLCB0aGlzIHNlZW1zIHVubmVlZGVkIHRob3VnaD8gKi8KLSNpZiBkZWZpbmVkKEhBVkVfUFJDVEwpCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJjdGxfb3B0aW9uc1tdID0gewotI2lmZGVmIFBSX01BWFBST0NTCi0JeyBQUl9NQVhQUk9DUywJCSJQUl9NQVhQUk9DUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9JU0JMT0NLRUQKLQl7IFBSX0lTQkxPQ0tFRCwJCSJQUl9JU0JMT0NLRUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUFJfU0VUU1RBQ0tTSVpFCi0JeyBQUl9TRVRTVEFDS1NJWkUsCSJQUl9TRVRTVEFDS1NJWkUiCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9HRVRTVEFDS1NJWkUKLQl7IFBSX0dFVFNUQUNLU0laRSwJIlBSX0dFVFNUQUNLU0laRSIJfSwKLSNlbmRpZgotI2lmZGVmIFBSX01BWFBQUk9DUwotCXsgUFJfTUFYUFBST0NTLAkJIlBSX01BWFBQUk9DUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9VTkJMS09ORVhFQwotCXsgUFJfVU5CTEtPTkVYRUMsCSJQUl9VTkJMS09ORVhFQyIJfSwKLSNlbmRpZgotI2lmZGVmIFBSX0FUT01JQ1NJTQotCXsgUFJfQVRPTUlDU0lNLAkJIlBSX0FUT01JQ1NJTSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9TRVRFWElUU0lHCi0JeyBQUl9TRVRFWElUU0lHLAkiUFJfU0VURVhJVFNJRyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9SRVNJREVOVAotCXsgUFJfUkVTSURFTlQsCQkiUFJfUkVTSURFTlQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUFJfQVRUQUNIQUREUgotCXsgUFJfQVRUQUNIQUREUiwJIlBSX0FUVEFDSEFERFIiCQl9LAotI2VuZGlmCi0jaWZkZWYgUFJfREVUQUNIQUREUgotCXsgUFJfREVUQUNIQUREUiwJIlBSX0RFVEFDSEFERFIiCQl9LAotI2VuZGlmCi0jaWZkZWYgUFJfVEVSTUNISUxECi0JeyBQUl9URVJNQ0hJTEQsCQkiUFJfVEVSTUNISUxEIgkJfSwKLSNlbmRpZgotI2lmZGVmIFBSX0dFVFNITUFTSwotCXsgUFJfR0VUU0hNQVNLLAkJIlBSX0dFVFNITUFTSyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9HRVROU0hBUkUKLQl7IFBSX0dFVE5TSEFSRSwJCSJQUl9HRVROU0hBUkUiCQl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChQUl9TRVRfUERFQVRIU0lHKQotCXsgUFJfU0VUX1BERUFUSFNJRywJIlBSX1NFVF9QREVBVEhTSUciCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9DT1JFUElECi0JeyBQUl9DT1JFUElELAkJIlBSX0NPUkVQSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUFJfQVRUQUNIQUREUlBFUk0KLQl7IFBSX0FUVEFDSEFERFJQRVJNLAkiUFJfQVRUQUNIQUREUlBFUk0iCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9QVEhSRUFERVhJVAotCXsgUFJfUFRIUkVBREVYSVQsCSJQUl9QVEhSRUFERVhJVCIJfSwKLSNlbmRpZgotI2lmZGVmIFBSX1NFVF9QREVBVEhTSUcKLQl7IFBSX1NFVF9QREVBVEhTSUcsCSJQUl9TRVRfUERFQVRIU0lHIgl9LAotI2VuZGlmCi0jaWZkZWYgUFJfR0VUX1BERUFUSFNJRwotCXsgUFJfR0VUX1BERUFUSFNJRywJIlBSX0dFVF9QREVBVEhTSUciCX0sCi0jZW5kaWYKLSNpZmRlZiBQUl9HRVRfVU5BTElHTgotCXsgUFJfR0VUX1VOQUxJR04sCSJQUl9HRVRfVU5BTElHTiIJfSwKLSNlbmRpZgotI2lmZGVmIFBSX1NFVF9VTkFMSUdOCi0JeyBQUl9TRVRfVU5BTElHTiwJIlBSX1NFVF9VTkFMSUdOIgl9LAotI2VuZGlmCi0jaWZkZWYgUFJfR0VUX0tFRVBDQVBTCi0JeyBQUl9HRVRfS0VFUENBUFMsCSJQUl9HRVRfS0VFUF9DQVBTIgl9LAotI2VuZGlmCi0jaWZkZWYgUFJfU0VUX0tFRVBDQVBTCi0JeyBQUl9TRVRfS0VFUENBUFMsCSJQUl9TRVRfS0VFUF9DQVBTIgl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotCi1zdGF0aWMgY29uc3QgY2hhciAqCi11bmFsaWduY3RsX3N0cmluZyAodW5zaWduZWQgaW50IGN0bCkKLXsKLQlzdGF0aWMgY2hhciBidWZbMTZdOwotCi0Jc3dpdGNoIChjdGwpIHsKLSNpZmRlZiBQUl9VTkFMSUdOX05PUFJJTlQKLQkgICAgICBjYXNlIFBSX1VOQUxJR05fTk9QUklOVDoKLQkJcmV0dXJuICJOT1BSSU5UIjsKLSNlbmRpZgotI2lmZGVmIFBSX1VOQUxJR05fU0lHQlVTCi0JICAgICAgY2FzZSBQUl9VTkFMSUdOX1NJR0JVUzoKLQkJcmV0dXJuICJTSUdCVVMiOwotI2VuZGlmCi0JICAgICAgZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCXNwcmludGYoYnVmLCAiJXgiLCBjdGwpOwotCXJldHVybiBidWY7Ci19Ci0KLQotaW50Ci1zeXNfcHJjdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCBpOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHByY3RsX29wdGlvbnMsIHRjcC0+dV9hcmdbMF0sICJQUl8/Pz8iKTsKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7Ci0jaWZkZWYgUFJfR0VUTlNIQVJFCi0JCWNhc2UgUFJfR0VUTlNIQVJFOgotCQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBQUl9TRVRfREVBVEhTSUcKLQkJY2FzZSBQUl9HRVRfUERFQVRIU0lHOgotCQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBQUl9TRVRfVU5BTElHTgotCQljYXNlIFBSX1NFVF9VTkFMSUdOOgotCQkJdHByaW50ZigiLCAlcyIsIHVuYWxpZ25jdGxfc3RyaW5nKHRjcC0+dV9hcmdbMV0pKTsKLQkJCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgUFJfR0VUX1VOQUxJR04KLQkJY2FzZSBQUl9HRVRfVU5BTElHTjoKLQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQkJYnJlYWs7Ci0jZW5kaWYKLQkJZGVmYXVsdDoKLQkJCWZvciAoaSA9IDE7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKLQkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnW2ldKTsKLQkJCWJyZWFrOwotCQl9Ci0JfSBlbHNlIHsKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7Ci0jaWZkZWYgUFJfR0VUX1BERUFUSFNJRwotCQljYXNlIFBSX0dFVF9QREVBVEhTSUc6Ci0JCQlmb3IgKGk9MTsgaTx0Y3AtPnVfbmFyZ3M7IGkrKykKLQkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnW2ldKTsKLQkJCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgUFJfU0VUX1VOQUxJR04KLQkJY2FzZSBQUl9TRVRfVU5BTElHTjoKLQkJCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgUFJfR0VUX1VOQUxJR04KLQkJY2FzZSBQUl9HRVRfVU5BTElHTjoKLQkJewotCQkJaW50IGN0bDsKLQotCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmY3RsKTsKLQkJCXRjcC0+YXV4c3RyID0gdW5hbGlnbmN0bF9zdHJpbmcoY3RsKTsKLQkJCXJldHVybiBSVkFMX1NUUjsKLQkJfQotI2VuZGlmCi0JCWRlZmF1bHQ6Ci0JCQlicmVhazsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIEhBVkVfUFJDVEwgKi8KLQotaW50Ci1zeXNfZ2V0aG9zdGlkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZXhpdGluZyh0Y3ApKQotCQlyZXR1cm4gUlZBTF9IRVg7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldGhvc3RuYW1lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19nZXRob3N0bmFtZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJZWxzZQotCQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zZXRkb21haW5uYW1lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgIWRlZmluZWQoTElOVVgpCi0KLWludAotc3lzX2dldGRvbWFpbm5hbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UKLQkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiAhTElOVVggKi8KLQotaW50Ci1zeXNfZXhpdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIl9leGl0IHJldHVybmVkIVxuIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JLyogc3BlY2lhbCBjYXNlOiB3ZSBzdG9wIHRyYWNpbmcgdGhpcyBwcm9jZXNzLCBmaW5pc2ggbGluZSBub3cgKi8KLQl0cHJpbnRmKCIlbGQpICIsIHRjcC0+dV9hcmdbMF0pOwotCXRhYnRvKGFjb2x1bW4pOwotCXRwcmludGYoIj0gPyIpOwotCXByaW50dHJhaWxlcih0Y3ApOwotCXJldHVybiAwOwotfQotCi1pbnQKLWludGVybmFsX2V4aXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRjcC0+ZmxhZ3MgfD0gVENCX0VYSVRJTkc7Ci0jaWZkZWYgX19OUl9leGl0X2dyb3VwCi0jIGlmZGVmIElBNjQKLQkJaWYgKGlhMzIpIHsKLQkJCWlmICh0Y3AtPnNjbm8gPT0gMjUyKQotCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7Ci0JCX0gZWxzZQotIyBlbmRpZgotCQlpZiAoa25vd25fc2Nubyh0Y3ApID09IF9fTlJfZXhpdF9ncm91cCkKLQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7Ci0jZW5kaWYKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIFRDUCBpcyBjcmVhdGluZyBhIGNoaWxkIHdlIHdhbnQgdG8gZm9sbG93LgotICAgSWYgdGhlcmUgd2lsbCBiZSBzcGFjZSBpbiB0Y2J0YWIgZm9yIGl0LCBzZXQgVENCX0ZPTExPV0ZPUksgYW5kIHJldHVybiAwLgotICAgSWYgbm90LCBjbGVhciBUQ0JfRk9MTE9XRk9SSywgcHJpbnQgYW4gZXJyb3IsIGFuZCByZXR1cm4gMS4gICovCi1zdGF0aWMgaW50Ci1mb3JrX3RjYihzdHJ1Y3QgdGNiICp0Y3ApCi17Ci0JaWYgKG5wcm9jcyA9PSB0Y2J0YWJzaXplKSB7Ci0JCWlmIChleHBhbmRfdGNidGFiKCkpIHsKLQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9GT0xMT1dGT1JLOwotCQkJZnByaW50ZihzdGRlcnIsICJzeXNfZm9yazogdGNiIHRhYmxlIGZ1bGxcbiIpOwotCQl9Ci0JfQotCi0JdGNwLT5mbGFncyB8PSBUQ0JfRk9MTE9XRk9SSzsKLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIFVTRV9QUk9DRlMKLQotaW50Ci1zeXNfZm9yayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAoZ2V0cnZhbDIodGNwKSkgewotCQkJdGNwLT5hdXhzdHIgPSAiY2hpbGQgcHJvY2VzcyI7Ci0JCQlyZXR1cm4gUlZBTF9VREVDSU1BTCB8IFJWQUxfU1RSOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgVU5JWFdBUkUgPiAyCi0KLWludAotc3lzX3Jmb3JrKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmICgiJWxkIiwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCWVsc2UgewotCQlpZiAoZ2V0cnZhbDIodGNwKSkgewotCQkJdGNwLT5hdXhzdHIgPSAiY2hpbGQgcHJvY2VzcyI7Ci0JCQlyZXR1cm4gUlZBTF9VREVDSU1BTCB8IFJWQUxfU1RSOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50Ci1pbnRlcm5hbF9mb3JrKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgdGNiICp0Y3BjaGlsZDsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKLSNpZmRlZiBTWVNfcmZvcmsKLQkJaWYgKGtub3duX3Njbm8odGNwKSA9PSBTWVNfcmZvcmsgJiYgISh0Y3AtPnVfYXJnWzBdJlJGUFJPQykpCi0JCQlyZXR1cm4gMDsKLSNlbmRpZgotCQlpZiAoZ2V0cnZhbDIodGNwKSkKLQkJCXJldHVybiAwOwotCQlpZiAoIWZvbGxvd2ZvcmspCi0JCQlyZXR1cm4gMDsKLQkJaWYgKGZvcmtfdGNiKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQkJaWYgKCh0Y3BjaGlsZCA9IGFsbG9jdGNiKHRjcC0+dV9ydmFsKSkgPT0gTlVMTCkgewotCQkJZnByaW50ZihzdGRlcnIsICJzeXNfZm9yazogdGNiIHRhYmxlIGZ1bGxcbiIpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJaWYgKHByb2Nfb3Blbih0Y3BjaGlsZCwgMikgPCAwKQotCQkgIAlkcm9wdGNiKHRjcGNoaWxkKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCi0KLSNpZmRlZiBMSU5VWAotCi0vKiBkZWZpbmVzIGNvcGllZCBmcm9tIGxpbnV4L3NjaGVkLmggc2luY2Ugd2UgY2FuJ3QgaW5jbHVkZSB0aGF0Ci0gKiBvdXJzZWx2ZXMgKGl0IGNvbmZsaWN0cyB3aXRoICpsb3RzKiBvZiBsaWJjIGluY2x1ZGVzKQotICovCi0jZGVmaW5lIENTSUdOQUwgICAgICAgICAweDAwMDAwMGZmICAgICAgLyogc2lnbmFsIG1hc2sgdG8gYmUgc2VudCBhdCBleGl0ICovCi0jZGVmaW5lIENMT05FX1ZNICAgICAgICAweDAwMDAwMTAwICAgICAgLyogc2V0IGlmIFZNIHNoYXJlZCBiZXR3ZWVuIHByb2Nlc3NlcyAqLwotI2RlZmluZSBDTE9ORV9GUyAgICAgICAgMHgwMDAwMDIwMCAgICAgIC8qIHNldCBpZiBmcyBpbmZvIHNoYXJlZCBiZXR3ZWVuIHByb2Nlc3NlcyAqLwotI2RlZmluZSBDTE9ORV9GSUxFUyAgICAgMHgwMDAwMDQwMCAgICAgIC8qIHNldCBpZiBvcGVuIGZpbGVzIHNoYXJlZCBiZXR3ZWVuIHByb2Nlc3NlcyAqLwotI2RlZmluZSBDTE9ORV9TSUdIQU5EICAgMHgwMDAwMDgwMCAgICAgIC8qIHNldCBpZiBzaWduYWwgaGFuZGxlcnMgc2hhcmVkICovCi0jZGVmaW5lIENMT05FX0lETEVUQVNLICAweDAwMDAxMDAwICAgICAgLyoga2VybmVsLW9ubHkgZmxhZyAqLwotI2RlZmluZSBDTE9ORV9QVFJBQ0UgICAgMHgwMDAwMjAwMCAgICAgIC8qIHNldCBpZiB3ZSB3YW50IHRvIGxldCB0cmFjaW5nIGNvbnRpbnVlIG9uIHRoZSBjaGlsZCB0b28gKi8KLSNkZWZpbmUgQ0xPTkVfVkZPUksgICAgIDB4MDAwMDQwMDAgICAgICAvKiBzZXQgaWYgdGhlIHBhcmVudCB3YW50cyB0aGUgY2hpbGQgdG8gd2FrZSBpdCB1cCBvbiBtbV9yZWxlYXNlICovCi0jZGVmaW5lIENMT05FX1BBUkVOVCAgICAweDAwMDA4MDAwICAgICAgLyogc2V0IGlmIHdlIHdhbnQgdG8gaGF2ZSB0aGUgc2FtZSBwYXJlbnQgYXMgdGhlIGNsb25lciAqLwotI2RlZmluZSBDTE9ORV9USFJFQUQJMHgwMDAxMDAwMAkvKiBTYW1lIHRocmVhZCBncm91cD8gKi8KLSNkZWZpbmUgQ0xPTkVfTkVXTlMJMHgwMDAyMDAwMAkvKiBOZXcgbmFtZXNwYWNlIGdyb3VwPyAqLwotI2RlZmluZSBDTE9ORV9TWVNWU0VNCTB4MDAwNDAwMDAJLyogc2hhcmUgc3lzdGVtIFYgU0VNX1VORE8gc2VtYW50aWNzICovCi0jZGVmaW5lIENMT05FX1NFVFRMUwkweDAwMDgwMDAwCS8qIGNyZWF0ZSBhIG5ldyBUTFMgZm9yIHRoZSBjaGlsZCAqLwotI2RlZmluZSBDTE9ORV9QQVJFTlRfU0VUVElECTB4MDAxMDAwMDAJLyogc2V0IHRoZSBUSUQgaW4gdGhlIHBhcmVudCAqLwotI2RlZmluZSBDTE9ORV9DSElMRF9DTEVBUlRJRAkweDAwMjAwMDAwCS8qIGNsZWFyIHRoZSBUSUQgaW4gdGhlIGNoaWxkICovCi0jZGVmaW5lIENMT05FX0RFVEFDSEVECQkweDAwNDAwMDAwCS8qIHBhcmVudCB3YW50cyBubyBjaGlsZC1leGl0IHNpZ25hbCAqLwotI2RlZmluZSBDTE9ORV9VTlRSQUNFRAkJMHgwMDgwMDAwMAkvKiBzZXQgaWYgdGhlIHRyYWNpbmcgcHJvY2VzcyBjYW4ndCBmb3JjZSBDTE9ORV9QVFJBQ0Ugb24gdGhpcyBjbG9uZSAqLwotI2RlZmluZSBDTE9ORV9DSElMRF9TRVRUSUQJMHgwMTAwMDAwMAkvKiBzZXQgdGhlIFRJRCBpbiB0aGUgY2hpbGQgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGNsb25lX2ZsYWdzW10gPSB7Ci0gICAgeyBDTE9ORV9WTSwJCSJDTE9ORV9WTSIJfSwKLSAgICB7IENMT05FX0ZTLAkJIkNMT05FX0ZTIgl9LAotICAgIHsgQ0xPTkVfRklMRVMsCSJDTE9ORV9GSUxFUyIJfSwKLSAgICB7IENMT05FX1NJR0hBTkQsCSJDTE9ORV9TSUdIQU5EIgl9LAotICAgIHsgQ0xPTkVfSURMRVRBU0ssCSJDTE9ORV9JRExFVEFTSyJ9LAotICAgIHsgQ0xPTkVfUFRSQUNFLAkiQ0xPTkVfUFRSQUNFIgl9LAotICAgIHsgQ0xPTkVfVkZPUkssCSJDTE9ORV9WRk9SSyIJfSwKLSAgICB7IENMT05FX1BBUkVOVCwJIkNMT05FX1BBUkVOVCIJfSwKLSAgICB7IENMT05FX1RIUkVBRCwJIkNMT05FX1RIUkVBRCIgfSwKLSAgICB7IENMT05FX05FV05TLAkiQ0xPTkVfTkVXTlMiIH0sCi0gICAgeyBDTE9ORV9TWVNWU0VNLAkiQ0xPTkVfU1lTVlNFTSIgfSwKLSAgICB7IENMT05FX1NFVFRMUywJIkNMT05FX1NFVFRMUyIgfSwKLSAgICB7IENMT05FX1BBUkVOVF9TRVRUSUQsIkNMT05FX1BBUkVOVF9TRVRUSUQiIH0sCi0gICAgeyBDTE9ORV9DSElMRF9DTEVBUlRJRCwiQ0xPTkVfQ0hJTERfQ0xFQVJUSUQiIH0sCi0gICAgeyBDTE9ORV9ERVRBQ0hFRCwJIkNMT05FX0RFVEFDSEVEIiB9LAotICAgIHsgQ0xPTkVfVU5UUkFDRUQsCSJDTE9ORV9VTlRSQUNFRCIgfSwKLSAgICB7IENMT05FX0NISUxEX1NFVFRJRCwiQ0xPTkVfQ0hJTERfU0VUVElEIiB9LAotICAgIHsgMCwJCU5VTEwJCX0sCi19OwotCi0jIGlmZGVmIEkzODYKLSMgIGluY2x1ZGUgPGFzbS9sZHQuaD4KLSMgICBpZmRlZiBIQVZFX1NUUlVDVF9VU0VSX0RFU0MKLSMgICAgZGVmaW5lIG1vZGlmeV9sZHRfbGR0X3MgdXNlcl9kZXNjCi0jICAgZW5kaWYKLWV4dGVybiB2b2lkIHByaW50X2xkdF9lbnRyeSgpOwotIyBlbmRpZgotCi0jIGlmIGRlZmluZWQgSUE2NAotIyAgZGVmaW5lIEFSR19GTEFHUwkwCi0jICBkZWZpbmUgQVJHX1NUQUNLCTEKLSMgIGRlZmluZSBBUkdfU1RBQ0tTSVpFCShrbm93bl9zY25vKHRjcCkgPT0gU1lTX2Nsb25lMiA/IDIgOiAtMSkKLSMgIGRlZmluZSBBUkdfUFRJRAkoa25vd25fc2Nubyh0Y3ApID09IFNZU19jbG9uZTIgPyAzIDogMikKLSMgIGRlZmluZSBBUkdfQ1RJRAkoa25vd25fc2Nubyh0Y3ApID09IFNZU19jbG9uZTIgPyA0IDogMykKLSMgIGRlZmluZSBBUkdfVExTCShrbm93bl9zY25vKHRjcCkgPT0gU1lTX2Nsb25lMiA/IDUgOiA0KQotIyBlbGlmIGRlZmluZWQgUzM5MCB8fCBkZWZpbmVkIFMzOTBYCi0jICBkZWZpbmUgQVJHX1NUQUNLCTAKLSMgIGRlZmluZSBBUkdfRkxBR1MJMQotIyAgZGVmaW5lIEFSR19QVElECTIKLSMgIGRlZmluZSBBUkdfQ1RJRAkzCi0jICBkZWZpbmUgQVJHX1RMUwk0Ci0jIGVsaWYgZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBBTFBIQQotIyAgZGVmaW5lIEFSR19GTEFHUwkwCi0jICBkZWZpbmUgQVJHX1NUQUNLCTEKLSMgIGRlZmluZSBBUkdfUFRJRAkyCi0jICBkZWZpbmUgQVJHX0NUSUQJMwotIyAgZGVmaW5lIEFSR19UTFMJNAotIyBlbHNlCi0jICBkZWZpbmUgQVJHX0ZMQUdTCTAKLSMgIGRlZmluZSBBUkdfU1RBQ0sJMQotIyAgZGVmaW5lIEFSR19QVElECTIKLSMgIGRlZmluZSBBUkdfVExTCTMKLSMgIGRlZmluZSBBUkdfQ1RJRAk0Ci0jIGVuZGlmCi0KLWludAotc3lzX2Nsb25lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSB0Y3AtPnVfYXJnW0FSR19GTEFHU107Ci0JCXRwcmludGYoImNoaWxkX3N0YWNrPSUjbHgsICIsIHRjcC0+dV9hcmdbQVJHX1NUQUNLXSk7Ci0jIGlmZGVmIEFSR19TVEFDS1NJWkUKLQkJaWYgKEFSR19TVEFDS1NJWkUgIT0gLTEpCi0JCQl0cHJpbnRmKCJzdGFja19zaXplPSUjbHgsICIsCi0JCQkJdGNwLT51X2FyZ1tBUkdfU1RBQ0tTSVpFXSk7Ci0jIGVuZGlmCi0JCXRwcmludGYoImZsYWdzPSIpOwotCQlwcmludGZsYWdzKGNsb25lX2ZsYWdzLCBmbGFncyAmfiBDU0lHTkFMLCBOVUxMKTsKLQkJaWYgKChmbGFncyAmIENTSUdOQUwpICE9IDApCi0JCQl0cHJpbnRmKCJ8JXMiLCBzaWduYW1lKGZsYWdzICYgQ1NJR05BTCkpOwotCQlpZiAoKGZsYWdzICYgKENMT05FX1BBUkVOVF9TRVRUSUR8Q0xPTkVfQ0hJTERfU0VUVElECi0JCQkgICAgICB8Q0xPTkVfQ0hJTERfQ0xFQVJUSUR8Q0xPTkVfU0VUVExTKSkgPT0gMCkKLQkJCXJldHVybiAwOwotCQlpZiAoZmxhZ3MgJiBDTE9ORV9QQVJFTlRfU0VUVElEKQotCQkJdHByaW50ZigiLCBwYXJlbnRfdGlkcHRyPSUjbHgiLCB0Y3AtPnVfYXJnW0FSR19QVElEXSk7Ci0JCWlmIChmbGFncyAmIENMT05FX1NFVFRMUykgewotIyBpZmRlZiBJMzg2Ci0JCQlzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcyBjb3B5OwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1tBUkdfVExTXSwgJmNvcHkpICE9IC0xKSB7Ci0JCQkJdHByaW50ZigiLCB7ZW50cnlfbnVtYmVyOiVkLCAiLAotCQkJCQljb3B5LmVudHJ5X251bWJlcik7Ci0JCQkJaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQkJCXRwcmludGYoIi4uLn0iKTsKLQkJCQllbHNlCi0JCQkJCXByaW50X2xkdF9lbnRyeSgmY29weSk7Ci0JCQl9Ci0JCQllbHNlCi0jIGVuZGlmCi0JCQkJdHByaW50ZigiLCB0bHM9JSNseCIsIHRjcC0+dV9hcmdbQVJHX1RMU10pOwotCQl9Ci0JCWlmIChmbGFncyAmIChDTE9ORV9DSElMRF9TRVRUSUR8Q0xPTkVfQ0hJTERfQ0xFQVJUSUQpKQotCQkJdHByaW50ZigiLCBjaGlsZF90aWRwdHI9JSNseCIsIHRjcC0+dV9hcmdbQVJHX0NUSURdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfZm9yayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkKLQkJcmV0dXJuIFJWQUxfVURFQ0lNQUw7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotY2hhbmdlX3N5c2NhbGwodGNwLCBuZXcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgbmV3OwotewotI2lmIGRlZmluZWQoTElOVVgpCi0jaWYgZGVmaW5lZChJMzg2KQotCS8qIEF0dGVtcHQgdG8gbWFrZSB2Zm9yayBpbnRvIGZvcmssIHdoaWNoIHdlIGNhbiBmb2xsb3cuICovCi0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKE9SSUdfRUFYICogNCksIG5ldykgPCAwKQotCQlyZXR1cm4gLTE7Ci0JcmV0dXJuIDA7Ci0jZWxpZiBkZWZpbmVkKFg4Nl82NCkKLQkvKiBBdHRlbXB0IHRvIG1ha2UgdmZvcmsgaW50byBmb3JrLCB3aGljaCB3ZSBjYW4gZm9sbG93LiAqLwotCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShPUklHX1JBWCAqIDgpLCBuZXcpIDwgMCkKLQkJcmV0dXJuIC0xOwotCXJldHVybiAwOwotI2VsaWYgZGVmaW5lZChQT1dFUlBDKQotCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKLQkJICAgKGNoYXIqKShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjApLCBuZXcpIDwgMCkKLQkJcmV0dXJuIC0xOwotICAgICAgIHJldHVybiAwOwotI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQotCS8qIHMzOTAgbGludXggYWZ0ZXIgMi40LjcgaGFzIGEgaG9vayBpbiBlbnRyeS5TIHRvIGFsbG93IHRoaXMgKi8KLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfR1BSMiksIG5ldyk8MCkKLQkgICAgICAgIHJldHVybiAtMTsKLQlyZXR1cm4gMDsKLSNlbGlmIGRlZmluZWQoTTY4SykKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCpQVF9PUklHX0QwKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOwotCXJldHVybiAwOwotI2VsaWYgZGVmaW5lZChTUEFSQykgfHwgZGVmaW5lZChTUEFSQzY0KQotCXN0cnVjdCByZWdzIHJlZ3M7Ci0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyKikmcmVncywgMCk8MCkKLQkJcmV0dXJuIC0xOwotCXJlZ3Mucl9nMT1uZXc7Ci0JaWYgKHB0cmFjZShQVFJBQ0VfU0VUUkVHUywgdGNwLT5waWQsIChjaGFyKikmcmVncywgMCk8MCkKLQkgICAgCXJldHVybiAtMTsKLQlyZXR1cm4gMDsKLSNlbGlmIGRlZmluZWQoTUlQUykKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX1YwKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOwotCXJldHVybiAwOwotI2VsaWYgZGVmaW5lZChBTFBIQSkKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX0EzKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOwotCXJldHVybiAwOwotI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmIChpYTMyKSB7Ci0JCXN3aXRjaCAobmV3KSB7Ci0JCSAgICAgIGNhc2UgMjogYnJlYWs7CS8qIHg4NiBTWVNfZm9yayAqLwotCQkgICAgICBjYXNlIFNZU19jbG9uZToJbmV3ID0gMTIwOyBicmVhazsKLQkJICAgICAgZGVmYXVsdDoKLQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IHVuZXhwZWN0ZWQgc3lzY2FsbCAlZFxuIiwKLQkJCQlfX0ZVTkNUSU9OX18sIG5ldyk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX1IxKSwgbmV3KTwwKQotCQkJcmV0dXJuIC0xOwotCX0gZWxzZSBpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfUjE1KSwgbmV3KTwwKQotCQlyZXR1cm4gLTE7Ci0JcmV0dXJuIDA7Ci0jZWxpZiBkZWZpbmVkKEhQUEEpCi0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX0dSMjApLCBuZXcpPDApCi0JICAgIAlyZXR1cm4gLTE7Ci0JcmV0dXJuIDA7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KihSRUdfUkVHMCszKSksIG5ldyk8MCkKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICByZXR1cm4gMDsKLSNlbGlmIGRlZmluZWQoU0g2NCkKLSAgICAgICAvKiBUb3AgaGFsZiBvZiByZWcgZW5jb2RlcyB0aGUgbm8uIG9mIGFyZ3MgbiBhcyAweDFuLgotICAgICAgICAgIEFzc3VtZSAwIGFyZ3MgYXMga2VybmVsIG5ldmVyIGFjdHVhbGx5IGNoZWNrcy4uLiAqLwotICAgICAgIGlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfU1lTQ0FMTCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwIHwgbmV3KSA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICByZXR1cm4gMDsKLSNlbGlmIGRlZmluZWQoQVJNKQotICAgICAgIC8qIFNvbWUga2VybmVscyBzdXBwb3J0IHRoaXMsIHNvbWUgKHByZS0yLjYuMTYgb3Igc28pIGRvbid0LiAgKi8KLSMgaWZuZGVmIFBUUkFDRV9TRVRfU1lTQ0FMTAotIyAgZGVmaW5lIFBUUkFDRV9TRVRfU1lTQ0FMTCAyMwotIyBlbmRpZgotCi0gICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX1NFVF9TWVNDQUxMLCB0Y3AtPnBpZCwgMCwgbmV3KSAhPSAwKQotCQlyZXR1cm4gLTE7Ci0KLSAgICAgICByZXR1cm4gMDsKLSNlbHNlCi0jd2FybmluZyBEbyBub3Qga25vdyBob3cgdG8gaGFuZGxlIGNoYW5nZV9zeXNjYWxsIGZvciB0aGlzIGFyY2hpdGVjdHVyZQotI2VuZGlmIC8qIGFyY2hpdGVjdHVyZSAqLwotI2VuZGlmIC8qIExJTlVYICovCi0JcmV0dXJuIC0xOwotfQotCi0jaWYgMAotaW50Ci1zZXRhcmcodGNwLCBhcmdudW0pCi0Jc3RydWN0IHRjYiAqdGNwOwotCWludCBhcmdudW07Ci17Ci0jaWYgZGVmaW5lZCAoSUE2NCkKLQl7Ci0JCXVuc2lnbmVkIGxvbmcgKmJzcCwgKmFwOwotCi0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQVJfQlNQLCAobG9uZyAqKSAmYnNwKSAsIDApCi0JCQlyZXR1cm4gLTE7Ci0KLQkJYXAgPSBpYTY0X3JzZV9za2lwX3JlZ3MoYnNwLCBhcmdudW0pOwotCQllcnJubyA9IDA7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRURBVEEsIHRjcC0+cGlkLCAoY2hhciAqKSBhcCwgdGNwLT51X2FyZ1thcmdudW1dKTsKLQkJaWYgKGVycm5vKQotCQkJcmV0dXJuIC0xOwotCi0JfQotI2VsaWYgZGVmaW5lZChJMzg2KQotCXsKLQkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCphcmdudW0pLCB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0JfQotI2VsaWYgZGVmaW5lZChYODZfNjQpCi0JewotCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg4Kihsb25nKWFyZ251bSksIHRjcC0+dV9hcmdbYXJnbnVtXSk7Ci0JCWlmIChlcnJubykKLQkJCXJldHVybiAtMTsKLQl9Ci0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0jaWZuZGVmIFBUX09SSUdfUjMKLSNkZWZpbmUgUFRfT1JJR19SMyAzNAotI2VuZGlmCi0JewotCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKLQkJICAgICAgIChjaGFyKikoKGFyZ251bT09MCA/IFBUX09SSUdfUjMgOiBhcmdudW0rUFRfUjMpKnNpemVvZih1bnNpZ25lZCBsb25nKSksCi0JCSAgICAgICB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0JfQotI2VsaWYgZGVmaW5lZChNSVBTKQotCXsKLQkJZXJybm8gPSAwOwotCQlpZiAoYXJnbnVtIDwgNCkKLQkJCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLAotCQkJICAgICAgIChjaGFyKikoUkVHX0EwICsgYXJnbnVtKSwgdGNwLT51X2FyZ1thcmdudW1dKTsKLQkJZWxzZSB7Ci0JCQl1bnNpZ25lZCBsb25nICpzcDsKLQotCQkJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfU1AsIChsb25nICopICZzcCkgLCAwKQotCQkJCXJldHVybiAtMTsKLQotCQkJcHRyYWNlKFBUUkFDRV9QT0tFREFUQSwgdGNwLT5waWQsCi0JCQkgICAgICAgKGNoYXIqKShzcCArIGFyZ251bSAtIDQpLCB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQl9Ci0JCWlmIChlcnJubykKLQkJCXJldHVybiAtMTsKLQl9Ci0jZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0gICAgICAgIHsKLQkJaWYoYXJnbnVtIDw9IDUpCi0JCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKLQkJCSAgICAgICAoY2hhciAqKSAoYXJnbnVtPT0wID8gUFRfT1JJR0dQUjIgOgotCQkJICAgICAgIFBUX0dQUjIgKyBhcmdudW0qc2l6ZW9mKGxvbmcpKSwKLQkJCSAgICAgICB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQllbHNlCi0JCQlyZXR1cm4gLUUyQklHOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0gICAgICAgIH0KLSNlbHNlCi0jIHdhcm5pbmcgU29ycnksIHNldGFyZ3Mgbm90IGltcGxlbWVudGVkIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KLSNlbmRpZgotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIFNZU19jbG9uZSB8fCBkZWZpbmVkIFNZU19jbG9uZTIgfHwgZGVmaW5lZCBfX05SX2Nsb25lCi1pbnQKLWludGVybmFsX2Nsb25lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgdGNiICp0Y3BjaGlsZDsKLQlpbnQgcGlkOwotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWlmICghZm9sbG93Zm9yaykKLQkJCXJldHVybiAwOwotCQlpZiAoZm9ya190Y2IodGNwKSkKLQkJCXJldHVybiAwOwotCQlpZiAoc2V0YnB0KHRjcCkgPCAwKQotCQkJcmV0dXJuIDA7Ci0JfSBlbHNlIHsKLQkJaW50IGJwdCA9IHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUOwotCi0JCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfRk9MTE9XRk9SSykpCi0JCQlyZXR1cm4gMDsKLQotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJaWYgKGJwdCkKLQkJCQljbGVhcmJwdCh0Y3ApOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCQlwaWQgPSB0Y3AtPnVfcnZhbDsKLQotI2lmZGVmIENMT05FX1BUUkFDRQkJLyogU2VlIG5ldyBzZXRicHQgY29kZS4gICovCi0JCXRjcGNoaWxkID0gcGlkMnRjYihwaWQpOwotCQlpZiAodGNwY2hpbGQgIT0gTlVMTCkgewotCQkJLyogVGhlIGNoaWxkIGFscmVhZHkgcmVwb3J0ZWQgaXRzIHN0YXJ0dXAgdHJhcAotCQkJICAgYmVmb3JlIHRoZSBwYXJlbnQgcmVwb3J0ZWQgaXRzIHN5c2NhbGwgcmV0dXJuLiAgKi8KLQkJCWlmICgodGNwY2hpbGQtPmZsYWdzCi0JCQkgICAgICYgKFRDQl9TVEFSVFVQfFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVEKSkKLQkJCSAgICAhPSAoVENCX1NUQVJUVVB8VENCX0FUVEFDSEVEfFRDQl9TVVNQRU5ERUQpKQotCQkJCWZwcmludGYoc3RkZXJyLCAiXAotW3ByZWF0dGFjaGVkIGNoaWxkICVkIG9mICVkIGluIHdlaXJkIHN0YXRlIV1cbiIsCi0JCQkJCXBpZCwgdGNwLT5waWQpOwotCQl9Ci0JCWVsc2UKLSNlbmRpZgotCQlpZiAoKHRjcGNoaWxkID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgewotCQkJaWYgKGJwdCkKLQkJCQljbGVhcmJwdCh0Y3ApOwotCQkJZnByaW50ZihzdGRlcnIsICIgW3RjYiB0YWJsZSBmdWxsXVxuIik7Ci0JCQlraWxsKHBpZCwgU0lHS0lMTCk7IC8qIFhYWCAqLwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotI2lmbmRlZiBDTE9ORV9QVFJBQ0UKLQkJLyogQXR0YWNoIHRvIHRoZSBuZXcgY2hpbGQgKi8KLQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCBwaWQsIChjaGFyICopIDEsIDApIDwgMCkgewotCQkJaWYgKGJwdCkKLQkJCQljbGVhcmJwdCh0Y3ApOwotCQkJcGVycm9yKCJQVFJBQ0VfQVRUQUNIIik7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIlRvbyBsYXRlP1xuIik7Ci0JCQlkcm9wdGNiKHRjcGNoaWxkKTsKLQkJCXJldHVybiAwOwotCQl9Ci0jZW5kaWYKLQotCQlpZiAoYnB0KQotCQkJY2xlYXJicHQodGNwKTsKLQotCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0FUVEFDSEVEOwotCQkvKiBDaGlsZCBoYXMgQlBUIHRvbywgbXVzdCBiZSByZW1vdmVkIG9uIGZpcnN0IG9jY2FzaW9uLiAgKi8KLQkJaWYgKGJwdCkgewotCQkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0JCQl0Y3BjaGlsZC0+YmFkZHIgPSB0Y3AtPmJhZGRyOwotCQkJbWVtY3B5KHRjcGNoaWxkLT5pbnN0LCB0Y3AtPmluc3QsCi0JCQkJc2l6ZW9mIHRjcGNoaWxkLT5pbnN0KTsKLQkJfQotCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOwotIAkJdGNwLT5uY2hpbGRyZW4rKzsKLQkJaWYgKHRjcGNoaWxkLT5mbGFncyAmIFRDQl9TVVNQRU5ERUQpIHsKLQkJCS8qIFRoZSBjaGlsZCB3YXMgYm9ybiBzdXNwZW5kZWQsIGR1ZSB0byBvdXIgaGF2aW5nCi0JCQkgICBmb3JjZWQgQ0xPTkVfUFRSQUNFLiAgKi8KLQkJCWlmIChicHQpCi0JCQkJY2xlYXJicHQodGNwY2hpbGQpOwotCi0JCQl0Y3BjaGlsZC0+ZmxhZ3MgJj0gfihUQ0JfU1VTUEVOREVEfFRDQl9TVEFSVFVQKTsKLQkJCWlmIChwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIHBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7Ci0JCQkJcGVycm9yKCJyZXN1bWU6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOwotCQkJCXJldHVybiAtMTsKLQkJCX0KLQotCQkJaWYgKCFxZmxhZykKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKLVByb2Nlc3MgJXUgcmVzdW1lZCAocGFyZW50ICVkIHJlYWR5KVxuIiwKLQkJCQkJcGlkLCB0Y3AtPnBpZCk7Ci0JCX0KLQkJZWxzZSB7Ci0JCQluZXdvdXRmKHRjcGNoaWxkKTsKLQkJCWlmICghcWZsYWcpCi0JCQkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICVkIGF0dGFjaGVkXG4iLCBwaWQpOwotCQl9Ci0KLSNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECi0JCXsKLQkJCS8qCi0JCQkgKiBTYXZlIHRoZSBmbGFncyB1c2VkIGluIHRoaXMgY2FsbCwKLQkJCSAqIGluIGNhc2Ugd2UgcG9pbnQgVENQIHRvIG91ciBwYXJlbnQgYmVsb3cuCi0JCQkgKi8KLQkJCWludCBjYWxsX2ZsYWdzID0gdGNwLT51X2FyZ1tBUkdfRkxBR1NdOwotCQkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkgJiYKLQkJCSAgICB0Y3AtPnBhcmVudCAhPSBOVUxMKSB7Ci0JCQkJLyogVGhlIHBhcmVudCBpbiB0aGlzIGNsb25lIGlzIGl0c2VsZiBhCi0JCQkJICAgdGhyZWFkIGJlbG9uZ2luZyB0byBhbm90aGVyIHByb2Nlc3MuCi0JCQkJICAgVGhlcmUgaXMgbm8gbWVhbmluZyB0byB0aGUgcGFyZW50YWdlCi0JCQkJICAgcmVsYXRpb25zaGlwIG9mIHRoZSBuZXcgY2hpbGQgd2l0aCB0aGUKLQkJCQkgICB0aHJlYWQsIG9ubHkgd2l0aCB0aGUgcHJvY2Vzcy4gIFdlCi0JCQkJICAgYXNzb2NpYXRlIHRoZSBuZXcgdGhyZWFkIHdpdGggb3VyCi0JCQkJICAgcGFyZW50LiAgU2luY2UgdGhpcyBpcyBkb25lIGZvciBldmVyeQotCQkJCSAgIG5ldyB0aHJlYWQsIHRoZXJlIHdpbGwgbmV2ZXIgYmUgYQotCQkJCSAgIFRDQl9DTE9ORV9USFJFQUQgcHJvY2VzcyB0aGF0IGhhcwotCQkJCSAgIGNoaWxkcmVuLiAgKi8KLQkJCQktLXRjcC0+bmNoaWxkcmVuOwotCQkJCXRjcCA9IHRjcC0+cGFyZW50OwotCQkJCXRjcGNoaWxkLT5wYXJlbnQgPSB0Y3A7Ci0JCQkJKyt0Y3AtPm5jaGlsZHJlbjsKLQkJCX0KLQkJCWlmIChjYWxsX2ZsYWdzICYgQ0xPTkVfVEhSRUFEKSB7Ci0JCQkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9DTE9ORV9USFJFQUQ7Ci0JCQkJKyt0Y3AtPm5jbG9uZV90aHJlYWRzOwotCQkJfQotCQkJaWYgKGNhbGxfZmxhZ3MgJiBDTE9ORV9ERVRBQ0hFRCkgewotCQkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQ0xPTkVfREVUQUNIRUQ7Ci0JCQkJKyt0Y3AtPm5jbG9uZV9kZXRhY2hlZDsKLQkJCX0KLQkJfQotI2VuZGlmCi0KLSAJfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLWludAotaW50ZXJuYWxfZm9yayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0jaWZkZWYgTElOVVgKLQkvKiBXZSBkbyBzcGVjaWFsIG1hZ2ljIHdpdGggY2xvbmUgZm9yIGFueSBjbG9uZSBvciBmb3JrLiAgKi8KLQlyZXR1cm4gaW50ZXJuYWxfY2xvbmUodGNwKTsKLSNlbHNlCi0KLQlzdHJ1Y3QgdGNiICp0Y3BjaGlsZDsKLQlpbnQgcGlkOwotCWludCBkb250X2ZvbGxvdyA9IDA7Ci0KLSNpZmRlZiBTWVNfdmZvcmsKLQlpZiAoa25vd25fc2Nubyh0Y3ApID09IFNZU192Zm9yaykgewotCQkvKiBBdHRlbXB0IHRvIG1ha2UgdmZvcmsgaW50byBmb3JrLCB3aGljaCB3ZSBjYW4gZm9sbG93LiAqLwotCQlpZiAoIWZvbGxvd3Zmb3JrIHx8Ci0JCSAgICBjaGFuZ2Vfc3lzY2FsbCh0Y3AsIFNZU19mb3JrKSA8IDApCi0JCQlkb250X2ZvbGxvdyA9IDE7Ci0JfQotI2VuZGlmCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKCFmb2xsb3dmb3JrIHx8IGRvbnRfZm9sbG93KQotCQkJcmV0dXJuIDA7Ci0JCWlmIChmb3JrX3RjYih0Y3ApKQotCQkJcmV0dXJuIDA7Ci0JCWlmIChzZXRicHQodGNwKSA8IDApCi0JCQlyZXR1cm4gMDsKLSAgCX0KLQllbHNlIHsKLQkJaW50IGJwdCA9IHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUOwotCi0JCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfRk9MTE9XRk9SSykpCi0JCQlyZXR1cm4gMDsKLQkJaWYgKGJwdCkKLQkJCWNsZWFyYnB0KHRjcCk7Ci0KLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQotCQlwaWQgPSB0Y3AtPnVfcnZhbDsKLQkJaWYgKCh0Y3BjaGlsZCA9IGFsbG9jdGNiKHBpZCkpID09IE5VTEwpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiIFt0Y2IgdGFibGUgZnVsbF1cbiIpOwotCQkJa2lsbChwaWQsIFNJR0tJTEwpOyAvKiBYWFggKi8KLQkJCXJldHVybiAwOwotCQl9Ci0jaWZkZWYgTElOVVgKLSNpZmRlZiBIUFBBCi0JCS8qIFRoZSBjaGlsZCBtdXN0IGhhdmUgcnVuIGJlZm9yZSBpdCBjYW4gYmUgYXR0YWNoZWQuICovCi0JCS8qIFRoaXMgbXVzdCBiZSBhIGJ1ZyBpbiB0aGUgcGFyaXNjIGtlcm5lbCwgYnV0IEkgaGF2bid0Ci0JCSAqIGlkZW50aWZpZWQgaXQgeWV0LiAgU2VlbXMgdG8gYmUgYW4gaXNzdWUgYXNzb2NpYXRlZAotCQkgKiB3aXRoIGF0dGFjaGluZyB0byBhIHByb2Nlc3MgKHdoaWNoIHNlbmRzIGl0IGEgc2lnbmFsKQotCQkgKiBiZWZvcmUgdGhhdCBwcm9jZXNzIGhhcyBldmVyIGJlZW4gc2NoZWR1bGVkLiAgV2hlbgotCQkgKiBkZWJ1Z2dpbmcsIEkgc3RhcnRlZCBzZWVpbmcgY3Jhc2hlcyBpbgotCQkgKiBhcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsLmM6ZG9fc2lnbmFsKCksIGFwcGFyZW50bHkKLQkJICogY2F1c2VkIGJ5IHI4IGdldHRpbmcgY29ycnVwdCBvdmVyIHRoZSBkZXF1ZXVlX3NpZ25hbCgpCi0JCSAqIGNhbGwuICBEaWRuJ3QgbWFrZSBtdWNoIHNlbnNlIHRob3VnaC4uLgotCQkgKi8KLQkJewotCQkJc3RydWN0IHRpbWV2YWwgdHY7Ci0JCQl0di50dl9zZWMgPSAwOwotCQkJdHYudHZfdXNlYyA9IDEwMDAwOwotCQkJc2VsZWN0KDAsIE5VTEwsIE5VTEwsIE5VTEwsICZ0dik7Ci0JCX0KLSNlbmRpZgotCQlpZiAocHRyYWNlKFBUUkFDRV9BVFRBQ0gsIHBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7Ci0JCQlwZXJyb3IoIlBUUkFDRV9BVFRBQ0giKTsKLQkJCWZwcmludGYoc3RkZXJyLCAiVG9vIGxhdGU/XG4iKTsKLQkJCWRyb3B0Y2IodGNwY2hpbGQpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotI2lmZGVmIG9sZHdheQotCQkvKiBUaGUgY2hpbGQgbXVzdCBoYXZlIHJ1biBiZWZvcmUgaXQgY2FuIGJlIGF0dGFjaGVkLiAqLwotCQl7Ci0JCQlzdHJ1Y3QgdGltZXZhbCB0djsKLQkJCXR2LnR2X3NlYyA9IDA7Ci0JCQl0di50dl91c2VjID0gMTAwMDA7Ci0JCQlzZWxlY3QoMCwgTlVMTCwgTlVMTCwgTlVMTCwgJnR2KTsKLQkJfQotCQlpZiAocHRyYWNlKFBUUkFDRV9BVFRBQ0gsIHBpZCwgKGNoYXIgKikxLCAwKSA8IDApIHsKLQkJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOwotCQkJZnByaW50ZihzdGRlcnIsICJUb28gbGF0ZT9cbiIpOwotCQkJZHJvcHRjYih0Y3BjaGlsZCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotI2Vsc2UgLyogIW9sZHdheSAqLwotCQkvKiBUcnkgdG8gY2F0Y2ggdGhlIG5ldyBwcm9jZXNzIGFzIHNvb24gYXMgcG9zc2libGUuICovCi0JCXsKLQkJCWludCBpOwotCQkJZm9yIChpID0gMDsgaSA8IDEwMjQ7IGkrKykKLQkJCQlpZiAocHRyYWNlKFBUUkFDRV9BVFRBQ0gsIHBpZCwgKGNoYXIgKikgMSwgMCkgPj0gMCkKLQkJCQkJYnJlYWs7Ci0JCQlpZiAoaSA9PSAxMDI0KSB7Ci0JCQkJcGVycm9yKCJQVFJBQ0VfQVRUQUNIIik7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJUb28gbGF0ZT9cbiIpOwotCQkJCWRyb3B0Y2IodGNwY2hpbGQpOwotCQkJCXJldHVybiAwOwotCQkJfQotCQl9Ci0jZW5kaWYgLyogIW9sZHdheSAqLwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0FUVEFDSEVEOwotCQkvKiBDaGlsZCBoYXMgQlBUIHRvbywgbXVzdCBiZSByZW1vdmVkIG9uIGZpcnN0IG9jY2FzaW9uICovCi0JCWlmIChicHQpIHsKLQkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQlBUU0VUOwotCQkJdGNwY2hpbGQtPmJhZGRyID0gdGNwLT5iYWRkcjsKLQkJCW1lbWNweSh0Y3BjaGlsZC0+aW5zdCwgdGNwLT5pbnN0LAotCQkJCXNpemVvZiB0Y3BjaGlsZC0+aW5zdCk7Ci0JCX0KLQkJbmV3b3V0Zih0Y3BjaGlsZCk7Ci0JCXRjcGNoaWxkLT5wYXJlbnQgPSB0Y3A7Ci0JCXRjcC0+bmNoaWxkcmVuKys7Ci0JCWlmICghcWZsYWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIlByb2Nlc3MgJWQgYXR0YWNoZWRcbiIsIHBpZCk7Ci0JfQotCXJldHVybiAwOwotI2VuZGlmCi19Ci0KLSNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwotCi0jaWYgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQotaW50Ci1zeXNfdmZvcmsodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpCi0JCXJldHVybiBSVkFMX1VERUNJTUFMOwotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogU1VOT1M0IHx8IExJTlVYIHx8IEZSRUVCU0QgKi8KLQotI2lmbmRlZiBMSU5VWAotCi1zdGF0aWMgY2hhciBpZHN0clsxNl07Ci0KLWludAotc3lzX2dldHBpZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlzcHJpbnRmKGlkc3RyLCAicHBpZCAlbHUiLCBnZXRydmFsMih0Y3ApKTsKLQkJdGNwLT5hdXhzdHIgPSBpZHN0cjsKLQkJcmV0dXJuIFJWQUxfU1RSOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0dWlkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCXNwcmludGYoaWRzdHIsICJldWlkICVsdSIsIGdldHJ2YWwyKHRjcCkpOwotCQl0Y3AtPmF1eHN0ciA9IGlkc3RyOwotCQlyZXR1cm4gUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19nZXRnaWQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJc3ByaW50ZihpZHN0ciwgImVnaWQgJWx1IiwgZ2V0cnZhbDIodGNwKSk7Ci0JCXRjcC0+YXV4c3RyID0gaWRzdHI7Ci0JCXJldHVybiBSVkFMX1NUUjsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiAhTElOVVggKi8KLQotI2lmZGVmIExJTlVYCi0KLWludAotc3lzX3NldHVpZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJXUiLCAodWlkX3QpIHRjcC0+dV9hcmdbMF0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2V0Z2lkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIldSIsIChnaWRfdCkgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19nZXRyZXN1aWQodGNwKQotICAgIHN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCV9fa2VybmVsX3VpZF90IHVpZDsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4LCAlI2x4LCAlI2x4IiwgdGNwLT51X2FyZ1swXSwKLQkJCQl0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZWxzZSB7Ci0JCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmdWlkKSA8IDApCi0JCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiWyVsdV0sICIsICh1bnNpZ25lZCBsb25nKSB1aWQpOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnVpZCkgPCAwKQotCQkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMV0pOwotCQkJZWxzZQotCQkJCXRwcmludGYoIlslbHVdLCAiLCAodW5zaWduZWQgbG9uZykgdWlkKTsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZ1aWQpIDwgMCkKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiWyVsdV0iLCAodW5zaWduZWQgbG9uZykgdWlkKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0cmVzZ2lkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCV9fa2VybmVsX2dpZF90IGdpZDsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4LCAlI2x4LCAlI2x4IiwgdGNwLT51X2FyZ1swXSwKLQkJCQl0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZWxzZSB7Ci0JCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmZ2lkKSA8IDApCi0JCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiWyVsdV0sICIsICh1bnNpZ25lZCBsb25nKSBnaWQpOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJmdpZCkgPCAwKQotCQkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMV0pOwotCQkJZWxzZQotCQkJCXRwcmludGYoIlslbHVdLCAiLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZnaWQpIDwgMCkKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiWyVsdV0iLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIExJTlVYICovCi0KLWludAotc3lzX3NldHJldWlkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHVpZCgiIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2V0cmVnaWQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50dWlkKCIiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChGUkVFQlNEKQotaW50Ci1zeXNfc2V0cmVzdWlkKHRjcCkKLSAgICAgc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50dWlkKCIiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLWludAotc3lzX3NldHJlc2dpZCh0Y3ApCi0gICAgIHN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHVpZCgiIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOwotCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBMSU5VWCB8fCBGUkVFQlNEICovCi0KLWludAotc3lzX3NldGdyb3Vwcyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdW5zaWduZWQgbG9uZyBsZW4sIHNpemUsIHN0YXJ0LCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKLQkJR0VUR1JPVVBTX1QgZ2lkOwotCQlpbnQgZmFpbGVkID0gMDsKLQotCQlsZW4gPSB0Y3AtPnVfYXJnWzBdOwotCQl0cHJpbnRmKCIlbHUsICIsIGxlbik7Ci0JCWlmIChsZW4gPT0gMCkgewotCQkJdHByaW50ZigiW10iKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXN0YXJ0ID0gdGNwLT51X2FyZ1sxXTsKLQkJaWYgKHN0YXJ0ID09IDApIHsKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXNpemUgPSBsZW4gKiBzaXplb2YoZ2lkKTsKLQkJZW5kID0gc3RhcnQgKyBzaXplOwotCQlpZiAoIXZlcmJvc2UodGNwKSB8fCBzaXplIC8gc2l6ZW9mKGdpZCkgIT0gbGVuIHx8IGVuZCA8IHN0YXJ0KSB7Ci0JCQl0cHJpbnRmKCIlI2x4Iiwgc3RhcnQpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJaWYgKGFiYnJldih0Y3ApKSB7Ci0JCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGdpZCk7Ci0JCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQotCQkJCWFiYnJldl9lbmQgPSBlbmQ7Ci0JCX0gZWxzZSB7Ci0JCQlhYmJyZXZfZW5kID0gZW5kOwotCQl9Ci0JCXRwcmludGYoIlsiKTsKLQkJZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGdpZCkpIHsKLQkJCWlmIChjdXIgPiBzdGFydCkKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7Ci0JCQkJdHByaW50ZigiLi4uIik7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAodW1vdmVuKHRjcCwgY3VyLCBzaXplb2YoZ2lkKSwgKGNoYXIgKikgJmdpZCkgPCAwKSB7Ci0JCQkJdHByaW50ZigiPyIpOwotCQkJCWZhaWxlZCA9IDE7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQl0cHJpbnRmKCIlbHUiLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKLQkJfQotCQl0cHJpbnRmKCJdIik7Ci0JCWlmIChmYWlsZWQpCi0JCQl0cHJpbnRmKCIgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0Z3JvdXBzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQl1bnNpZ25lZCBsb25nIGxlbjsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWxlbiA9IHRjcC0+dV9hcmdbMF07Ci0JCXRwcmludGYoIiVsdSwgIiwgbGVuKTsKLQl9IGVsc2UgewotCQl1bnNpZ25lZCBsb25nIHNpemUsIHN0YXJ0LCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKLQkJR0VUR1JPVVBTX1QgZ2lkOwotCQlpbnQgZmFpbGVkID0gMDsKLQotCQlsZW4gPSB0Y3AtPnVfcnZhbDsKLQkJaWYgKGxlbiA9PSAwKSB7Ci0JCQl0cHJpbnRmKCJbXSIpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJc3RhcnQgPSB0Y3AtPnVfYXJnWzFdOwotCQlpZiAoc3RhcnQgPT0gMCkgewotCQkJdHByaW50ZigiTlVMTCIpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkgewotCQkJdHByaW50ZigiJSNseCIsIHN0YXJ0KTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXNpemUgPSBsZW4gKiBzaXplb2YoZ2lkKTsKLQkJZW5kID0gc3RhcnQgKyBzaXplOwotCQlpZiAoIXZlcmJvc2UodGNwKSB8fCB0Y3AtPnVfYXJnWzBdID09IDAgfHwKLQkJICAgIHNpemUgLyBzaXplb2YoZ2lkKSAhPSBsZW4gfHwgZW5kIDwgc3RhcnQpIHsKLQkJCXRwcmludGYoIiUjbHgiLCBzdGFydCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlpZiAoYWJicmV2KHRjcCkpIHsKLQkJCWFiYnJldl9lbmQgPSBzdGFydCArIG1heF9zdHJsZW4gKiBzaXplb2YoZ2lkKTsKLQkJCWlmIChhYmJyZXZfZW5kIDwgc3RhcnQpCi0JCQkJYWJicmV2X2VuZCA9IGVuZDsKLQkJfSBlbHNlIHsKLQkJCWFiYnJldl9lbmQgPSBlbmQ7Ci0JCX0KLQkJdHByaW50ZigiWyIpOwotCQlmb3IgKGN1ciA9IHN0YXJ0OyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoZ2lkKSkgewotCQkJaWYgKGN1ciA+IHN0YXJ0KQotCQkJCXRwcmludGYoIiwgIik7Ci0JCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKLQkJCQl0cHJpbnRmKCIuLi4iKTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCWlmICh1bW92ZW4odGNwLCBjdXIsIHNpemVvZihnaWQpLCAoY2hhciAqKSAmZ2lkKSA8IDApIHsKLQkJCQl0cHJpbnRmKCI/Iik7Ci0JCQkJZmFpbGVkID0gMTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCXRwcmludGYoIiVsdSIsICh1bnNpZ25lZCBsb25nKSBnaWQpOwotCQl9Ci0JCXRwcmludGYoIl0iKTsKLQkJaWYgKGZhaWxlZCkKLQkJCXRwcmludGYoIiAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVgKLWludAotc3lzX3NldGdyb3VwczMyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl1bnNpZ25lZCBsb25nIGxlbiwgc2l6ZSwgc3RhcnQsIGN1ciwgZW5kLCBhYmJyZXZfZW5kOwotCQlHRVRHUk9VUFMzMl9UIGdpZDsKLQkJaW50IGZhaWxlZCA9IDA7Ci0KLQkJbGVuID0gdGNwLT51X2FyZ1swXTsKLQkJdHByaW50ZigiJWx1LCAiLCBsZW4pOwotCQlpZiAobGVuID09IDApIHsKLQkJCXRwcmludGYoIltdIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlzdGFydCA9IHRjcC0+dV9hcmdbMV07Ci0JCWlmIChzdGFydCA9PSAwKSB7Ci0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlzaXplID0gbGVuICogc2l6ZW9mKGdpZCk7Ci0JCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKLQkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgc2l6ZSAvIHNpemVvZihnaWQpICE9IGxlbiB8fCBlbmQgPCBzdGFydCkgewotCQkJdHByaW50ZigiJSNseCIsIHN0YXJ0KTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCWlmIChhYmJyZXYodGNwKSkgewotCQkJYWJicmV2X2VuZCA9IHN0YXJ0ICsgbWF4X3N0cmxlbiAqIHNpemVvZihnaWQpOwotCQkJaWYgKGFiYnJldl9lbmQgPCBzdGFydCkKLQkJCQlhYmJyZXZfZW5kID0gZW5kOwotCQl9IGVsc2UgewotCQkJYWJicmV2X2VuZCA9IGVuZDsKLQkJfQotCQl0cHJpbnRmKCJbIik7Ci0JCWZvciAoY3VyID0gc3RhcnQ7IGN1ciA8IGVuZDsgY3VyICs9IHNpemVvZihnaWQpKSB7Ci0JCQlpZiAoY3VyID4gc3RhcnQpCi0JCQkJdHByaW50ZigiLCAiKTsKLQkJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgewotCQkJCXRwcmludGYoIi4uLiIpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mKGdpZCksIChjaGFyICopICZnaWQpIDwgMCkgewotCQkJCXRwcmludGYoIj8iKTsKLQkJCQlmYWlsZWQgPSAxOwotCQkJCWJyZWFrOwotCQkJfQotCQkJdHByaW50ZigiJWx1IiwgKHVuc2lnbmVkIGxvbmcpIGdpZCk7Ci0JCX0KLQkJdHByaW50ZigiXSIpOwotCQlpZiAoZmFpbGVkKQotCQkJdHByaW50ZigiICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldGdyb3VwczMyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQl1bnNpZ25lZCBsb25nIGxlbjsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWxlbiA9IHRjcC0+dV9hcmdbMF07Ci0JCXRwcmludGYoIiVsdSwgIiwgbGVuKTsKLQl9IGVsc2UgewotCQl1bnNpZ25lZCBsb25nIHNpemUsIHN0YXJ0LCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKLQkJR0VUR1JPVVBTMzJfVCBnaWQ7Ci0JCWludCBmYWlsZWQgPSAwOwotCi0JCWxlbiA9IHRjcC0+dV9ydmFsOwotCQlpZiAobGVuID09IDApIHsKLQkJCXRwcmludGYoIltdIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlzdGFydCA9IHRjcC0+dV9hcmdbMV07Ci0JCWlmIChzdGFydCA9PSAwKSB7Ci0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlzaXplID0gbGVuICogc2l6ZW9mKGdpZCk7Ci0JCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKLQkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgdGNwLT51X2FyZ1swXSA9PSAwIHx8Ci0JCSAgICBzaXplIC8gc2l6ZW9mKGdpZCkgIT0gbGVuIHx8IGVuZCA8IHN0YXJ0KSB7Ci0JCQl0cHJpbnRmKCIlI2x4Iiwgc3RhcnQpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJaWYgKGFiYnJldih0Y3ApKSB7Ci0JCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGdpZCk7Ci0JCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQotCQkJCWFiYnJldl9lbmQgPSBlbmQ7Ci0JCX0gZWxzZSB7Ci0JCQlhYmJyZXZfZW5kID0gZW5kOwotCQl9Ci0JCXRwcmludGYoIlsiKTsKLQkJZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGdpZCkpIHsKLQkJCWlmIChjdXIgPiBzdGFydCkKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7Ci0JCQkJdHByaW50ZigiLi4uIik7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAodW1vdmVuKHRjcCwgY3VyLCBzaXplb2YoZ2lkKSwgKGNoYXIgKikgJmdpZCkgPCAwKSB7Ci0JCQkJdHByaW50ZigiPyIpOwotCQkJCWZhaWxlZCA9IDE7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQl0cHJpbnRmKCIlbHUiLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKLQkJfQotCQl0cHJpbnRmKCJdIik7Ci0JCWlmIChmYWlsZWQpCi0JCQl0cHJpbnRmKCIgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi1pbnQKLXN5c19zZXRwZ3JwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotI2lmbmRlZiBTVlI0Ci0JCXRwcmludGYoIiVsdSwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0jZW5kaWYgLyogIVNWUjQgKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldHBncnAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0jaWZuZGVmIFNWUjQKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0jZW5kaWYgLyogIVNWUjQgKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldHNpZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zZXRzaWQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19nZXRwZ2lkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldHBnaWQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWYgVU5JWFdBUkUgPj0gMgotCi0jaW5jbHVkZSA8c3lzL3ByaXZpbGVnZS5oPgotCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm9jcHJpdl9jbWRzIFtdID0gewotCXsgU0VUUFJWLAkiU0VUUFJWIgl9LAotCXsgQ0xSUFJWLAkiQ0xSUFJWIgl9LAotCXsgUFVUUFJWLAkiUFVUUFJWIgl9LAotCXsgR0VUUFJWLAkiR0VUUFJWIgl9LAotCXsgQ05UUFJWLAkiQ05UUFJWIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm9jcHJpdl9wcml2IFtdID0gewotCXsgUF9PV05FUiwJIlBfT1dORVIiCX0sCi0JeyBQX0FVRElULAkiUF9BVURJVCIJfSwKLQl7IFBfQ09NUEFULAkiUF9DT01QQVQiCX0sCi0JeyBQX0RBQ1JFQUQsCSJQX0RBQ1JFQUQiCX0sCi0JeyBQX0RBQ1dSSVRFLAkiUF9EQUNXUklURSIJfSwKLQl7IFBfREVWLAkiUF9ERVYiCQl9LAotCXsgUF9GSUxFU1lTLAkiUF9GSUxFU1lTIgl9LAotCXsgUF9NQUNSRUFELAkiUF9NQUNSRUFEIgl9LAotCXsgUF9NQUNXUklURSwJIlBfTUFDV1JJVEUiCX0sCi0JeyBQX01PVU5ULAkiUF9NT1VOVCIJfSwKLQl7IFBfTVVMVElESVIsCSJQX01VTFRJRElSIgl9LAotCXsgUF9TRVRQTEVWRUwsCSJQX1NFVFBMRVZFTCIJfSwKLQl7IFBfU0VUU1BSSVYsCSJQX1NFVFNQUklWIgl9LAotCXsgUF9TRVRVSUQsCSJQX1NFVFVJRCIJfSwKLQl7IFBfU1lTT1BTLAkiUF9TWVNPUFMiCX0sCi0JeyBQX1NFVFVQUklWLAkiUF9TRVRVUFJJViIJfSwKLQl7IFBfRFJJVkVSLAkiUF9EUklWRVIiCX0sCi0JeyBQX1JUSU1FLAkiUF9SVElNRSIJfSwKLQl7IFBfTUFDVVBHUkFERSwJIlBfTUFDVVBHUkFERSIJfSwKLQl7IFBfRlNZU1JBTkdFLAkiUF9GU1lTUkFOR0UiCX0sCi0JeyBQX1NFVEZMRVZFTCwJIlBfU0VURkxFVkVMIgl9LAotCXsgUF9BVURJVFdSLAkiUF9BVURJVFdSIgl9LAotCXsgUF9UU0hBUiwJIlBfVFNIQVIiCX0sCi0JeyBQX1BMT0NLLAkiUF9QTE9DSyIJfSwKLQl7IFBfQ09SRSwJIlBfQ09SRSIJfSwKLQl7IFBfTE9BRE1PRCwJIlBfTE9BRE1PRCIJfSwKLQl7IFBfQklORCwJIlBfQklORCIJfSwKLQl7IFBfQUxMUFJJVlMsCSJQX0FMTFBSSVZTIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm9jcHJpdl90eXBlIFtdID0gewotCXsgUFNfRklYLAkiUFNfRklYIgl9LAotCXsgUFNfSU5ILAkiUFNfSU5IIgl9LAotCXsgUFNfTUFYLAkiUFNfTUFYIgl9LAotCXsgUFNfV0tHLAkiUFNfV0tHIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLXN0YXRpYyB2b2lkCi1wcmludHByaXYodGNwLCBhZGRyLCBsZW4sIG9wdCkKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBsZW47Ci1jb25zdCBzdHJ1Y3QgeGxhdCAqb3B0OwotewotCXByaXZfdCBidWYgWzEyOF07Ci0JaW50IG1heCA9IHZlcmJvc2UgKHRjcCkgPyBzaXplb2YgYnVmIC8gc2l6ZW9mIGJ1ZiBbMF0gOiAxMDsKLQlpbnQgZG90cyA9IGxlbiA+IG1heDsKLQlpbnQgaTsKLQotCWlmIChsZW4gPiBtYXgpIGxlbiA9IG1heDsKLQotCWlmIChsZW4gPD0gMCB8fAotCSAgICB1bW92ZW4gKHRjcCwgYWRkciwgbGVuICogc2l6ZW9mIGJ1ZlswXSwgKGNoYXIgKikgYnVmKSA8IDApCi0JewotCQl0cHJpbnRmICgiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCi0JdHByaW50ZiAoIlsiKTsKLQotCWZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgewotCQljaGFyICp0LCAqcDsKLQotCQlpZiAoaSkgdHByaW50ZiAoIiwgIik7Ci0KLQkJaWYgKCh0ID0geGxvb2t1cCAocHJvY3ByaXZfdHlwZSwgYnVmIFtpXSAmIFBTX1RZUEUpKSAmJgotCQkgICAgKHAgPSB4bG9va3VwIChwcm9jcHJpdl9wcml2LCBidWYgW2ldICYgflBTX1RZUEUpKSkKLQkJewotCQkJdHByaW50ZiAoIiVzfCVzIiwgdCwgcCk7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0cHJpbnRmICgiJSNseCIsIGJ1ZiBbaV0pOwotCQl9Ci0JfQotCi0JaWYgKGRvdHMpIHRwcmludGYgKCIgLi4uIik7Ci0KLQl0cHJpbnRmICgiXSIpOwotfQotCi0KLWludAotc3lzX3Byb2Nwcml2KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwocHJvY3ByaXZfY21kcywgdGNwLT51X2FyZ1swXSwgIj8/P1BSViIpOwotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMF0pIHsKLQkJICAgIGNhc2UgQ05UUFJWOgotCQkJdHByaW50ZigiLCAlI2x4LCAlbGQiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJCWJyZWFrOwotCi0JCSAgICBjYXNlIEdFVFBSVjoKLQkJCWJyZWFrOwotCi0JCSAgICBkZWZhdWx0OgotCQkJdHByaW50ZiAoIiwgIik7Ci0JCQlwcmludHByaXYgKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCQl0cHJpbnRmICgiLCAlbGQiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJfQotCX0KLQllbHNlIGlmICh0Y3AtPnVfYXJnWzBdID09IEdFVFBSVikgewotCQlpZiAoc3lzZXJyb3IgKHRjcCkpIHsKLQkJCXRwcmludGYoIiwgJSNseCwgJWxkIiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0cHJpbnRmICgiLCAiKTsKLQkJCXByaW50cHJpdiAodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7Ci0JCQl0cHJpbnRmICgiLCAlbGQiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJfQotCX0KLQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotCi1zdGF0aWMgdm9pZAotcHJpbnRhcmd2KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQljaGFyICpjcDsKLQljaGFyICpzZXA7Ci0JaW50IG1heCA9IG1heF9zdHJsZW4gLyAyOwotCi0JZm9yIChzZXAgPSAiIjsgLS1tYXggPj0gMDsgc2VwID0gIiwgIikgewotCQlpZiAoIWFiYnJldih0Y3ApKQotCQkJbWF4Kys7Ci0JCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZjcCkgPCAwKSB7Ci0JCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJaWYgKGNwID09IDApCi0JCQlicmVhazsKLQkJdHByaW50ZihzZXApOwotCQlwcmludHN0cih0Y3AsIChsb25nKSBjcCwgLTEpOwotCQlhZGRyICs9IHNpemVvZihjaGFyICopOwotCX0KLQlpZiAoY3ApCi0JCXRwcmludGYoIiwgLi4uIik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1wcmludGFyZ2MoZm10LCB0Y3AsIGFkZHIpCi1jaGFyICpmbXQ7Ci1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0JaW50IGNvdW50OwotCWNoYXIgKmNwOwotCi0JZm9yIChjb3VudCA9IDA7IHVtb3ZlKHRjcCwgYWRkciwgJmNwKSA+PSAwICYmIGNwICE9IE5VTEw7IGNvdW50KyspIHsKLQkJYWRkciArPSBzaXplb2YoY2hhciAqKTsKLQl9Ci0JdHByaW50ZihmbXQsIGNvdW50LCBjb3VudCA9PSAxID8gIiIgOiAicyIpOwotfQotCi1pbnQKLXN5c19leGVjdih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0jaWYgMAotCQllbHNlIGlmIChhYmJyZXYodGNwKSkKLQkJCXByaW50YXJnYygiLCBbLyogJWQgYXJnJXMgKi9dIiwgdGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSNlbmRpZgotCQllbHNlIHsKLQkJCXRwcmludGYoIiwgWyIpOwotCQkJcHJpbnRhcmd2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2V4ZWN2ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0jaWYgMAotCQllbHNlIGlmIChhYmJyZXYodGNwKSkKLQkJCXByaW50YXJnYygiLCBbLyogJWQgYXJnJXMgKi9dIiwgdGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSNlbmRpZgotCQllbHNlIHsKLQkJCXRwcmludGYoIiwgWyIpOwotCQkJcHJpbnRhcmd2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCX0KLQkJaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKLQkJZWxzZSBpZiAoYWJicmV2KHRjcCkpCi0JCQlwcmludGFyZ2MoIiwgWy8qICVkIHZhciVzICovXSIsIHRjcCwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiLCBbIik7Ci0JCQlwcmludGFyZ3YodGNwLCB0Y3AtPnVfYXJnWzJdKTsKLQkJCXRwcmludGYoIl0iKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmIFVOSVhXQVJFID4gMgotCi1pbnQgc3lzX3JleGVjdmUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyAodGNwKSkgewotCQlzeXNfZXhlY3ZlICh0Y3ApOwotCQl0cHJpbnRmICgiLCAlbGQiLCB0Y3AtPnVfYXJnWzNdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgotCi1pbnQKLWludGVybmFsX2V4ZWModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotI2lmZGVmIFNVTk9TNAotCWlmIChleGl0aW5nKHRjcCkgJiYgIXN5c2Vycm9yKHRjcCkgJiYgZm9sbG93Zm9yaykKLQkJZml4dmZvcmsodGNwKTsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLSNpZiBkZWZpbmVkIExJTlVYICYmIGRlZmluZWQgVENCX1dBSVRFWEVDVkUKLQlpZiAoZXhpdGluZyh0Y3ApICYmIHN5c2Vycm9yKHRjcCkpCi0JCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOwotCWVsc2UKLQkJdGNwLT5mbGFncyB8PSBUQ0JfV0FJVEVYRUNWRTsKLSNlbmRpZiAvKiBMSU5VWCAmJiBUQ0JfV0FJVEVYRUNWRSAqLwotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVgKLSNpZm5kZWYgX19XTk9USFJFQUQKLSNkZWZpbmUgX19XTk9USFJFQUQJMHgyMDAwMDAwMAotI2VuZGlmCi0jaWZuZGVmIF9fV0FMTAotI2RlZmluZSBfX1dBTEwJCTB4NDAwMDAwMDAKLSNlbmRpZgotI2lmbmRlZiBfX1dDTE9ORQotI2RlZmluZSBfX1dDTE9ORQkweDgwMDAwMDAwCi0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgd2FpdDRfb3B0aW9uc1tdID0gewotCXsgV05PSEFORywJIldOT0hBTkciCX0sCi0jaWZuZGVmIFdTVE9QUEVECi0JeyBXVU5UUkFDRUQsCSJXVU5UUkFDRUQiCX0sCi0jZW5kaWYKLSNpZmRlZiBXRVhJVEVECi0JeyBXRVhJVEVELAkiV0VYSVRFRCIJfSwKLSNlbmRpZgotI2lmZGVmIFdUUkFQUEVECi0JeyBXVFJBUFBFRCwJIldUUkFQUEVEIgl9LAotI2VuZGlmCi0jaWZkZWYgV1NUT1BQRUQKLQl7IFdTVE9QUEVELAkiV1NUT1BQRUQiCX0sCi0jZW5kaWYKLSNpZmRlZiBXQ09OVElOVUVECi0JeyBXQ09OVElOVUVELAkiV0NPTlRJTlVFRCIJfSwKLSNlbmRpZgotI2lmZGVmIFdOT1dBSVQKLQl7IFdOT1dBSVQsCSJXTk9XQUlUIgl9LAotI2VuZGlmCi0jaWZkZWYgX19XQ0xPTkUKLQl7IF9fV0NMT05FLAkiX19XQ0xPTkUiCX0sCi0jZW5kaWYKLSNpZmRlZiBfX1dBTEwKLQl7IF9fV0FMTCwJIl9fV0FMTCIJfSwKLSNlbmRpZgotI2lmZGVmIF9fV05PVEhSRUFECi0JeyBfX1dOT1RIUkVBRCwJIl9fV05PVEhSRUFEIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNpZiAhZGVmaW5lZCBXQ09SRUZMQUcgJiYgZGVmaW5lZCBXQ09SRUZMRwotIyBkZWZpbmUgV0NPUkVGTEFHIFdDT1JFRkxHCi0jZW5kaWYKLSNpZm5kZWYgV0NPUkVGTEFHCi0jZGVmaW5lIFdDT1JFRkxBRyAweDgwCi0jZW5kaWYKLQotI2lmbmRlZiBXX1NUT1BDT0RFCi0jZGVmaW5lIFdfU1RPUENPREUoc2lnKQkJKChzaWcpIDw8IDggfCAweDdmKQotI2VuZGlmCi0jaWZuZGVmIFdfRVhJVENPREUKLSNkZWZpbmUgV19FWElUQ09ERShyZXQsIHNpZykJKChyZXQpIDw8IDggfCAoc2lnKSkKLSNlbmRpZgotCi1zdGF0aWMgaW50Ci1wcmludHN0YXR1cyhzdGF0dXMpCi1pbnQgc3RhdHVzOwotewotCWludCBleGl0ZWQgPSAwOwotCi0JLyoKLQkgKiBIZXJlIGlzIGEgdHJpY2t5IHByZXNlbnRhdGlvbiBwcm9ibGVtLiAgVGhpcyBzb2x1dGlvbgotCSAqIGlzIHN0aWxsIG5vdCBlbnRpcmVseSBzYXRpc2ZhY3RvcnkgYnV0IHNpbmNlIHRoZXJlCi0JICogYXJlIG5vIHdhaXQgc3RhdHVzIGNvbnN0cnVjdG9ycyBpdCB3aWxsIGhhdmUgdG8gZG8uCi0JICovCi0JaWYgKFdJRlNUT1BQRUQoc3RhdHVzKSkgewotCQl0cHJpbnRmKCJbe1dJRlNUT1BQRUQocykgJiYgV1NUT1BTSUcocykgPT0gJXN9IiwKLQkJCXNpZ25hbWUoV1NUT1BTSUcoc3RhdHVzKSkpOwotCQlzdGF0dXMgJj0gfldfU1RPUENPREUoV1NUT1BTSUcoc3RhdHVzKSk7Ci0JfQotCWVsc2UgaWYgKFdJRlNJR05BTEVEKHN0YXR1cykpIHsKLQkJdHByaW50ZigiW3tXSUZTSUdOQUxFRChzKSAmJiBXVEVSTVNJRyhzKSA9PSAlcyVzfSIsCi0JCQlzaWduYW1lKFdURVJNU0lHKHN0YXR1cykpLAotCQkJV0NPUkVEVU1QKHN0YXR1cykgPyAiICYmIFdDT1JFRFVNUChzKSIgOiAiIik7Ci0JCXN0YXR1cyAmPSB+KFdfRVhJVENPREUoMCwgV1RFUk1TSUcoc3RhdHVzKSkgfCBXQ09SRUZMQUcpOwotCX0KLQllbHNlIGlmIChXSUZFWElURUQoc3RhdHVzKSkgewotCQl0cHJpbnRmKCJbe1dJRkVYSVRFRChzKSAmJiBXRVhJVFNUQVRVUyhzKSA9PSAlZH0iLAotCQkJV0VYSVRTVEFUVVMoc3RhdHVzKSk7Ci0JCWV4aXRlZCA9IDE7Ci0JCXN0YXR1cyAmPSB+V19FWElUQ09ERShXRVhJVFNUQVRVUyhzdGF0dXMpLCAwKTsKLQl9Ci0JZWxzZSB7Ci0JCXRwcmludGYoIlslI3hdIiwgc3RhdHVzKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JaWYgKHN0YXR1cyA9PSAwKQotCQl0cHJpbnRmKCJdIik7Ci0JZWxzZQotCQl0cHJpbnRmKCIgfCAlI3hdIiwgc3RhdHVzKTsKLQotCXJldHVybiBleGl0ZWQ7Ci19Ci0KLXN0YXRpYyBpbnQKLXByaW50d2FpdG4odGNwLCBuLCBiaXRuZXNzKQotc3RydWN0IHRjYiAqdGNwOwotaW50IG47Ci1pbnQgYml0bmVzczsKLXsKLQlpbnQgc3RhdHVzOwotCWludCBleGl0ZWQgPSAwOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQkvKiBzdGF0dXMgKi8KLQkJaWYgKCF0Y3AtPnVfYXJnWzFdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8IHRjcC0+dV9ydmFsID09IDApCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnN0YXR1cykgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UKLQkJCWV4aXRlZCA9IHByaW50c3RhdHVzKHN0YXR1cyk7Ci0JCS8qIG9wdGlvbnMgKi8KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyh3YWl0NF9vcHRpb25zLCB0Y3AtPnVfYXJnWzJdLCAiVz8/PyIpOwotCQlpZiAobiA9PSA0KSB7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJLyogdXNhZ2UgKi8KLQkJCWlmICghdGNwLT51X2FyZ1szXSkKLQkJCQl0cHJpbnRmKCJOVUxMIik7Ci0jaWZkZWYgTElOVVgKLQkJCWVsc2UgaWYgKHRjcC0+dV9ydmFsID4gMCkgewotI2lmZGVmIExJTlVYXzY0QklUCi0JCQkJaWYgKGJpdG5lc3MpCi0JCQkJCXByaW50cnVzYWdlMzIodGNwLCB0Y3AtPnVfYXJnWzNdKTsKLQkJCQllbHNlCi0jZW5kaWYKLQkJCQkJcHJpbnRydXNhZ2UodGNwLCB0Y3AtPnVfYXJnWzNdKTsKLQkJCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotCQkJZWxzZSBpZiAodGNwLT51X3J2YWwgPiAwICYmIGV4aXRlZCkKLQkJCQlwcmludHJ1c2FnZSh0Y3AsIHRjcC0+dV9hcmdbM10pOwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCQkJZWxzZQotCQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1pbnRlcm5hbF93YWl0KHRjcCwgZmxhZ2FyZykKLXN0cnVjdCB0Y2IgKnRjcDsKLWludCBmbGFnYXJnOwotewotCWludCBnb3Rfa2lkczsKLQotI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKLQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCi0JCS8qIFRoZSBjaGlsZHJlbiB3ZSB3YWl0IGZvciBhcmUgb3VyIHBhcmVudCdzIGNoaWxkcmVuLiAgKi8KLQkJZ290X2tpZHMgPSAodGNwLT5wYXJlbnQtPm5jaGlsZHJlbgotCQkJICAgID4gdGNwLT5wYXJlbnQtPm5jbG9uZV9kZXRhY2hlZCk7Ci0JZWxzZQotCQlnb3Rfa2lkcyA9ICh0Y3AtPm5jaGlsZHJlbiA+IHRjcC0+bmNsb25lX2RldGFjaGVkKTsKLSNlbHNlCi0JZ290X2tpZHMgPSB0Y3AtPm5jaGlsZHJlbiA+IDA7Ci0jZW5kaWYKLQotCWlmIChlbnRlcmluZyh0Y3ApICYmIGdvdF9raWRzKSB7Ci0JCS8qIFRoZXJlIGFyZSBjaGlsZHJlbiB0aGF0IHRoaXMgcGFyZW50IHNob3VsZCBibG9jayBmb3IuCi0JCSAgIEJ1dCBwdHJhY2UgbWFkZSB1cyB0aGUgcGFyZW50IG9mIHRoZSB0cmFjZWQgY2hpbGRyZW4KLQkJICAgYW5kIHRoZSByZWFsIHBhcmVudCB3aWxsIGdldCBFQ0hJTEQgZnJvbSB0aGUgd2FpdCBjYWxsLgotCi0JCSAgIFhYWCBJZiB3ZSBhdHRhY2hlZCB3aXRoIHN0cmFjZSAtZiAtcCBQSUQsIHRoZW4gdGhlcmUKLQkJICAgbWF5IGJlIHVudHJhY2VkIGRlYWQgY2hpbGRyZW4gdGhlIHBhcmVudCBjb3VsZCBiZSByZWFwaW5nCi0JCSAgIG5vdywgYnV0IHdlIG1ha2UgaGltIGJsb2NrLiAgKi8KLQotCQkvKiA/Pz8gV1RBOiBmaXggYnVnIHdpdGggaGFuZ2luZyBjaGlsZHJlbiAqLwotCi0JCWlmICghKHRjcC0+dV9hcmdbZmxhZ2FyZ10gJiBXTk9IQU5HKSkgewotCQkJLyoKLQkJCSAqIFRoZXJlIGFyZSB0cmFjZWQgY2hpbGRyZW4uICBXZSdsbCBtYWtlIHRoZSBwYXJlbnQKLQkJCSAqIGJsb2NrIHRvIGF2b2lkIGEgZmFsc2UgRUNISUxEIGVycm9yIGR1ZSB0byBvdXIKLQkJCSAqIHB0cmFjZSBoYXZpbmcgc3RvbGVuIHRoZSBjaGlsZHJlbi4gIEhvd2V2ZXIsCi0JCQkgKiB3ZSBzaG91bGRuJ3QgYmxvY2sgaWYgdGhlcmUgYXJlIHpvbWJpZXMgdG8gcmVhcC4KLQkJCSAqIFhYWCBkb2Vzbid0IGhhbmRsZSBwZ3JwIG1hdGNoZXMgKHVfYXJnWzBdPT0wLDwtMSkKLQkJCSAqLwotCQkJc3RydWN0IHRjYiAqY2hpbGQgPSBOVUxMOwotCQkJaWYgKHRjcC0+bnpvbWJpZXMgPiAwICYmCi0JCQkgICAgKHRjcC0+dV9hcmdbMF0gPT0gLTEgfHwKLQkJCSAgICAgKGNoaWxkID0gcGlkMnRjYih0Y3AtPnVfYXJnWzBdKSkgPT0gTlVMTCkpCi0JCQkJcmV0dXJuIDA7Ci0JCQlpZiAodGNwLT51X2FyZ1swXSA+IDApIHsKLQkJCQkvKgotCQkJCSAqIElmIHRoZSBwYXJlbnQgd2FpdHMgZm9yIGEgc3BlY2lmaWVkIGNoaWxkCi0JCQkJICogUElELCB0aGVuIGl0IG11c3QgZ2V0IEVDSElMRCByaWdodCBhd2F5Ci0JCQkJICogaWYgdGhhdCBQSUQgaXMgbm90IG9uZSBvZiBpdHMgY2hpbGRyZW4uCi0JCQkJICogTWFrZSBzdXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBQSUQgbWF0Y2hlcwotCQkJCSAqIG9uZSBvZiB0aGUgcGFyZW50J3MgY2hpbGRyZW4gdGhhdCB3ZSBhcmUKLQkJCQkgKiB0cmFjaW5nLCBhbmQgZG9uJ3Qgc3VzcGVuZCBpdCBvdGhlcndpc2UuCi0JCQkJICovCi0JCQkJaWYgKGNoaWxkID09IE5VTEwpCi0JCQkJCWNoaWxkID0gcGlkMnRjYih0Y3AtPnVfYXJnWzBdKTsKLQkJCQlpZiAoY2hpbGQgPT0gTlVMTCB8fCBjaGlsZC0+cGFyZW50ICE9ICgKLSNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECi0JCQkJCSAgICAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCi0JCQkJCSAgICA/IHRjcC0+cGFyZW50IDoKLSNlbmRpZgotCQkJCQkgICAgdGNwKSkKLQkJCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCQl0Y3AtPmZsYWdzIHw9IFRDQl9TVVNQRU5ERUQ7Ci0JCQl0Y3AtPndhaXRwaWQgPSB0Y3AtPnVfYXJnWzBdOwotI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKLQkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKLQkJCQl0Y3AtPnBhcmVudC0+bmNsb25lX3dhaXRpbmcrKzsKLSNlbmRpZgotCQl9Ci0JfQotCWlmIChleGl0aW5nKHRjcCkgJiYgdGNwLT51X2Vycm9yID09IEVDSElMRCAmJiBnb3Rfa2lkcykgewotCQlpZiAodGNwLT51X2FyZ1tmbGFnYXJnXSAmIFdOT0hBTkcpIHsKLQkJCS8qIFdlIG11c3QgZm9yY2UgYSBmYWtlIHJlc3VsdCBvZiAwIGluc3RlYWQgb2YKLQkJCSAgIHRoZSBFQ0hJTEQgZXJyb3IuICAqLwotCQkJZXh0ZXJuIGludCBmb3JjZV9yZXN1bHQoKTsKLQkJCXJldHVybiBmb3JjZV9yZXN1bHQodGNwLCAwLCAwKTsKLQkJfQotCX0KLQllbHNlIGlmIChleGl0aW5nKHRjcCkgJiYgdGNwLT51X2Vycm9yID09IDAgJiYgdGNwLT51X3J2YWwgPiAwICYmCi0JCSB0Y3AtPm56b21iaWVzID4gMCAmJiBwaWQydGNiKHRjcC0+dV9ydmFsKSA9PSBOVUxMKSB7Ci0JCS8qCi0JCSAqIFdlIGp1c3QgcmVhcGVkIGEgY2hpbGQgd2UgZG9uJ3Qga25vdyBhYm91dCwKLQkJICogcHJlc3VtYWJseSBhIHpvbWJpZSB3ZSBhbHJlYWR5IGRyb3B0Y2InZC4KLQkJICovCi0JCXRjcC0+bnpvbWJpZXMtLTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBTVlI0Ci0KLWludAotc3lzX3dhaXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJLyogVGhlIGxpYnJhcnkgd3JhcHBlciBzdHVmZnMgdGhpcyBpbnRvIHRoZSB1c2VyIHZhcmlhYmxlLiAqLwotCQlpZiAoIXN5c2Vycm9yKHRjcCkpCi0JCQlwcmludHN0YXR1cyhnZXRydmFsMih0Y3ApKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBTVlI0ICovCi0KLSNpZmRlZiBGUkVFQlNECi1pbnQKLXN5c193YWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgc3RhdHVzOwotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAoIXN5c2Vycm9yKHRjcCkpIHsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZzdGF0dXMpIDwgMCkKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCQllbHNlCi0JCQkJcHJpbnRzdGF0dXMoc3RhdHVzKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1pbnQKLXN5c193YWl0cGlkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gcHJpbnR3YWl0bih0Y3AsIDMsIDApOwotfQotCi1pbnQKLXN5c193YWl0NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIHByaW50d2FpdG4odGNwLCA0LCAwKTsKLX0KLQotI2lmZGVmIEFMUEhBCi1pbnQKLXN5c19vc2Zfd2FpdDQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBwcmludHdhaXRuKHRjcCwgNCwgMSk7Ci19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQgU1ZSNCB8fCBkZWZpbmVkIExJTlVYCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3YWl0aWRfdHlwZXNbXSA9IHsKLQl7IFBfUElELAkiUF9QSUQiCQl9LAotI2lmZGVmIFBfUFBJRAotCXsgUF9QUElELAkiUF9QUElEIgl9LAotI2VuZGlmCi0JeyBQX1BHSUQsCSJQX1BHSUQiCX0sCi0jaWZkZWYgUF9TSUQKLQl7IFBfU0lELAkiUF9TSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUF9DSUQKLQl7IFBfQ0lELAkiUF9DSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUF9VSUQKLQl7IFBfVUlELAkiUF9VSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgUF9HSUQKLQl7IFBfR0lELAkiUF9HSUQiCQl9LAotI2VuZGlmCi0JeyBQX0FMTCwJIlBfQUxMIgkJfSwKLSNpZmRlZiBQX0xXUElECi0JeyBQX0xXUElELAkiUF9MV1BJRCIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c193YWl0aWQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXNpZ2luZm9fdCBzaTsKLQlpbnQgZXhpdGVkOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHdhaXRpZF90eXBlcywgdGNwLT51X2FyZ1swXSwgIlBfPz8/Iik7Ci0JCXRwcmludGYoIiwgJWxkLCAiLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JZWxzZSB7Ci0JCS8qIHNpZ2luZm8gKi8KLQkJZXhpdGVkID0gMDsKLQkJaWYgKCF0Y3AtPnVfYXJnWzJdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZzaSkgPCAwKQotCQkJdHByaW50Zigiez8/P30iKTsKLQkJZWxzZQotCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSAodGNwKSk7Ci0JCS8qIG9wdGlvbnMgKi8KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyh3YWl0NF9vcHRpb25zLCB0Y3AtPnVfYXJnWzNdLCAiVz8/PyIpOwotCQlpZiAodGNwLT51X25hcmdzID4gNCkgewotCQkJLyogdXNhZ2UgKi8KLQkJCXRwcmludGYoIiwgIik7Ci0JCQlpZiAoIXRjcC0+dV9hcmdbNF0pCi0JCQkJdHByaW50ZigiTlVMTCIpOwotCQkJZWxzZSBpZiAodGNwLT51X2Vycm9yKQotCQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzRdKTsKLQkJCWVsc2UKLQkJCQlwcmludHJ1c2FnZSh0Y3AsIHRjcC0+dV9hcmdbNF0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogU1ZSNCBvciBMSU5VWCAqLwotCi1pbnQKLXN5c19hbGFybSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOwotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c191bmFtZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IHV0c25hbWUgdW5hbWU7Ci0KLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnVuYW1lKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIGlmICghYWJicmV2KHRjcCkpIHsKLQotCQkJdHByaW50Zigie3N5c25hbWU9XCIlc1wiLCBub2RlbmFtZT1cIiVzXCIsICIsCi0JCQkJdW5hbWUuc3lzbmFtZSwgdW5hbWUubm9kZW5hbWUpOwotCQkJdHByaW50ZigicmVsZWFzZT1cIiVzXCIsIHZlcnNpb249XCIlc1wiLCAiLAotCQkJCXVuYW1lLnJlbGVhc2UsIHVuYW1lLnZlcnNpb24pOwotCQkJdHByaW50ZigibWFjaGluZT1cIiVzXCIiLCB1bmFtZS5tYWNoaW5lKTsKLSNpZmRlZiBMSU5VWAotI2lmbmRlZiBfX0dMSUJDX18KLQkJCXRwcmludGYoIiwgZG9tYWlubmFtZT1cIiVzXCIiLCB1bmFtZS5kb21haW5uYW1lKTsKLSNlbmRpZiAvKiBfX0dMSUJDX18gKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCQkJdHByaW50ZigifSIpOwotCQl9Ci0JCWVsc2UKLQkJCXRwcmludGYoIntzeXM9XCIlc1wiLCBub2RlPVwiJXNcIiwgLi4ufSIsCi0JCQkJdW5hbWUuc3lzbmFtZSwgdW5hbWUubm9kZW5hbWUpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmbmRlZiBTVlI0Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwdHJhY2VfY21kc1tdID0gewotI2lmbmRlZiBGUkVFQlNECi0JeyBQVFJBQ0VfVFJBQ0VNRSwJIlBUUkFDRV9UUkFDRU1FIgl9LAotCXsgUFRSQUNFX1BFRUtURVhULAkiUFRSQUNFX1BFRUtURVhUIiwJfSwKLQl7IFBUUkFDRV9QRUVLREFUQSwJIlBUUkFDRV9QRUVLREFUQSIsCX0sCi0JeyBQVFJBQ0VfUEVFS1VTRVIsCSJQVFJBQ0VfUEVFS1VTRVIiLAl9LAotCXsgUFRSQUNFX1BPS0VURVhULAkiUFRSQUNFX1BPS0VURVhUIiwJfSwKLQl7IFBUUkFDRV9QT0tFREFUQSwJIlBUUkFDRV9QT0tFREFUQSIsCX0sCi0JeyBQVFJBQ0VfUE9LRVVTRVIsCSJQVFJBQ0VfUE9LRVVTRVIiLAl9LAotCXsgUFRSQUNFX0NPTlQsCQkiUFRSQUNFX0NPTlQiCQl9LAotCXsgUFRSQUNFX0tJTEwsCQkiUFRSQUNFX0tJTEwiCQl9LAotCXsgUFRSQUNFX1NJTkdMRVNURVAsCSJQVFJBQ0VfU0lOR0xFU1RFUCIJfSwKLQl7IFBUUkFDRV9BVFRBQ0gsCSJQVFJBQ0VfQVRUQUNIIgkJfSwKLQl7IFBUUkFDRV9ERVRBQ0gsCSJQVFJBQ0VfREVUQUNIIgkJfSwKLSNpZmRlZiBQVFJBQ0VfR0VUUkVHUwotCXsgUFRSQUNFX0dFVFJFR1MsCSJQVFJBQ0VfR0VUUkVHUyIJfSwKLSNlbmRpZgotI2lmZGVmIFBUUkFDRV9TRVRSRUdTCi0JeyBQVFJBQ0VfU0VUUkVHUywJIlBUUkFDRV9TRVRSRUdTIgl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX0dFVEZQUkVHUwotCXsgUFRSQUNFX0dFVEZQUkVHUywJIlBUUkFDRV9HRVRGUFJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX1NFVEZQUkVHUwotCXsgUFRSQUNFX1NFVEZQUkVHUywJIlBUUkFDRV9TRVRGUFJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX0dFVEZQWFJFR1MKLQl7IFBUUkFDRV9HRVRGUFhSRUdTLAkiUFRSQUNFX0dFVEZQWFJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX1NFVEZQWFJFR1MKLQl7IFBUUkFDRV9TRVRGUFhSRUdTLAkiUFRSQUNFX1NFVEZQWFJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX0dFVFZSUkVHUwotCXsgUFRSQUNFX0dFVFZSUkVHUywJIlBUUkFDRV9HRVRWUlJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX1NFVFZSUkVHUwotCXsgUFRSQUNFX1NFVFZSUkVHUywJIlBUUkFDRV9TRVRWUlJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgU1VOT1M0Ci0JeyBQVFJBQ0VfUkVBRERBVEEsCSJQVFJBQ0VfUkVBRERBVEEiCX0sCi0JeyBQVFJBQ0VfV1JJVEVEQVRBLAkiUFRSQUNFX1dSSVRFREFUQSIJfSwKLQl7IFBUUkFDRV9SRUFEVEVYVCwJIlBUUkFDRV9SRUFEVEVYVCIJfSwKLQl7IFBUUkFDRV9XUklURVRFWFQsCSJQVFJBQ0VfV1JJVEVURVhUIgl9LAotCXsgUFRSQUNFX0dFVEZQQVJFR1MsCSJQVFJBQ0VfR0VURlBBUkVHUyIJfSwKLQl7IFBUUkFDRV9TRVRGUEFSRUdTLAkiUFRSQUNFX1NFVEZQQVJFR1MiCX0sCi0jaWZkZWYgU1BBUkMKLQl7IFBUUkFDRV9HRVRXSU5ET1csCSJQVFJBQ0VfR0VUV0lORE9XIgl9LAotCXsgUFRSQUNFX1NFVFdJTkRPVywJIlBUUkFDRV9TRVRXSU5ET1ciCX0sCi0jZWxzZSAvKiAhU1BBUkMgKi8KLQl7IFBUUkFDRV8yMiwJCSJQVFJBQ0VfUFRSQUNFXzIyIgl9LAotCXsgUFRSQUNFXzIzLAkJIlBUUkFDRV9QVFJBQ0VfMjMiCX0sCi0jZW5kaWYgLyogIVNQQVJDICovCi0jZW5kaWYgLyogU1VOT1M0ICovCi0JeyBQVFJBQ0VfU1lTQ0FMTCwJIlBUUkFDRV9TWVNDQUxMIgl9LAotI2lmZGVmIFNVTk9TNAotCXsgUFRSQUNFX0RVTVBDT1JFLAkiUFRSQUNFX0RVTVBDT1JFIgl9LAotI2lmZGVmIEkzODYKLQl7IFBUUkFDRV9TRVRXUkJLUFQsCSJQVFJBQ0VfU0VUV1JCS1BUIgl9LAotCXsgUFRSQUNFX1NFVEFDQktQVCwJIlBUUkFDRV9TRVRBQ0JLUFQiCX0sCi0JeyBQVFJBQ0VfQ0xSRFI3LAkiUFRSQUNFX0NMUkRSNyIJCX0sCi0jZWxzZSAvKiAhSTM4NiAqLwotCXsgUFRSQUNFXzI2LAkJIlBUUkFDRV8yNiIJCX0sCi0JeyBQVFJBQ0VfMjcsCQkiUFRSQUNFXzI3IgkJfSwKLQl7IFBUUkFDRV8yOCwJCSJQVFJBQ0VfMjgiCQl9LAotI2VuZGlmIC8qICFJMzg2ICovCi0JeyBQVFJBQ0VfR0VUVUNPREUsCSJQVFJBQ0VfR0VUVUNPREUiCX0sCi0jZW5kaWYgLyogU1VOT1M0ICovCi0jZWxzZSAvKiBGUkVFQlNEICovCi0JeyBQVF9UUkFDRV9NRSwJCSJQVF9UUkFDRV9NRSIJCX0sCi0JeyBQVF9SRUFEX0ksCQkiUFRfUkVBRF9JIgkJfSwKLQl7IFBUX1JFQURfRCwJCSJQVF9SRUFEX0QiCQl9LAotCXsgUFRfV1JJVEVfSSwJCSJQVF9XUklURV9JIgkJfSwKLQl7IFBUX1dSSVRFX0QsCQkiUFRfV1JJVEVfRCIJCX0sCi0jaWZkZWYgUFRfUkVBRF9VCi0JeyBQVF9SRUFEX1UsCQkiUFRfUkVBRF9VIgkJfSwKLSNlbmRpZgotCXsgUFRfQ09OVElOVUUsCQkiUFRfQ09OVElOVUUiCQl9LAotCXsgUFRfS0lMTCwJCSJQVF9LSUxMIgkJfSwKLQl7IFBUX1NURVAsCQkiUFRfU1RFUCIJCX0sCi0JeyBQVF9BVFRBQ0gsCQkiUFRfQVRUQUNIIgkJfSwKLQl7IFBUX0RFVEFDSCwJCSJQVF9ERVRBQ0giCQl9LAotCXsgUFRfR0VUUkVHUywJCSJQVF9HRVRSRUdTIgkJfSwKLQl7IFBUX1NFVFJFR1MsCQkiUFRfU0VUUkVHUyIJCX0sCi0JeyBQVF9HRVRGUFJFR1MsCQkiUFRfR0VURlBSRUdTIgkJfSwKLQl7IFBUX1NFVEZQUkVHUywJCSJQVF9TRVRGUFJFR1MiCQl9LAotCXsgUFRfR0VUREJSRUdTLAkJIlBUX0dFVERCUkVHUyIJCX0sCi0JeyBQVF9TRVREQlJFR1MsCQkiUFRfU0VUREJSRUdTIgkJfSwKLSNlbmRpZiAvKiBGUkVFQlNEICovCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotI2lmbmRlZiBGUkVFQlNECi0jaWZuZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UKLXN0YXRpYwotI2VuZGlmIC8qICFTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFICovCi1jb25zdCBzdHJ1Y3QgeGxhdCBzdHJ1Y3RfdXNlcl9vZmZzZXRzW10gPSB7Ci0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0JeyBQVF9QU1dNQVNLLAkJInBzd19tYXNrIgkJCQl9LAotCXsgUFRfUFNXQUREUiwJCSJwc3dfYWRkciIJCQkJfSwKLQl7IFBUX0dQUjAsCQkiZ3ByMCIJCQkJCX0sCi0JeyBQVF9HUFIxLAkJImdwcjEiCQkJCQl9LAotCXsgUFRfR1BSMiwJCSJncHIyIgkJCQkJfSwKLQl7IFBUX0dQUjMsCQkiZ3ByMyIJCQkJCX0sCi0JeyBQVF9HUFI0LAkJImdwcjQiCQkJCQl9LAotCXsgUFRfR1BSNSwJCSJncHI1IgkJCQkJfSwKLQl7IFBUX0dQUjYsCQkiZ3ByNiIJCQkJCX0sCi0JeyBQVF9HUFI3LAkJImdwcjciCQkJCQl9LAotCXsgUFRfR1BSOCwJCSJncHI4IgkJCQkJfSwKLQl7IFBUX0dQUjksCQkiZ3ByOSIJCQkJCX0sCi0JeyBQVF9HUFIxMCwJCSJncHIxMCIJCQkJCX0sCi0JeyBQVF9HUFIxMSwJCSJncHIxMSIJCQkJCX0sCi0JeyBQVF9HUFIxMiwJCSJncHIxMiIJCQkJCX0sCi0JeyBQVF9HUFIxMywJCSJncHIxMyIJCQkJCX0sCi0JeyBQVF9HUFIxNCwJCSJncHIxNCIJCQkJCX0sCi0JeyBQVF9HUFIxNSwJCSJncHIxNSIJCQkJCX0sCi0JeyBQVF9BQ1IwLAkJImFjcjAiCQkJCQl9LAotCXsgUFRfQUNSMSwJCSJhY3IxIgkJCQkJfSwKLQl7IFBUX0FDUjIsCQkiYWNyMiIJCQkJCX0sCi0JeyBQVF9BQ1IzLAkJImFjcjMiCQkJCQl9LAotCXsgUFRfQUNSNCwJCSJhY3I0IgkJCQkJfSwKLQl7IFBUX0FDUjUsCQkiYWNyNSIJCQkJCX0sCi0JeyBQVF9BQ1I2LAkJImFjcjYiCQkJCQl9LAotCXsgUFRfQUNSNywJCSJhY3I3IgkJCQkJfSwKLQl7IFBUX0FDUjgsCQkiYWNyOCIJCQkJCX0sCi0JeyBQVF9BQ1I5LAkJImFjcjkiCQkJCQl9LAotCXsgUFRfQUNSMTAsCQkiYWNyMTAiCQkJCQl9LAotCXsgUFRfQUNSMTEsCQkiYWNyMTEiCQkJCQl9LAotCXsgUFRfQUNSMTIsCQkiYWNyMTIiCQkJCQl9LAotCXsgUFRfQUNSMTMsCQkiYWNyMTMiCQkJCQl9LAotCXsgUFRfQUNSMTQsCQkiYWNyMTQiCQkJCQl9LAotCXsgUFRfQUNSMTUsCQkiYWNyMTUiCQkJCQl9LAotCXsgUFRfT1JJR0dQUjIsCQkib3JpZ19ncHIyIgkJCQl9LAotCXsgUFRfRlBDLAkJImZwYyIJCQkJCX0sCi0jaWYgZGVmaW5lZChTMzkwKQotCXsgUFRfRlBSMF9ISSwJCSJmcHIwLmhpIgkJCQl9LAotCXsgUFRfRlBSMF9MTywJCSJmcHIwLmxvIgkJCQl9LAotCXsgUFRfRlBSMV9ISSwJCSJmcHIxLmhpIgkJCQl9LAotCXsgUFRfRlBSMV9MTywJCSJmcHIxLmxvIgkJCQl9LAotCXsgUFRfRlBSMl9ISSwJCSJmcHIyLmhpIgkJCQl9LAotCXsgUFRfRlBSMl9MTywJCSJmcHIyLmxvIgkJCQl9LAotCXsgUFRfRlBSM19ISSwJCSJmcHIzLmhpIgkJCQl9LAotCXsgUFRfRlBSM19MTywJCSJmcHIzLmxvIgkJCQl9LAotCXsgUFRfRlBSNF9ISSwJCSJmcHI0LmhpIgkJCQl9LAotCXsgUFRfRlBSNF9MTywJCSJmcHI0LmxvIgkJCQl9LAotCXsgUFRfRlBSNV9ISSwJCSJmcHI1LmhpIgkJCQl9LAotCXsgUFRfRlBSNV9MTywJCSJmcHI1LmxvIgkJCQl9LAotCXsgUFRfRlBSNl9ISSwJCSJmcHI2LmhpIgkJCQl9LAotCXsgUFRfRlBSNl9MTywJCSJmcHI2LmxvIgkJCQl9LAotCXsgUFRfRlBSN19ISSwJCSJmcHI3LmhpIgkJCQl9LAotCXsgUFRfRlBSN19MTywJCSJmcHI3LmxvIgkJCQl9LAotCXsgUFRfRlBSOF9ISSwJCSJmcHI4LmhpIgkJCQl9LAotCXsgUFRfRlBSOF9MTywJCSJmcHI4LmxvIgkJCQl9LAotCXsgUFRfRlBSOV9ISSwJCSJmcHI5LmhpIgkJCQl9LAotCXsgUFRfRlBSOV9MTywJCSJmcHI5LmxvIgkJCQl9LAotCXsgUFRfRlBSMTBfSEksCQkiZnByMTAuaGkiCQkJCX0sCi0JeyBQVF9GUFIxMF9MTywJCSJmcHIxMC5sbyIJCQkJfSwKLQl7IFBUX0ZQUjExX0hJLAkJImZwcjExLmhpIgkJCQl9LAotCXsgUFRfRlBSMTFfTE8sCQkiZnByMTEubG8iCQkJCX0sCi0JeyBQVF9GUFIxMl9ISSwJCSJmcHIxMi5oaSIJCQkJfSwKLQl7IFBUX0ZQUjEyX0xPLAkJImZwcjEyLmxvIgkJCQl9LAotCXsgUFRfRlBSMTNfSEksCQkiZnByMTMuaGkiCQkJCX0sCi0JeyBQVF9GUFIxM19MTywJCSJmcHIxMy5sbyIJCQkJfSwKLQl7IFBUX0ZQUjE0X0hJLAkJImZwcjE0LmhpIgkJCQl9LAotCXsgUFRfRlBSMTRfTE8sCQkiZnByMTQubG8iCQkJCX0sCi0JeyBQVF9GUFIxNV9ISSwJCSJmcHIxNS5oaSIJCQkJfSwKLQl7IFBUX0ZQUjE1X0xPLAkJImZwcjE1LmxvIgkJCQl9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTMzkwWCkKLQl7IFBUX0ZQUjAsCQkiZnByMCIJCQkJCX0sCi0JeyBQVF9GUFIxLAkJImZwcjEiCQkJCQl9LAotCXsgUFRfRlBSMiwJCSJmcHIyIgkJCQkJfSwKLQl7IFBUX0ZQUjMsCQkiZnByMyIJCQkJCX0sCi0JeyBQVF9GUFI0LAkJImZwcjQiCQkJCQl9LAotCXsgUFRfRlBSNSwJCSJmcHI1IgkJCQkJfSwKLQl7IFBUX0ZQUjYsCQkiZnByNiIJCQkJCX0sCi0JeyBQVF9GUFI3LAkJImZwcjciCQkJCQl9LAotCXsgUFRfRlBSOCwJCSJmcHI4IgkJCQkJfSwKLQl7IFBUX0ZQUjksCQkiZnByOSIJCQkJCX0sCi0JeyBQVF9GUFIxMCwJCSJmcHIxMCIJCQkJCX0sCi0JeyBQVF9GUFIxMSwJCSJmcHIxMSIJCQkJCX0sCi0JeyBQVF9GUFIxMiwJCSJmcHIxMiIJCQkJCX0sCi0JeyBQVF9GUFIxMywJCSJmcHIxMyIJCQkJCX0sCi0JeyBQVF9GUFIxNCwJCSJmcHIxNCIJCQkJCX0sCi0JeyBQVF9GUFIxNSwJCSJmcHIxNSIJCQkJCX0sCi0jZW5kaWYKLQl7IFBUX0NSXzksCQkiY3I5IgkJCQkJfSwKLQl7IFBUX0NSXzEwLAkJImNyMTAiCQkJCQl9LAotCXsgUFRfQ1JfMTEsCQkiY3IxMSIJCQkJCX0sCi0JeyBQVF9JRUVFX0lQLCAgICAgICAgICAgImllZWVfZXhjZXB0aW9uX2lwIiAgICAgICAgICAgICAgICAgICAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFNQQVJDKQotCS8qIFhYWCBObyBzdXBwb3J0IGZvciB0aGVzZSBvZmZzZXRzIHlldC4gKi8KLSNlbGlmIGRlZmluZWQoSFBQQSkKLQkvKiBYWFggTm8gc3VwcG9ydCBmb3IgdGhlc2Ugb2Zmc2V0cyB5ZXQuICovCi0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0jaWZuZGVmIFBUX09SSUdfUjMKLSNkZWZpbmUgUFRfT1JJR19SMyAzNAotI2VuZGlmCi0jZGVmaW5lIFJFR1NJWkUgKHNpemVvZih1bnNpZ25lZCBsb25nKSkKLQl7IFJFR1NJWkUqUFRfUjAsCQkicjAiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxLAkJInIxIgkJCQl9LAotCXsgUkVHU0laRSpQVF9SMiwJCSJyMiIJCQkJfSwKLQl7IFJFR1NJWkUqUFRfUjMsCQkicjMiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1I0LAkJInI0IgkJCQl9LAotCXsgUkVHU0laRSpQVF9SNSwJCSJyNSIJCQkJfSwKLQl7IFJFR1NJWkUqUFRfUjYsCQkicjYiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1I3LAkJInI3IgkJCQl9LAotCXsgUkVHU0laRSpQVF9SOCwJCSJyOCIJCQkJfSwKLQl7IFJFR1NJWkUqUFRfUjksCQkicjkiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxMCwJCSJyMTAiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxMSwJCSJyMTEiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxMiwJCSJyMTIiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxMywJCSJyMTMiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxNCwJCSJyMTQiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxNSwJCSJyMTUiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxNiwJCSJyMTYiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxNywJCSJyMTciCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxOCwJCSJyMTgiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IxOSwJCSJyMTkiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyMCwJCSJyMjAiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyMSwJCSJyMjEiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyMiwJCSJyMjIiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyMywJCSJyMjMiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyNCwJCSJyMjQiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyNSwJCSJyMjUiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyNiwJCSJyMjYiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyNywJCSJyMjciCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyOCwJCSJyMjgiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IyOSwJCSJyMjkiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IzMCwJCSJyMzAiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX1IzMSwJCSJyMzEiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX05JUCwJCSJOSVAiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX01TUiwJCSJNU1IiCQkJCX0sCi0JeyBSRUdTSVpFKlBUX09SSUdfUjMsCQkiT1JJR19SMyIJCQl9LAotCXsgUkVHU0laRSpQVF9DVFIsCQkiQ1RSIgkJCQl9LAotCXsgUkVHU0laRSpQVF9MTkssCQkiTE5LIgkJCQl9LAotCXsgUkVHU0laRSpQVF9YRVIsCQkiWEVSIgkJCQl9LAotCXsgUkVHU0laRSpQVF9DQ1IsCQkiQ0NSIgkJCQl9LAotCXsgUkVHU0laRSpQVF9GUFIwLAkJIkZQUjAiCQkJCX0sCi0jdW5kZWYgUkVHU0laRQotI2Vsc2UKLSNpZmRlZiBBTFBIQQotCXsgMCwJCQkicjAiCQkJCQl9LAotCXsgMSwJCQkicjEiCQkJCQl9LAotCXsgMiwJCQkicjIiCQkJCQl9LAotCXsgMywJCQkicjMiCQkJCQl9LAotCXsgNCwJCQkicjQiCQkJCQl9LAotCXsgNSwJCQkicjUiCQkJCQl9LAotCXsgNiwJCQkicjYiCQkJCQl9LAotCXsgNywJCQkicjciCQkJCQl9LAotCXsgOCwJCQkicjgiCQkJCQl9LAotCXsgOSwJCQkicjkiCQkJCQl9LAotCXsgMTAsCQkJInIxMCIJCQkJCX0sCi0JeyAxMSwJCQkicjExIgkJCQkJfSwKLQl7IDEyLAkJCSJyMTIiCQkJCQl9LAotCXsgMTMsCQkJInIxMyIJCQkJCX0sCi0JeyAxNCwJCQkicjE0IgkJCQkJfSwKLQl7IDE1LAkJCSJyMTUiCQkJCQl9LAotCXsgMTYsCQkJInIxNiIJCQkJCX0sCi0JeyAxNywJCQkicjE3IgkJCQkJfSwKLQl7IDE4LAkJCSJyMTgiCQkJCQl9LAotCXsgMTksCQkJInIxOSIJCQkJCX0sCi0JeyAyMCwJCQkicjIwIgkJCQkJfSwKLQl7IDIxLAkJCSJyMjEiCQkJCQl9LAotCXsgMjIsCQkJInIyMiIJCQkJCX0sCi0JeyAyMywJCQkicjIzIgkJCQkJfSwKLQl7IDI0LAkJCSJyMjQiCQkJCQl9LAotCXsgMjUsCQkJInIyNSIJCQkJCX0sCi0JeyAyNiwJCQkicjI2IgkJCQkJfSwKLQl7IDI3LAkJCSJyMjciCQkJCQl9LAotCXsgMjgsCQkJInIyOCIJCQkJCX0sCi0JeyAyOSwJCQkiZ3AiCQkJCQl9LAotCXsgMzAsCQkJImZwIgkJCQkJfSwKLQl7IDMxLAkJCSJ6ZXJvIgkJCQkJfSwKLQl7IDMyLAkJCSJmcDAiCQkJCQl9LAotCXsgMzMsCQkJImZwIgkJCQkJfSwKLQl7IDM0LAkJCSJmcDIiCQkJCQl9LAotCXsgMzUsCQkJImZwMyIJCQkJCX0sCi0JeyAzNiwJCQkiZnA0IgkJCQkJfSwKLQl7IDM3LAkJCSJmcDUiCQkJCQl9LAotCXsgMzgsCQkJImZwNiIJCQkJCX0sCi0JeyAzOSwJCQkiZnA3IgkJCQkJfSwKLQl7IDQwLAkJCSJmcDgiCQkJCQl9LAotCXsgNDEsCQkJImZwOSIJCQkJCX0sCi0JeyA0MiwJCQkiZnAxMCIJCQkJCX0sCi0JeyA0MywJCQkiZnAxMSIJCQkJCX0sCi0JeyA0NCwJCQkiZnAxMiIJCQkJCX0sCi0JeyA0NSwJCQkiZnAxMyIJCQkJCX0sCi0JeyA0NiwJCQkiZnAxNCIJCQkJCX0sCi0JeyA0NywJCQkiZnAxNSIJCQkJCX0sCi0JeyA0OCwJCQkiZnAxNiIJCQkJCX0sCi0JeyA0OSwJCQkiZnAxNyIJCQkJCX0sCi0JeyA1MCwJCQkiZnAxOCIJCQkJCX0sCi0JeyA1MSwJCQkiZnAxOSIJCQkJCX0sCi0JeyA1MiwJCQkiZnAyMCIJCQkJCX0sCi0JeyA1MywJCQkiZnAyMSIJCQkJCX0sCi0JeyA1NCwJCQkiZnAyMiIJCQkJCX0sCi0JeyA1NSwJCQkiZnAyMyIJCQkJCX0sCi0JeyA1NiwJCQkiZnAyNCIJCQkJCX0sCi0JeyA1NywJCQkiZnAyNSIJCQkJCX0sCi0JeyA1OCwJCQkiZnAyNiIJCQkJCX0sCi0JeyA1OSwJCQkiZnAyNyIJCQkJCX0sCi0JeyA2MCwJCQkiZnAyOCIJCQkJCX0sCi0JeyA2MSwJCQkiZnAyOSIJCQkJCX0sCi0JeyA2MiwJCQkiZnAzMCIJCQkJCX0sCi0JeyA2MywJCQkiZnAzMSIJCQkJCX0sCi0JeyA2NCwJCQkicGMiCQkJCQl9LAotI2Vsc2UgLyogIUFMUEhBICovCi0jaWZkZWYgSUE2NAotCXsgUFRfRjMyLCAiZjMyIiB9LCB7IFBUX0YzMywgImYzMyIgfSwgeyBQVF9GMzQsICJmMzQiIH0sCi0JeyBQVF9GMzUsICJmMzUiIH0sIHsgUFRfRjM2LCAiZjM2IiB9LCB7IFBUX0YzNywgImYzNyIgfSwKLQl7IFBUX0YzOCwgImYzOCIgfSwgeyBQVF9GMzksICJmMzkiIH0sIHsgUFRfRjQwLCAiZjQwIiB9LAotCXsgUFRfRjQxLCAiZjQxIiB9LCB7IFBUX0Y0MiwgImY0MiIgfSwgeyBQVF9GNDMsICJmNDMiIH0sCi0JeyBQVF9GNDQsICJmNDQiIH0sIHsgUFRfRjQ1LCAiZjQ1IiB9LCB7IFBUX0Y0NiwgImY0NiIgfSwKLQl7IFBUX0Y0NywgImY0NyIgfSwgeyBQVF9GNDgsICJmNDgiIH0sIHsgUFRfRjQ5LCAiZjQ5IiB9LAotCXsgUFRfRjUwLCAiZjUwIiB9LCB7IFBUX0Y1MSwgImY1MSIgfSwgeyBQVF9GNTIsICJmNTIiIH0sCi0JeyBQVF9GNTMsICJmNTMiIH0sIHsgUFRfRjU0LCAiZjU0IiB9LCB7IFBUX0Y1NSwgImY1NSIgfSwKLQl7IFBUX0Y1NiwgImY1NiIgfSwgeyBQVF9GNTcsICJmNTciIH0sIHsgUFRfRjU4LCAiZjU4IiB9LAotCXsgUFRfRjU5LCAiZjU5IiB9LCB7IFBUX0Y2MCwgImY2MCIgfSwgeyBQVF9GNjEsICJmNjEiIH0sCi0JeyBQVF9GNjIsICJmNjIiIH0sIHsgUFRfRjYzLCAiZjYzIiB9LCB7IFBUX0Y2NCwgImY2NCIgfSwKLQl7IFBUX0Y2NSwgImY2NSIgfSwgeyBQVF9GNjYsICJmNjYiIH0sIHsgUFRfRjY3LCAiZjY3IiB9LAotCXsgUFRfRjY4LCAiZjY4IiB9LCB7IFBUX0Y2OSwgImY2OSIgfSwgeyBQVF9GNzAsICJmNzAiIH0sCi0JeyBQVF9GNzEsICJmNzEiIH0sIHsgUFRfRjcyLCAiZjcyIiB9LCB7IFBUX0Y3MywgImY3MyIgfSwKLQl7IFBUX0Y3NCwgImY3NCIgfSwgeyBQVF9GNzUsICJmNzUiIH0sIHsgUFRfRjc2LCAiZjc2IiB9LAotCXsgUFRfRjc3LCAiZjc3IiB9LCB7IFBUX0Y3OCwgImY3OCIgfSwgeyBQVF9GNzksICJmNzkiIH0sCi0JeyBQVF9GODAsICJmODAiIH0sIHsgUFRfRjgxLCAiZjgxIiB9LCB7IFBUX0Y4MiwgImY4MiIgfSwKLQl7IFBUX0Y4MywgImY4MyIgfSwgeyBQVF9GODQsICJmODQiIH0sIHsgUFRfRjg1LCAiZjg1IiB9LAotCXsgUFRfRjg2LCAiZjg2IiB9LCB7IFBUX0Y4NywgImY4NyIgfSwgeyBQVF9GODgsICJmODgiIH0sCi0JeyBQVF9GODksICJmODkiIH0sIHsgUFRfRjkwLCAiZjkwIiB9LCB7IFBUX0Y5MSwgImY5MSIgfSwKLQl7IFBUX0Y5MiwgImY5MiIgfSwgeyBQVF9GOTMsICJmOTMiIH0sIHsgUFRfRjk0LCAiZjk0IiB9LAotCXsgUFRfRjk1LCAiZjk1IiB9LCB7IFBUX0Y5NiwgImY5NiIgfSwgeyBQVF9GOTcsICJmOTciIH0sCi0JeyBQVF9GOTgsICJmOTgiIH0sIHsgUFRfRjk5LCAiZjk5IiB9LCB7IFBUX0YxMDAsICJmMTAwIiB9LAotCXsgUFRfRjEwMSwgImYxMDEiIH0sIHsgUFRfRjEwMiwgImYxMDIiIH0sIHsgUFRfRjEwMywgImYxMDMiIH0sCi0JeyBQVF9GMTA0LCAiZjEwNCIgfSwgeyBQVF9GMTA1LCAiZjEwNSIgfSwgeyBQVF9GMTA2LCAiZjEwNiIgfSwKLQl7IFBUX0YxMDcsICJmMTA3IiB9LCB7IFBUX0YxMDgsICJmMTA4IiB9LCB7IFBUX0YxMDksICJmMTA5IiB9LAotCXsgUFRfRjExMCwgImYxMTAiIH0sIHsgUFRfRjExMSwgImYxMTEiIH0sIHsgUFRfRjExMiwgImYxMTIiIH0sCi0JeyBQVF9GMTEzLCAiZjExMyIgfSwgeyBQVF9GMTE0LCAiZjExNCIgfSwgeyBQVF9GMTE1LCAiZjExNSIgfSwKLQl7IFBUX0YxMTYsICJmMTE2IiB9LCB7IFBUX0YxMTcsICJmMTE3IiB9LCB7IFBUX0YxMTgsICJmMTE4IiB9LAotCXsgUFRfRjExOSwgImYxMTkiIH0sIHsgUFRfRjEyMCwgImYxMjAiIH0sIHsgUFRfRjEyMSwgImYxMjEiIH0sCi0JeyBQVF9GMTIyLCAiZjEyMiIgfSwgeyBQVF9GMTIzLCAiZjEyMyIgfSwgeyBQVF9GMTI0LCAiZjEyNCIgfSwKLQl7IFBUX0YxMjUsICJmMTI1IiB9LCB7IFBUX0YxMjYsICJmMTI2IiB9LCB7IFBUX0YxMjcsICJmMTI3IiB9LAotCS8qIHN3aXRjaCBzdGFjazogKi8KLQl7IFBUX0YyLCAiZjIiIH0sIHsgUFRfRjMsICJmMyIgfSwgeyBQVF9GNCwgImY0IiB9LAotCXsgUFRfRjUsICJmNSIgfSwgeyBQVF9GMTAsICJmMTAiIH0sIHsgUFRfRjExLCAiZjExIiB9LAotCXsgUFRfRjEyLCAiZjEyIiB9LCB7IFBUX0YxMywgImYxMyIgfSwgeyBQVF9GMTQsICJmMTQiIH0sCi0JeyBQVF9GMTUsICJmMTUiIH0sIHsgUFRfRjE2LCAiZjE2IiB9LCB7IFBUX0YxNywgImYxNyIgfSwKLQl7IFBUX0YxOCwgImYxOCIgfSwgeyBQVF9GMTksICJmMTkiIH0sIHsgUFRfRjIwLCAiZjIwIiB9LAotCXsgUFRfRjIxLCAiZjIxIiB9LCB7IFBUX0YyMiwgImYyMiIgfSwgeyBQVF9GMjMsICJmMjMiIH0sCi0JeyBQVF9GMjQsICJmMjQiIH0sIHsgUFRfRjI1LCAiZjI1IiB9LCB7IFBUX0YyNiwgImYyNiIgfSwKLQl7IFBUX0YyNywgImYyNyIgfSwgeyBQVF9GMjgsICJmMjgiIH0sIHsgUFRfRjI5LCAiZjI5IiB9LAotCXsgUFRfRjMwLCAiZjMwIiB9LCB7IFBUX0YzMSwgImYzMSIgfSwgeyBQVF9SNCwgInI0IiB9LAotCXsgUFRfUjUsICJyNSIgfSwgeyBQVF9SNiwgInI2IiB9LCB7IFBUX1I3LCAicjciIH0sCi0JeyBQVF9CMSwgImIxIiB9LCB7IFBUX0IyLCAiYjIiIH0sIHsgUFRfQjMsICJiMyIgfSwKLQl7IFBUX0I0LCAiYjQiIH0sIHsgUFRfQjUsICJiNSIgfSwKLQl7IFBUX0FSX0VDLCAiYXIuZWMiIH0sIHsgUFRfQVJfTEMsICJhci5sYyIgfSwKLQkvKiBwdF9yZWdzICovCi0JeyBQVF9DUl9JUFNSLCAicHNyIiB9LCB7IFBUX0NSX0lJUCwgImlwIiB9LAotCXsgUFRfQ0ZNLCAiY2ZtIiB9LCB7IFBUX0FSX1VOQVQsICJhci51bmF0IiB9LAotCXsgUFRfQVJfUEZTLCAiYXIucGZzIiB9LCB7IFBUX0FSX1JTQywgImFyLnJzYyIgfSwKLQl7IFBUX0FSX1JOQVQsICJhci5ybmF0IiB9LCB7IFBUX0FSX0JTUFNUT1JFLCAiYXIuYnNwc3RvcmUiIH0sCi0JeyBQVF9QUiwgInByIiB9LCB7IFBUX0I2LCAiYjYiIH0sIHsgUFRfQVJfQlNQLCAiYXIuYnNwIiB9LAotCXsgUFRfUjEsICJyMSIgfSwgeyBQVF9SMiwgInIyIiB9LCB7IFBUX1IzLCAicjMiIH0sCi0JeyBQVF9SMTIsICJyMTIiIH0sIHsgUFRfUjEzLCAicjEzIiB9LCB7IFBUX1IxNCwgInIxNCIgfSwKLQl7IFBUX1IxNSwgInIxNSIgfSwgeyBQVF9SOCwgInI4IiB9LCB7IFBUX1I5LCAicjkiIH0sCi0JeyBQVF9SMTAsICJyMTAiIH0sIHsgUFRfUjExLCAicjExIiB9LCB7IFBUX1IxNiwgInIxNiIgfSwKLQl7IFBUX1IxNywgInIxNyIgfSwgeyBQVF9SMTgsICJyMTgiIH0sIHsgUFRfUjE5LCAicjE5IiB9LAotCXsgUFRfUjIwLCAicjIwIiB9LCB7IFBUX1IyMSwgInIyMSIgfSwgeyBQVF9SMjIsICJyMjIiIH0sCi0JeyBQVF9SMjMsICJyMjMiIH0sIHsgUFRfUjI0LCAicjI0IiB9LCB7IFBUX1IyNSwgInIyNSIgfSwKLQl7IFBUX1IyNiwgInIyNiIgfSwgeyBQVF9SMjcsICJyMjciIH0sIHsgUFRfUjI4LCAicjI4IiB9LAotCXsgUFRfUjI5LCAicjI5IiB9LCB7IFBUX1IzMCwgInIzMCIgfSwgeyBQVF9SMzEsICJyMzEiIH0sCi0JeyBQVF9BUl9DQ1YsICJhci5jY3YiIH0sIHsgUFRfQVJfRlBTUiwgImFyLmZwc3IiIH0sCi0JeyBQVF9CMCwgImIwIiB9LCB7IFBUX0I3LCAiYjciIH0sIHsgUFRfRjYsICJmNiIgfSwKLQl7IFBUX0Y3LCAiZjciIH0sIHsgUFRfRjgsICJmOCIgfSwgeyBQVF9GOSwgImY5IiB9LAotIyBpZmRlZiBQVF9BUl9DU0QKLQl7IFBUX0FSX0NTRCwgImFyLmNzZCIgfSwKLSMgZW5kaWYKLSMgaWZkZWYgUFRfQVJfU1NECi0JeyBQVF9BUl9TU0QsICJhci5zc2QiIH0sCi0jIGVuZGlmCi0JeyBQVF9EQlIsICJkYnIiIH0sIHsgUFRfSUJSLCAiaWJyIiB9LCB7IFBUX1BNRCwgInBtZCIgfSwKLSNlbHNlIC8qICFJQTY0ICovCi0jaWZkZWYgSTM4NgotCXsgNCpFQlgsCQkiNCpFQlgiCQkJCQl9LAotCXsgNCpFQ1gsCQkiNCpFQ1giCQkJCQl9LAotCXsgNCpFRFgsCQkiNCpFRFgiCQkJCQl9LAotCXsgNCpFU0ksCQkiNCpFU0kiCQkJCQl9LAotCXsgNCpFREksCQkiNCpFREkiCQkJCQl9LAotCXsgNCpFQlAsCQkiNCpFQlAiCQkJCQl9LAotCXsgNCpFQVgsCQkiNCpFQVgiCQkJCQl9LAotCXsgNCpEUywJCQkiNCpEUyIJCQkJCX0sCi0JeyA0KkVTLAkJCSI0KkVTIgkJCQkJfSwKLQl7IDQqRlMsCQkJIjQqRlMiCQkJCQl9LAotCXsgNCpHUywJCQkiNCpHUyIJCQkJCX0sCi0JeyA0Kk9SSUdfRUFYLAkJIjQqT1JJR19FQVgiCQkJCX0sCi0JeyA0KkVJUCwJCSI0KkVJUCIJCQkJCX0sCi0JeyA0KkNTLAkJCSI0KkNTIgkJCQkJfSwKLQl7IDQqRUZMLAkJIjQqRUZMIgkJCQkJfSwKLQl7IDQqVUVTUCwJCSI0KlVFU1AiCQkJCX0sCi0JeyA0KlNTLAkJCSI0KlNTIgkJCQkJfSwKLSNlbHNlIC8qICFJMzg2ICovCi0jaWZkZWYgWDg2XzY0Ci0JeyA4KlIxNSwgCQkiOCpSMTUiCQkJCQl9LAotCXsgOCpSMTQsIAkJIjgqUjE0IgkJCQkJfSwKLQl7IDgqUjEzLCAJCSI4KlIxMyIJCQkJCX0sCi0JeyA4KlIxMiwgCQkiOCpSMTIiCQkJCQl9LAotCXsgOCpSQlAsCQkiOCpSQlAiCQkJCQl9LAotCXsgOCpSQlgsCQkiOCpSQlgiCQkJCQl9LAotCXsgOCpSMTEsCQkiOCpSMTEiCQkJCQl9LAotCXsgOCpSMTAsCQkiOCpSMTAiCQkJCQl9LAotCXsgOCpSOSwJCQkiOCpSOSIJCQkJCX0sCi0JeyA4KlI4LAkJCSI4KlI4IgkJCQkJfSwKLQl7IDgqUkFYLAkJIjgqUkFYIgkJCQkJfSwKLQl7IDgqUkNYLAkJIjgqUkNYIgkJCQkJfSwKLQl7IDgqUkRYLAkJIjgqUkRYIgkJCQkJfSwKLQl7IDgqUlNJLAkJIjgqUlNJIgkJCQkJfSwKLQl7IDgqUkRJLAkJIjgqUkRJIgkJCQkJfSwKLSNpZiAwCi0JeyBEUywJCQkiRFMiCQkJCQl9LAotCXsgRVMsCQkJIkVTIgkJCQkJfSwKLQl7IEZTLAkJCSJGUyIJCQkJCX0sCi0JeyBHUywJCQkiR1MiCQkJCQl9LAotI2VuZGlmCi0JeyA4Kk9SSUdfUkFYLAkJIjgqT1JJR19SQVgiCQkJCX0sCi0JeyA4KlJJUCwJCSI4KlJJUCIJCQkJCX0sCi0JeyA4KkNTLAkJCSI4KkNTIgkJCQkJfSwKLQl7IDgqRUZMQUdTLAkJIjgqRUZMIgkJCQkJfSwKLQl7IDgqUlNQLAkJIjgqUlNQIgkJCQkJfSwKLQl7IDgqU1MsCQkJIjgqU1MiCQkJCQl9LAotI2VuZGlmCi0jaWZkZWYgTTY4SwotCXsgNCpQVF9EMSwJCSI0KlBUX0QxIgkJCQl9LAotCXsgNCpQVF9EMiwJCSI0KlBUX0QyIgkJCQl9LAotCXsgNCpQVF9EMywJCSI0KlBUX0QzIgkJCQl9LAotCXsgNCpQVF9ENCwJCSI0KlBUX0Q0IgkJCQl9LAotCXsgNCpQVF9ENSwJCSI0KlBUX0Q1IgkJCQl9LAotCXsgNCpQVF9ENiwJCSI0KlBUX0Q2IgkJCQl9LAotCXsgNCpQVF9ENywJCSI0KlBUX0Q3IgkJCQl9LAotCXsgNCpQVF9BMCwJCSI0KlBUX0EwIgkJCQl9LAotCXsgNCpQVF9BMSwJCSI0KlBUX0ExIgkJCQl9LAotCXsgNCpQVF9BMiwJCSI0KlBUX0EyIgkJCQl9LAotCXsgNCpQVF9BMywJCSI0KlBUX0EzIgkJCQl9LAotCXsgNCpQVF9BNCwJCSI0KlBUX0E0IgkJCQl9LAotCXsgNCpQVF9BNSwJCSI0KlBUX0E1IgkJCQl9LAotCXsgNCpQVF9BNiwJCSI0KlBUX0E2IgkJCQl9LAotCXsgNCpQVF9EMCwJCSI0KlBUX0QwIgkJCQl9LAotCXsgNCpQVF9VU1AsCQkiNCpQVF9VU1AiCQkJCX0sCi0JeyA0KlBUX09SSUdfRDAsCQkiNCpQVF9PUklHX0QwIgkJCQl9LAotCXsgNCpQVF9TUiwJCSI0KlBUX1NSIgkJCQl9LAotCXsgNCpQVF9QQywJCSI0KlBUX1BDIgkJCQl9LAotI2VuZGlmIC8qIE02OEsgKi8KLSNlbmRpZiAvKiAhSTM4NiAqLwotI2lmZGVmIFNICi0gICAgICAgeyA0KlJFR19SRUcwLCAgICAgICAgICAgIjQqUkVHX1JFRzAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxKSwgICAgICAgIjQqUkVHX1JFRzEiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsyKSwgICAgICAgIjQqUkVHX1JFRzIiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCszKSwgICAgICAgIjQqUkVHX1JFRzMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs0KSwgICAgICAgIjQqUkVHX1JFRzQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs1KSwgICAgICAgIjQqUkVHX1JFRzUiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs2KSwgICAgICAgIjQqUkVHX1JFRzYiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs3KSwgICAgICAgIjQqUkVHX1JFRzciICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs4KSwgICAgICAgIjQqUkVHX1JFRzgiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCs5KSwgICAgICAgIjQqUkVHX1JFRzkiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxMCksICAgICAgIjQqUkVHX1JFRzEwIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxMSksICAgICAgIjQqUkVHX1JFRzExIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxMiksICAgICAgIjQqUkVHX1JFRzEyIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxMyksICAgICAgIjQqUkVHX1JFRzEzIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfUkVHMCsxNCksICAgICAgIjQqUkVHX1JFRzE0IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19SRUcxNSwgICAgICAgICAgIjQqUkVHX1JFRzE1IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19QQywgICAgICAgICAgICAgIjQqUkVHX1BDIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19QUiwgICAgICAgICAgICAgIjQqUkVHX1BSIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19TUiwgICAgICAgICAgICAgIjQqUkVHX1NSIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19HQlIsICAgICAgICAgICAgIjQqUkVHX0dCUiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19NQUNILCAgICAgICAgICAgIjQqUkVHX01BQ0giICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19NQUNMLCAgICAgICAgICAgIjQqUkVHX01BQ0wiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19TWVNDQUxMLCAgICAgICAgIjQqUkVHX1NZU0NBTEwiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19GUFVMLCAgICAgICAgICAgIjQqUkVHX0ZQVUwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19GUFJFRzAsICAgICAgICAgIjQqUkVHX0ZQUkVHMCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzEpLCAgICAgIjQqUkVHX0ZQUkVHMSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzIpLCAgICAgIjQqUkVHX0ZQUkVHMiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzMpLCAgICAgIjQqUkVHX0ZQUkVHMyIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzQpLCAgICAgIjQqUkVHX0ZQUkVHNCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzUpLCAgICAgIjQqUkVHX0ZQUkVHNSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzYpLCAgICAgIjQqUkVHX0ZQUkVHNiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzcpLCAgICAgIjQqUkVHX0ZQUkVHNyIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzgpLCAgICAgIjQqUkVHX0ZQUkVHOCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzkpLCAgICAgIjQqUkVHX0ZQUkVHOSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzEwKSwgICAgIjQqUkVHX0ZQUkVHMTAiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzExKSwgICAgIjQqUkVHX0ZQUkVHMTEiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzEyKSwgICAgIjQqUkVHX0ZQUkVHMTIiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzEzKSwgICAgIjQqUkVHX0ZQUkVHMTMiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfRlBSRUcwKzE0KSwgICAgIjQqUkVHX0ZQUkVHMTQiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19GUFJFRzE1LCAgICAgICAgIjQqUkVHX0ZQUkVHMTUiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0jaWZkZWYgUkVHX1hEUkVHMAotICAgICAgIHsgNCpSRUdfWERSRUcwLCAgICAgICAgICI0KlJFR19YRFJFRzAiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCsyKSwgICAgICI0KlJFR19YRFJFRzIiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCs0KSwgICAgICI0KlJFR19YRFJFRzQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCs2KSwgICAgICI0KlJFR19YRFJFRzYiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCs4KSwgICAgICI0KlJFR19YRFJFRzgiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCsxMCksICAgICI0KlJFR19YRFJFRzEwIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCooUkVHX1hEUkVHMCsxMiksICAgICI0KlJFR19YRFJFRzEyIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgIHsgNCpSRUdfWERSRUcxNCwgICAgICAgICI0KlJFR19YRFJFRzE0IiAgICAgICAgICAgICAgICAgICAgICAgICB9LAotI2VuZGlmCi0gICAgICAgeyA0KlJFR19GUFNDUiwgICAgICAgICAgIjQqUkVHX0ZQU0NSIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0jZW5kaWYgLyogU0ggKi8KLSNpZmRlZiBTSDY0Ci0JeyAwLAkJICAgICAgICAiUEMoTCkiCQkJCSAgICAgICAgfSwKLQl7IDQsCSAgICAgICAgICAgICAgICAiUEMoVSkiCQkJCSAgICAgICAgfSwKLQl7IDgsIAkgICAgICAgICAgICAgICAgIlNSKEwpIgkgIAkgICAgICAgICAJCX0sCi0JeyAxMiwgICAgICAgICAgICAgICAJIlNSKFUpIiAgICAgCQkJCX0sCi0JeyAxNiwgICAgICAgICAgICAJInN5c2NhbGwgbm8uKEwpIiAJCQl9LAotCXsgMjAsICAgICAgICAgICAgCSJzeXNjYWxsX25vLihVKSIJCQl9LAotCXsgMjQsICAgICAgICAgICAgCSJSMChMKSIgICAgIAkJCQl9LAotCXsgMjgsICAgICAgICAgICAgCSJSMChVKSIgICAgIAkJCQl9LAotCXsgMzIsICAgICAgICAgICAgCSJSMShMKSIgICAgIAkJCQl9LAotCXsgMzYsICAgICAgICAgICAgCSJSMShVKSIgICAgIAkJCQl9LAotCXsgNDAsICAgICAgICAgICAgCSJSMihMKSIgICAgIAkJCQl9LAotCXsgNDQsICAgICAgICAgICAgCSJSMihVKSIgICAgIAkJCQl9LAotCXsgNDgsICAgICAgICAgICAgCSJSMyhMKSIgICAgIAkJCQl9LAotCXsgNTIsICAgICAgICAgICAgCSJSMyhVKSIgICAgIAkJCQl9LAotCXsgNTYsICAgICAgICAgICAgCSJSNChMKSIgICAgIAkJCQl9LAotCXsgNjAsICAgICAgICAgICAgCSJSNChVKSIgICAgIAkJCQl9LAotCXsgNjQsICAgICAgICAgICAgCSJSNShMKSIgICAgIAkJCQl9LAotCXsgNjgsICAgICAgICAgICAgCSJSNShVKSIgICAgIAkJCQl9LAotCXsgNzIsICAgICAgICAgICAgCSJSNihMKSIgICAgIAkJCQl9LAotCXsgNzYsICAgICAgICAgICAgCSJSNihVKSIgICAgIAkJCQl9LAotCXsgODAsICAgICAgICAgICAgCSJSNyhMKSIgICAgIAkJCQl9LAotCXsgODQsICAgICAgICAgICAgCSJSNyhVKSIgICAgIAkJCQl9LAotCXsgODgsICAgICAgICAgICAgCSJSOChMKSIgICAgIAkJCQl9LAotCXsgOTIsICAgICAgICAgICAgCSJSOChVKSIgICAgIAkJCQl9LAotCXsgOTYsICAgICAgICAgICAgCSJSOShMKSIgICAgIAkJCQl9LAotCXsgMTAwLCAgICAgICAgICAgCSJSOShVKSIgICAgIAkJCQl9LAotCXsgMTA0LCAgICAgICAgICAgCSJSMTAoTCkiICAgICAJCQkJfSwKLQl7IDEwOCwgICAgICAgICAgIAkiUjEwKFUpIiAgICAgCQkJCX0sCi0JeyAxMTIsICAgICAgICAgICAJIlIxMShMKSIgICAgIAkJCQl9LAotCXsgMTE2LCAgICAgICAgICAgCSJSMTEoVSkiICAgICAJCQkJfSwKLQl7IDEyMCwgICAgICAgICAgIAkiUjEyKEwpIiAgICAgCQkJCX0sCi0JeyAxMjQsICAgICAgICAgICAJIlIxMihVKSIgICAgIAkJCQl9LAotCXsgMTI4LCAgICAgICAgICAgCSJSMTMoTCkiICAgICAJCQkJfSwKLQl7IDEzMiwgICAgICAgICAgIAkiUjEzKFUpIiAgICAgCQkJCX0sCi0JeyAxMzYsICAgICAgICAgICAJIlIxNChMKSIgICAgIAkJCQl9LAotCXsgMTQwLCAgICAgICAgICAgCSJSMTQoVSkiICAgICAJCQkJfSwKLQl7IDE0NCwgICAgICAgICAgIAkiUjE1KEwpIiAgICAgCQkJCX0sCi0JeyAxNDgsICAgICAgICAgICAJIlIxNShVKSIgICAgIAkJCQl9LAotCXsgMTUyLCAgICAgICAgICAgCSJSMTYoTCkiICAgICAJCQkJfSwKLQl7IDE1NiwgICAgICAgICAgIAkiUjE2KFUpIiAgICAgCQkJCX0sCi0JeyAxNjAsICAgICAgICAgICAJIlIxNyhMKSIgICAgIAkJCQl9LAotCXsgMTY0LCAgICAgICAgICAgCSJSMTcoVSkiICAgICAJCQkJfSwKLQl7IDE2OCwgICAgICAgICAgIAkiUjE4KEwpIiAgICAgCQkJCX0sCi0JeyAxNzIsICAgICAgICAgICAJIlIxOChVKSIgICAgIAkJCQl9LAotCXsgMTc2LCAgICAgICAgICAgCSJSMTkoTCkiICAgICAJCQkJfSwKLQl7IDE4MCwgICAgICAgICAgIAkiUjE5KFUpIiAgICAgCQkJCX0sCi0JeyAxODQsICAgICAgICAgICAJIlIyMChMKSIgICAgIAkJCQl9LAotCXsgMTg4LCAgICAgICAgICAgCSJSMjAoVSkiICAgICAJCQkJfSwKLQl7IDE5MiwgICAgICAgICAgIAkiUjIxKEwpIiAgICAgCQkJCX0sCi0JeyAxOTYsICAgICAgICAgICAJIlIyMShVKSIgICAgIAkJCQl9LAotCXsgMjAwLCAgICAgICAgICAgCSJSMjIoTCkiICAgICAJCQkJfSwKLQl7IDIwNCwgICAgICAgICAgIAkiUjIyKFUpIiAgICAgCQkJCX0sCi0JeyAyMDgsICAgICAgICAgICAJIlIyMyhMKSIgICAgIAkJCQl9LAotCXsgMjEyLCAgICAgICAgICAgCSJSMjMoVSkiICAgICAJCQkJfSwKLQl7IDIxNiwgICAgICAgICAgIAkiUjI0KEwpIiAgICAgCQkJCX0sCi0JeyAyMjAsICAgICAgICAgICAJIlIyNChVKSIgICAgIAkJCQl9LAotCXsgMjI0LCAgICAgICAgICAgCSJSMjUoTCkiICAgICAJCQkJfSwKLQl7IDIyOCwgICAgICAgICAgIAkiUjI1KFUpIiAgICAgCQkJCX0sCi0JeyAyMzIsICAgICAgICAgICAJIlIyNihMKSIgICAgIAkJCQl9LAotCXsgMjM2LCAgICAgICAgICAgCSJSMjYoVSkiICAgICAJCQkJfSwKLQl7IDI0MCwgICAgICAgICAgIAkiUjI3KEwpIiAgICAgCQkJCX0sCi0JeyAyNDQsICAgICAgICAgICAJIlIyNyhVKSIgICAgIAkJCQl9LAotCXsgMjQ4LCAgICAgICAgICAgCSJSMjgoTCkiICAgICAJCQkJfSwKLQl7IDI1MiwgICAgICAgICAgIAkiUjI4KFUpIiAgICAgCQkJCX0sCi0JeyAyNTYsICAgICAgICAgICAJIlIyOShMKSIgICAgIAkJCQl9LAotCXsgMjYwLCAgICAgICAgICAgCSJSMjkoVSkiICAgICAJCQkJfSwKLQl7IDI2NCwgICAgICAgICAgIAkiUjMwKEwpIiAgICAgCQkJCX0sCi0JeyAyNjgsICAgICAgICAgICAJIlIzMChVKSIgICAgIAkJCQl9LAotCXsgMjcyLCAgICAgICAgICAgCSJSMzEoTCkiICAgICAJCQkJfSwKLQl7IDI3NiwgICAgICAgICAgIAkiUjMxKFUpIiAgICAgCQkJCX0sCi0JeyAyODAsICAgICAgICAgICAJIlIzMihMKSIgICAgIAkJCQl9LAotCXsgMjg0LCAgICAgICAgICAgCSJSMzIoVSkiICAgICAJCQkJfSwKLQl7IDI4OCwgICAgICAgICAgIAkiUjMzKEwpIiAgICAgCQkJCX0sCi0JeyAyOTIsICAgICAgICAgICAJIlIzMyhVKSIgICAgIAkJCQl9LAotCXsgMjk2LCAgICAgICAgICAgCSJSMzQoTCkiICAgICAJCQkJfSwKLQl7IDMwMCwgICAgICAgICAgIAkiUjM0KFUpIiAgICAgCQkJCX0sCi0JeyAzMDQsICAgICAgICAgICAJIlIzNShMKSIgICAgIAkJCQl9LAotCXsgMzA4LCAgICAgICAgICAgCSJSMzUoVSkiICAgICAJCQkJfSwKLQl7IDMxMiwgICAgICAgICAgIAkiUjM2KEwpIiAgICAgCQkJCX0sCi0JeyAzMTYsICAgICAgICAgICAJIlIzNihVKSIgICAgIAkJCQl9LAotCXsgMzIwLCAgICAgICAgICAgCSJSMzcoTCkiICAgICAJCQkJfSwKLQl7IDMyNCwgICAgICAgICAgIAkiUjM3KFUpIiAgICAgCQkJCX0sCi0JeyAzMjgsICAgICAgICAgICAJIlIzOChMKSIgICAgIAkJCQl9LAotCXsgMzMyLCAgICAgICAgICAgCSJSMzgoVSkiICAgICAJCQkJfSwKLQl7IDMzNiwgICAgICAgICAgIAkiUjM5KEwpIiAgICAgCQkJCX0sCi0JeyAzNDAsICAgICAgICAgICAJIlIzOShVKSIgICAgIAkJCQl9LAotCXsgMzQ0LCAgICAgICAgICAgCSJSNDAoTCkiICAgICAJCQkJfSwKLQl7IDM0OCwgICAgICAgICAgIAkiUjQwKFUpIiAgICAgCQkJCX0sCi0JeyAzNTIsICAgICAgICAgICAJIlI0MShMKSIgICAgIAkJCQl9LAotCXsgMzU2LCAgICAgICAgICAgCSJSNDEoVSkiICAgICAJCQkJfSwKLQl7IDM2MCwgICAgICAgICAgIAkiUjQyKEwpIiAgICAgCQkJCX0sCi0JeyAzNjQsICAgICAgICAgICAJIlI0MihVKSIgICAgIAkJCQl9LAotCXsgMzY4LCAgICAgICAgICAgCSJSNDMoTCkiICAgICAJCQkJfSwKLQl7IDM3MiwgICAgICAgICAgIAkiUjQzKFUpIiAgICAgCQkJCX0sCi0JeyAzNzYsICAgICAgICAgICAJIlI0NChMKSIgICAgIAkJCQl9LAotCXsgMzgwLCAgICAgICAgICAgCSJSNDQoVSkiICAgICAJCQkJfSwKLQl7IDM4NCwgICAgICAgICAgIAkiUjQ1KEwpIiAgICAgCQkJCX0sCi0JeyAzODgsICAgICAgICAgICAJIlI0NShVKSIgICAgIAkJCQl9LAotCXsgMzkyLCAgICAgICAgICAgCSJSNDYoTCkiICAgICAJCQkJfSwKLQl7IDM5NiwgICAgICAgICAgIAkiUjQ2KFUpIiAgICAgCQkJCX0sCi0JeyA0MDAsICAgICAgICAgICAJIlI0NyhMKSIgICAgIAkJCQl9LAotCXsgNDA0LCAgICAgICAgICAgCSJSNDcoVSkiICAgICAJCQkJfSwKLQl7IDQwOCwgICAgICAgICAgIAkiUjQ4KEwpIiAgICAgCQkJCX0sCi0JeyA0MTIsICAgICAgICAgICAJIlI0OChVKSIgICAgIAkJCQl9LAotCXsgNDE2LCAgICAgICAgICAgCSJSNDkoTCkiICAgICAJCQkJfSwKLQl7IDQyMCwgICAgICAgICAgIAkiUjQ5KFUpIiAgICAgCQkJCX0sCi0JeyA0MjQsICAgICAgICAgICAJIlI1MChMKSIgICAgIAkJCQl9LAotCXsgNDI4LCAgICAgICAgICAgCSJSNTAoVSkiICAgICAJCQkJfSwKLQl7IDQzMiwgICAgICAgICAgIAkiUjUxKEwpIiAgICAgCQkJCX0sCi0JeyA0MzYsICAgICAgICAgICAJIlI1MShVKSIgICAgIAkJCQl9LAotCXsgNDQwLCAgICAgICAgICAgCSJSNTIoTCkiICAgICAJCQkJfSwKLQl7IDQ0NCwgICAgICAgICAgIAkiUjUyKFUpIiAgICAgCQkJCX0sCi0JeyA0NDgsICAgICAgICAgICAJIlI1MyhMKSIgICAgIAkJCQl9LAotCXsgNDUyLCAgICAgICAgICAgCSJSNTMoVSkiICAgICAJCQkJfSwKLQl7IDQ1NiwgICAgICAgICAgIAkiUjU0KEwpIiAgICAgCQkJCX0sCi0JeyA0NjAsICAgICAgICAgICAJIlI1NChVKSIgICAgIAkJCQl9LAotCXsgNDY0LCAgICAgICAgICAgCSJSNTUoTCkiICAgICAJCQkJfSwKLQl7IDQ2OCwgICAgICAgICAgIAkiUjU1KFUpIiAgICAgCQkJCX0sCi0JeyA0NzIsICAgICAgICAgICAJIlI1NihMKSIgICAgIAkJCQl9LAotCXsgNDc2LCAgICAgICAgICAgCSJSNTYoVSkiICAgICAJCQkJfSwKLQl7IDQ4MCwgICAgICAgICAgIAkiUjU3KEwpIiAgICAgCQkJCX0sCi0JeyA0ODQsICAgICAgICAgICAJIlI1NyhVKSIgICAgIAkJCQl9LAotCXsgNDg4LCAgICAgICAgICAgCSJSNTgoTCkiICAgICAJCQkJfSwKLQl7IDQ5MiwgICAgICAgICAgIAkiUjU4KFUpIiAgICAgCQkJCX0sCi0JeyA0OTYsICAgICAgICAgICAJIlI1OShMKSIgICAgIAkJCQl9LAotCXsgNTAwLCAgICAgICAgICAgCSJSNTkoVSkiICAgICAJCQkJfSwKLQl7IDUwNCwgICAgICAgICAgIAkiUjYwKEwpIiAgICAgCQkJCX0sCi0JeyA1MDgsICAgICAgICAgICAJIlI2MChVKSIgICAgIAkJCQl9LAotCXsgNTEyLCAgICAgICAgICAgCSJSNjEoTCkiICAgICAJCQkJfSwKLQl7IDUxNiwgICAgICAgICAgIAkiUjYxKFUpIiAgICAgCQkJCX0sCi0JeyA1MjAsICAgICAgICAgICAJIlI2MihMKSIgICAgIAkJCQl9LAotCXsgNTI0LCAgICAgICAgICAgCSJSNjIoVSkiICAgICAJCQkJfSwKLQl7IDUyOCwgICAgICAgICAgICAgICAgICAiVFIwKEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDUzMiwgICAgICAgICAgICAgICAgICAiVFIwKFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDUzNiwgICAgICAgICAgICAgICAgICAiVFIxKEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU0MCwgICAgICAgICAgICAgICAgICAiVFIxKFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU0NCwgICAgICAgICAgICAgICAgICAiVFIyKEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU0OCwgICAgICAgICAgICAgICAgICAiVFIyKFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU1MiwgICAgICAgICAgICAgICAgICAiVFIzKEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU1NiwgICAgICAgICAgICAgICAgICAiVFIzKFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU2MCwgICAgICAgICAgICAgICAgICAiVFI0KEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU2NCwgICAgICAgICAgICAgICAgICAiVFI0KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU2OCwgICAgICAgICAgICAgICAgICAiVFI1KEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU3MiwgICAgICAgICAgICAgICAgICAiVFI1KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU3NiwgICAgICAgICAgICAgICAgICAiVFI2KEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU4MCwgICAgICAgICAgICAgICAgICAiVFI2KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU4NCwgICAgICAgICAgICAgICAgICAiVFI3KEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLQl7IDU4OCwgICAgICAgICAgICAgICAgICAiVFI3KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgLyogVGhpcyBlbnRyeSBpcyBpbiBjYXNlIHB0X3JlZ3MgY29udGFpbnMgZHJlZ3MgKGRlcGVuZHMgb24KLSAgICAgICAgICAgdGhlIGtlcm5lbCBidWlsZCBvcHRpb25zKS4gKi8KLQl7IHVvZmYocmVncyksCSAgICAgICAgIm9mZnNldG9mKHN0cnVjdCB1c2VyLCByZWdzKSIJICAgICAgICB9LAotCXsgdW9mZihmcHUpLAkgICAgICAgICJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgZnB1KSIJICAgICAgICB9LAotI2VuZGlmCi0jaWZkZWYgQVJNCi0JeyB1b2ZmKHJlZ3MuQVJNX3IwKSwJInIwIgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1fcjEpLAkicjEiCQkJCQl9LAotCXsgdW9mZihyZWdzLkFSTV9yMiksCSJyMiIJCQkJCX0sCi0JeyB1b2ZmKHJlZ3MuQVJNX3IzKSwJInIzIgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1fcjQpLAkicjQiCQkJCQl9LAotCXsgdW9mZihyZWdzLkFSTV9yNSksCSJyNSIJCQkJCX0sCi0JeyB1b2ZmKHJlZ3MuQVJNX3I2KSwJInI2IgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1fcjcpLAkicjciCQkJCQl9LAotCXsgdW9mZihyZWdzLkFSTV9yOCksCSJyOCIJCQkJCX0sCi0JeyB1b2ZmKHJlZ3MuQVJNX3I5KSwJInI5IgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1fcjEwKSwJInIxMCIJCQkJCX0sCi0JeyB1b2ZmKHJlZ3MuQVJNX2ZwKSwJImZwIgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1faXApLAkiaXAiCQkJCQl9LAotCXsgdW9mZihyZWdzLkFSTV9zcCksCSJzcCIJCQkJCX0sCi0JeyB1b2ZmKHJlZ3MuQVJNX2xyKSwJImxyIgkJCQkJfSwKLQl7IHVvZmYocmVncy5BUk1fcGMpLAkicGMiCQkJCQl9LAotCXsgdW9mZihyZWdzLkFSTV9jcHNyKSwJImNwc3IiCQkJCQl9LAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU1BBUkM2NCkKLQl7IHVvZmYodV9mcHZhbGlkKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2ZwdmFsaWQpIgl9LAotI2VuZGlmCi0jaWYgIGRlZmluZWQoSTM4NikgfHwgZGVmaW5lZChYODZfNjQpCi0JeyB1b2ZmKGkzODcpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBpMzg3KSIJCX0sCi0jZWxzZSAvKiAhSTM4NiAqLwotI2lmZGVmIE02OEsKLQl7IHVvZmYobTY4a2ZwKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgbTY4a2ZwKSIJCX0sCi0jZW5kaWYgLyogTTY4SyAqLwotI2VuZGlmIC8qICFJMzg2ICovCi0JeyB1b2ZmKHVfdHNpemUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfdHNpemUpIgl9LAotCXsgdW9mZih1X2RzaXplKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2RzaXplKSIJfSwKLQl7IHVvZmYodV9zc2l6ZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zc2l6ZSkiCX0sCi0jaWYgIWRlZmluZWQoU1BBUkM2NCkKLQl7IHVvZmYoc3RhcnRfY29kZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgc3RhcnRfY29kZSkiCX0sCi0jZW5kaWYKLSNpZmRlZiBTSDY0Ci0JeyB1b2ZmKHN0YXJ0X2RhdGEpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X2RhdGEpIgl9LAotI2VuZGlmCi0jaWYgIWRlZmluZWQoU1BBUkM2NCkKLQl7IHVvZmYoc3RhcnRfc3RhY2spLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X3N0YWNrKSIJfSwKLSNlbmRpZgotCXsgdW9mZihzaWduYWwpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBzaWduYWwpIgkJfSwKLSNpZiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU0gpICYmICFkZWZpbmVkKFNINjQpICYmICFkZWZpbmVkKFNQQVJDNjQpCi0JeyB1b2ZmKHJlc2VydmVkKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCByZXNlcnZlZCkiCX0sCi0jZW5kaWYKLSNpZiAhZGVmaW5lZChTUEFSQzY0KQotCXsgdW9mZih1X2FyMCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYXIwKSIJCX0sCi0jZW5kaWYKLSNpZiAhZGVmaW5lZChBUk0pICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFMzOTApICYmICFkZWZpbmVkKFMzOTBYKSAmJiAhZGVmaW5lZChTUEFSQzY0KQotCXsgdW9mZih1X2Zwc3RhdGUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZnBzdGF0ZSkiCX0sCi0jZW5kaWYKLQl7IHVvZmYobWFnaWMpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBtYWdpYykiCQl9LAotCXsgdW9mZih1X2NvbW0pLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2NvbW0pIgkJfSwKLSNpZiBkZWZpbmVkKEkzODYpIHx8IGRlZmluZWQoWDg2XzY0KQotCXsgdW9mZih1X2RlYnVncmVnKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2RlYnVncmVnKSIJfSwKLSNlbmRpZiAvKiBJMzg2ICovCi0jZW5kaWYgLyogIUlBNjQgKi8KLSNlbmRpZiAvKiAhQUxQSEEgKi8KLSNlbmRpZiAvKiAhUE9XRVJQQy8hU1BBUkMgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotCXsgdW9mZih1X3BjYiksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcGNiKSIJCX0sCi0JeyB1b2ZmKHVfcHJvY3ApLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcHJvY3ApIgl9LAotCXsgdW9mZih1X2FyMCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYXIwKSIJCX0sCi0JeyB1b2ZmKHVfY29tbVswXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jb21tWzBdKSIJfSwKLQl7IHVvZmYodV9hcmdbMF0pLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYXJnWzBdKSIJfSwKLQl7IHVvZmYodV9hcCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYXApIgkJfSwKLQl7IHVvZmYodV9xc2F2ZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9xc2F2ZSkiCX0sCi0JeyB1b2ZmKHVfcnZhbDEpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcnZhbDEpIgl9LAotCXsgdW9mZih1X3J2YWwyKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3J2YWwyKSIJfSwKLQl7IHVvZmYodV9lcnJvciksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9lcnJvcikiCX0sCi0JeyB1b2ZmKHVfZW9zeXMpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZW9zeXMpIgl9LAotCXsgdW9mZih1X3NzYXZlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3NzYXZlKSIJfSwKLQl7IHVvZmYodV9zaWduYWxbMF0pLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc2lnbmFsKSIJfSwKLQl7IHVvZmYodV9zaWdtYXNrWzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3NpZ21hc2spIgl9LAotCXsgdW9mZih1X3NpZ29uc3RhY2spLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc2lnb25zdGFjaykiCX0sCi0JeyB1b2ZmKHVfc2lnaW50ciksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zaWdpbnRyKSIJfSwKLQl7IHVvZmYodV9zaWdyZXNldCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zaWdyZXNldCkiCX0sCi0JeyB1b2ZmKHVfb2xkbWFzayksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9vbGRtYXNrKSIJfSwKLQl7IHVvZmYodV9jb2RlKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jb2RlKSIJCX0sCi0JeyB1b2ZmKHVfYWRkciksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYWRkcikiCQl9LAotCXsgdW9mZih1X3NpZ3N0YWNrKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3NpZ3N0YWNrKSIJfSwKLQl7IHVvZmYodV9vZmlsZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9vZmlsZSkiCX0sCi0JeyB1b2ZmKHVfcG9maWxlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3BvZmlsZSkiCX0sCi0JeyB1b2ZmKHVfb2ZpbGVfYXJyWzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X29maWxlX2FyclswXSkiCX0sCi0JeyB1b2ZmKHVfcG9maWxlX2FyclswXSksIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3BvZmlsZV9hcnJbMF0pIn0sCi0JeyB1b2ZmKHVfbGFzdGZpbGUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfbGFzdGZpbGUpIgl9LAotCXsgdW9mZih1X2N3ZCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY3dkKSIJCX0sCi0JeyB1b2ZmKHVfY2RpciksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY2RpcikiCQl9LAotCXsgdW9mZih1X3JkaXIpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3JkaXIpIgkJfSwKLQl7IHVvZmYodV9jbWFzayksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jbWFzaykiCX0sCi0JeyB1b2ZmKHVfcnUpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3J1KSIJCX0sCi0JeyB1b2ZmKHVfY3J1KSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jcnUpIgkJfSwKLQl7IHVvZmYodV90aW1lclswXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV90aW1lclswXSkiCX0sCi0JeyB1b2ZmKHVfWFhYWzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X1hYWFswXSkiCX0sCi0JeyB1b2ZmKHVfaW9jaCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfaW9jaCkiCQl9LAotCXsgdW9mZih1X3N0YXJ0KSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3N0YXJ0KSIJfSwKLQl7IHVvZmYodV9hY2ZsYWcpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYWNmbGFnKSIJfSwKLQl7IHVvZmYodV9wcm9mLnByX2Jhc2UpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcHJvZi5wcl9iYXNlKSIJfSwKLQl7IHVvZmYodV9wcm9mLnByX3NpemUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcHJvZi5wcl9zaXplKSIJfSwKLQl7IHVvZmYodV9wcm9mLnByX29mZiksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wcm9mLnByX29mZikiCX0sCi0JeyB1b2ZmKHVfcHJvZi5wcl9zY2FsZSksIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3Byb2YucHJfc2NhbGUpIn0sCi0JeyB1b2ZmKHVfcmxpbWl0WzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3JsaW1pdCkiCX0sCi0JeyB1b2ZmKHVfZXhkYXRhLlV4X0EpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZXhkYXRhLlV4X0EpIgl9LAotCXsgdW9mZih1X2V4ZGF0YS51eF9zaGVsbFswXSksIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2V4ZGF0YS51eF9zaGVsbFswXSkifSwKLQl7IHVvZmYodV9sb2ZhdWx0KSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2xvZmF1bHQpIgl9LAotI2VuZGlmIC8qIFNVTk9TNCAqLwotI2lmbmRlZiBIUFBBCi0JeyBzaXplb2Yoc3RydWN0IHVzZXIpLAkic2l6ZW9mKHN0cnVjdCB1c2VyKSIJCQl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQkJCX0sCi19OwotI2VuZGlmCi0KLWludAotc3lzX3B0cmFjZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JY29uc3Qgc3RydWN0IHhsYXQgKng7Ci0JbG9uZyBhZGRyOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHB0cmFjZV9jbWRzLCB0Y3AtPnVfYXJnWzBdLAotI2lmbmRlZiBGUkVFQlNECi0JCQkgICJQVFJBQ0VfPz8/IgotI2Vsc2UKLQkJCSAgIlBUXz8/PyIKLSNlbmRpZgotCQkJKTsKLQkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMV0pOwotCQlhZGRyID0gdGNwLT51X2FyZ1syXTsKLSNpZm5kZWYgRlJFRUJTRAotCQlpZiAodGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfUEVFS1VTRVIKLQkJCXx8IHRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1BPS0VVU0VSKSB7Ci0JCQlmb3IgKHggPSBzdHJ1Y3RfdXNlcl9vZmZzZXRzOyB4LT5zdHI7IHgrKykgewotCQkJCWlmICh4LT52YWwgPj0gYWRkcikKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAoIXgtPnN0cikKLQkJCQl0cHJpbnRmKCIlI2x4LCAiLCBhZGRyKTsKLQkJCWVsc2UgaWYgKHgtPnZhbCA+IGFkZHIgJiYgeCAhPSBzdHJ1Y3RfdXNlcl9vZmZzZXRzKSB7Ci0JCQkJeC0tOwotCQkJCXRwcmludGYoIiVzICsgJWxkLCAiLCB4LT5zdHIsIGFkZHIgLSB4LT52YWwpOwotCQkJfQotCQkJZWxzZQotCQkJCXRwcmludGYoIiVzLCAiLCB4LT5zdHIpOwotCQl9Ci0JCWVsc2UKLSNlbmRpZgotCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1syXSk7Ci0jaWZkZWYgTElOVVgKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7Ci0JCWNhc2UgUFRSQUNFX1BFRUtEQVRBOgotCQljYXNlIFBUUkFDRV9QRUVLVEVYVDoKLQkJY2FzZSBQVFJBQ0VfUEVFS1VTRVI6Ci0JCQlicmVhazsKLQkJY2FzZSBQVFJBQ0VfQ09OVDoKLQkJY2FzZSBQVFJBQ0VfU0lOR0xFU1RFUDoKLQkJY2FzZSBQVFJBQ0VfU1lTQ0FMTDoKLQkJY2FzZSBQVFJBQ0VfREVUQUNIOgotCQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1szXSk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJCWJyZWFrOwotCQl9Ci0JfSBlbHNlIHsKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7Ci0JCWNhc2UgUFRSQUNFX1BFRUtEQVRBOgotCQljYXNlIFBUUkFDRV9QRUVLVEVYVDoKLQkJY2FzZSBQVFJBQ0VfUEVFS1VTRVI6Ci0JCQlwcmludG51bSh0Y3AsIHRjcC0+dV9hcmdbM10sICIlI2x4Iik7Ci0JCQlicmVhazsKLQkJfQotCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotCQlpZiAodGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfV1JJVEVEQVRBIHx8Ci0JCQl0Y3AtPnVfYXJnWzBdID09IFBUUkFDRV9XUklURVRFWFQpIHsKLQkJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1szXSk7Ci0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbNF0sIHRjcC0+dV9hcmdbM10pOwotCQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMF0gIT0gUFRSQUNFX1JFQUREQVRBICYmCi0JCQkJdGNwLT51X2FyZ1swXSAhPSBQVFJBQ0VfUkVBRFRFWFQpIHsKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlmICh0Y3AtPnVfYXJnWzBdID09IFBUUkFDRV9SRUFEREFUQSB8fAotCQkJdGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfUkVBRFRFWFQpIHsKLQkJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1szXSk7Ci0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbNF0sIHRjcC0+dV9hcmdbM10pOwotCQl9Ci0JfQotI2VuZGlmIC8qIFNVTk9TNCAqLwotI2lmZGVmIEZSRUVCU0QKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1szXSk7Ci0JfQotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qICFTVlI0ICovCi0KLSNpZmRlZiBMSU5VWAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZ1dGV4b3BzW10gPSB7Ci0JeyBGVVRFWF9XQUlULAkiRlVURVhfV0FJVCIgfSwKLQl7IEZVVEVYX1dBS0UsCSJGVVRFWF9XQUtFIiB9LAotCXsgRlVURVhfRkQsCSJGVVRFWF9GRCIgfSwKLQl7IEZVVEVYX1JFUVVFVUUsIkZVVEVYX1JFUVVFVUUiIH0sCi0JeyAwLAkJTlVMTCB9Ci19OwotCi1pbnQKLXN5c19mdXRleCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlcCwgIiwgKHZvaWQgKikgdGNwLT51X2FyZ1swXSk7Ci0JcHJpbnR4dmFsKGZ1dGV4b3BzLCB0Y3AtPnVfYXJnWzFdLCAiRlVURVhfPz8/Iik7Ci0JdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzJdKTsKLQlpZiAodGNwLT51X2FyZ1sxXSA9PSBGVVRFWF9XQUlUKSB7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzNdKTsKLQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMV0gPT0gRlVURVhfUkVRVUVVRSkKLQkJdHByaW50ZigiLCAlbGQsICVwIiwgdGNwLT51X2FyZ1szXSwgKHZvaWQgKikgdGNwLT51X2FyZ1s0XSk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotcHJpbnRfYWZmaW5pdHlsaXN0KHRjcCwgbGlzdCwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBsaXN0OwotdW5zaWduZWQgaW50IGxlbjsKLXsKLSAgICBpbnQgZmlyc3QgPSAxOwotICAgIHRwcmludGYoIiB7Iik7Ci0gICAgd2hpbGUgKGxlbiA+PSBzaXplb2YgKHVuc2lnbmVkIGxvbmcpKSB7Ci0JdW5zaWduZWQgbG9uZyB3OwotCXVtb3ZlKHRjcCwgbGlzdCwgJncpOwotCXRwcmludGYoIiVzICVseCIsIGZpcnN0ID8gIiIgOiAiLCIsIHcpOwotCWZpcnN0ID0gMDsKLQlsZW4gLT0gc2l6ZW9mICh1bnNpZ25lZCBsb25nKTsKLQlsaXN0ICs9IHNpemVvZih1bnNpZ25lZCBsb25nKTsKLSAgICB9Ci0gICAgdHByaW50ZigiIH0iKTsKLX0KLQotaW50Ci1zeXNfc2NoZWRfc2V0YWZmaW5pdHkodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWxkLCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCXByaW50X2FmZmluaXR5bGlzdCh0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2NoZWRfZ2V0YWZmaW5pdHkodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWxkLCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotICAgIH0gZWxzZSB7Ci0JaWYgKHRjcC0+dV9ydmFsID09IC0xKQotCSAgICB0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JZWxzZQotCSAgICBwcmludF9hZmZpbml0eWxpc3QodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfcnZhbCk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2NoZWR1bGVyc1tdID0gewotCXsgU0NIRURfT1RIRVIsCSJTQ0hFRF9PVEhFUiIgfSwKLQl7IFNDSEVEX1JSLAkiU0NIRURfUlIiIH0sCi0JeyBTQ0hFRF9GSUZPLAkiU0NIRURfRklGTyIgfSwKLQl7IDAsCQlOVUxMIH0KLX07Ci0KLWludAotc3lzX3NjaGVkX2dldHNjaGVkdWxlcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlZCIsIChpbnQpIHRjcC0+dV9hcmdbMF0pOwotICAgIH0gZWxzZSBpZiAoISBzeXNlcnJvcih0Y3ApKSB7Ci0JdGNwLT5hdXhzdHIgPSB4bG9va3VwIChzY2hlZHVsZXJzLCB0Y3AtPnVfcnZhbCk7Ci0JaWYgKHRjcC0+YXV4c3RyICE9IE5VTEwpCi0JICAgIHJldHVybiBSVkFMX1NUUjsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NjaGVkX3NldHNjaGVkdWxlcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcDsKLQl0cHJpbnRmKCIlZCwgIiwgKGludCkgdGNwLT51X2FyZ1swXSk7Ci0JcHJpbnR4dmFsKHNjaGVkdWxlcnMsIHRjcC0+dV9hcmdbMV0sICJTQ0hFRF8/Pz8iKTsKLQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmcCkgPCAwKQotCSAgICB0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKLQllbHNlCi0JICAgIHRwcmludGYoIiwgeyAlZCB9IiwgcC5fX3NjaGVkX3ByaW9yaXR5KTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NjaGVkX2dldHBhcmFtKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCSAgICB0cHJpbnRmKCIlZCwgIiwgKGludCkgdGNwLT51X2FyZ1swXSk7Ci0gICAgfSBlbHNlIHsKLQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcDsKLQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmcCkgPCAwKQotCSAgICB0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JZWxzZQotCSAgICB0cHJpbnRmKCJ7ICVkIH0iLCBwLl9fc2NoZWRfcHJpb3JpdHkpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2NoZWRfc2V0cGFyYW0odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0Jc3RydWN0IHNjaGVkX3BhcmFtIHA7Ci0JaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnApIDwgMCkKLQkgICAgdHByaW50ZigiJWQsICUjbHgiLCAoaW50KSB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQllbHNlCi0JICAgIHRwcmludGYoIiVkLCB7ICVkIH0iLCAoaW50KSB0Y3AtPnVfYXJnWzBdLCBwLl9fc2NoZWRfcHJpb3JpdHkpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwoc2NoZWR1bGVycywgdGNwLT51X2FyZ1swXSwgIlNDSEVEXz8/PyIpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmZGVmIFg4Nl82NAotI2luY2x1ZGUgPGFzbS9wcmN0bC5oPgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYXJjaHZhbHNbXSA9IHsKLQl7IEFSQ0hfU0VUX0dTLAkJIkFSQ0hfU0VUX0dTIgkJfSwKLQl7IEFSQ0hfU0VUX0ZTLAkJIkFSQ0hfU0VUX0ZTIgkJfSwKLQl7IEFSQ0hfR0VUX0ZTLAkJIkFSQ0hfR0VUX0ZTIgkJfSwKLQl7IEFSQ0hfR0VUX0dTLAkJIkFSQ0hfR0VUX0dTIgkJfSwKLQl7IDAsCQkJTlVMTAkJCX0sCi19OwotCi1pbnQKLXN5c19hcmNoX3ByY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50eHZhbChhcmNodmFscywgdGNwLT51X2FyZ1swXSwgIkFSQ0hfPz8/Iik7Ci0JaWYgKHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9TRVRfR1MKLQkgICAgfHwgdGNwLT51X2FyZ1swXSA9PSBBUkNIX1NFVF9GUykKLQkgICAgdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgfSBlbHNlIHsKLQlpZiAodGNwLT51X2FyZ1swXSA9PSBBUkNIX0dFVF9HUwotCSAgICB8fCB0Y3AtPnVfYXJnWzBdID09IEFSQ0hfR0VUX0ZTKSB7Ci0JICAgIGxvbmcgaW50IHY7Ci0JICAgIGlmICghc3lzZXJyb3IodGNwKSAmJiB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZ2KSAhPSAtMSkKLQkJdHByaW50ZigiLCBbJSNseF0iLCB2KTsKLQkgICAgZWxzZQotCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvcmVzb3VyY2UuYyBiL3Jlc291cmNlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMzFiYmMuLjAwMDAwMDAKLS0tIGEvcmVzb3VyY2UuYworKysgL2Rldi9udWxsCkBAIC0xLDYxMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogcmVzb3VyY2UuYyx2IDEuMTMgMjAwNC8xMC8wNiAyMjoxNDo1MyByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotCi0jaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci0jaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxzeXMvdGltZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSNkZWZpbmUgc3BpbmxvY2tfdCBzdHJ1Y3Qgc3BpbmxvY2tfdAotI2RlZmluZSBpZl9kcWJsayBkcWJsawotI2RlZmluZSBkcWJfY3VyYmxvY2tzIGRxYl9jdXJzcGFjZQotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvcXVvdGEuaD4KLSNlbmRpZgotI2luY2x1ZGUgPGxpbnV4L3F1b3RhLmg+Ci0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBTVU5PUzQKLSNpbmNsdWRlIDx1ZnMvcXVvdGEuaD4KLSNlbmRpZiAvKiBTVU5PUzQgKi8KLSNpZiBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoRlJFRUJTRCkKLSNpbmNsdWRlIDxzeXMvdGltZXMuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2VuZGlmCi0KLSNpZiBIQVZFX0xPTkdfTE9OR19STElNX1QKLS8qCi0gKiBIYWNrcyBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgYSBsb25nIGxvbmcgcmxpbV90Ci0gKi8KLQotI2RlZmluZSBybGltaXQ2NCBybGltaXQJCQkvKiBVZ2x5IGhhY2sgKi8KLSNkZWZpbmUgcmxpbTY0X3QgcmxpbV90CQkJLyogVWdseSBoYWNrICovCi0jZGVmaW5lIFJMSU02NF9JTkZJTklUWSBSTElNX0lORklOSVRZCS8qIFlvdSBndWVzc2VkIGl0ICovCi0KLSNkZWZpbmUgc3lzX2dldHJsaW1pdDY0CXN5c19nZXRybGltaXQKLSNkZWZpbmUgc3lzX3NldHJsaW1pdDY0CXN5c19zZXRybGltaXQKLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcmVzb3VyY2VzW10gPSB7Ci0jaWZkZWYgUkxJTUlUX0NQVQotCXsgUkxJTUlUX0NQVSwJIlJMSU1JVF9DUFUiCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfRlNJWkUKLQl7IFJMSU1JVF9GU0laRSwJIlJMSU1JVF9GU0laRSIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9EQVRBCi0JeyBSTElNSVRfREFUQSwJIlJMSU1JVF9EQVRBIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX1NUQUNLCi0JeyBSTElNSVRfU1RBQ0ssCSJSTElNSVRfU1RBQ0siCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfQ09SRQotCXsgUkxJTUlUX0NPUkUsCSJSTElNSVRfQ09SRSIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9SU1MKLQl7IFJMSU1JVF9SU1MsCSJSTElNSVRfUlNTIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX05QUk9DCi0JeyBSTElNSVRfTlBST0MsIlJMSU1JVF9OUFJPQyIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9OT0ZJTEUKLQl7IFJMSU1JVF9OT0ZJTEUsIlJMSU1JVF9OT0ZJTEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfTUVNTE9DSwotCXsgUkxJTUlUX01FTUxPQ0ssCSJSTElNSVRfTUVNTE9DSyIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9WTUVNCi0JeyBSTElNSVRfVk1FTSwJIlJMSU1JVF9WTUVNIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX0FTCi0JeyBSTElNSVRfQVMsCSJSTElNSVRfQVMiCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfTE9DS1MKLQl7IFJMSU1JVF9MT0NLUywJIlJMSU1JVF9MT0NLUyIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9TSUdQRU5ESU5HCi0JeyBSTElNSVRfU0lHUEVORElORywJIlJMSU1JVF9TSUdQRU5ESU5HIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX01TR1FVRVVFCi0JeyBSTElNSVRfTVNHUVVFVUUsCSJSTElNSVRfTVNHUVVFVUUiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotI2lmICFIQVZFX0xPTkdfTE9OR19STElNX1QKLXN0YXRpYyBjaGFyICoKLXNwcmludHJsaW0obGltKQotbG9uZyBsaW07Ci17Ci0Jc3RhdGljIGNoYXIgYnVmWzMyXTsKLQotCWlmIChsaW0gPT0gUkxJTV9JTkZJTklUWSkKLQkJc3ByaW50ZihidWYsICJSTElNX0lORklOSVRZIik7Ci0JZWxzZSBpZiAobGltID4gMTAyNCAmJiBsaW0lMTAyNCA9PSAwKQotCQlzcHJpbnRmKGJ1ZiwgIiVsZCoxMDI0IiwgbGltLzEwMjQpOwotCWVsc2UKLQkJc3ByaW50ZihidWYsICIlbGQiLCBsaW0pOwotCXJldHVybiBidWY7Ci19Ci0KLWludAotc3lzX2dldHJsaW1pdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IHJsaW1pdCBybGltOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHJlc291cmNlcywgdGNwLT51X2FyZ1swXSwgIlJMSU1JVF8/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQl9Ci0JZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKLQkJCXRwcmludGYoInsuLi59Iik7Ci0JCWVsc2UgewotCQkJdHByaW50Zigie3JsaW1fY3VyPSVzLCIsIHNwcmludHJsaW0ocmxpbS5ybGltX2N1cikpOwotCQkJdHByaW50ZigiIHJsaW1fbWF4PSVzfSIsIHNwcmludHJsaW0ocmxpbS5ybGltX21heCkpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zZXRybGltaXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCBybGltaXQgcmxpbTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChyZXNvdXJjZXMsIHRjcC0+dV9hcmdbMF0sICJSTElNSVRfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZybGltKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIntybGltX2N1cj0lcywiLCBzcHJpbnRybGltKHJsaW0ucmxpbV9jdXIpKTsKLQkJCXRwcmludGYoIiBybGltX21heD0lc30iLCBzcHJpbnRybGltKHJsaW0ucmxpbV9tYXgpKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiAhSEFWRV9MT05HX0xPTkdfUkxJTV9UICovCi0KLSNpZm5kZWYgSEFWRV9BTkRST0lEX09TCi0jaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19STElNX1QKLXN0YXRpYyBjaGFyICoKLXNwcmludHJsaW02NChsaW0pCi1ybGltNjRfdCBsaW07Ci17Ci0Jc3RhdGljIGNoYXIgYnVmWzY0XTsKLQotCWlmIChsaW0gPT0gUkxJTTY0X0lORklOSVRZKQotCQlzcHJpbnRmKGJ1ZiwgIlJMSU02NF9JTkZJTklUWSIpOwotCWVsc2UgaWYgKGxpbSA+IDEwMjQgJiYgbGltJTEwMjQgPT0gMCkKLQkJc3ByaW50ZihidWYsICIlbGxkKjEwMjQiLCAobG9uZyBsb25nKSBsaW0vMTAyNCk7Ci0JZWxzZQotCQlzcHJpbnRmKGJ1ZiwgIiVsbGQiLCAobG9uZyBsb25nKSBsaW0pOwotCXJldHVybiBidWY7Ci19Ci0KLWludAotc3lzX2dldHJsaW1pdDY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgcmxpbWl0NjQgcmxpbTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChyZXNvdXJjZXMsIHRjcC0+dV9hcmdbMF0sICJSTElNSVRfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JfQotCWVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZybGltKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIntybGltX2N1cj0lcywiLCBzcHJpbnRybGltNjQocmxpbS5ybGltX2N1cikpOwotCQkJdHByaW50ZigiIHJsaW1fbWF4PSVzfSIsIHNwcmludHJsaW02NChybGltLnJsaW1fbWF4KSk7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldHJsaW1pdDY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgcmxpbWl0NjQgcmxpbTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChyZXNvdXJjZXMsIHRjcC0+dV9hcmdbMF0sICJSTElNSVRfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZybGltKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIntybGltX2N1cj0lcywiLCBzcHJpbnRybGltNjQocmxpbS5ybGltX2N1cikpOwotCQkJdHByaW50ZigiIHJsaW1fbWF4PSVzfSIsIHNwcmludHJsaW02NChybGltLnJsaW1fbWF4KSk7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogX0xGUzY0X0xBUkdFRklMRVMgfHwgSEFWRV9MT05HX0xPTkdfUkxJTV9UICovCi0jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0KLSNpZm5kZWYgU1ZSNAotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdXNhZ2V3aG9bXSA9IHsKLQl7IFJVU0FHRV9TRUxGLAkJIlJVU0FHRV9TRUxGIgkJfSwKLQl7IFJVU0FHRV9DSElMRFJFTiwJIlJVU0FHRV9DSElMRFJFTiIJfSwKLSNpZmRlZiBSVVNBR0VfQk9USAotCXsgUlVTQUdFX0JPVEgsCQkiUlVTQUdFX0JPVEgiCQl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotI2lmZGVmIEFMUEhBCi12b2lkCi1wcmludHJ1c2FnZTMyKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLSAgICBzdHJ1Y3QgdGltZXZhbDMyCi0gICAgewotCXVuc2lnbmVkIHR2X3NlYzsKLQl1bnNpZ25lZCB0dl91c2VjOwotICAgIH07Ci0gICAgc3RydWN0IHJ1c2FnZTMyCi0gICAgewotCXN0cnVjdCB0aW1ldmFsMzIgcnVfdXRpbWU7CS8qIHVzZXIgdGltZSB1c2VkICovCi0Jc3RydWN0IHRpbWV2YWwzMiBydV9zdGltZTsJLyogc3lzdGVtIHRpbWUgdXNlZCAqLwotCWxvbmcJcnVfbWF4cnNzOwkJLyogbWF4aW11bSByZXNpZGVudCBzZXQgc2l6ZSAqLwotCWxvbmcJcnVfaXhyc3M7CQkvKiBpbnRlZ3JhbCBzaGFyZWQgbWVtb3J5IHNpemUgKi8KLQlsb25nCXJ1X2lkcnNzOwkJLyogaW50ZWdyYWwgdW5zaGFyZWQgZGF0YSBzaXplICovCi0JbG9uZwlydV9pc3JzczsJCS8qIGludGVncmFsIHVuc2hhcmVkIHN0YWNrIHNpemUgKi8KLQlsb25nCXJ1X21pbmZsdDsJCS8qIHBhZ2UgcmVjbGFpbXMgKi8KLQlsb25nCXJ1X21hamZsdDsJCS8qIHBhZ2UgZmF1bHRzICovCi0JbG9uZwlydV9uc3dhcDsJCS8qIHN3YXBzICovCi0JbG9uZwlydV9pbmJsb2NrOwkJLyogYmxvY2sgaW5wdXQgb3BlcmF0aW9ucyAqLwotCWxvbmcJcnVfb3VibG9jazsJCS8qIGJsb2NrIG91dHB1dCBvcGVyYXRpb25zICovCi0JbG9uZwlydV9tc2dzbmQ7CQkvKiBtZXNzYWdlcyBzZW50ICovCi0JbG9uZwlydV9tc2dyY3Y7CQkvKiBtZXNzYWdlcyByZWNlaXZlZCAqLwotCWxvbmcJcnVfbnNpZ25hbHM7CQkvKiBzaWduYWxzIHJlY2VpdmVkICovCi0JbG9uZwlydV9udmNzdzsJCS8qIHZvbHVudGFyeSBjb250ZXh0IHN3aXRjaGVzICovCi0JbG9uZwlydV9uaXZjc3c7CQkvKiBpbnZvbHVudGFyeSAiICovCi0gICAgfSBydTsKLQotICAgIGlmICghYWRkcikKLQl0cHJpbnRmKCJOVUxMIik7Ci0gICAgZWxzZSBpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLSAgICBlbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZydSkgPCAwKQotCXRwcmludGYoInsuLi59Iik7Ci0gICAgZWxzZSBpZiAoIWFiYnJldih0Y3ApKSB7Ci0JdHByaW50Zigie3J1X3V0aW1lPXslbHUsICVsdX0sIHJ1X3N0aW1lPXslbHUsICVsdX0sICIsCi0JCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAotCQkobG9uZykgcnUucnVfc3RpbWUudHZfc2VjLCAobG9uZykgcnUucnVfc3RpbWUudHZfdXNlYyk7Ci0JdHByaW50ZigicnVfbWF4cnNzPSVsdSwgcnVfaXhyc3M9JWx1LCAiLAotCQlydS5ydV9tYXhyc3MsIHJ1LnJ1X2l4cnNzKTsKLQl0cHJpbnRmKCJydV9pZHJzcz0lbHUsIHJ1X2lzcnNzPSVsdSwgIiwKLQkJcnUucnVfaWRyc3MsIHJ1LnJ1X2lzcnNzKTsKLQl0cHJpbnRmKCJydV9taW5mbHQ9JWx1LCBydV9tYWpmbHQ9JWx1LCBydV9uc3dhcD0lbHUsICIsCi0JCXJ1LnJ1X21pbmZsdCwgcnUucnVfbWFqZmx0LCBydS5ydV9uc3dhcCk7Ci0JdHByaW50ZigicnVfaW5ibG9jaz0lbHUsIHJ1X291YmxvY2s9JWx1LCAiLAotCQlydS5ydV9pbmJsb2NrLCBydS5ydV9vdWJsb2NrKTsKLQl0cHJpbnRmKCJydV9tc2dzbmQ9JWx1LCBydV9tc2dyY3Y9JWx1LCAiLAotCQlydS5ydV9tc2dzbmQsIHJ1LnJ1X21zZ3Jjdik7Ci0JdHByaW50ZigicnVfbnNpZ25hbHM9JWx1LCBydV9udmNzdz0lbHUsIHJ1X25pdmNzdz0lbHV9IiwKLQkJcnUucnVfbnNpZ25hbHMsIHJ1LnJ1X252Y3N3LCBydS5ydV9uaXZjc3cpOwotICAgIH0KLSAgICBlbHNlIHsKLQl0cHJpbnRmKCJ7cnVfdXRpbWU9eyVsdSwgJWx1fSwgcnVfc3RpbWU9eyVsdSwgJWx1fSwgLi4ufSIsCi0JCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAotCQkobG9uZykgcnUucnVfc3RpbWUudHZfc2VjLCAobG9uZykgcnUucnVfc3RpbWUudHZfdXNlYyk7Ci0gICAgfQotfQotI2VuZGlmCi0KLXZvaWQKLXByaW50cnVzYWdlKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLQlzdHJ1Y3QgcnVzYWdlIHJ1OwotCi0JaWYgKCFhZGRyKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JZWxzZSBpZiAodW1vdmUodGNwLCBhZGRyLCAmcnUpIDwgMCkKLQkJdHByaW50Zigiey4uLn0iKTsKLQllbHNlIGlmICghYWJicmV2KHRjcCkpIHsKLQkJdHByaW50Zigie3J1X3V0aW1lPXslbHUsICVsdX0sIHJ1X3N0aW1lPXslbHUsICVsdX0sICIsCi0JCQkobG9uZykgcnUucnVfdXRpbWUudHZfc2VjLCAobG9uZykgcnUucnVfdXRpbWUudHZfdXNlYywKLQkJCShsb25nKSBydS5ydV9zdGltZS50dl9zZWMsIChsb25nKSBydS5ydV9zdGltZS50dl91c2VjKTsKLQkJdHByaW50ZigicnVfbWF4cnNzPSVsdSwgcnVfaXhyc3M9JWx1LCAiLAotCQkJcnUucnVfbWF4cnNzLCBydS5ydV9peHJzcyk7Ci0JCXRwcmludGYoInJ1X2lkcnNzPSVsdSwgcnVfaXNyc3M9JWx1LCAiLAotCQkJcnUucnVfaWRyc3MsIHJ1LnJ1X2lzcnNzKTsKLQkJdHByaW50ZigicnVfbWluZmx0PSVsdSwgcnVfbWFqZmx0PSVsdSwgcnVfbnN3YXA9JWx1LCAiLAotCQkJcnUucnVfbWluZmx0LCBydS5ydV9tYWpmbHQsIHJ1LnJ1X25zd2FwKTsKLQkJdHByaW50ZigicnVfaW5ibG9jaz0lbHUsIHJ1X291YmxvY2s9JWx1LCAiLAotCQkJcnUucnVfaW5ibG9jaywgcnUucnVfb3VibG9jayk7Ci0JCXRwcmludGYoInJ1X21zZ3NuZD0lbHUsIHJ1X21zZ3Jjdj0lbHUsICIsCi0JCQlydS5ydV9tc2dzbmQsIHJ1LnJ1X21zZ3Jjdik7Ci0JCXRwcmludGYoInJ1X25zaWduYWxzPSVsdSwgcnVfbnZjc3c9JWx1LCBydV9uaXZjc3c9JWx1fSIsCi0JCQlydS5ydV9uc2lnbmFscywgcnUucnVfbnZjc3csIHJ1LnJ1X25pdmNzdyk7Ci0JfQotCWVsc2UgewotCQl0cHJpbnRmKCJ7cnVfdXRpbWU9eyVsdSwgJWx1fSwgcnVfc3RpbWU9eyVsdSwgJWx1fSwgLi4ufSIsCi0JCQkobG9uZykgcnUucnVfdXRpbWUudHZfc2VjLCAobG9uZykgcnUucnVfdXRpbWUudHZfdXNlYywKLQkJCShsb25nKSBydS5ydV9zdGltZS50dl9zZWMsIChsb25nKSBydS5ydV9zdGltZS50dl91c2VjKTsKLQl9Ci19Ci0KLWludAotc3lzX2dldHJ1c2FnZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHVzYWdld2hvLCB0Y3AtPnVfYXJnWzBdLCAiUlVTQUdFXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCX0KLQllbHNlCi0JCXByaW50cnVzYWdlKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBBTFBIQQotaW50Ci1zeXNfb3NmX2dldHJ1c2FnZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwodXNhZ2V3aG8sIHRjcC0+dV9hcmdbMF0sICJSVVNBR0VfPz8/Iik7Ci0JdHByaW50ZigiLCAiKTsKLSAgICB9Ci0gICAgZWxzZQotCXByaW50cnVzYWdlMzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBBTFBIQSAqLwotCi0jZW5kaWYgLyogIVNWUjQgKi8KLQotI2lmZGVmIExJTlVYCi0KLWludAotc3lzX3N5c2luZm8odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCBzeXNpbmZvIHNpOwotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZzaSkgPCAwKQotCQkJdHByaW50Zigiey4uLn0iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCJ7dXB0aW1lPSVsdSwgbG9hZHM9WyVsdSwgJWx1LCAlbHVdICIsCi0JCQkJc2kudXB0aW1lLCBzaS5sb2Fkc1swXSwgc2kubG9hZHNbMV0sCi0JCQkJc2kubG9hZHNbMl0pOwotCQkJdHByaW50ZigidG90YWxyYW09JWx1LCBmcmVlcmFtPSVsdSwgIiwKLQkJCQlzaS50b3RhbHJhbSwgc2kuZnJlZXJhbSk7Ci0JCQl0cHJpbnRmKCJzaGFyZWRyYW09JWx1LCBidWZmZXJyYW09JWx1fSAiLAotCQkJCXNpLnNoYXJlZHJhbSwgc2kuYnVmZmVycmFtKTsKLQkJCXRwcmludGYoInRvdGFsc3dhcD0lbHUsIGZyZWVzd2FwPSVsdSwgcHJvY3M9JWh1fSIsCi0JCQkJc2kudG90YWxzd2FwLCBzaS5mcmVlc3dhcCwgc2kucHJvY3MpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTElOVVggKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByaW9yaXRpZXNbXSA9IHsKLQl7IFBSSU9fUFJPQ0VTUywJIlBSSU9fUFJPQ0VTUyIJfSwKLQl7IFBSSU9fUEdSUCwJIlBSSU9fUEdSUCIJfSwKLQl7IFBSSU9fVVNFUiwJIlBSSU9fVVNFUiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfZ2V0cHJpb3JpdHkodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChwcmlvcml0aWVzLCB0Y3AtPnVfYXJnWzBdLCAiUFJJT18/Pz8iKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NldHByaW9yaXR5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwocHJpb3JpdGllcywgdGNwLT51X2FyZ1swXSwgIlBSSU9fPz8/Iik7Ci0JCXRwcmludGYoIiwgJWx1LCAlbGQiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX25pY2UodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLQlyZXR1cm4gMDsKLX0KLQotI2lmbmRlZiBTVU5PUzQKLQotaW50Ci1zeXNfdGltZXModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCB0bXMgdGJ1ZjsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmdGJ1ZikgPCAwKQotCQkJdHByaW50Zigiey4uLn0iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCJ7dG1zX3V0aW1lPSVsdSwgdG1zX3N0aW1lPSVsdSwgIiwKLQkJCQl0YnVmLnRtc191dGltZSwgdGJ1Zi50bXNfc3RpbWUpOwotCQkJdHByaW50ZigidG1zX2N1dGltZT0lbHUsIHRtc19jc3RpbWU9JWx1fSIsCi0JCQkJdGJ1Zi50bXNfY3V0aW1lLCB0YnVmLnRtc19jc3RpbWUpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogIVNVTk9TNCAqLwotCi0KLS8vI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpZmRlZiBMSU5VWAotCi0jZGVmaW5lIE5FV19DTUQoYykgICAgICAoKDB4ODA8PDE2KSsoYykpCi0jZGVmaW5lIFhRTV9DTUQoYykgICAgICAoKCdYJzw8OCkrKGMpKQotI2RlZmluZSBORVdfQ09NTUFORChjKSAoKCAoKGMpID4+IFNVQkNNRFNISUZUKSAmICgweDgwIDw8IDE2KSkpCi0jZGVmaW5lIFhRTV9DT01NQU5EKGMpICgoICgoYykgPj4gU1VCQ01EU0hJRlQpICYgKCdYJyA8PCA4KSkgPT0gKCdYJyA8PCA4KSkKLSNkZWZpbmUgT0xEX0NPTU1BTkQoYykgKCFORVdfQ09NTUFORChjKSAmJiAhWFFNX0NPTU1BTkQoYykpCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YWNtZHNbXSA9IHsKLQl7IFFfUVVPVEFPTiwJIlFfUVVPVEFPTiIJfSwKLQl7IFFfUVVPVEFPRkYsCSJRX1FVT1RBT0ZGIgl9LAotCXsgUV9HRVRRVU9UQSwJIlFfR0VUUVVPVEEiCX0sCi0JeyBRX1NFVFFVT1RBLAkiUV9TRVRRVU9UQSIJfSwKLSNpZm5kZWYgSEFWRV9BTkRST0lEX09TCi0JeyBRX1NFVFVTRSwJIlFfU0VUVVNFIgl9LAotI2VuZGlmCi0JeyBRX1NZTkMsCSJRX1NZTkMiCX0sCi0jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUwotCXsgUV9TRVRRTElNLAkiUV9TRVRRTElNIgl9LAotCXsgUV9HRVRTVEFUUywJIlFfR0VUU1RBVFMiCX0sCi0JeyBRX1JTUVVBU0gsCSJRX1JTUVVBU0giCX0sCi0jZW5kaWYKLQl7IE5FV19DTUQoMHgxKSwgIlFfU1lOQyIgICAgICAgIH0sCi0JeyBORVdfQ01EKDB4MiksICJRX1FVT1RBT04iICAgICB9LAotCXsgTkVXX0NNRCgweDMpLCAiUV9RVU9UQU9GRiIgICAgfSwKLQl7IE5FV19DTUQoMHg0KSwgIlFfR0VURk1UIiAgICAgIH0sCi0JeyBORVdfQ01EKDB4NSksICJRX0dFVElORk8iICAgICB9LAotCXsgTkVXX0NNRCgweDYpLCAiUV9TRVRJTkZPIiAgICAgfSwKLQl7IE5FV19DTUQoMHg3KSwgIlFfR0VUUVVPVEEiICAgIH0sCi0JeyBORVdfQ01EKDB4OCksICJRX1NFVFFVT1RBIiAgICB9LAotCXsgWFFNX0NNRCgweDEpLCAiUV9YUVVPVEFPTiIgICAgfSwKLQl7IFhRTV9DTUQoMHgyKSwgIlFfWFFVT1RBT0ZGIiAgIH0sCi0JeyBYUU1fQ01EKDB4MyksICJRX1hHRVRRVU9UQSIgICB9LAotCXsgWFFNX0NNRCgweDQpLCAiUV9YU0VUUUxJTSIgICAgfSwKLQl7IFhRTV9DTUQoMHg1KSwgIlFfWEdFVFFTVEFUIiAgIH0sCi0JeyBYUU1fQ01EKDB4NiksICJRX1hRVU9UQVJNIiAgICB9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcXVvdGF0eXBlc1tdID0gewotCXsgVVNSUVVPVEEsCSJVU1JRVU9UQSIJfSwKLQl7IEdSUFFVT1RBLAkiR1JQUVVPVEEiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX3F1b3RhY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQkvKgotCSAqIFRoZSBMaW51eCBrZXJuZWwgb25seSBsb29rcyBhdCB0aGUgbG93IDMyIGJpdHMgb2YgdGhlIGNvbW1hbmQKLQkgKiBhcmd1bWVudCwgYnV0IG9uIHNvbWUgNjQtYml0IGFyY2hpdGVjdHVyZXMgKHMzOTB4KSB0aGlzIHdvcmQKLQkgKiB3aWxsIGhhdmUgYmVlbiBzaWduLWV4dGVuZGVkIHdoZW4gd2Ugc2VlIGl0LiAgVGhlIGhpZ2ggMSBiaXRzCi0JICogZG9uJ3QgbWVhbiBhbnl0aGluZywgc28gZG9uJ3QgY29uZnVzZSB0aGUgb3V0cHV0IHdpdGggdGhlbS4KLQkgKi8KLQl1bnNpZ25lZCBpbnQgY21kID0gdGNwLT51X2FyZ1swXTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChxdW90YWNtZHMsIGNtZCA+PiBTVUJDTURTSElGVCwgIlFfPz8/Iik7Ci0JCXRwcmludGYoInwiKTsKLQkJcHJpbnR4dmFsKHF1b3RhdHlwZXMsIGNtZCAmIFNVQkNNRE1BU0ssICI/Pz9RVU9UQSIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLQkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQllbHNlIHsKLQkJc3RydWN0IGRxYmxrIGRxOwotCi0JCWlmICghdGNwLT51X2FyZ1szXSkKLQkJCXRwcmludGYoIk5VTEwiKTsKLSAgICAgICAgICAgICAgIGVsc2UgaWYgKCF2ZXJib3NlKHRjcCkgfHwgIU9MRF9DT01NQU5EKGNtZCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1szXSwgc2l6ZW9mKHN0cnVjdCBkcWJsayksCi0gICAgICAgICAgICAgICAgICAgIChjaGFyICopICZkcSkgPCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgdHByaW50ZigiPz8/Iik7Ci0JCWVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgdHByaW50ZigieyIpOwotCQkJdHByaW50ZigiJXUsICIsIGRxLmRxYl9iaGFyZGxpbWl0KTsKLQkJCXRwcmludGYoIiV1LCAiLCBkcS5kcWJfYnNvZnRsaW1pdCk7Ci0JCQl0cHJpbnRmKCIldSwgIiwgZHEuZHFiX2N1cmJsb2Nrcyk7Ci0JCQl0cHJpbnRmKCIldSwgIiwgZHEuZHFiX2loYXJkbGltaXQpOwotCQkJdHByaW50ZigiJXUsICIsIGRxLmRxYl9pc29mdGxpbWl0KTsKLQkJCXRwcmludGYoIiV1LCAiLCBkcS5kcWJfY3VyaW5vZGVzKTsKLQkJCXRwcmludGYoIiVsdSwgIiwgZHEuZHFiX2J0aW1lKTsKLQkJCXRwcmludGYoIiVsdSIsIGRxLmRxYl9pdGltZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCJ9Iik7Ci0JCX0KLQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIExpbnV4ICovCi0vLyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KLQotI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCi0KLSNpZmRlZiBGUkVFQlNECi0jaW5jbHVkZSA8dWZzL3Vmcy9xdW90YS5oPgotI2VuZGlmCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YWNtZHNbXSA9IHsKLQl7IFFfUVVPVEFPTiwJIlFfUVVPVEFPTiIJfSwKLQl7IFFfUVVPVEFPRkYsCSJRX1FVT1RBT0ZGIgl9LAotCXsgUV9HRVRRVU9UQSwJIlFfR0VUUVVPVEEiCX0sCi0JeyBRX1NFVFFVT1RBLAkiUV9TRVRRVU9UQSIJfSwKLSNpZmRlZiBRX1NFVFFMSU0KLQl7IFFfU0VUUUxJTSwJIlFfU0VUUUxJTSIJfSwKLSNlbmRpZgotI2lmZGVmIFFfU0VUVVNFCi0JeyBRX1NFVFVTRSwJIlFfU0VUVVNFIgl9LAotI2VuZGlmCi0JeyBRX1NZTkMsCSJRX1NZTkMiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX3F1b3RhY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQkvKiBmb3VydGggYXJnIChhZGRyKSBub3QgaW50ZXJwcmV0ZWQgaGVyZSAqLwotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0jaWZkZWYgU1VOT1M0Ci0JCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMF0sICJRXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLSNlbmRpZgotI2lmZGVmIEZSRUVCU0QKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMV0sICJRXz8/PyIpOwotI2VuZGlmCi0JCXRwcmludGYoIiwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogU1VOT1M0IHx8IEZSRUVCU0QgKi8KZGlmZiAtLWdpdCBhL3NpZ25hbC5jIGIvc2lnbmFsLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NWZlMDguLjAwMDAwMDAKLS0tIGEvc2lnbmFsLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTkgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgotICogICAgICAgICAgICAgICAgICAgICBMaW51eCBmb3IgczM5MCBwb3J0IGJ5IEQuSi4gQmFycm93Ci0gKiAgICAgICAgICAgICAgICAgICAgPGJhcnJvd19kakBtYWlsLnlhaG9vLmNvbSxkamJhcnJvd0BkZS5pYm0uY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc2lnbmFsLmMsdiAxLjU0IDIwMDUvMDYvMDEgMTk6MDI6Mzcgcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvdXNlci5oPgotI2VuZGlmCi0jaW5jbHVkZSA8ZmNudGwuaD4KLQotI2lmZGVmIFNWUjQKLSNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSNlbmRpZiAvKiBTVlI0ICovCi0KLSNpZmRlZiBIQVZFX1NZU19SRUdfSAotIyBpbmNsdWRlIDxzeXMvcmVnLmg+Ci0jaWZuZGVmIFBUUkFDRV9QRUVLVVNSCi0jIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKLSNlbmRpZgotI2lmbmRlZiBQVFJBQ0VfUE9LRVVTUgotIyBkZWZpbmUgUFRSQUNFX1BPS0VVU1IgUFRSQUNFX1BPS0VVU0VSCi0jZW5kaWYKLSNlbGlmIGRlZmluZWQoSEFWRV9MSU5VWF9QVFJBQ0VfSCkKLSN1bmRlZiBQVFJBQ0VfU1lTQ0FMTAotIyBpZmRlZiBIQVZFX1NUUlVDVF9JQTY0X0ZQUkVHCi0jICBkZWZpbmUgaWE2NF9mcHJlZyBYWFhfaWE2NF9mcHJlZwotIyBlbmRpZgotIyBpZmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTCi0jICBkZWZpbmUgcHRfYWxsX3VzZXJfcmVncyBYWFhfcHRfYWxsX3VzZXJfcmVncwotIyBlbmRpZgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotIyB1bmRlZiBpYTY0X2ZwcmVnCi0jIHVuZGVmIHB0X2FsbF91c2VyX3JlZ3MKLSNlbmRpZgotCi0KLSNpZmRlZiBMSU5VWAotCi0jaWZkZWYgSUE2NAotIyBpbmNsdWRlIDxhc20vcHRyYWNlX29mZnNldHMuaD4KLSNlbmRpZiAvKiAhSUE2NCAqLwotCi0jaWYgSEFWRV9BU01fUkVHX0gKLSMgaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICBkZWZpbmUgZnBxIGtlcm5lbF9mcHEKLSMgIGRlZmluZSBmcSBrZXJuZWxfZnEKLSMgIGRlZmluZSBmcHUga2VybmVsX2ZwdQotIyBlbmRpZgotIyBpbmNsdWRlIDxhc20vcmVnLmg+Ci0jIGlmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotIyAgdW5kZWYgZnBxCi0jICB1bmRlZiBmcQotIyAgdW5kZWYgZnB1Ci0jIGVuZGlmCi0jaWYgZGVmaW5lZCAoTElOVVgpICYmIGRlZmluZWQgKFNQQVJDNjQpCi0jIGRlZmluZSByX3BjIHJfdHBjCi0jIHVuZGVmIFBUUkFDRV9HRVRSRUdTCi0jIGRlZmluZSBQVFJBQ0VfR0VUUkVHUyBQVFJBQ0VfR0VUUkVHUzY0Ci0jIHVuZGVmIFBUUkFDRV9TRVRSRUdTCi0jIGRlZmluZSBQVFJBQ0VfU0VUUkVHUyBQVFJBQ0VfU0VUUkVHUzY0Ci0jZW5kaWYgLyogTElOVVggJiYgU1BBUkM2NCAqLwotI2VuZGlmIC8qIEhBVkVfQVNNX1JFR19IICovCi0KLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLXR5cGVkZWYgc3RydWN0IHsKLQlzdHJ1Y3QgcmVncwkJc2lfcmVnczsKLQlpbnQJCQlzaV9tYXNrOwotfSBtX3NpZ2luZm9fdDsKLSNlbGlmIGRlZmluZWQgSEFWRV9BU01fU0lHQ09OVEVYVF9ICi0jaWYgIWRlZmluZWQoSUE2NCkgJiYgIWRlZmluZWQoWDg2XzY0KQotI2luY2x1ZGUgPGFzbS9zaWdjb250ZXh0Lmg+Ci0jZW5kaWYgLyogIUlBNjQgJiYgIVg4Nl82NCAqLwotI2Vsc2UgLyogIUhBVkVfQVNNX1NJR0NPTlRFWFRfSCAqLwotI2lmZGVmIEkzODYKLXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCB7Ci0JdW5zaWduZWQgc2hvcnQgZ3MsIF9fZ3NoOwotCXVuc2lnbmVkIHNob3J0IGZzLCBfX2ZzaDsKLQl1bnNpZ25lZCBzaG9ydCBlcywgX19lc2g7Ci0JdW5zaWduZWQgc2hvcnQgZHMsIF9fZHNoOwotCXVuc2lnbmVkIGxvbmcgZWRpOwotCXVuc2lnbmVkIGxvbmcgZXNpOwotCXVuc2lnbmVkIGxvbmcgZWJwOwotCXVuc2lnbmVkIGxvbmcgZXNwOwotCXVuc2lnbmVkIGxvbmcgZWJ4OwotCXVuc2lnbmVkIGxvbmcgZWR4OwotCXVuc2lnbmVkIGxvbmcgZWN4OwotCXVuc2lnbmVkIGxvbmcgZWF4OwotCXVuc2lnbmVkIGxvbmcgdHJhcG5vOwotCXVuc2lnbmVkIGxvbmcgZXJyOwotCXVuc2lnbmVkIGxvbmcgZWlwOwotCXVuc2lnbmVkIHNob3J0IGNzLCBfX2NzaDsKLQl1bnNpZ25lZCBsb25nIGVmbGFnczsKLQl1bnNpZ25lZCBsb25nIGVzcF9hdF9zaWduYWw7Ci0JdW5zaWduZWQgc2hvcnQgc3MsIF9fc3NoOwotCXVuc2lnbmVkIGxvbmcgaTM4NzsKLQl1bnNpZ25lZCBsb25nIG9sZG1hc2s7Ci0JdW5zaWduZWQgbG9uZyBjcjI7Ci19OwotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBNNjhLCi1zdHJ1Y3Qgc2lnY29udGV4dAotewotCXVuc2lnbmVkIGxvbmcgc2NfbWFzazsKLQl1bnNpZ25lZCBsb25nIHNjX3VzcDsKLQl1bnNpZ25lZCBsb25nIHNjX2QwOwotCXVuc2lnbmVkIGxvbmcgc2NfZDE7Ci0JdW5zaWduZWQgbG9uZyBzY19hMDsKLQl1bnNpZ25lZCBsb25nIHNjX2ExOwotCXVuc2lnbmVkIHNob3J0IHNjX3NyOwotCXVuc2lnbmVkIGxvbmcgc2NfcGM7Ci0JdW5zaWduZWQgc2hvcnQgc2NfZm9ybWF0dmVjOwotfTsKLSNlbmRpZiAvKiBNNjhLICovCi0jZW5kaWYgLyogIUkzODYgKi8KLSNlbmRpZiAvKiAhSEFWRV9BU01fU0lHQ09OVEVYVF9IICovCi0jaWZuZGVmIE5TSUcKLSNkZWZpbmUgTlNJRyAzMgotI2VuZGlmCi0jaWZkZWYgQVJNCi0jdW5kZWYgTlNJRwotI2RlZmluZSBOU0lHIDMyCi0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi1jb25zdCBjaGFyICpjb25zdCBzaWduYWxlbnQwW10gPSB7Ci0jaW5jbHVkZSAic2lnbmFsZW50LmgiCi19OwotY29uc3QgaW50IG5zaWduYWxzMCA9IHNpemVvZiBzaWduYWxlbnQwIC8gc2l6ZW9mIHNpZ25hbGVudDBbMF07Ci0KLSNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCi1jb25zdCBjaGFyICpjb25zdCBzaWduYWxlbnQxW10gPSB7Ci0jaW5jbHVkZSAic2lnbmFsZW50MS5oIgotfTsKLWNvbnN0IGludCBuc2lnbmFsczEgPSBzaXplb2Ygc2lnbmFsZW50MSAvIHNpemVvZiBzaWduYWxlbnQxWzBdOwotI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KLQotI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKLWNvbnN0IGNoYXIgKmNvbnN0IHNpZ25hbGVudDJbXSA9IHsKLSNpbmNsdWRlICJzaWduYWxlbnQyLmgiCi19OwotY29uc3QgaW50IG5zaWduYWxzMiA9IHNpemVvZiBzaWduYWxlbnQyIC8gc2l6ZW9mIHNpZ25hbGVudDJbMF07Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLwotCi1jb25zdCBjaGFyICpjb25zdCAqc2lnbmFsZW50OwotaW50IG5zaWduYWxzOwotCi0jaWYgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ3ZlY19mbGFnc1tdID0gewotCXsgU1ZfT05TVEFDSywJIlNWX09OU1RBQ0siCX0sCi0JeyBTVl9JTlRFUlJVUFQsCSJTVl9JTlRFUlJVUFQiCX0sCi0JeyBTVl9SRVNFVEhBTkQsCSJTVl9SRVNFVEhBTkQiCX0sCi0JeyBTQV9OT0NMRFNUT1AsCSJTQV9OT0NMRFNUT1AiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNlbmRpZiAvKiBTVU5PUzQgfHwgRlJFRUJTRCAqLwotCi0jaWZkZWYgSEFWRV9TSUdBQ1RJT04KLQotI2lmIGRlZmluZWQgTElOVVggJiYgKGRlZmluZWQgSTM4NiB8fCBkZWZpbmVkIFg4Nl82NCkKLS8qIFRoZSBsaWJjIGhlYWRlcnMgZG8gbm90IGRlZmluZSB0aGlzIGNvbnN0YW50IHNpbmNlIGl0IHNob3VsZCBvbmx5IGJlCi0gICB1c2VkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbi4gIFNvIHd3ZSBkZWZpbmUgaXQgaGVyZS4gICovCi0jIGlmbmRlZiBTQV9SRVNUT1JFUgotIyAgZGVmaW5lIFNBX1JFU1RPUkVSIDB4MDQwMDAwMDAKLSMgZW5kaWYKLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lnYWN0X2ZsYWdzW10gPSB7Ci0jaWZkZWYgU0FfUkVTVE9SRVIKLQl7IFNBX1JFU1RPUkVSLAkiU0FfUkVTVE9SRVIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTQV9TVEFDSwotCXsgU0FfU1RBQ0ssCSJTQV9TVEFDSyIJfSwKLSNlbmRpZgotI2lmZGVmIFNBX1JFU1RBUlQKLQl7IFNBX1JFU1RBUlQsCSJTQV9SRVNUQVJUIgl9LAotI2VuZGlmCi0jaWZkZWYgU0FfSU5URVJSVVBUCi0JeyBTQV9JTlRFUlJVUFQsCSJTQV9JTlRFUlJVUFQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTQV9OT01BU0sKLQl7IFNBX05PTUFTSywJIlNBX05PTUFTSyIJfSwKLSNlbmRpZgotI2lmZGVmIFNBX09ORVNIT1QKLQl7IFNBX09ORVNIT1QsCSJTQV9PTkVTSE9UIgl9LAotI2VuZGlmCi0jaWZkZWYgU0FfU0lHSU5GTwotCXsgU0FfU0lHSU5GTywJIlNBX1NJR0lORk8iCX0sCi0jZW5kaWYKLSNpZmRlZiBTQV9SRVNFVEhBTkQKLQl7IFNBX1JFU0VUSEFORCwJIlNBX1JFU0VUSEFORCIJfSwKLSNlbmRpZgotI2lmZGVmIFNBX09OU1RBQ0sKLQl7IFNBX09OU1RBQ0ssCSJTQV9PTlNUQUNLIgl9LAotI2VuZGlmCi0jaWZkZWYgU0FfTk9ERUZFUgotCXsgU0FfTk9ERUZFUiwJIlNBX05PREVGRVIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTQV9OT0NMRFNUT1AKLQl7IFNBX05PQ0xEU1RPUCwJIlNBX05PQ0xEU1RPUCIJfSwKLSNlbmRpZgotI2lmZGVmIFNBX05PQ0xEV0FJVAotCXsgU0FfTk9DTERXQUlULAkiU0FfTk9DTERXQUlUIgl9LAotI2VuZGlmCi0jaWZkZWYgX1NBX0JTRENBTEwKLQl7IF9TQV9CU0RDQUxMLAkiX1NBX0JTRENBTEwiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ3Byb2NtYXNrY21kc1tdID0gewotCXsgU0lHX0JMT0NLLAkiU0lHX0JMT0NLIgl9LAotCXsgU0lHX1VOQkxPQ0ssCSJTSUdfVU5CTE9DSyIJfSwKLQl7IFNJR19TRVRNQVNLLAkiU0lHX1NFVE1BU0siCX0sCi0jaWZkZWYgU0lHX1NFVE1BU0szMgotCXsgU0lHX1NFVE1BU0szMiwiU0lHX1NFVE1BU0szMiIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jZW5kaWYgLyogSEFWRV9TSUdBQ1RJT04gKi8KLQotLyogQW5vbnltb3VzIHJlYWx0aW1lIHNpZ25hbHMuICovCi0vKiBVbmRlciBnbGliYyAyLjEsIFNJR1JUTUlOIGV0IGFsIGFyZSBmdW5jdGlvbnMsIGJ1dCBfX1NJR1JUTUlOIGlzIGEKLSAgIGNvbnN0YW50LiAgVGhpcyBpcyB3aGF0IHdlIHdhbnQuICBPdGhlcndpc2UsIGp1c3QgdXNlIFNJR1JUTUlOLiAqLwotI2lmZGVmIFNJR1JUTUlOCi0jaWZuZGVmIF9fU0lHUlRNSU4KLSNkZWZpbmUgX19TSUdSVE1JTiBTSUdSVE1JTgotI2RlZmluZSBfX1NJR1JUTUFYIFNJR1JUTUFYIC8qIGxpa2V3aXNlICovCi0jZW5kaWYKLSNlbmRpZgotCi1jb25zdCBjaGFyICoKLXNpZ25hbWUoc2lnKQotaW50IHNpZzsKLXsKLQlzdGF0aWMgY2hhciBidWZbMzBdOwotCWlmIChzaWcgPj0gMCAmJiBzaWcgPCBuc2lnbmFscykgewotCQlyZXR1cm4gc2lnbmFsZW50W3NpZ107Ci0jaWZkZWYgU0lHUlRNSU4KLQl9IGVsc2UgaWYgKHNpZyA+PSBfX1NJR1JUTUlOICYmIHNpZyA8PSBfX1NJR1JUTUFYKSB7Ci0JCXNwcmludGYoYnVmLCAiU0lHUlRfJWxkIiwgKGxvbmcpKHNpZyAtIF9fU0lHUlRNSU4pKTsKLQkJcmV0dXJuIGJ1ZjsKLSNlbmRpZiAvKiBTSUdSVE1JTiAqLwotCX0gZWxzZSB7Ci0JCXNwcmludGYoYnVmLCAiJWQiLCBzaWcpOwotCQlyZXR1cm4gYnVmOwotCX0KLX0KLQotI2lmbmRlZiBVTklYV0FSRQotc3RhdGljIHZvaWQKLWxvbmdfdG9fc2lnc2V0KGwsIHMpCi1sb25nIGw7Ci1zaWdzZXRfdCAqczsKLXsKLQlzaWdlbXB0eXNldChzKTsKLQkqKGxvbmcgKilzID0gbDsKLX0KLSNlbmRpZgotCi1zdGF0aWMgaW50Ci1jb3B5X3NpZ3NldF9sZW4odGNwLCBhZGRyLCBzLCBsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1zaWdzZXRfdCAqczsKLWludCBsZW47Ci17Ci0JaWYgKGxlbiA+IHNpemVvZigqcykpCi0JCWxlbiA9IHNpemVvZigqcyk7Ci0Jc2lnZW1wdHlzZXQocyk7Ci0JaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIGxlbiwgKGNoYXIgKilzKSA8IDApCi0JCXJldHVybiAtMTsKLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIExJTlVYCi0vKiBPcmlnaW5hbCBzaWdzZXQgaXMgdW5zaWduZWQgbG9uZyAqLwotI2RlZmluZSBjb3B5X3NpZ3NldCh0Y3AsIGFkZHIsIHMpIGNvcHlfc2lnc2V0X2xlbih0Y3AsIGFkZHIsIHMsIHNpemVvZihsb25nKSkKLSNlbHNlCi0jZGVmaW5lIGNvcHlfc2lnc2V0KHRjcCwgYWRkciwgcykgY29weV9zaWdzZXRfbGVuKHRjcCwgYWRkciwgcywgc2l6ZW9mKHNpZ3NldF90KSkKLSNlbmRpZgotCi1zdGF0aWMgY2hhciAqCi1zcHJpbnRzaWdtYXNrKHMsIG1hc2ssIHJ0KQotY2hhciAqczsKLXNpZ3NldF90ICptYXNrOwotaW50IHJ0OyAvKiBzZXQgbWlnaHQgaW5jbHVkZSByZWFsdGltZSBzaWdzICovCi17Ci0JaW50IGksIG5zaWdzOwotCWludCBtYXhzaWdzOwotCWNoYXIgKmZvcm1hdDsKLQlzdGF0aWMgY2hhciBvdXRzdHJbOCAqIHNpemVvZihzaWdzZXRfdCkgKiA4XTsKLQotCXN0cmNweShvdXRzdHIsIHMpOwotCXMgPSBvdXRzdHIgKyBzdHJsZW4ob3V0c3RyKTsKLQluc2lncyA9IDA7Ci0JbWF4c2lncyA9IG5zaWduYWxzOwotI2lmZGVmIF9fU0lHUlRNQVgKLQlpZiAocnQpCi0JCW1heHNpZ3MgPSBfX1NJR1JUTUFYOyAvKiBpbnN0ZWFkICovCi0jZW5kaWYKLQlmb3IgKGkgPSAxOyBpIDwgbWF4c2lnczsgaSsrKSB7Ci0JCWlmIChzaWdpc21lbWJlcihtYXNrLCBpKSA9PSAxKQotCQkJbnNpZ3MrKzsKLQl9Ci0JaWYgKG5zaWdzID49IG5zaWduYWxzICogMiAvIDMpIHsKLQkJKnMrKyA9ICd+JzsKLQkJZm9yIChpID0gMTsgaSA8IG1heHNpZ3M7IGkrKykgewotCQkJc3dpdGNoIChzaWdpc21lbWJlcihtYXNrLCBpKSkgewotCQkJY2FzZSAxOgotCQkJCXNpZ2RlbHNldChtYXNrLCBpKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgMDoKLQkJCQlzaWdhZGRzZXQobWFzaywgaSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQl9Ci0JZm9ybWF0ID0gIiVzIjsKLQkqcysrID0gJ1snOwotCWZvciAoaSA9IDE7IGkgPCBtYXhzaWdzOyBpKyspIHsKLQkJaWYgKHNpZ2lzbWVtYmVyKG1hc2ssIGkpID09IDEpIHsKLQkJCS8qIHJlYWwtdGltZSBzaWduYWxzIG9uIHNvbGFyaXMgZG9uJ3QgaGF2ZQotCQkJICogc2lnbmFsZW50IGVudHJpZXMKLQkJCSAqLwotCQkJaWYgKGkgPCBuc2lnbmFscykgewotCQkJCXNwcmludGYocywgZm9ybWF0LCBzaWduYWxlbnRbaV0gKyAzKTsKLQkJCX0KLSNpZmRlZiBTSUdSVE1JTgotCQkJZWxzZSBpZiAoaSA+PSBfX1NJR1JUTUlOICYmIGkgPD0gX19TSUdSVE1BWCkgewotCQkJCWNoYXIgdHNpZ1s0MF07Ci0JCQkJc3ByaW50Zih0c2lnLCAiUlRfJXUiLCBpIC0gX19TSUdSVE1JTik7Ci0JCQkJc3ByaW50ZihzLCBmb3JtYXQsIHRzaWcpOwotCQkJfQotI2VuZGlmIC8qIFNJR1JUTUlOICovCi0JCQllbHNlIHsKLQkJCQljaGFyIHRzaWdbMzJdOwotCQkJCXNwcmludGYodHNpZywgIiV1IiwgaSk7Ci0JCQkJc3ByaW50ZihzLCBmb3JtYXQsIHRzaWcpOwotCQkJfQotCQkJcyArPSBzdHJsZW4ocyk7Ci0JCQlmb3JtYXQgPSAiICVzIjsKLQkJfQotCX0KLQkqcysrID0gJ10nOwotCSpzID0gJ1wwJzsKLQlyZXR1cm4gb3V0c3RyOwotfQotCi1zdGF0aWMgdm9pZAotcHJpbnRzaWdtYXNrKG1hc2ssIHJ0KQotc2lnc2V0X3QgKm1hc2s7Ci1pbnQgcnQ7Ci17Ci0JdHByaW50ZigiJXMiLCBzcHJpbnRzaWdtYXNrKCIiLCBtYXNrLCBydCkpOwotfQotCi12b2lkCi1wcmludHNpZ25hbChucikKLWludCBucjsKLXsKLQl0cHJpbnRmKHNpZ25hbWUobnIpKTsKLX0KLQotI2lmZGVmIExJTlVYCi0KLSNpZm5kZWYgSUxMX0lMTE9QQwotI2RlZmluZSBJTExfSUxMT1BDICAgICAgMSAgICAgICAvKiBpbGxlZ2FsIG9wY29kZSAqLwotI2RlZmluZSBJTExfSUxMT1BOICAgICAgMiAgICAgICAvKiBpbGxlZ2FsIG9wZXJhbmQgKi8KLSNkZWZpbmUgSUxMX0lMTEFEUiAgICAgIDMgICAgICAgLyogaWxsZWdhbCBhZGRyZXNzaW5nIG1vZGUgKi8KLSNkZWZpbmUgSUxMX0lMTFRSUCAgICAgIDQgICAgICAgLyogaWxsZWdhbCB0cmFwICovCi0jZGVmaW5lIElMTF9QUlZPUEMgICAgICA1ICAgICAgIC8qIHByaXZpbGVnZWQgb3Bjb2RlICovCi0jZGVmaW5lIElMTF9QUlZSRUcgICAgICA2ICAgICAgIC8qIHByaXZpbGVnZWQgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgSUxMX0NPUFJPQyAgICAgIDcgICAgICAgLyogY29wcm9jZXNzb3IgZXJyb3IgKi8KLSNkZWZpbmUgSUxMX0JBRFNUSyAgICAgIDggICAgICAgLyogaW50ZXJuYWwgc3RhY2sgZXJyb3IgKi8KLSNkZWZpbmUgRlBFX0lOVERJViAgICAgIDEgICAgICAgLyogaW50ZWdlciBkaXZpZGUgYnkgemVybyAqLwotI2RlZmluZSBGUEVfSU5UT1ZGICAgICAgMiAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCi0jZGVmaW5lIEZQRV9GTFRESVYgICAgICAzICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IGRpdmlkZSBieSB6ZXJvICovCi0jZGVmaW5lIEZQRV9GTFRPVkYgICAgICA0ICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IG92ZXJmbG93ICovCi0jZGVmaW5lIEZQRV9GTFRVTkQgICAgICA1ICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IHVuZGVyZmxvdyAqLwotI2RlZmluZSBGUEVfRkxUUkVTICAgICAgNiAgICAgICAvKiBmbG9hdGluZyBwb2ludCBpbmV4YWN0IHJlc3VsdCAqLwotI2RlZmluZSBGUEVfRkxUSU5WICAgICAgNyAgICAgICAvKiBmbG9hdGluZyBwb2ludCBpbnZhbGlkIG9wZXJhdGlvbiAqLwotI2RlZmluZSBGUEVfRkxUU1VCICAgICAgOCAgICAgICAvKiBzdWJzY3JpcHQgb3V0IG9mIHJhbmdlICovCi0jZGVmaW5lIFNFR1ZfTUFQRVJSICAgICAxICAgICAgIC8qIGFkZHJlc3Mgbm90IG1hcHBlZCB0byBvYmplY3QgKi8KLSNkZWZpbmUgU0VHVl9BQ0NFUlIgICAgIDIgICAgICAgLyogaW52YWxpZCBwZXJtaXNzaW9ucyBmb3IgbWFwcGVkIG9iamVjdCAqLwotI2RlZmluZSBCVVNfQURSQUxOICAgICAgMSAgICAgICAvKiBpbnZhbGlkIGFkZHJlc3MgYWxpZ25tZW50ICovCi0jZGVmaW5lIEJVU19BRFJFUlIgICAgICAyICAgICAgIC8qIG5vbi1leGlzdGFudCBwaHlzaWNhbCBhZGRyZXNzICovCi0jZGVmaW5lIEJVU19PQkpFUlIgICAgICAzICAgICAgIC8qIG9iamVjdCBzcGVjaWZpYyBoYXJkd2FyZSBlcnJvciAqLwotI2RlZmluZSBUUkFQX0JSS1BUICAgICAgMSAgICAgICAvKiBwcm9jZXNzIGJyZWFrcG9pbnQgKi8KLSNkZWZpbmUgVFJBUF9UUkFDRSAgICAgIDIgICAgICAgLyogcHJvY2VzcyB0cmFjZSB0cmFwICovCi0jZGVmaW5lIENMRF9FWElURUQgICAgICAxICAgICAgIC8qIGNoaWxkIGhhcyBleGl0ZWQgKi8KLSNkZWZpbmUgQ0xEX0tJTExFRCAgICAgIDIgICAgICAgLyogY2hpbGQgd2FzIGtpbGxlZCAqLwotI2RlZmluZSBDTERfRFVNUEVEICAgICAgMyAgICAgICAvKiBjaGlsZCB0ZXJtaW5hdGVkIGFibm9ybWFsbHkgKi8KLSNkZWZpbmUgQ0xEX1RSQVBQRUQgICAgIDQgICAgICAgLyogdHJhY2VkIGNoaWxkIGhhcyB0cmFwcGVkICovCi0jZGVmaW5lIENMRF9TVE9QUEVEICAgICA1ICAgICAgIC8qIGNoaWxkIGhhcyBzdG9wcGVkICovCi0jZGVmaW5lIENMRF9DT05USU5VRUQgICA2ICAgICAgIC8qIHN0b3BwZWQgY2hpbGQgaGFzIGNvbnRpbnVlZCAqLwotI2RlZmluZSBQT0xMX0lOICAgICAgICAgMSAgICAgICAvKiBkYXRhIGlucHV0IGF2YWlsYWJsZSAqLwotI2RlZmluZSBQT0xMX09VVCAgICAgICAgMiAgICAgICAvKiBvdXRwdXQgYnVmZmVycyBhdmFpbGFibGUgKi8KLSNkZWZpbmUgUE9MTF9NU0cgICAgICAgIDMgICAgICAgLyogaW5wdXQgbWVzc2FnZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgUE9MTF9FUlIgICAgICAgIDQgICAgICAgLyogaS9vIGVycm9yICovCi0jZGVmaW5lIFBPTExfUFJJICAgICAgICA1ICAgICAgIC8qIGhpZ2ggcHJpb3JpdHkgaW5wdXQgYXZhaWxhYmxlICovCi0jZGVmaW5lIFBPTExfSFVQICAgICAgICA2ICAgICAgIC8qIGRldmljZSBkaXNjb25uZWN0ZWQgKi8KLSNkZWZpbmUgU0lfVVNFUiAgICAgICAgIDAgICAgICAgLyogc2VudCBieSBraWxsLCBzaWdzZW5kLCByYWlzZSAqLwotI2RlZmluZSBTSV9RVUVVRSAgICAgICAgLTEgICAgICAvKiBzZW50IGJ5IHNpZ3F1ZXVlICovCi0jZGVmaW5lIFNJX1RJTUVSICAgICAgICAtMiAgICAgIC8qIHNlbnQgYnkgdGltZXIgZXhwaXJhdGlvbiAqLwotI2RlZmluZSBTSV9NRVNHUSAgICAgICAgLTMgICAgICAvKiBzZW50IGJ5IHJlYWwgdGltZSBtZXNxIHN0YXRlIGNoYW5nZSAqLwotI2RlZmluZSBTSV9BU1lOQ0lPICAgICAgLTQgICAgICAvKiBzZW50IGJ5IEFJTyBjb21wbGV0aW9uICovCi0jZGVmaW5lIFNJX1NJR0lPCS01CS8qIFNlbnQgYnkgU0lHSU8gKi8KLSNkZWZpbmUgU0lfVEtJTEwJLTYJLyogU2VudCBieSB0a2lsbCAqLwotI2VuZGlmCi0KLSNpZiBfX0dMSUJDX01JTk9SX18gPCAxICYmICFkZWZpbmVkKEhBVkVfQU5EUk9JRF9PUykKLS8qIFR5cGUgZm9yIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc2lnbmFsLiAgKi8KLXR5cGVkZWYgdW5pb24gc2lndmFsCi17Ci0JaW50IHNpdmFsX2ludDsKLQl2b2lkICpzaXZhbF9wdHI7Ci19IHNpZ3ZhbF90OwotCi0jIGRlZmluZSBfX1NJX01BWF9TSVpFICAgICAxMjgKLSMgZGVmaW5lIF9fU0lfUEFEX1NJWkUgICAgICgoX19TSV9NQVhfU0laRSAvIHNpemVvZiAoaW50KSkgLSAzKQotCi10eXBlZGVmIHN0cnVjdCBzaWdpbmZvCi17Ci0JaW50IHNpX3NpZ25vOyAgICAgICAgICAgICAgIC8qIFNpZ25hbCBudW1iZXIuICAqLwotCWludCBzaV9lcnJubzsgICAgICAgICAgICAgICAvKiBJZiBub24temVybywgYW4gZXJybm8gdmFsdWUgYXNzb2NpYXRlZCB3aXRoCi0JCQkJCQkJCSAgIHRoaXMgc2lnbmFsLCBhcyBkZWZpbmVkIGluIDxlcnJuby5oPi4gICovCi0JaW50IHNpX2NvZGU7ICAgICAgICAgICAgICAgIC8qIFNpZ25hbCBjb2RlLiAgKi8KLQotCXVuaW9uCi0JewotCQlpbnQgX3BhZFtfX1NJX1BBRF9TSVpFXTsKLQotCQkvKiBraWxsKCkuICAqLwotCQlzdHJ1Y3QKLQkJewotCQkJX19waWRfdCBzaV9waWQ7ICAgICAvKiBTZW5kaW5nIHByb2Nlc3MgSUQuICAqLwotCQkJX191aWRfdCBzaV91aWQ7ICAgICAvKiBSZWFsIHVzZXIgSUQgb2Ygc2VuZGluZyBwcm9jZXNzLiAgKi8KLQkJfSBfa2lsbDsKLQotCQkvKiBQT1NJWC4xYiB0aW1lcnMuICAqLwotCQlzdHJ1Y3QKLQkJewotCQkJdW5zaWduZWQgaW50IF90aW1lcjE7Ci0JCQl1bnNpZ25lZCBpbnQgX3RpbWVyMjsKLQkJfSBfdGltZXI7Ci0KLQkJLyogUE9TSVguMWIgc2lnbmFscy4gICovCi0JCXN0cnVjdAotCQl7Ci0JCQlfX3BpZF90IHNpX3BpZDsgICAgIC8qIFNlbmRpbmcgcHJvY2VzcyBJRC4gICovCi0JCQlfX3VpZF90IHNpX3VpZDsgICAgIC8qIFJlYWwgdXNlciBJRCBvZiBzZW5kaW5nIHByb2Nlc3MuICAqLwotCQkJc2lndmFsX3Qgc2lfc2lndmFsOyAvKiBTaWduYWwgdmFsdWUuICAqLwotCQl9IF9ydDsKLQotCQkvKiBTSUdDSExELiAgKi8KLQkJc3RydWN0Ci0JCXsKLQkJCV9fcGlkX3Qgc2lfcGlkOyAgICAgLyogV2hpY2ggY2hpbGQuICAqLwotCQkJaW50IHNpX3N0YXR1czsgICAgICAvKiBFeGl0IHZhbHVlIG9yIHNpZ25hbC4gICovCi0JCQlfX2Nsb2NrX3Qgc2lfdXRpbWU7Ci0JCQlfX2Nsb2NrX3Qgc2lfc3RpbWU7Ci0JCX0gX3NpZ2NobGQ7Ci0KLQkJLyogU0lHSUxMLCBTSUdGUEUsIFNJR1NFR1YsIFNJR0JVUy4gICovCi0JCXN0cnVjdAotCQl7Ci0JCQl2b2lkICpzaV9hZGRyOyAgICAgIC8qIEZhdWx0aW5nIGluc24vbWVtb3J5IHJlZi4gICovCi0JCX0gX3NpZ2ZhdWx0OwotCi0JCS8qIFNJR1BPTEwuICAqLwotCQlzdHJ1Y3QKLQkJewotCQkJaW50IHNpX2JhbmQ7ICAgICAgICAvKiBCYW5kIGV2ZW50IGZvciBTSUdQT0xMLiAgKi8KLQkJCWludCBzaV9mZDsKLQkJfSBfc2lncG9sbDsKLQl9IF9zaWZpZWxkczsKLX0gc2lnaW5mb190OwotCi0jZGVmaW5lIHNpX3BpZAkJX3NpZmllbGRzLl9raWxsLnNpX3BpZAotI2RlZmluZSBzaV91aWQJCV9zaWZpZWxkcy5fa2lsbC5zaV91aWQKLSNkZWZpbmUgc2lfc3RhdHVzCV9zaWZpZWxkcy5fc2lnY2hsZC5zaV9zdGF0dXMKLSNkZWZpbmUgc2lfdXRpbWUJX3NpZmllbGRzLl9zaWdjaGxkLnNpX3V0aW1lCi0jZGVmaW5lIHNpX3N0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5zaV9zdGltZQotI2RlZmluZSBzaV92YWx1ZQlfc2lmaWVsZHMuX3J0LnNpX3NpZ3ZhbAotI2RlZmluZSBzaV9pbnQJCV9zaWZpZWxkcy5fcnQuc2lfc2lndmFsLnNpdmFsX2ludAotI2RlZmluZSBzaV9wdHIJCV9zaWZpZWxkcy5fcnQuc2lfc2lndmFsLnNpdmFsX3B0cgotI2RlZmluZSBzaV9hZGRyCQlfc2lmaWVsZHMuX3NpZ2ZhdWx0LnNpX2FkZHIKLSNkZWZpbmUgc2lfYmFuZAkJX3NpZmllbGRzLl9zaWdwb2xsLnNpX2JhbmQKLSNkZWZpbmUgc2lfZmQJCV9zaWZpZWxkcy5fc2lncG9sbC5zaV9mZAotCi0jZW5kaWYKLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChTVlI0KSB8fCBkZWZpbmVkIChMSU5VWCkKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2luZm9fY29kZXNbXSA9IHsKLSNpZmRlZiBTSV9OT0lORk8KLQl7IFNJX05PSU5GTywJIlNJX05PSU5GTyIJfSwKLSNlbmRpZgotI2lmZGVmIFNJX1VTRVIKLQl7IFNJX1VTRVIsCSJTSV9VU0VSIgl9LAotI2VuZGlmCi0jaWZkZWYgU0lfTFdQCi0JeyBTSV9MV1AsCSJTSV9MV1AiCX0sCi0jZW5kaWYKLSNpZmRlZiBTSV9RVUVVRQotCXsgU0lfUVVFVUUsCSJTSV9RVUVVRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNJX1RJTUVSCi0JeyBTSV9USU1FUiwJIlNJX1RJTUVSIgl9LAotI2VuZGlmCi0jaWZkZWYgU0lfQVNZTkNJTwotCXsgU0lfQVNZTkNJTywJIlNJX0FTWU5DSU8iCX0sCi0jZW5kaWYKLSNpZmRlZiBTSV9NRVNHUQotCXsgU0lfTUVTR1EsCSJTSV9NRVNHUSIJfSwKLSNlbmRpZgotI2lmZGVmIFNJX1NJR0lPCi0JeyBTSV9TSUdJTywJIlNJX1NJR0lPIgl9LAotI2VuZGlmCi0jaWZkZWYgU0lfVEtJTEwKLQl7IFNJX1RLSUxMLAkiU0lfVEtJTEwiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2lsbF9jb2Rlc1tdID0gewotCXsgSUxMX0lMTE9QQywJIklMTF9JTExPUEMiCX0sCi0JeyBJTExfSUxMT1BOLAkiSUxMX0lMTE9QTiIJfSwKLQl7IElMTF9JTExBRFIsCSJJTExfSUxMQURSIgl9LAotCXsgSUxMX0lMTFRSUCwJIklMTF9JTExUUlAiCX0sCi0JeyBJTExfUFJWT1BDLAkiSUxMX1BSVk9QQyIJfSwKLQl7IElMTF9QUlZSRUcsCSJJTExfUFJWUkVHIgl9LAotCXsgSUxMX0NPUFJPQywJIklMTF9DT1BST0MiCX0sCi0JeyBJTExfQkFEU1RLLAkiSUxMX0JBRFNUSyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2ZwZV9jb2Rlc1tdID0gewotCXsgRlBFX0lOVERJViwJIkZQRV9JTlRESVYiCX0sCi0JeyBGUEVfSU5UT1ZGLAkiRlBFX0lOVE9WRiIJfSwKLQl7IEZQRV9GTFRESVYsCSJGUEVfRkxURElWIgl9LAotCXsgRlBFX0ZMVE9WRiwJIkZQRV9GTFRPVkYiCX0sCi0JeyBGUEVfRkxUVU5ELAkiRlBFX0ZMVFVORCIJfSwKLQl7IEZQRV9GTFRSRVMsCSJGUEVfRkxUUkVTIgl9LAotCXsgRlBFX0ZMVElOViwJIkZQRV9GTFRJTlYiCX0sCi0JeyBGUEVfRkxUU1VCLAkiRlBFX0ZMVFNVQiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ3RyYXBfY29kZXNbXSA9IHsKLQl7IFRSQVBfQlJLUFQsCSJUUkFQX0JSS1BUIgl9LAotCXsgVFJBUF9UUkFDRSwJIlRSQVBfVFJBQ0UiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdjaGxkX2NvZGVzW10gPSB7Ci0JeyBDTERfRVhJVEVELAkiQ0xEX0VYSVRFRCIJfSwKLQl7IENMRF9LSUxMRUQsCSJDTERfS0lMTEVEIgl9LAotCXsgQ0xEX0RVTVBFRCwJIkNMRF9EVU1QRUQiCX0sCi0JeyBDTERfVFJBUFBFRCwJIkNMRF9UUkFQUEVEIgl9LAotCXsgQ0xEX1NUT1BQRUQsCSJDTERfU1RPUFBFRCIJfSwKLQl7IENMRF9DT05USU5VRUQsIkNMRF9DT05USU5VRUQiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdwb2xsX2NvZGVzW10gPSB7Ci0JeyBQT0xMX0lOLAkiUE9MTF9JTiIJfSwKLQl7IFBPTExfT1VULAkiUE9MTF9PVVQiCX0sCi0JeyBQT0xMX01TRywJIlBPTExfTVNHIgl9LAotCXsgUE9MTF9FUlIsCSJQT0xMX0VSUiIJfSwKLQl7IFBPTExfUFJJLAkiUE9MTF9QUkkiCX0sCi0JeyBQT0xMX0hVUCwJIlBPTExfSFVQIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lncHJvZl9jb2Rlc1tdID0gewotI2lmZGVmIFBST0ZfU0lHCi0JeyBQUk9GX1NJRywJIlBST0ZfU0lHIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNpZmRlZiBTSUdFTVQKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdlbXRfY29kZXNbXSA9IHsKLSNpZmRlZiBFTVRfVEFHT1ZGCi0JeyBFTVRfVEFHT1ZGLAkiRU1UX1RBR09WRiIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotI2VuZGlmCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdzZWd2X2NvZGVzW10gPSB7Ci0JeyBTRUdWX01BUEVSUiwJIlNFR1ZfTUFQRVJSIgl9LAotCXsgU0VHVl9BQ0NFUlIsCSJTRUdWX0FDQ0VSUiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2J1c19jb2Rlc1tdID0gewotCXsgQlVTX0FEUkFMTiwJIkJVU19BRFJBTE4iCX0sCi0JeyBCVVNfQURSRVJSLAkiQlVTX0FEUkVSUiIJfSwKLQl7IEJVU19PQkpFUlIsCSJCVVNfT0JKRVJSIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi12b2lkCi1wcmludHNpZ2luZm8oc2lwLCB2ZXJib3NlKQotc2lnaW5mb190ICpzaXA7Ci1pbnQgdmVyYm9zZTsKLXsKLQljb25zdCBjaGFyICpjb2RlOwotCi0JaWYgKHNpcC0+c2lfc2lnbm8gPT0gMCkgewotCQl0cHJpbnRmICgie30iKTsKLQkJcmV0dXJuOwotCX0KLQl0cHJpbnRmKCJ7c2lfc2lnbm89Iik7Ci0JcHJpbnRzaWduYWwoc2lwLT5zaV9zaWdubyk7Ci0JY29kZSA9IHhsb29rdXAoc2lnaW5mb19jb2Rlcywgc2lwLT5zaV9jb2RlKTsKLQlpZiAoIWNvZGUpIHsKLQkJc3dpdGNoIChzaXAtPnNpX3NpZ25vKSB7Ci0JCWNhc2UgU0lHVFJBUDoKLQkJCWNvZGUgPSB4bG9va3VwKHNpZ3RyYXBfY29kZXMsIHNpcC0+c2lfY29kZSk7Ci0JCQlicmVhazsKLQkJY2FzZSBTSUdDSExEOgotCQkJY29kZSA9IHhsb29rdXAoc2lnY2hsZF9jb2Rlcywgc2lwLT5zaV9jb2RlKTsKLQkJCWJyZWFrOwotCQljYXNlIFNJR1BPTEw6Ci0JCQljb2RlID0geGxvb2t1cChzaWdwb2xsX2NvZGVzLCBzaXAtPnNpX2NvZGUpOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0lHUFJPRjoKLQkJCWNvZGUgPSB4bG9va3VwKHNpZ3Byb2ZfY29kZXMsIHNpcC0+c2lfY29kZSk7Ci0JCQlicmVhazsKLQkJY2FzZSBTSUdJTEw6Ci0JCQljb2RlID0geGxvb2t1cChzaWdpbGxfY29kZXMsIHNpcC0+c2lfY29kZSk7Ci0JCQlicmVhazsKLSNpZmRlZiBTSUdFTVQKLQkJY2FzZSBTSUdFTVQ6Ci0JCQljb2RlID0geGxvb2t1cChzaWdlbXRfY29kZXMsIHNpcC0+c2lfY29kZSk7Ci0JCQlicmVhazsKLSNlbmRpZgotCQljYXNlIFNJR0ZQRToKLQkJCWNvZGUgPSB4bG9va3VwKHNpZ2ZwZV9jb2Rlcywgc2lwLT5zaV9jb2RlKTsKLQkJCWJyZWFrOwotCQljYXNlIFNJR1NFR1Y6Ci0JCQljb2RlID0geGxvb2t1cChzaWdzZWd2X2NvZGVzLCBzaXAtPnNpX2NvZGUpOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0lHQlVTOgotCQkJY29kZSA9IHhsb29rdXAoc2lnYnVzX2NvZGVzLCBzaXAtPnNpX2NvZGUpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JaWYgKGNvZGUpCi0JCXRwcmludGYoIiwgc2lfY29kZT0lcyIsIGNvZGUpOwotCWVsc2UKLQkJdHByaW50ZigiLCBzaV9jb2RlPSUjeCIsIHNpcC0+c2lfY29kZSk7Ci0jaWZkZWYgU0lfTk9JTkZPCi0JaWYgKHNpcC0+c2lfY29kZSAhPSBTSV9OT0lORk8pCi0jZW5kaWYKLQl7Ci0JCWlmIChzaXAtPnNpX2Vycm5vKSB7Ci0JCQlpZiAoc2lwLT5zaV9lcnJubyA8IDAgfHwgc2lwLT5zaV9lcnJubyA+PSBuZXJybm9zKQotCQkJCXRwcmludGYoIiwgc2lfZXJybm89JWQiLCBzaXAtPnNpX2Vycm5vKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIsIHNpX2Vycm5vPSVzIiwKLQkJCQkJZXJybm9lbnRbc2lwLT5zaV9lcnJub10pOwotCQl9Ci0jaWZkZWYgU0lfRlJPTVVTRVIKLQkJaWYgKFNJX0ZST01VU0VSKHNpcCkpIHsKLQkJCXRwcmludGYoIiwgc2lfcGlkPSVsZCwgc2lfdWlkPSVsZCIsCi0JCQkJc2lwLT5zaV9waWQsIHNpcC0+c2lfdWlkKTsKLSNpZmRlZiBTSV9RVUVVRQotCQkJc3dpdGNoIChzaXAtPnNpX2NvZGUpIHsKLQkJCWNhc2UgU0lfUVVFVUU6Ci0jaWZkZWYgU0lfVElNRVIKLQkJCWNhc2UgU0lfVElNRVI6Ci0jZW5kaWYgLyogU0lfUVVFVUUgKi8KLQkJCWNhc2UgU0lfQVNZTkNJTzoKLSNpZmRlZiBTSV9NRVNHUQotCQkJY2FzZSBTSV9NRVNHUToKLSNlbmRpZiAvKiBTSV9NRVNHUSAqLwotCQkJCXRwcmludGYoIiwgc2lfdmFsdWU9JWQiLAotCQkJCQlzaXAtPnNpX3ZhbHVlLnNpdmFsX2ludCk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0jZW5kaWYgLyogU0lfUVVFVUUgKi8KLQkJfQotCQllbHNlCi0jZW5kaWYgLyogU0lfRlJPTVVTRVIgKi8KLQkJewotCQkJc3dpdGNoIChzaXAtPnNpX3NpZ25vKSB7Ci0JCQljYXNlIFNJR0NITEQ6Ci0JCQkJdHByaW50ZigiLCBzaV9waWQ9JWxkLCBzaV9zdGF0dXM9IiwKLQkJCQkJKGxvbmcpIHNpcC0+c2lfcGlkKTsKLQkJCQlpZiAoc2lwLT5zaV9jb2RlID09IENMRF9FWElURUQpCi0JCQkJCXRwcmludGYoIiVkIiwgc2lwLT5zaV9zdGF0dXMpOwotCQkJCWVsc2UKLQkJCQkJcHJpbnRzaWduYWwoc2lwLT5zaV9zdGF0dXMpOwotI2lmIExJTlVYCi0JCQkJaWYgKCF2ZXJib3NlKQotCQkJCQl0cHJpbnRmKCIsIC4uLiIpOwotCQkJCWVsc2UKLQkJCQkJdHByaW50ZigiLCBzaV91dGltZT0lbHUsIHNpX3N0aW1lPSVsdSIsCi0JCQkJCQlzaXAtPnNpX3V0aW1lLAotCQkJCQkJc2lwLT5zaV9zdGltZSk7Ci0jZW5kaWYKLQkJCQlicmVhazsKLQkJCWNhc2UgU0lHSUxMOiBjYXNlIFNJR0ZQRToKLQkJCWNhc2UgU0lHU0VHVjogY2FzZSBTSUdCVVM6Ci0JCQkJdHByaW50ZigiLCBzaV9hZGRyPSUjbHgiLAotCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9hZGRyKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgU0lHUE9MTDoKLQkJCQlzd2l0Y2ggKHNpcC0+c2lfY29kZSkgewotCQkJCWNhc2UgUE9MTF9JTjogY2FzZSBQT0xMX09VVDogY2FzZSBQT0xMX01TRzoKLQkJCQkJdHByaW50ZigiLCBzaV9iYW5kPSVsZCIsCi0JCQkJCQkobG9uZykgc2lwLT5zaV9iYW5kKTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJCWJyZWFrOwotI2lmZGVmIExJTlVYCi0JCQlkZWZhdWx0OgotCQkJICAgICAgICB0cHJpbnRmKCIsIHNpX3BpZD0lbHUsIHNpX3VpZD0lbHUsICIsCi0JCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3BpZCwKLQkJCQkJKHVuc2lnbmVkIGxvbmcpIHNpcC0+c2lfdWlkKTsKLQkJCQlpZiAoIXZlcmJvc2UpCi0JCQkJCXRwcmludGYoIi4uLiIpOwotCQkJCWVsc2UgewotCQkJCQl0cHJpbnRmKCJzaV92YWx1ZT17aW50PSV1LCBwdHI9JSNseH0iLAotCQkJCQkJc2lwLT5zaV9pbnQsCi0JCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9wdHIpOwotCQkJCX0KLSNlbmRpZgotCi0JCQl9Ci0JCX0KLQl9Ci0JdHByaW50ZigifSIpOwotfQotCi0jZW5kaWYgLyogU1ZSNCB8fCBMSU5VWCAqLwotCi0jaWZkZWYgTElOVVgKLQotc3RhdGljIHZvaWQKLXBhcnNlX3NpZ3NldF90IChjb25zdCBjaGFyICpzdHIsIHNpZ3NldF90ICpzZXQpCi17Ci0JY29uc3QgY2hhciAqcDsKLQl1bnNpZ25lZCBpbnQgZGlnaXQ7Ci0JaW50IGk7Ci0KLQlzaWdlbXB0eXNldChzZXQpOwotCi0JcCA9IHN0cmNocihzdHIsICdcbicpOwotCWlmIChwID09IE5VTEwpCi0JCXAgPSBzdHJjaHIoc3RyLCAnXDAnKTsKLQlmb3IgKGkgPSAwOyBwLS0gPiBzdHI7IGkgKz0gNCkgewotCQlpZiAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykKLQkJCWRpZ2l0ID0gKnAgLSAnMCc7Ci0JCWVsc2UgaWYgKCpwID49ICdhJyAmJiAqcCA8PSAnZicpCi0JCQlkaWdpdCA9ICpwIC0gJ2EnICsgMTA7Ci0JCWVsc2UgaWYgKCpwID49ICdBJyAmJiAqcCA8PSAnRicpCi0JCQlkaWdpdCA9ICpwIC0gJ0EnICsgMTA7Ci0JCWVsc2UKLQkJCWJyZWFrOwotCQlpZiAoZGlnaXQgJiAxKQotCQkJc2lnYWRkc2V0KHNldCwgaSArIDEpOwotCQlpZiAoZGlnaXQgJiAyKQotCQkJc2lnYWRkc2V0KHNldCwgaSArIDIpOwotCQlpZiAoZGlnaXQgJiA0KQotCQkJc2lnYWRkc2V0KHNldCwgaSArIDMpOwotCQlpZiAoZGlnaXQgJiA4KQotCQkJc2lnYWRkc2V0KHNldCwgaSArIDQpOwotCX0KLX0KLQotI2VuZGlmCi0KLS8qCi0gKiBDaGVjayBwcm9jZXNzIFRDUCBmb3IgdGhlIGRpc3Bvc2l0aW9uIG9mIHNpZ25hbCBTSUcuCi0gKiBSZXR1cm4gMSBpZiB0aGUgcHJvY2VzcyB3b3VsZCBzb21laG93IG1hbmFnZSB0byAgc3Vydml2ZSBzaWduYWwgU0lHLAotICogZWxzZSByZXR1cm4gMC4gIFRoaXMgcm91dGluZSB3aWxsIG5ldmVyIGJlIGNhbGxlZCB3aXRoIFNJR0tJTEwuCi0gKi8KLWludAotc2lnaXNoYW5kbGVkKHRjcCwgc2lnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IHNpZzsKLXsKLSNpZmRlZiBMSU5VWAotCWludCBzZmQ7Ci0JY2hhciBzbmFtZVszMl07Ci0JY2hhciBidWZbMjA0OF07Ci0JY2hhciAqczsKLQlpbnQgaTsKLQlzaWdzZXRfdCBpZ25vcmVkLCBjYXVnaHQ7Ci0jZW5kaWYKLSNpZmRlZiBTVlI0Ci0JLyoKLQkgKiBTaW5jZSBwcm9jZnMgZG9lc24ndCBpbnRlcmZlcmUgd2l0aCB3YWl0IEkgdGhpbmsgaXQgaXMgc2FmZQotCSAqIHRvIHB1bnQgb24gdGhpcyBxdWVzdGlvbi4gIElmIG5vdCwgdGhlIGluZm9ybWF0aW9uIGlzIHRoZXJlLgotCSAqLwotCXJldHVybiAxOwotI2Vsc2UgLyogIVNWUjQgKi8KLQlzd2l0Y2ggKHNpZykgewotCWNhc2UgU0lHQ09OVDoKLQljYXNlIFNJR1NUT1A6Ci0JY2FzZSBTSUdUU1RQOgotCWNhc2UgU0lHVFRJTjoKLQljYXNlIFNJR1RUT1U6Ci0JY2FzZSBTSUdDSExEOgotCWNhc2UgU0lHSU86Ci0jaWYgZGVmaW5lZChTSUdVUkcpICYmIFNJR1VSRyAhPSBTSUdJTwotCWNhc2UgU0lHVVJHOgotI2VuZGlmCi0JY2FzZSBTSUdXSU5DSDoKLQkJLyogR2xvcmlhIEdheW5vciBzYXlzIC4uLiAqLwotCQlyZXR1cm4gMTsKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0jZW5kaWYgLyogIVNWUjQgKi8KLSNpZmRlZiBMSU5VWAotCi0JLyogVGhpcyBpcyBpbmNyZWRpYmx5IGNvc3RseSBidXQgaXQncyB3b3J0aCBpdC4gKi8KLQkvKiBOT1RFOiBMaW51eFRocmVhZHMgaW50ZXJuYWxseSB1c2VzIFNJR1JUTUlOLCBTSUdSVE1JTiArIDEgYW5kCi0JICAgU0lHUlRNSU4gKyAyLCBzbyB3ZSBjYW4ndCB1c2UgdGhlIG9ic29sZXRlIC9wcm9jLyVkL3N0YXQgd2hpY2gKLQkgICBkb2Vzbid0IGhhbmRsZSByZWFsLXRpbWUgc2lnbmFscykuICovCi0Jc3ByaW50ZihzbmFtZSwgIi9wcm9jLyVkL3N0YXR1cyIsIHRjcC0+cGlkKTsKLQlpZiAoKHNmZCA9IG9wZW4oc25hbWUsIE9fUkRPTkxZKSkgPT0gLTEpIHsKLQkJcGVycm9yKHNuYW1lKTsKLQkJcmV0dXJuIDE7Ci0JfQotCWkgPSByZWFkKHNmZCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0JYnVmW2ldID0gJ1wwJzsKLQljbG9zZShzZmQpOwotCS8qCi0JICogU2tpcCB0aGUgZXh0cmFuZW91cyBmaWVsZHMuIFdlIG5lZWQgdG8gc2tpcAotCSAqIGNvbW1hbmQgbmFtZSBoYXMgYW55IHNwYWNlcyBpbiBpdC4gIFNvIGJlIGl0LgotCSAqLwotCXMgPSBzdHJzdHIoYnVmLCAiU2lnSWduOlx0Iik7Ci0JaWYgKCFzKQotCXsKLQkJZnByaW50ZihzdGRlcnIsICIvcHJvYy9waWQvc3RhdHVzIGZvcm1hdCBlcnJvclxuIik7Ci0JCXJldHVybiAxOwotCX0KLQlwYXJzZV9zaWdzZXRfdChzICsgOCwgJmlnbm9yZWQpOwotCi0JcyA9IHN0cnN0cihidWYsICJTaWdDZ3Q6XHQiKTsKLQlpZiAoIXMpCi0JewotCQlmcHJpbnRmKHN0ZGVyciwgIi9wcm9jL3BpZC9zdGF0dXMgZm9ybWF0IGVycm9yXG4iKTsKLQkJcmV0dXJuIDE7Ci0JfQotCXBhcnNlX3NpZ3NldF90KHMgKyA4LCAmY2F1Z2h0KTsKLQotI2lmZGVmIERFQlVHCi0JZnByaW50ZihzdGRlcnIsICJzaWdzOiAlMDE2cXggJTAxNnF4IChzaWc9JWQpXG4iLAotCQkqKGxvbmcgbG9uZyAqKSAmaWdub3JlZCwgKihsb25nIGxvbmcgKikgJmNhdWdodCwgc2lnKTsKLSNlbmRpZgotCWlmIChzaWdpc21lbWJlcigmaWdub3JlZCwgc2lnKSB8fCBzaWdpc21lbWJlcigmY2F1Z2h0LCBzaWcpKQotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0Jdm9pZCAoKnVfc2lnbmFsKSgpOwotCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCB1b2ZmKHVfc2lnbmFsWzBdKSArIHNpZypzaXplb2YodV9zaWduYWwpLAotCSAgICAobG9uZyAqKSAmdV9zaWduYWwpIDwgMCkgewotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHVfc2lnbmFsICE9IFNJR19ERkwpCi0JCXJldHVybiAxOwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChGUkVFQlNEKQotCi1pbnQKLXN5c19zaWd2ZWModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCBzaWd2ZWMgc3Y7Ci0JbG9uZyBhZGRyOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwotCX0gZWxzZSB7Ci0JCWFkZHIgPSB0Y3AtPnVfYXJnWzJdOwotCX0KLQlpZiAoYWRkciA9PSAwKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN2KSA8IDApCi0JCXRwcmludGYoInsuLi59Iik7Ci0JZWxzZSB7Ci0JCXN3aXRjaCAoKGludCkgc3Yuc3ZfaGFuZGxlcikgewotCQljYXNlIChpbnQpIFNJR19FUlI6Ci0JCQl0cHJpbnRmKCJ7U0lHX0VSUn0iKTsKLQkJCWJyZWFrOwotCQljYXNlIChpbnQpIFNJR19ERkw6Ci0JCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKLQkJCWJyZWFrOwotCQljYXNlIChpbnQpIFNJR19JR046Ci0JCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7Ci0JCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKLQkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKLQkJCX0KLQkJCXRwcmludGYoIntTSUdfSUdOfSIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgKGludCkgU0lHX0hPTEQ6Ci0JCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7Ci0JCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKLQkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKLQkJCX0KLQkJCXRwcmludGYoIlNJR19IT0xEIik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWlmICh0Y3AtPnVfYXJnWzBdID09IFNJR1RSQVApIHsKLQkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOwotCQkJCWtpbGwodGNwLT5waWQsIFNJR1NUT1ApOwotCQkJfQotCQkJdHByaW50ZigieyUjbHgsICIsICh1bnNpZ25lZCBsb25nKSBzdi5zdl9oYW5kbGVyKTsKLQkJCXByaW50c2lnbWFzaygmc3Yuc3ZfbWFzaywgMCk7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnRmbGFncyhzaWd2ZWNfZmxhZ3MsIHN2LnN2X2ZsYWdzLCAiU1ZfPz8/Iik7Ci0JCQl0cHJpbnRmKCJ9Iik7Ci0JCX0KLQl9Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiwgIik7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NpZ3BhdXNlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewkvKiBXVEE6IFVEIGhhZCBhIGJ1ZyBoZXJlOiBoZSBmb3Jnb3QgdGhlIGJyYWNlcyAqLwotCQlzaWdzZXRfdCBzaWdtOwotCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzBdLCAmc2lnbSk7Ci0JCXByaW50c2lnbWFzaygmc2lnbSwgMCk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zaWdzdGFjayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IHNpZ3N0YWNrIHNzOwotCWxvbmcgYWRkcjsKLQotCWlmIChlbnRlcmluZyh0Y3ApKQotCQlhZGRyID0gdGNwLT51X2FyZ1swXTsKLQllbHNlCi0JCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwotCWlmIChhZGRyID09IDApCi0JCXRwcmludGYoIk5VTEwiKTsKLQllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZzcykgPCAwKQotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JZWxzZSB7Ci0JCXRwcmludGYoIntzc19zcCAlI2x4ICIsICh1bnNpZ25lZCBsb25nKSBzcy5zc19zcCk7Ci0JCXRwcmludGYoInNzX29uc3RhY2sgJXN9Iiwgc3Muc3Nfb25zdGFjayA/ICJZRVMiIDogIk5PIik7Ci0JfQotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIsICIpOwotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zaWdjbGVhbnVwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIFNVTk9TNCB8fCBGUkVFQlNEICovCi0KLSNpZm5kZWYgU1ZSNAotCi1pbnQKLXN5c19zaWdzZXRtYXNrKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlzaWdzZXRfdCBzaWdtOwotCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzBdLCAmc2lnbSk7Ci0JCXByaW50c2lnbWFzaygmc2lnbSwgMCk7Ci0jaWZuZGVmIFVTRV9QUk9DRlMKLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLS8vRklYTUUgdXNlICJzaWdwcm9jbWFzayIgb3Igc29tZXRoaW5nCi0jZGVmaW5lIHNpZ21hc2soc2lnKSAgICAoMVVMIDw8ICgoc2lnKSAtIDEpKQotI2VuZGlmIAotCi0JCWlmICgodGNwLT51X2FyZ1swXSAmIHNpZ21hc2soU0lHVFJBUCkpKSB7Ci0JCQkvKiBNYXJrIGF0dGVtcHQgdG8gYmxvY2sgU0lHVFJBUCAqLwotCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKLQkJCS8qIFNlbmQgdW5ibG9ja2FibGUgc2lnbmFsICovCi0JCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKLQkJfQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0JfQotCWVsc2UgaWYgKCFzeXNlcnJvcih0Y3ApKSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9ydmFsLCAmc2lnbSk7Ci0JCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygib2xkIG1hc2sgIiwgJnNpZ20sIDApOwotCi0JCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2lnYmxvY2sodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBzeXNfc2lnc2V0bWFzayh0Y3ApOwotfQotCi0jZW5kaWYgLyogIVNWUjQgKi8KLQotI2lmZGVmIEhBVkVfU0lHQUNUSU9OCi0KLSNpZmRlZiBMSU5VWAotc3RydWN0IG9sZF9zaWdhY3Rpb24gewotCV9fc2lnaGFuZGxlcl90IF9fc2FfaGFuZGxlcjsKLQl1bnNpZ25lZCBsb25nIHNhX21hc2s7Ci0JdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKLQl2b2lkICgqc2FfcmVzdG9yZXIpKHZvaWQpOwotfTsKLSNkZWZpbmUgU0FfSEFORExFUiBfX3NhX2hhbmRsZXIKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZuZGVmIFNBX0hBTkRMRVIKLSNkZWZpbmUgU0FfSEFORExFUiBzYV9oYW5kbGVyCi0jZW5kaWYKLQotaW50Ci1zeXNfc2lnYWN0aW9uKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlsb25nIGFkZHI7Ci0jaWZkZWYgTElOVVgKLQlzaWdzZXRfdCBzaWdzZXQ7Ci0Jc3RydWN0IG9sZF9zaWdhY3Rpb24gc2E7Ci0jZWxzZQotCXN0cnVjdCBzaWdhY3Rpb24gc2E7Ci0jZW5kaWYKLQotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwotCX0gZWxzZQotCQlhZGRyID0gdGNwLT51X2FyZ1syXTsKLQlpZiAoYWRkciA9PSAwKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnNhKSA8IDApCi0JCXRwcmludGYoInsuLi59Iik7Ci0JZWxzZSB7Ci0JCXN3aXRjaCAoKGxvbmcpIHNhLlNBX0hBTkRMRVIpIHsKLQkJY2FzZSAobG9uZykgU0lHX0VSUjoKLQkJCXRwcmludGYoIntTSUdfRVJSfSIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgKGxvbmcpIFNJR19ERkw6Ci0JCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKLQkJCWJyZWFrOwotCQljYXNlIChsb25nKSBTSUdfSUdOOgotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0JCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7Ci0JCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKLQkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKLQkJCX0KLSNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwotCQkJdHByaW50Zigie1NJR19JR059Iik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLSNpZm5kZWYgVVNFX1BST0NGUwotCQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gU0lHVFJBUCkgewotCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX1NJR1RSQVBQRUQ7Ci0JCQkJa2lsbCh0Y3AtPnBpZCwgU0lHU1RPUCk7Ci0JCQl9Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQkJCXRwcmludGYoInslI2x4LCAiLCAobG9uZykgc2EuU0FfSEFORExFUik7Ci0jaWZuZGVmIExJTlVYCi0JCQlwcmludHNpZ21hc2sgKCZzYS5zYV9tYXNrLCAwKTsKLSNlbHNlCi0JCQlsb25nX3RvX3NpZ3NldChzYS5zYV9tYXNrLCAmc2lnc2V0KTsKLQkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAwKTsKLSNlbmRpZgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxhZ3Moc2lnYWN0X2ZsYWdzLCBzYS5zYV9mbGFncywgIlNBXz8/PyIpOwotI2lmZGVmIFNBX1JFU1RPUkVSCi0JCQlpZiAoc2Euc2FfZmxhZ3MgJiBTQV9SRVNUT1JFUikKLQkJCQl0cHJpbnRmKCIsICVwIiwgc2Euc2FfcmVzdG9yZXIpOwotI2VuZGlmCi0JCQl0cHJpbnRmKCJ9Iik7Ci0JCX0KLQl9Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiwgIik7Ci0jaWZkZWYgTElOVVgKLQllbHNlCi0JCXRwcmludGYoIiwgJSNseCIsICh1bnNpZ25lZCBsb25nKSBzYS5zYV9yZXN0b3Jlcik7Ci0jZW5kaWYKLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc2lnbmFsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHNpZ25hbCh0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7Ci0JCWNhc2UgKGludCkgU0lHX0VSUjoKLQkJCXRwcmludGYoIlNJR19FUlIiKTsKLQkJCWJyZWFrOwotCQljYXNlIChpbnQpIFNJR19ERkw6Ci0JCQl0cHJpbnRmKCJTSUdfREZMIik7Ci0JCQlicmVhazsKLQkJY2FzZSAoaW50KSBTSUdfSUdOOgotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0JCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7Ci0JCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKLQkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKLQkJCX0KLSNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwotCQkJdHByaW50ZigiU0lHX0lHTiIpOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0jaWZuZGVmIFVTRV9QUk9DRlMKLQkJCWlmICh0Y3AtPnVfYXJnWzBdID09IFNJR1RSQVApIHsKLQkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOwotCQkJCWtpbGwodGNwLT5waWQsIFNJR1NUT1ApOwotCQkJfQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCX0KLQkJcmV0dXJuIDA7Ci0JfQotCWVsc2UgewotCQlzd2l0Y2ggKHRjcC0+dV9ydmFsKSB7Ci0JCSAgICBjYXNlIChpbnQpIFNJR19FUlI6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJTSUdfRVJSIjsgYnJlYWs7Ci0JCSAgICBjYXNlIChpbnQpIFNJR19ERkw6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJTSUdfREZMIjsgYnJlYWs7Ci0JCSAgICBjYXNlIChpbnQpIFNJR19JR046Ci0JCQl0Y3AtPmF1eHN0ciA9ICJTSUdfSUdOIjsgYnJlYWs7Ci0JCSAgICBkZWZhdWx0OgotCQkJdGNwLT5hdXhzdHIgPSBOVUxMOwotCQl9Ci0JCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOwotCX0KLX0KLQotaW50Ci1zeXNfc2lnaG9sZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogSEFWRV9TSUdBQ1RJT04gKi8KLQotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotI2RlZmluZSBzaWdjb250ZXh0X3N0cnVjdCBzaWdjb250ZXh0Ci0jZW5kaWYKLS8vI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpZmRlZiBMSU5VWAotCi1pbnQKLXN5c19zaWdyZXR1cm4odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotI2lmZGVmIEFSTQotCXN0cnVjdCBwdF9yZWdzIHJlZ3M7Ci0Jc3RydWN0IHNpZ2NvbnRleHRfc3RydWN0IHNjOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdGNwLT51X2FyZ1swXSA9IDA7Ci0KLQkJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIE5VTEwsICh2b2lkICopJnJlZ3MpID09IC0xKQotCQkJcmV0dXJuIDA7Ci0KLQkJaWYgKHVtb3ZlKHRjcCwgcmVncy5BUk1fc3AsICZzYykgPCAwKQotCQkJcmV0dXJuIDA7Ci0KLQkJdGNwLT51X2FyZ1swXSA9IDE7Ci0JCXRjcC0+dV9hcmdbMV0gPSBzYy5vbGRtYXNrOwotCX0gZWxzZSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKLQkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOwotCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQotCQkJcmV0dXJuIDA7Ci0JCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOwotCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQotCWxvbmcgdXNwOwotCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpZiAodXBlZWsodGNwLT5waWQsUFRfR1BSMTUsJnVzcCk8MCkKLQkJCXJldHVybiAwOwotCQlpZiAodW1vdmUodGNwLCB1c3ArX19TSUdOQUxfRlJBTUVTSVpFLCAmc2MpIDwgMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPnVfYXJnWzBdID0gMTsKLQkJbWVtY3B5KCZ0Y3AtPnVfYXJnWzFdLCZzYy5vbGRtYXNrWzBdLHNpemVvZihzaWdzZXRfdCkpOwotCX0gZWxzZSB7Ci0JCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsKHNpZ3NldF90ICopJnRjcC0+dV9hcmdbMV0sMCk7Ci0JCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKLQl9Ci0JcmV0dXJuIDA7Ci0jZWxzZQotI2lmZGVmIEkzODYKLQlsb25nIGVzcDsKLQlzdHJ1Y3Qgc2lnY29udGV4dF9zdHJ1Y3Qgc2M7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0Y3AtPnVfYXJnWzBdID0gMDsKLQkJaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlVFU1AsICZlc3ApIDwgMCkKLQkJCXJldHVybiAwOwotCQlpZiAodW1vdmUodGNwLCBlc3AsICZzYykgPCAwKQotCQkJcmV0dXJuIDA7Ci0JCXRjcC0+dV9hcmdbMF0gPSAxOwotCQl0Y3AtPnVfYXJnWzFdID0gc2Mub2xkbWFzazsKLQl9Ci0JZWxzZSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKLQkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOwotCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQotCQkJcmV0dXJuIDA7Ci0JCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOwotCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBJQTY0Ci0Jc3RydWN0IHNpZ2NvbnRleHQgc2M7Ci0JbG9uZyBzcDsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCS8qIG9mZnNldCBvZiBzaWdjb250ZXh0IGluIHRoZSBrZXJuZWwncyBzaWdmcmFtZSBzdHJ1Y3R1cmU6ICovCi0jCQlkZWZpbmUgU0lHRlJBTUVfU0NfT0ZGU0VUCTB4OTAKLQkJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfUjEyLCAmc3ApIDwgMCkKLQkJCXJldHVybiAwOwotCQlpZiAodW1vdmUodGNwLCBzcCArIDE2ICsgU0lHRlJBTUVfU0NfT0ZGU0VULCAmc2MpIDwgMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPnVfYXJnWzBdID0gMTsKLQkJbWVtY3B5KHRjcC0+dV9hcmcgKyAxLCAmc2Muc2NfbWFzaywgc2l6ZW9mKHNjLnNjX21hc2spKTsKLQl9Ci0JZWxzZSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0KLQkJbWVtY3B5KCZzaWdtLCB0Y3AtPnVfYXJnICsgMSwgc2l6ZW9mIChzaWdtKSk7Ci0JCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKLQkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOwotCX0KLQlyZXR1cm4gMDsKLSNlbHNlIC8qICFJQTY0ICovCi0jaWZkZWYgUE9XRVJQQwotCWxvbmcgZXNwOwotCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMSwgJmVzcCkgPCAwKQotCQkJcmV0dXJuIDA7Ci0JCWlmICh1bW92ZSh0Y3AsIGVzcCwgJnNjKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJdGNwLT51X2FyZ1swXSA9IDE7Ci0JCXRjcC0+dV9hcmdbMV0gPSBzYy5vbGRtYXNrOwotCX0KLQllbHNlIHsKLQkJc2lnc2V0X3Qgc2lnbTsKLQkJbG9uZ190b19zaWdzZXQodGNwLT51X2FyZ1sxXSwgJnNpZ20pOwotCQl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7Ci0JCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCi0JCQlyZXR1cm4gMDsKLQkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrIG5vdyAiLCAmc2lnbSwgMCk7Ci0JCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKLQl9Ci0JcmV0dXJuIDA7Ci0jZWxzZSAvKiAhUE9XRVJQQyAqLwotI2lmZGVmIE02OEsKLQlsb25nIHVzcDsKLQlzdHJ1Y3Qgc2lnY29udGV4dCBzYzsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpZiAodXBlZWsodGNwLT5waWQsIDQqUFRfVVNQLCAmdXNwKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJaWYgKHVtb3ZlKHRjcCwgdXNwLCAmc2MpIDwgMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPnVfYXJnWzBdID0gMTsKLQkJdGNwLT51X2FyZ1sxXSA9IHNjLnNjX21hc2s7Ci0JfQotCWVsc2UgewotCQlzaWdzZXRfdCBzaWdtOwotCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzFdLCAmc2lnbSk7Ci0JCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKLQkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOwotCX0KLQlyZXR1cm4gMDsKLSNlbHNlIC8qICFNNjhLICovCi0jaWZkZWYgQUxQSEEKLQlsb25nIGZwOwotCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19GUCwgJmZwKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJaWYgKHVtb3ZlKHRjcCwgZnAsICZzYykgPCAwKQotCQkJcmV0dXJuIDA7Ci0JCXRjcC0+dV9hcmdbMF0gPSAxOwotCQl0Y3AtPnVfYXJnWzFdID0gc2Muc2NfbWFzazsKLQl9Ci0JZWxzZSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKLQkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOwotCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQotCQkJcmV0dXJuIDA7Ci0JCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOwotCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotI2Vsc2UKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQlsb25nIGkxOwotCXN0cnVjdCByZWdzIHJlZ3M7Ci0JbV9zaWdpbmZvX3Qgc2k7Ci0KLQlpZihwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApIHsKLQkJcGVycm9yKCJzaWdyZXR1cm46IFBUUkFDRV9HRVRSRUdTICIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYoZW50ZXJpbmcodGNwKSkgewotCQl0Y3AtPnVfYXJnWzBdID0gMDsKLQkJaTEgPSByZWdzLnJfbzE7Ci0JCWlmKHVtb3ZlKHRjcCwgaTEsICZzaSkgPCAwKSB7Ci0JCQlwZXJyb3IoInNpZ3JldHVybjogdW1vdmUgIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQl0Y3AtPnVfYXJnWzBdID0gMTsKLQkJdGNwLT51X2FyZ1sxXSA9IHNpLnNpX21hc2s7Ci0JfSBlbHNlIHsKLQkJc2lnc2V0X3Qgc2lnbTsKLQkJbG9uZ190b19zaWdzZXQodGNwLT51X2FyZ1sxXSwgJnNpZ20pOwotCQl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7Ci0JCWlmKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKLQkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOwotCX0KLQlyZXR1cm4gMDsKLSNlbHNlCi0jaWZkZWYgTUlQUwotCWxvbmcgc3A7Ci0Jc3RydWN0IHNpZ2NvbnRleHQgc2M7Ci0KLQlpZihlbnRlcmluZyh0Y3ApKSB7Ci0JICAJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1NQLCAmc3ApIDwgMCkKLQkJICAJcmV0dXJuIDA7Ci0JCWlmICh1bW92ZSh0Y3AsIHNwLCAmc2MpIDwgMCkKLQkJICAJcmV0dXJuIDA7Ci0JCXRjcC0+dV9hcmdbMF0gPSAxOwotCQl0Y3AtPnVfYXJnWzFdID0gc2Muc2Nfc2lnc2V0OwotCX0gZWxzZSB7Ci0JICAJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOwotCQlpZih0Y3AtPnVfYXJnWzBdID09IDApCi0JCSAgCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsIHRjcC0+dV9hcmdbMV0pOwotCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7Ci0JfQotCXJldHVybiAwOwotI2Vsc2UKLSN3YXJuaW5nIE5vIHN5c19zaWdyZXR1cm4oKSBmb3IgdGhpcyBhcmNoaXRlY3R1cmUKLSN3YXJuaW5nICAgICAgICAgKG5vIHByb2JsZW0sIGp1c3QgYSByZW1pbmRlciA6LSkKLQlyZXR1cm4gMDsKLSNlbmRpZiAvKiBNSVBTICovCi0jZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLwotI2VuZGlmIC8qIEFMUEhBICovCi0jZW5kaWYgLyogIU02OEsgKi8KLSNlbmRpZiAvKiAhUE9XRVJQQyAqLwotI2VuZGlmIC8qICFJQTY0ICovCi0jZW5kaWYgLyogIUkzODYgKi8KLSNlbmRpZiAvKiBTMzkwICovCi19Ci0KLWludAotc3lzX3NpZ2dldG1hc2sodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJc2lnc2V0X3Qgc2lnbTsKLQkJbG9uZ190b19zaWdzZXQodGNwLT51X3J2YWwsICZzaWdtKTsKLQkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrICIsICZzaWdtLCAwKTsKLQl9Ci0JcmV0dXJuIFJWQUxfSEVYIHwgUlZBTF9TVFI7Ci19Ci0KLWludAotc3lzX3NpZ3N1c3BlbmQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMl0sICZzaWdtKTsKLSNpZiAwCi0JCS8qIGZpcnN0IHR3byBhcmUgbm90IHJlYWxseSBhcmd1bWVudHMsIGJ1dCBwcmludCB0aGVtIGFueXdheSAqLwotCQkvKiBuZXZlcm1pbmQsIHRoZXkgYXJlIGFuIGFuYWNocm9uaXNtIG5vdywgdG9vIGJhZC4uLiAqLwotCQl0cHJpbnRmKCIlZCwgJSN4LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLSNlbmRpZgotCQlwcmludHNpZ21hc2soJnNpZ20sIDApOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIExJTlVYICovCi0vLyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KLQotI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQotCi1pbnQKLXN5c19zaWdzdXNwZW5kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzaWdzZXRfdCBzaWdzZXQ7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmc2lnc2V0KSA8IDApCi0JCQl0cHJpbnRmKCJbP10iKTsKLQkJZWxzZQotCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDApOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNpZm5kZWYgRlJFRUJTRAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHVjb250ZXh0X2ZsYWdzW10gPSB7Ci0JeyBVQ19TSUdNQVNLLAkiVUNfU0lHTUFTSyIJfSwKLQl7IFVDX1NUQUNLLAkiVUNfU1RBQ0siCX0sCi0JeyBVQ19DUFUsCSJVQ19DUFUiCX0sCi0jaWZkZWYgVUNfRlBVCi0JeyBVQ19GUFUsCSJVQ19GUFUiCX0sCi0jZW5kaWYKLSNpZmRlZiBVQ19JTlRSCi0JeyBVQ19JTlRSLAkiVUNfSU5UUiIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotI2VuZGlmIC8qICFGUkVFQlNEICovCi0jZW5kaWYgLyogU1ZSNCB8fCBGUkVFQlNEICovCi0KLSNpZiBkZWZpbmVkIFNWUjQgfHwgZGVmaW5lZCBMSU5VWCB8fCBkZWZpbmVkIEZSRUVCU0QKLSNpZiBkZWZpbmVkIExJTlVYICYmICFkZWZpbmVkIFNTX09OU1RBQ0sKLSNkZWZpbmUgU1NfT05TVEFDSyAgICAgIDEKLSNkZWZpbmUgU1NfRElTQUJMRSAgICAgIDIKLSNpZiBfX0dMSUJDX01JTk9SX18gPT0gMAotdHlwZWRlZiBzdHJ1Y3QKLXsKLQlfX3B0cl90IHNzX3NwOwotCWludCBzc19mbGFnczsKLQlzaXplX3Qgc3Nfc2l6ZTsKLX0gc3RhY2tfdDsKLSNlbmRpZgotI2VuZGlmCi0jaWZkZWYgRlJFRUJTRAotI2RlZmluZSBzdGFja190IHN0cnVjdCBzaWdhbHRzdGFjawotI2VuZGlmCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdhbHRzdGFja19mbGFnc1tdID0gewotCXsgU1NfT05TVEFDSywJIlNTX09OU1RBQ0siCX0sCi0JeyBTU19ESVNBQkxFLAkiU1NfRElTQUJMRSIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLSNlbmRpZgotCi0jaWZkZWYgU1ZSNAotc3RhdGljIHZvaWQKLXByaW50Y29udGV4dCh0Y3AsIHVjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXVjb250ZXh0X3QgKnVjcDsKLXsKLQl0cHJpbnRmKCJ7Iik7Ci0JaWYgKCFhYmJyZXYodGNwKSkgewotCQl0cHJpbnRmKCJ1Y19mbGFncz0iKTsKLQkJcHJpbnRmbGFncyh1Y29udGV4dF9mbGFncywgdWNwLT51Y19mbGFncywgIlVDXz8/PyIpOwotCQl0cHJpbnRmKCIsIHVjX2xpbms9JSNseCwgIiwgKHVuc2lnbmVkIGxvbmcpIHVjcC0+dWNfbGluayk7Ci0JfQotCXRwcmludGYoInVjX3NpZ21hc2s9Iik7Ci0JcHJpbnRzaWdtYXNrKCZ1Y3AtPnVjX3NpZ21hc2ssIDApOwotCWlmICghYWJicmV2KHRjcCkpIHsKLQkJdHByaW50ZigiLCB1Y19zdGFjaz17c3Nfc3A9JSNseCwgc3Nfc2l6ZT0lZCwgc3NfZmxhZ3M9IiwKLQkJCSh1bnNpZ25lZCBsb25nKSB1Y3AtPnVjX3N0YWNrLnNzX3NwLAotCQkJdWNwLT51Y19zdGFjay5zc19zaXplKTsKLQkJcHJpbnRmbGFncyhzaWdhbHRzdGFja19mbGFncywgdWNwLT51Y19zdGFjay5zc19mbGFncywgIlNTXz8/PyIpOwotCQl0cHJpbnRmKCJ9Iik7Ci0JfQotCXRwcmludGYoIiwgLi4ufSIpOwotfQotCi1pbnQKLXN5c19nZXRjb250ZXh0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQl1Y29udGV4dF90IHVjOwotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAodGNwLT51X2Vycm9yKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQllbHNlIGlmICghdGNwLT51X2FyZ1swXSkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmdWMpIDwgMCkKLQkJCXRwcmludGYoInsuLi59Iik7Ci0JCWVsc2UKLQkJCXByaW50Y29udGV4dCh0Y3AsICZ1Yyk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zZXRjb250ZXh0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQl1Y29udGV4dF90IHVjOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKCF0Y3AtPnVfYXJnWzBdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZ1YykgPCAwKQotCQkJdHByaW50Zigiey4uLn0iKTsKLQkJZWxzZQotCQkJcHJpbnRjb250ZXh0KHRjcCwgJnVjKTsKLQl9Ci0JZWxzZSB7Ci0JCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXJldHVybiAwOwotCQlyZXR1cm4gUlZBTF9OT05FOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIFNWUjQgKi8KLQotI2lmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQotc3RhdGljIGludAotcHJpbnRfc3RhY2tfdCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci11bnNpZ25lZCBsb25nIGFkZHI7Ci17Ci0Jc3RhY2tfdCBzczsKLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3MpIDwgMCkKLQkJcmV0dXJuIC0xOwotCXRwcmludGYoIntzc19zcD0lI2x4LCBzc19mbGFncz0iLCAodW5zaWduZWQgbG9uZykgc3Muc3Nfc3ApOwotCXByaW50ZmxhZ3Moc2lnYWx0c3RhY2tfZmxhZ3MsIHNzLnNzX2ZsYWdzLCAiU1NfPz8/Iik7Ci0JdHByaW50ZigiLCBzc19zaXplPSVsdX0iLCAodW5zaWduZWQgbG9uZykgc3Muc3Nfc2l6ZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3NpZ2FsdHN0YWNrKHRjcCkKLQlzdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAocHJpbnRfc3RhY2tfdCh0Y3AsIHRjcC0+dV9hcmdbMF0pIDwgMCkKLQkJCXJldHVybiAtMTsKLQl9Ci0JZWxzZSB7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWlmICh0Y3AtPnVfYXJnWzFdID09IDApCi0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCWVsc2UgaWYgKHByaW50X3N0YWNrX3QodGNwLCB0Y3AtPnVfYXJnWzFdKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZmRlZiBIQVZFX1NJR0FDVElPTgotCi1pbnQKLXN5c19zaWdwcm9jbWFzayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0jaWZkZWYgQUxQSEEKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoc2lncHJvY21hc2tjbWRzLCB0Y3AtPnVfYXJnWzBdLCAiU0lHXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHNpZ21hc2sodGNwLT51X2FyZ1sxXSwgMCk7Ci0JfQotCWVsc2UgaWYgKCFzeXNlcnJvcih0Y3ApKSB7Ci0JCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygib2xkIG1hc2sgIiwgdGNwLT51X3J2YWwsIDApOwotCQlyZXR1cm4gUlZBTF9IRVggfCBSVkFMX1NUUjsKLQl9Ci0jZWxzZSAvKiAhQUxQSEEgKi8KLQlzaWdzZXRfdCBzaWdzZXQ7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotI2lmZGVmIFNWUjQKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKLQkJCXRwcmludGYoIjAiKTsKLQkJZWxzZQotI2VuZGlmIC8qIFNWUjQgKi8KLQkJcHJpbnR4dmFsKHNpZ3Byb2NtYXNrY21kcywgdGNwLT51X2FyZ1swXSwgIlNJR18/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKCF0Y3AtPnVfYXJnWzFdKQotCQkJdHByaW50ZigiTlVMTCwgIik7Ci0JCWVsc2UgaWYgKGNvcHlfc2lnc2V0KHRjcCwgdGNwLT51X2FyZ1sxXSwgJnNpZ3NldCkgPCAwKQotCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgewotCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDApOwotCQkJdHByaW50ZigiLCAiKTsKLQkJfQotCX0KLQllbHNlIHsKLQkJaWYgKCF0Y3AtPnVfYXJnWzJdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlIGlmIChjb3B5X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMl0sICZzaWdzZXQpIDwgMCkKLQkJCXRwcmludGYoIls/XSIpOwotCQllbHNlCi0JCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMCk7Ci0JfQotI2VuZGlmIC8qICFBTFBIQSAqLwotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogSEFWRV9TSUdBQ1RJT04gKi8KLQotaW50Ci1zeXNfa2lsbCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlcyIsIHRjcC0+dV9hcmdbMF0sIHNpZ25hbWUodGNwLT51X2FyZ1sxXSkpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfa2lsbHBnKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gc3lzX2tpbGwodGNwKTsKLX0KLQotI2lmZGVmIExJTlVYCi1pbnQKLXN5c190Z2tpbGwodGNwKQotCXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCwgJXMiLAotCQkJdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSwgc2lnbmFtZSh0Y3AtPnVfYXJnWzJdKSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLWludAotc3lzX3NpZ3BlbmRpbmcodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXNpZ3NldF90IHNpZ3NldDsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UgaWYgKGNvcHlfc2lnc2V0KHRjcCwgdGNwLT51X2FyZ1swXSwgJnNpZ3NldCkgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UKLQkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAwKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfc2lnd2FpdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc2lnc2V0X3Qgc2lnc2V0OwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKGNvcHlfc2lnc2V0KHRjcCwgdGNwLT51X2FyZ1swXSwgJnNpZ3NldCkgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UKLQkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAwKTsKLQl9Ci0JZWxzZSB7Ci0JCWlmICghc3lzZXJyb3IodGNwKSkgewotCQkJdGNwLT5hdXhzdHIgPSBzaWduYWxlbnRbdGNwLT51X3J2YWxdOwotCQkJcmV0dXJuIFJWQUxfREVDSU1BTCB8IFJWQUxfU1RSOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgTElOVVgKLQotCWludAotc3lzX3J0X3NpZ3Byb2NtYXNrKHRjcCkKLQlzdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc2lnc2V0X3Qgc2lnc2V0OwotCi0JLyogTm90ZTogYXJnWzNdIGlzIHRoZSBsZW5ndGggb2YgdGhlIHNpZ3NldC4gKi8KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoc2lncHJvY21hc2tjbWRzLCB0Y3AtPnVfYXJnWzBdLCAiU0lHXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoIXRjcC0+dV9hcmdbMV0pCi0JCQl0cHJpbnRmKCJOVUxMLCAiKTsKLQkJZWxzZSBpZiAoY29weV9zaWdzZXRfbGVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnNpZ3NldCwgdGNwLT51X2FyZ1szXSkgPCAwKQotCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgewotCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDEpOwotCQkJdHByaW50ZigiLCAiKTsKLQkJfQotCX0KLQllbHNlIHsKLQkJaWYgKCF0Y3AtPnVfYXJnWzJdKQotCi0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCWVsc2UgaWYgKGNvcHlfc2lnc2V0X2xlbih0Y3AsIHRjcC0+dV9hcmdbMl0sICZzaWdzZXQsIHRjcC0+dV9hcmdbM10pIDwgMCkKLQkJCXRwcmludGYoIls/XSIpOwotCQllbHNlCi0JCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1szXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0KLS8qIFN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBhY3Rpb24gdG8gYmUgdGFrZW4gd2hlbiBhIHNpZ25hbCBhcnJpdmVzLiAgKi8KLXN0cnVjdCBuZXdfc2lnYWN0aW9uCi17Ci0JdW5pb24KLQl7Ci0JCV9fc2lnaGFuZGxlcl90IF9fc2FfaGFuZGxlcjsKLQkJdm9pZCAoKl9fc2Ffc2lnYWN0aW9uKSAoaW50LCBzaWdpbmZvX3QgKiwgdm9pZCAqKTsKLQl9Ci0JX19zaWdhY3Rpb25faGFuZGxlcjsKLQl1bnNpZ25lZCBsb25nIHNhX2ZsYWdzOwotCXZvaWQgKCpzYV9yZXN0b3JlcikgKHZvaWQpOwotCXVuc2lnbmVkIGxvbmcgaW50IHNhX21hc2tbMl07Ci19OwotCi0KLQlpbnQKLXN5c19ydF9zaWdhY3Rpb24odGNwKQotCXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgbmV3X3NpZ2FjdGlvbiBzYTsKLQlzaWdzZXRfdCBzaWdzZXQ7Ci0JbG9uZyBhZGRyOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwotCX0gZWxzZQotCQlhZGRyID0gdGNwLT51X2FyZ1syXTsKLQlpZiAoYWRkciA9PSAwKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnNhKSA8IDApCi0JCXRwcmludGYoInsuLi59Iik7Ci0JZWxzZSB7Ci0JCXN3aXRjaCAoKGxvbmcpIHNhLl9fc2lnYWN0aW9uX2hhbmRsZXIuX19zYV9oYW5kbGVyKSB7Ci0JCQljYXNlIChsb25nKSBTSUdfRVJSOgotCQkJCXRwcmludGYoIntTSUdfRVJSfSIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSAobG9uZykgU0lHX0RGTDoKLQkJCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgKGxvbmcpIFNJR19JR046Ci0JCQkJdHByaW50Zigie1NJR19JR059Iik7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJCXRwcmludGYoInslI2x4LCAiLAotCQkJCQkJKGxvbmcpIHNhLl9fc2lnYWN0aW9uX2hhbmRsZXIuX19zYV9oYW5kbGVyKTsKLQkJCQlzaWdlbXB0eXNldCgmc2lnc2V0KTsKLSNpZmRlZiBMSU5VWFNQQVJDCi0JCQkJaWYgKHRjcC0+dV9hcmdbNF0gPD0gc2l6ZW9mKHNpZ3NldCkpCi0JCQkJCW1lbWNweSgmc2lnc2V0LCAmc2Euc2FfbWFzaywgdGNwLT51X2FyZ1s0XSk7Ci0jZWxzZQotCQkJCWlmICh0Y3AtPnVfYXJnWzNdIDw9IHNpemVvZihzaWdzZXQpKQotCQkJCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHRjcC0+dV9hcmdbM10pOwotI2VuZGlmCi0JCQkJZWxzZQotCQkJCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHNpemVvZihzaWdzZXQpKTsKLQkJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7Ci0JCQkJdHByaW50ZigiLCAiKTsKLQkJCQlwcmludGZsYWdzKHNpZ2FjdF9mbGFncywgc2Euc2FfZmxhZ3MsICJTQV8/Pz8iKTsKLSNpZmRlZiBTQV9SRVNUT1JFUgotCQkJCWlmIChzYS5zYV9mbGFncyAmIFNBX1JFU1RPUkVSKQotCQkJCQl0cHJpbnRmKCIsICVwIiwgc2Euc2FfcmVzdG9yZXIpOwotI2VuZGlmCi0JCQkJdHByaW50ZigifSIpOwotCQl9Ci0JfQotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIsICIpOwotCWVsc2UKLSNpZmRlZiBMSU5VWFNQQVJDCi0JCXRwcmludGYoIiwgJSNseCwgJWx1IiwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSk7Ci0jZWxpZiBkZWZpbmVkKEFMUEhBKQotCQl0cHJpbnRmKCIsICVsdSwgJSNseCIsIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOwotI2Vsc2UKLQkJdHByaW50ZigiLCAlbHUiLCBhZGRyID0gdGNwLT51X2FyZ1szXSk7Ci0jZW5kaWYKLQlyZXR1cm4gMDsKLX0KLQotCWludAotc3lzX3J0X3NpZ3BlbmRpbmcodGNwKQotCXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzaWdzZXRfdCBzaWdzZXQ7Ci0KLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQllbHNlIGlmIChjb3B5X3NpZ3NldF9sZW4odGNwLCB0Y3AtPnVfYXJnWzBdLAotCQkJCQkgJnNpZ3NldCwgdGNwLT51X2FyZ1sxXSkgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UKLQkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAxKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0JaW50Ci1zeXNfcnRfc2lnc3VzcGVuZCh0Y3ApCi0Jc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXNpZ3NldF90IHNpZ207Ci0JCWlmIChjb3B5X3NpZ3NldF9sZW4odGNwLCB0Y3AtPnVfYXJnWzBdLCAmc2lnbSwgdGNwLT51X2FyZ1sxXSkgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UKLQkJCXByaW50c2lnbWFzaygmc2lnbSwgMSk7Ci0JfQotCXJldHVybiAwOwotfQotCWludAotc3lzX3J0X3NpZ3F1ZXVlaW5mbyh0Y3ApCi0Jc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXNpZ2luZm9fdCBzaTsKLQkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZzaSkgPCAwKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQlwcmludHNpZ2luZm8oJnNpLCB2ZXJib3NlICh0Y3ApKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBzeXNfcnRfc2lndGltZWR3YWl0KHRjcCkKLQlzdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJc2lnc2V0X3Qgc2lnc2V0OwotCi0JCWlmIChjb3B5X3NpZ3NldF9sZW4odGNwLCB0Y3AtPnVfYXJnWzBdLAotCQkJCSAgICAmc2lnc2V0LCB0Y3AtPnVfYXJnWzNdKSA8IDApCi0JCQl0cHJpbnRmKCJbP10iKTsKLQkJZWxzZQotCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDEpOwotCQl0cHJpbnRmKCIsICIpOwotCX0KLQllbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UgewotCQkJc2lnaW5mb190IHNpOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnNpKSA8IDApCi0JCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQkJZWxzZQotCQkJCXByaW50c2lnaW5mbygmc2ksIHZlcmJvc2UgKHRjcCkpOwotCQkJLyogWFhYIEZvciBub3cgKi8KLQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQkJdHByaW50ZigiLCAlZCIsIChpbnQpIHRjcC0+dV9hcmdbM10pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfTsKLQotI2VuZGlmIC8qIExJTlVYICovCmRpZmYgLS1naXQgYS9zaWduYWxlbnQuc2ggYi9zaWduYWxlbnQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxYzBhMWYuLjAwMDAwMDAKLS0tIGEvc2lnbmFsZW50LnNoCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotIyEvYmluL3NoCi0jIENvcHlyaWdodCAoYykgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0jIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSMgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotIyBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSMgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLSMJJElkOiBzaWduYWxlbnQuc2gsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjI6Mjggd2ljaGVydCBFeHAgJAotCi1jYXQgJCogfAotCXNlZCAtbiAtZSAncy9cL1wqLipcKlwvLyAvJyAtZSAncy9eI1sgCV0qZGVmaW5lWyAJXVsgCV0qU0lHXChbXl8gCV0qXClbIAldWyAJXSpcKFswLTldWzAtOV0qXClbIAldKiQvXDEgXDIvcCcgfAotCXNvcnQgKzFuIHwKLQlhd2sgJwotCUJFR0lOIHsKLQkJdGFicyA9ICJcdFx0XHRcdFx0XHRcdFx0IgotCQlzaWduYWwgPSAtMTsKLQl9Ci0JJDIgPD0gMjU2IHsKLQkJaWYgKHNpZ25hbCA9PSAkMikKLQkJCW5leHQKLQkJd2hpbGUgKCsrc2lnbmFsIDwgJDIpIHsKLQkJCW4gPSAiXCJTSUdfIiBzaWduYWwgIlwiIgotCQkJcyA9ICJcdCIgbiAiLCIKLQkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAxKS84KSkKLQkJCXMgPSBzICIvKiAiIHNpZ25hbCAiICovIgotCQkJcHJpbnQgcwotCQl9Ci0JCWlmIChzaWduYWwgPT0gJDIpCi0JCQluID0gIlwiU0lHIiAkMSAiXCIiCi0JCW4gPSAiXCJTSUciICQxICJcIiIKLQkJcyA9ICJcdCIgbiAiLCIKLQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDE2LzggLSBpbnQoKGxlbmd0aChuKSArIDEpLzgpKQotCQlzID0gcyAiLyogIiBzaWduYWwgIiAqLyIKLQkJcHJpbnQgcwotCX0KLQknCmRpZmYgLS1naXQgYS9zb2NrLmMgYi9zb2NrLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMmNjZmUuLjAwMDAwMDAKLS0tIGEvc29jay5jCisrKyAvZGV2L251bGwKQEAgLTEsMjUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHNvY2suYyx2IDEuMTEgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotCi0jaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPgotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tpby5oPgotI2VuZGlmCi0jaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0KLSNpZiBkZWZpbmVkIChBTFBIQSkgfHwgZGVmaW5lZChTSCkgfHwgZGVmaW5lZChTSDY0KQotI2lmZGVmIEhBVkVfU1lTX0lPQ1RMX0gKLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNlbGlmIGRlZmluZWQoSEFWRV9JT0NUTFNfSCkKLSNpbmNsdWRlIDxpb2N0bHMuaD4KLSNlbmRpZgotI2VuZGlmCi0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBhZGRyZmFtc1tdOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaWZmZmxhZ3NbXSA9IHsKLQl7IElGRl9VUCwJCSJJRkZfVVAiCQl9LAotCXsgSUZGX0JST0FEQ0FTVCwJIklGRl9CUk9BRENBU1QiCQl9LAotCXsgSUZGX0RFQlVHLAkJIklGRl9ERUJVRyIJCX0sCi0JeyBJRkZfTE9PUEJBQ0ssCQkiSUZGX0xPT1BCQUNLIgkJfSwKLQl7IElGRl9QT0lOVE9QT0lOVCwJIklGRl9QT0lOVE9QT0lOVCIJfSwKLQl7IElGRl9OT1RSQUlMRVJTLAkiSUZGX05PVFJBSUxFUlMiCX0sCi0JeyBJRkZfUlVOTklORywJCSJJRkZfUlVOTklORyIJCX0sCi0JeyBJRkZfTk9BUlAsCQkiSUZGX05PQVJQIgkJfSwKLQl7IElGRl9QUk9NSVNDLAkJIklGRl9QUk9NSVNDIgkJfSwKLQl7IElGRl9BTExNVUxUSSwJCSJJRkZfQUxMTVVMVEkiCQl9LAotCXsgSUZGX01BU1RFUiwJCSJJRkZfTUFTVEVSIgkJfSwKLQl7IElGRl9TTEFWRSwJCSJJRkZfU0xBVkUiCQl9LAotCXsgSUZGX01VTFRJQ0FTVCwJIklGRl9NVUxUSUNBU1QiCQl9LAotCXsgSUZGX1BPUlRTRUwsCQkiSUZGX1BPUlRTRUwiCQl9LAotCXsgSUZGX0FVVE9NRURJQSwJIklGRl9BVVRPTUVESUEiCQl9LAotCXsgMCwJCQlOVUxMCQkJfQotfTsKLQotCi1zdGF0aWMgdm9pZAotcHJpbnRfYWRkcih0Y3AsIGFkZHIsIGlmcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXN0cnVjdCBpZnJlcSAqaWZyOwotewotCWlmIChpZnItPmlmcl9hZGRyLnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Ci0JCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2lucDsKLQkJc2lucCA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgJmlmci0+aWZyX2FkZHI7Ci0JCXRwcmludGYoImluZXRfYWRkcihcIiVzXCIpIiwgaW5ldF9udG9hKHNpbnAtPnNpbl9hZGRyKSk7Ci0JfSBlbHNlCi0JCXByaW50c3RyKHRjcCwgYWRkciwgc2l6ZW9mKGlmci0+aWZyX2FkZHIuc2FfZGF0YSkpOwotfQotCi1pbnQKLXNvY2tfaW9jdGwodGNwLCBjb2RlLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGNvZGUsIGFyZzsKLXsKLQlzdHJ1Y3QgaWZyZXEgaWZyOwotCXN0cnVjdCBpZmNvbmYgaWZjOwotCWNvbnN0IGNoYXIgKnN0ciA9IE5VTEw7Ci0JdW5zaWduZWQgY2hhciAqYnl0ZXM7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpZiAoY29kZSA9PSBTSU9DR0lGQ09ORikgewotCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmaWZjKTsKLQkJCWlmIChpZmMuaWZjX2J1ZiA9PSBOVUxMKQotCQkJCXRwcmludGYoIiwgeyVkIC0+ICIsIGlmYy5pZmNfbGVuKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIsIHsiKTsKLQkJfQotCQlyZXR1cm4gMDsKLQl9Ci0KLQlzd2l0Y2ggKGNvZGUpIHsKLSNpZmRlZiBTSU9DU0hJV0FUCi0JY2FzZSBTSU9DU0hJV0FUOgotI2VuZGlmCi0jaWZkZWYgU0lPQ0dISVdBVAotCWNhc2UgU0lPQ0dISVdBVDoKLSNlbmRpZgotI2lmZGVmIFNJT0NTTE9XQVQKLQljYXNlIFNJT0NTTE9XQVQ6Ci0jZW5kaWYKLSNpZmRlZiBTSU9DR0xPV0FUCi0JY2FzZSBTSU9DR0xPV0FUOgotI2VuZGlmCi0jaWZkZWYgRklPU0VUT1dOCi0JY2FzZSBGSU9TRVRPV046Ci0jZW5kaWYKLSNpZmRlZiBGSU9HRVRPV04KLQljYXNlIEZJT0dFVE9XTjoKLSNlbmRpZgotI2lmZGVmIFNJT0NTUEdSUAotCWNhc2UgU0lPQ1NQR1JQOgotI2VuZGlmCi0jaWZkZWYgU0lPQ0dQR1JQCi0JY2FzZSBTSU9DR1BHUlA6Ci0jZW5kaWYKLSNpZmRlZiBTSU9DQVRNQVJLCi0JY2FzZSBTSU9DQVRNQVJLOgotI2VuZGlmCi0JCXByaW50bnVtKHRjcCwgYXJnLCAiLCAlI2QiKTsKLQkJcmV0dXJuIDE7Ci0jaWZkZWYgTElOVVgKLQljYXNlIFNJT0NHSUZOQU1FOgotCWNhc2UgU0lPQ0dJRklOREVYOgotCWNhc2UgU0lPQ0dJRkFERFI6Ci0JY2FzZSBTSU9DR0lGRFNUQUREUjoKLQljYXNlIFNJT0NHSUZCUkRBRERSOgotCWNhc2UgU0lPQ0dJRk5FVE1BU0s6Ci0JY2FzZSBTSU9DR0lGRkxBR1M6Ci0JY2FzZSBTSU9DR0lGTUVUUklDOgotCWNhc2UgU0lPQ0dJRk1UVToKLQljYXNlIFNJT0NHSUZTTEFWRToKLQljYXNlIFNJT0NHSUZIV0FERFI6Ci0JCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJmlmcik7Ci0gICAgICAgICAgICAgICAgaWYgKHN5c2Vycm9yKHRjcCkpIHsKLQkJCWlmIChjb2RlID09IFNJT0NHSUZOQU1FKQotCQkJCXRwcmludGYoIiwge2lmcl9pbmRleD0lZCwgaWZyX25hbWU9Pz8/fSIsIGlmci5pZnJfaWZpbmRleCk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiLCB7aWZyX25hbWU9XCIlc1wiLCA/Pz99IiwgaWZyLmlmcl9uYW1lKTsKLQkJfSBlbHNlIGlmIChjb2RlID09IFNJT0NHSUZOQU1FKQotCQkJdHByaW50ZigiLCB7aWZyX2luZGV4PSVkLCBpZnJfbmFtZT1cIiVzXCJ9IiwKLQkJCQlpZnIuaWZyX2lmaW5kZXgsIGlmci5pZnJfbmFtZSk7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiLCB7aWZyX25hbWU9XCIlc1wiLCAiLCBpZnIuaWZyX25hbWUpOwotCQkJc3dpdGNoIChjb2RlKSB7Ci0JCQljYXNlIFNJT0NHSUZJTkRFWDoKLQkJCQl0cHJpbnRmKCJpZnJfaW5kZXg9JWQiLCBpZnIuaWZyX2lmaW5kZXgpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBTSU9DR0lGQUREUjoKLQkJCQlzdHIgPSAiaWZyX2FkZHIiOwotCQkJY2FzZSBTSU9DR0lGRFNUQUREUjoKLQkJCQlpZiAoc3RyID09IE5VTEwpCi0JCQkJCXN0ciA9ICJpZnJfZHN0YWRkciI7Ci0JCQljYXNlIFNJT0NHSUZCUkRBRERSOgotCQkJCWlmIChzdHIgPT0gTlVMTCkKLQkJCQkJc3RyID0gImlmcl9icm9hZGFkZHIiOwotCQkJY2FzZSBTSU9DR0lGTkVUTUFTSzoKLQkJCQlpZiAoc3RyID09IE5VTEwpCi0JCQkJCXN0ciA9ICJpZnJfbmV0bWFzayI7Ci0JCQkJdHByaW50ZigiJXM9eyIsIHN0cik7Ci0JCQkJcHJpbnR4dmFsKGFkZHJmYW1zLAotCQkJCQkgIGlmci5pZnJfYWRkci5zYV9mYW1pbHksCi0gICAgICAgICAgICAgICAgICAgIAkJCSAgIkFGXz8/PyIpOwotCQkJCXRwcmludGYoIiwgIik7Ci0JCQkJcHJpbnRfYWRkcih0Y3AsICgobG9uZykgdGNwLT51X2FyZ1syXQotCQkJCQkJICsgb2Zmc2V0b2YgKHN0cnVjdCBpZnJlcSwKLQkJCQkJCQkgICAgIGlmcl9hZGRyLnNhX2RhdGEpKSwKLQkJCQkJICAgJmlmcik7Ci0JCQkJdHByaW50ZigifSIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBTSU9DR0lGSFdBRERSOgotCQkJCS8qIFhYWCBBcmUgdGhlcmUgb3RoZXIgaGFyZHdhcmUgYWRkcmVzc2VzCi0JCQkJICAgdGhhbiA2LWJ5dGUgTUFDcz8gICovCi0JCQkJYnl0ZXMgPSAodW5zaWduZWQgY2hhciAqKSAmaWZyLmlmcl9od2FkZHIuc2FfZGF0YTsKLQkJCQl0cHJpbnRmKCJpZnJfaHdhZGRyPSUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IiwKLQkJCQkJYnl0ZXNbMF0sIGJ5dGVzWzFdLCBieXRlc1syXSwKLQkJCQkJYnl0ZXNbM10sIGJ5dGVzWzRdLCBieXRlc1s1XSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFNJT0NHSUZGTEFHUzoKLQkJCQl0cHJpbnRmKCJpZnJfZmxhZ3M9Iik7Ci0JCQkJcHJpbnRmbGFncyhpZmZmbGFncywgaWZyLmlmcl9mbGFncywgIklGRl8/Pz8iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgU0lPQ0dJRk1FVFJJQzoKLQkJCQl0cHJpbnRmKCJpZnJfbWV0cmljPSVkIiwgaWZyLmlmcl9tZXRyaWMpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBTSU9DR0lGTVRVOgotCQkJCXRwcmludGYoImlmcl9tdHU9JWQiLCBpZnIuaWZyX210dSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFNJT0NHSUZTTEFWRToKLQkJCQl0cHJpbnRmKCJpZnJfc2xhdmU9XCIlc1wiIiwgaWZyLmlmcl9zbGF2ZSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQl0cHJpbnRmKCJ9Iik7Ci0JCX0KLQkJcmV0dXJuIDE7Ci0JY2FzZSBTSU9DR0lGQ09ORjoKLQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmaWZjKTsKLQkJdHByaW50ZigiJWQsICIsIGlmYy5pZmNfbGVuKTsKLSAgICAgICAgICAgICAgICBpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJWx4IiwgKHVuc2lnbmVkIGxvbmcpIGlmYy5pZmNfYnVmKTsKLQkJfSBlbHNlIGlmIChpZmMuaWZjX2J1ZiA9PSBOVUxMKSB7Ci0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCX0gZWxzZSB7Ci0JCQlpbnQgaTsKLQkJCXVuc2lnbmVkIG5pZnJhID0gaWZjLmlmY19sZW4gLyBzaXplb2Yoc3RydWN0IGlmcmVxKTsKLQkJCXN0cnVjdCBpZnJlcSBpZnJhW25pZnJhXTsKLQkJCXVtb3Zlbih0Y3AsICh1bnNpZ25lZCBsb25nKSBpZmMuaWZjX2J1Ziwgc2l6ZW9mKGlmcmEpLAotCQkJICAgICAgIChjaGFyICopIGlmcmEpOwotCQkJdHByaW50ZigieyIpOwotCQkJZm9yIChpID0gMDsgaSA8IG5pZnJhOyArK2kgKSB7Ci0JCQkJaWYgKGkgPiAwKQotCQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXRwcmludGYoIntcIiVzXCIsIHsiLAotCQkJCQlpZnJhW2ldLmlmcl9uYW1lKTsKLQkJCQlpZiAodmVyYm9zZSh0Y3ApKSB7Ci0JCQkJCXByaW50eHZhbChhZGRyZmFtcywKLQkJCQkJCSAgaWZyYVtpXS5pZnJfYWRkci5zYV9mYW1pbHksCi0JCQkJCQkgICJBRl8/Pz8iKTsKLQkJCQkJdHByaW50ZigiLCAiKTsKLQkJCQkJcHJpbnRfYWRkcih0Y3AsICgobG9uZykgdGNwLT51X2FyZ1syXQotCQkJCQkJCSArIG9mZnNldG9mIChzdHJ1Y3QgaWZyZXEsCi0JCQkJCQkJCSAgICAgaWZyX2FkZHIuc2FfZGF0YSkKLQkJCQkJCQkgKyAoKGNoYXIgKikgJmlmcmFbaV0KLQkJCQkJCQkgICAgLSAoY2hhciAqKSAmaWZyYVswXSkpLAotCQkJCQkJICAgJmlmcmFbaV0pOwotCQkJCX0gZWxzZQotCQkJCQl0cHJpbnRmKCIuLi4iKTsKLQkJCQl0cHJpbnRmKCJ9fSIpOwotCQkJfQotCQkJdHByaW50ZigifSIpOwotCQl9Ci0JCXRwcmludGYoIn0iKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYKLQlkZWZhdWx0OgotCQlyZXR1cm4gMDsKLQl9Ci19CmRpZmYgLS1naXQgYS9zdHJhY2UtZ3JhcGggYi9zdHJhY2UtZ3JhcGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDhmOTI0N2YuLjAwMDAwMDAKLS0tIGEvc3RyYWNlLWdyYXBoCisrKyAvZGV2L251bGwKQEAgLTEsMzM5ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybAotCi0jIFRoaXMgc2NyaXB0IHByb2Nlc3NlcyBzdHJhY2UgLWYgb3V0cHV0LiAgSXQgZGlzcGxheXMgYSBncmFwaCBvZiBpbnZva2VkCi0jIHN1YnByb2Nlc3NlcywgYW5kIGlzIHVzZWZ1bCBmb3IgZmluZGluZyBvdXQgd2hhdCBjb21wbGV4IGNvbW1hbmRzIGRvLgotCi0jIFlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gaW52b2tlIHN0cmFjZSB3aXRoIC1xIGFzIHdlbGwsIGFuZCB3aXRoCi0jIC1zIDEwMCB0byBnZXQgY29tcGxldGUgZmlsZW5hbWVzLgotCi0jIFRoZSBzY3JpcHQgY2FuIGFsc28gaGFuZGxlIHRoZSBvdXRwdXQgd2l0aCBzdHJhY2UgLXQsIC10dCwgb3IgLXR0dC4KLSMgSXQgd2lsbCBhZGQgZWxhcHNlZCB0aW1lIGZvciBlYWNoIHByb2Nlc3MgaW4gdGhhdCBjYXNlLgotCi0jIFRoaXMgc2NyaXB0IGlzIENvcHlyaWdodCAoQykgMTk5OCBieSBSaWNoYXJkIEJyYWFrbWFuIDxkYXJrQHhzNGFsbC5ubD4uCi0KLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0jICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0jIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0jIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jCSRJZDogc3RyYWNlLWdyYXBoLHYgMS4yIDE5OTkvMDgvMzAgMjM6MjY6NTMgd2ljaGVydCBFeHAgJAotCi1teSAldW5maW5pc2hlZDsKLQotIyBTY2FsZXMgZm9yIHN0cmFjZSBzbG93ZG93bi4gIE1ha2UgY29uZmlndXJhYmxlIQotbXkgJHNjYWxlX2ZhY3RvciA9IDMuNTsKLQotd2hpbGUgKDw+KSB7Ci0gICAgbXkgKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpOwotICAgIGNob3A7Ci0KLSAgICBzL14oXGQrKVxzKy8vOwotICAgICRwaWQgPSAkMTsKLQotICAgIGlmIChzL14oXGRcZCk6KFxkXGQpOihcZFxkKSg/OlwuKFxkXGRcZFxkXGRcZCkpPyAvLykgewotCSR0aW1lID0gJDEgKiAzNjAwICsgJDIgKiA2MCArICQzOwotCWlmIChkZWZpbmVkICQ0KSB7Ci0JICAgICR0aW1lID0gJHRpbWUgKyAkNCAvIDEwMDAwMDA7Ci0JICAgICRmbG9hdGZvcm0gPSAxOwotCX0KLSAgICB9IGVsc2lmIChzL14oXGQrKVwuKFxkXGRcZFxkXGRcZCkgLy8pIHsKLQkkdGltZSA9ICQxICsgKCQyIC8gMTAwMDAwMCk7Ci0JJGZsb2F0Zm9ybSA9IDE7Ci0gICAgfQotCi0gICAgaWYgKHMvIDx1bmZpbmlzaGVkIC4uLj4kLy8pIHsKLQkkdW5maW5pc2hlZHskcGlkfSA9ICRfOwotCW5leHQ7Ci0gICAgfQotCi0gICAgaWYgKHMvXjwuLi4gXFMrIHJlc3VtZWQ+IC8vKSB7Ci0JdW5sZXNzIChleGlzdHMgJHVuZmluaXNoZWR7JHBpZH0pIHsKLQkgICAgcHJpbnQgU1RERVJSICIkMDogJEFSR1Y6IGNhbm5vdCBmaW5kIHN0YXJ0IG9mIHJlc3VtZWQgY2FsbCBvbiBsaW5lICQuIjsKLQkgICAgbmV4dDsKLQl9Ci0JJF8gPSAkdW5maW5pc2hlZHskcGlkfSAuICRfOwotCWRlbGV0ZSAkdW5maW5pc2hlZHskcGlkfTsKLSAgICB9Ci0KLSAgICBpZiAoL14tLS0gU0lHKFxTKykgXCguKlwpIC0tLSQvKSB7Ci0JIyAkcGlkIHJlY2VpdmVkIHNpZ25hbCAkMQotCSMgY3VycmVudGx5IHdlIGRvbid0IGRvIGFueXRoaW5nIHdpdGggdGhpcwotCW5leHQ7Ci0gICAgfQotCi0gICAgaWYgKC9eXCtcK1wrIGtpbGxlZCBieSBTSUcoXFMrKSBcK1wrXCskLykgewotCSMgJHBpZCByZWNlaXZlZCBzaWduYWwgJDEKLQloYW5kbGVfa2lsbGVkKCRwaWQsICR0aW1lKTsKLQluZXh0OwotICAgIH0KLQotICAgICgkY2FsbCwgJGFyZ3MsICRyZXN1bHQpID0gLyhcUyspXCgoLiopXClccys9ICguKikkLzsKLSAgICB1bmxlc3MgKGRlZmluZWQgJHJlc3VsdCkgewotCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogY2Fubm90IHBhcnNlIGxpbmUuXG4iOwotCW5leHQ7Ci0gICAgfQotCi0gICAgaGFuZGxlX3RyYWNlKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpOwotfQotCi1kaXNwbGF5X3RyYWNlKCk7Ci0KLWV4aXQgMDsKLQotc3ViIHBhcnNlX3N0ciB7Ci0gICAgbXkgKCRpbikgPSBAXzsKLSAgICBteSAkcmVzdWx0ID0gIiI7Ci0KLSAgICB3aGlsZSAoMSkgewotCWlmICgkaW4gPX4gcy9eXFwoLikvLykgewotCSAgICAkcmVzdWx0IC49ICQxOwotCX0gZWxzaWYgKCRpbiA9fiBzL15cIi8vKSB7Ci0JICAgIGlmICgkaW4gPX4gcy9eXC5cLlwuLy8pIHsKLQkJcmV0dXJuICgiJHJlc3VsdC4uLiIsICRpbik7Ci0JICAgIH0KLQkgICAgcmV0dXJuICgkcmVzdWx0LCAkaW4pOwotCX0gZWxzaWYgKCRpbiA9fiBzLyhbXlxcXCJdKikvLykgewotCSAgICAkcmVzdWx0IC49ICQxOwotCX0gZWxzZSB7Ci0JICAgIHJldHVybiAodW5kZWYsICRpbik7Ci0JfQotICAgIH0KLX0gICAgCi0KLXN1YiBwYXJzZV9vbmUgewotICAgIG15ICgkaW4pID0gQF87Ci0KLSAgICBpZiAoJGluID1+IHMvXlwiLy8pIHsKLQkoJHRtcCwgJGluKSA9IHBhcnNlX3N0cigkaW4pOwotCWlmIChub3QgZGVmaW5lZCAkdG1wKSB7Ci0JICAgIHByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogY2Fubm90IHBhcnNlIHN0cmluZy5cbiI7Ci0JICAgIHJldHVybiAodW5kZWYsICRpbik7Ci0JfQotCXJldHVybiAoJHRtcCwgJGluKTsKLSAgICB9IGVsc2lmICgkaW4gPX4gcy9eMHgoXHgrKS8vKSB7Ci0JcmV0dXJuIChoZXggJDEsICRpbik7Ci0gICAgfSBlbHNpZiAoJGluID1+IHMvXihcZCspLy8pIHsKLQlyZXR1cm4gKGludCAkMSwgJGluKTsKLSAgICB9IGVsc2UgewotCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogdW5yZWNvZ25pemVkIGVsZW1lbnQuXG4iOwotCXJldHVybiAodW5kZWYsICRpbik7Ci0gICAgfQotfQotCi1zdWIgcGFyc2VhcmdzIHsKLSAgICBteSAoJGluKSA9IEBfOwotICAgIG15IEBhcmdzID0gKCk7Ci0gICAgbXkgJHRtcDsKLQotICAgIHdoaWxlIChsZW5ndGggJGluKSB7Ci0JaWYgKCRpbiA9fiBzL15cWy8vKSB7Ci0JICAgIG15IEBzdWJhcnIgPSAoKTsKLQkgICAgaWYgKCRpbiA9fiBzLF4vXCogKFxkKykgdmFycyBcKi9cXSwsKSB7Ci0JCXB1c2ggQGFyZ3MsICQxOwotCSAgICB9IGVsc2UgewotCQl3aGlsZSAoJGluICF+IHMvXlxdLy8pIHsKLQkJICAgICgkdG1wLCAkaW4pID0gcGFyc2Vfb25lKCRpbik7Ci0JCSAgICBkZWZpbmVkICR0bXAgb3IgcmV0dXJuIHVuZGVmOwotCQkgICAgcHVzaCBAc3ViYXJyLCAkdG1wOwotCQkgICAgdW5sZXNzICgkaW4gPX4gL15cXS8gb3IgJGluID1+IHMvXiwgLy8pIHsKLQkJCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogbWlzc2luZyBjb21tYSBpbiBhcnJheS5cbiI7Ci0JCQlyZXR1cm4gdW5kZWY7Ci0JCSAgICB9Ci0JCSAgICBpZiAoJGluID1+IHMvXlwuXC5cLi8vKSB7Ci0JCQlwdXNoIEBzdWJhcnIsICIuLi4iOwotCQkgICAgfQotCQl9Ci0JCXB1c2ggQGFyZ3MsIFxAc3ViYXJyOwotCSAgICB9Ci0JfSBlbHNpZiAoJGluID1+IHMvXlx7Ly8pIHsKLQkgICAgbXkgJXN1Ymhhc2ggPSAoKTsKLQkgICAgd2hpbGUgKCRpbiAhfiBzL15cfS8vKSB7Ci0JCW15ICRrZXk7Ci0JCXVubGVzcyAoJGluID1+IHMvXihcdyspPS8vKSB7Ci0JCSAgICBwcmludCBTVERFUlIgIiQwOiAkQVJHVjogJC46IHN0cnVjdCBmaWVsZCBleHBlY3RlZC5cbiI7Ci0JCSAgICByZXR1cm4gdW5kZWY7Ci0JCX0KLQkJJGtleSA9ICQxOwotCQkoJHRtcCwgJGluKSA9IHBhcnNlX29uZSgkaW4pOwotCQlkZWZpbmVkICR0bXAgb3IgcmV0dXJuIHVuZGVmOwotCQkkc3ViaGFzaHska2V5fSA9ICR0bXA7Ci0JCXVubGVzcyAoJGluID1+IHMvLCAvLykgewotCQkgICAgcHJpbnQgU1RERVJSICIkMDogJEFSR1Y6ICQuOiBtaXNzaW5nIGNvbW1hIGluIHN0cnVjdC5cbiI7Ci0JCSAgICByZXR1cm4gdW5kZWY7Ci0JCX0KLQkgICAgfQotCSAgICBwdXNoIEBhcmdzLCBcJXN1Ymhhc2g7Ci0JfSBlbHNlIHsKLQkgICAgKCR0bXAsICRpbikgPSBwYXJzZV9vbmUoJGluKTsKLQkgICAgZGVmaW5lZCAkdG1wIG9yIHJldHVybiB1bmRlZjsKLQkgICAgcHVzaCBAYXJncywgJHRtcDsKLQl9Ci0JdW5sZXNzIChsZW5ndGgoJGluKSA9PSAwIG9yICRpbiA9fiBzL14sIC8vKSB7Ci0JICAgIHByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogbWlzc2luZyBjb21tYS5cbiI7Ci0JICAgIHJldHVybiB1bmRlZjsKLQl9CSAgICAKLSAgICB9Ci0gICAgcmV0dXJuIEBhcmdzOwotfQotCSAgICAKLQotbXkgJGRlcHRoID0gIiI7Ci0KLSMgcHJvY2VzcyBpbmZvLCBpbmRleGVkIGJ5IHBpZC4KLSMgZmllbGRzOiAKLSMgICAgcGFyZW50ICAgICAgICAgcGlkIG51bWJlcgotIyAgICBzZXEgICAgICAgICAgICBmb3JrcyBhbmQgZXhlY3MgZm9yIHRoaXMgcGlkLCBpbiBzZXF1ZW5jZSAgKGFycmF5KQotIAotIyAgZmlsZW5hbWUgYW5kIGFyZ3YgKGZyb20gbGF0ZXN0IGV4ZWMpCi0jICBiYXNlbmFtZSAoZGVyaXZlZCBmcm9tIGZpbGVuYW1lKQotIyBhcmd2WzBdIGlzIG1vZGlmaWVkIHRvIGFkZCB0aGUgYmFzZW5hbWUgaWYgaXQgZGlmZmVycyBmcm9tIHRoZSAwdGggYXJndW1lbnQuCi0KLW15ICVwcjsKLQotc3ViIGhhbmRsZV90cmFjZSB7Ci0gICAgbXkgKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpID0gQF87Ci0gICAgbXkgJHA7Ci0KLSAgICBpZiAoZGVmaW5lZCAkdGltZSBhbmQgbm90IGRlZmluZWQgJHByeyRwaWR9e3N0YXJ0fSkgewotCSRwcnskcGlkfXtzdGFydH0gPSAkdGltZTsKLSAgICB9Ci0KLSAgICBpZiAoJGNhbGwgZXEgJ2V4ZWN2ZScpIHsKLQlyZXR1cm4gaWYgJHJlc3VsdCAhPSAwOwotCi0JbXkgKCRmaWxlbmFtZSwgJGFyZ3YpID0gcGFyc2VhcmdzKCRhcmdzKTsKLQkoJGJhc2VuYW1lKSA9ICRmaWxlbmFtZSA9fiBtLyhbXlwvXSopJC87Ci0JaWYgKCRiYXNlbmFtZSBuZSAkJGFyZ3ZbMF0pIHsKLQkgICAgJCRhcmd2WzBdID0gIiRiYXNlbmFtZSgkJGFyZ3ZbMF0pIjsKLSAgICAgICAgfQotCW15ICRzZXEgPSAkcHJ7JHBpZH17c2VxfTsKLQkkc2VxID0gW10gaWYgbm90IGRlZmluZWQgJHNlcTsKLQotCXB1c2ggQCRzZXEsIFsnRVhFQycsICRmaWxlbmFtZSwgJGFyZ3ZdOwotCi0JJHByeyRwaWR9e3NlcX0gPSAkc2VxOwotICAgIH0gZWxzaWYgKCRjYWxsIGVxICdmb3JrJykgewotCXJldHVybiBpZiAkcmVzdWx0ID09IDA7Ci0KLQlteSAkc2VxID0gJHByeyRwaWR9e3NlcX07Ci0JJHNlcSA9IFtdIGlmIG5vdCBkZWZpbmVkICRzZXE7Ci0JcHVzaCBAJHNlcSwgWydGT1JLJywgJHJlc3VsdF07Ci0JJHByeyRwaWR9e3NlcX0gPSAkc2VxOwotCSRwcnskcmVzdWx0fXtwYXJlbnR9ID0gJHBpZDsKLSAgICB9IGVsc2lmICgkY2FsbCBlcSAnX2V4aXQnKSB7Ci0JJHByeyRwaWR9e2VuZH0gPSAkdGltZSBpZiBkZWZpbmVkICR0aW1lOwotICAgIH0KLX0KLQotc3ViIGhhbmRsZV9raWxsZWQgewotICAgIG15ICgkcGlkLCAkdGltZSkgPSBAXzsKLSAgICAkcHJ7JHBpZH17ZW5kfSA9ICR0aW1lIGlmIGRlZmluZWQgJHRpbWU7Ci19Ci0KLXN1YiBzdHJhaWdodF9zZXEgewotICAgIG15ICgkcGlkKSA9IEBfOwotICAgIG15ICRzZXEgPSAkcHJ7JHBpZH17c2VxfTsKLQotICAgIGZvciAkZWxlbSAoQCRzZXEpIHsKLQlpZiAoJCRlbGVtWzBdIGVxICdFWEVDJykgewotCSAgICBteSAkYXJndiA9ICQkZWxlbVsyXTsKLQkgICAgcHJpbnQgIiQkZWxlbVswXSAkJGVsZW1bMV0gQCRhcmd2XG4iOwotCX0gZWxzaWYgKCQkZWxlbVswXSBlcSAnRk9SSycpIHsKLQkgICAgcHJpbnQgIiQkZWxlbVswXSAkJGVsZW1bMV1cbiI7Ci0JfSBlbHNlIHsKLQkgICAgcHJpbnQgIiQkZWxlbVswXVxuIjsKLQl9Ci0gICAgfQotfQotCi1zdWIgZmlyc3RfZXhlYyB7Ci0gICAgbXkgKCRwaWQpID0gQF87Ci0gICAgbXkgJHNlcSA9ICRwcnskcGlkfXtzZXF9OwotCi0gICAgZm9yICRlbGVtIChAJHNlcSkgewotCWlmICgkJGVsZW1bMF0gZXEgJ0VYRUMnKSB7Ci0JICAgIHJldHVybiAkZWxlbTsKLQl9Ci0gICAgfQotICAgIHJldHVybiB1bmRlZjsKLX0KLQotc3ViIGRpc3BsYXlfcGlkX3RyYWNlIHsKLSAgICBteSAoJHBpZCwgJGxlYWQpID0gQF87Ci0gICAgbXkgJGkgPSAwOwotICAgIG15IEBzZXEgPSBAeyRwcnskcGlkfXtzZXF9fTsKLSAgICBteSAkZWxhcHNlZDsKLQotICAgIGlmIChub3QgZGVmaW5lZCBmaXJzdF9leGVjKCRwaWQpKSB7Ci0JdW5zaGlmdCBAc2VxLCBbJ0VYRUMnLCAnJywgWycoYW5vbiknXSBdOwotICAgIH0KLQotICAgIGlmIChkZWZpbmVkICRwcnskcGlkfXtzdGFydH0gYW5kIGRlZmluZWQgJHByeyRwaWR9e2VuZH0pIHsKLQkkZWxhcHNlZCA9ICRwcnskcGlkfXtlbmR9IC0gJHByeyRwaWR9e3N0YXJ0fTsKLQkkZWxhcHNlZCAvPSAkc2NhbGVfZmFjdG9yOwotCWlmICgkZmxvYXRmb3JtKSB7Ci0JICAgICRlbGFwc2VkID0gc3ByaW50ZigiJTAuMDJmIiwgJGVsYXBzZWQpOwotCX0gZWxzZSB7Ci0JICAgICRlbGFwc2VkID0gaW50ICRlbGFwc2VkOwotCX0KLSAgICB9Ci0KLSAgICBmb3IgJGVsZW0gKEBzZXEpIHsKLQkkaSsrOwotCWlmICgkJGVsZW1bMF0gZXEgJ0VYRUMnKSB7Ci0JICAgIG15ICRhcmd2ID0gJCRlbGVtWzJdOwotCSAgICBpZiAoZGVmaW5lZCAkZWxhcHNlZCkgewotCQlwcmludCAiJGxlYWQgWyRlbGFwc2VkXSBAJGFyZ3ZcbiI7Ci0JCXVuZGVmICRlbGFwc2VkOwotCSAgICB9IGVsc2UgewotCQlwcmludCAiJGxlYWQgQCRhcmd2XG4iOwotCSAgICB9Ci0JfSBlbHNpZiAoJCRlbGVtWzBdIGVxICdGT1JLJykgewotCSAgICBpZiAoJGkgPT0gMSkgewotICAgICAgICAgICAgICAgIGlmICgkbGVhZCA9fiAvLSQvKSB7Ci0gCQkgICAgZGlzcGxheV9waWRfdHJhY2UoJCRlbGVtWzFdLCAiJGxlYWQtLSstLSIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gCQkgICAgZGlzcGxheV9waWRfdHJhY2UoJCRlbGVtWzFdLCAiJGxlYWQgICstLSIpOwotICAgICAgICAgICAgICAgIH0KLQkgICAgfSBlbHNpZiAoJGkgPT0gQHNlcSkgewotCQlkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZCAgYC0tIik7Ci0JICAgIH0gZWxzZSB7Ci0JCWRpc3BsYXlfcGlkX3RyYWNlKCQkZWxlbVsxXSwgIiRsZWFkICArLS0iKTsKLQkgICAgfQotCX0KLQlpZiAoJGkgPT0gMSkgewotCSAgICAkbGVhZCA9fiBzL1xgLS0vICAgL2c7Ci0JICAgICRsZWFkID1+IHMvLS8gL2c7Ci0JICAgICRsZWFkID1+IHMvXCsvfC9nOwotCX0KLSAgICB9Ci19Ci0KLXN1YiBkaXNwbGF5X3RyYWNlIHsKLSAgICBteSAoJHN0YXJ0cGlkKSA9IEBfOwotCi0gICAgJHN0YXJ0cGlkID0gKGtleXMgJXByKVswXTsKLSAgICB3aGlsZSAoJHByeyRzdGFydHBpZH17cGFyZW50fSkgewotCSRzdGFydHBpZCA9ICRwcnskc3RhcnRwaWR9e3BhcmVudH07Ci0gICAgfQotCi0gICAgZGlzcGxheV9waWRfdHJhY2UoJHN0YXJ0cGlkLCAiIik7Ci19Ci0gICAgCmRpZmYgLS1naXQgYS9zdHJhY2UuMSBiL3N0cmFjZS4xCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTZiMTFjLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS4xCisrKyAvZGV2L251bGwKQEAgLTEsNjYwICswLDAgQEAKLS5cIiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotLlwiIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLS5cIiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLS5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLlwiCi0uXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0uXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0uXCIgYXJlIG1ldDoKLS5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotLlwiIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotLlwiICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLlwiCi0uXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLS5cIiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0uXCIgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLS5cIiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0uXCIgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0uXCIgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLlwiIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLlwiIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS5cIiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLS5cIiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLlwiCi0uXCIJJElkOiBzdHJhY2UuMSx2IDEuMTIgMjAwNC8wOC8zMSAwNzo0Nzo0NyByb2xhbmQgRXhwICQKLS5cIgotLmRlIENXCi0uc3AKLS5uZgotLmZ0IENXCi0uLgotLmRlIENFCi0uZnQgUgotLmZpCi0uc3AKLS4uCi0uVEggU1RSQUNFIDEgIjIwMDMtMDEtMjEiCi0uU0ggTkFNRQotc3RyYWNlIFwtIHRyYWNlIHN5c3RlbSBjYWxscyBhbmQgc2lnbmFscwotLlNIIFNZTk9QU0lTCi0uQiBzdHJhY2UKLVsKLS5CIFwtZGZmaGlxcnR0dFR2eHgKLV0KLVsKLS5CSSBcLWEgY29sdW1uCi1dCi1bCi0uQkkgXC1lIGV4cHIKLV0KLVwmLi4uCi1bCi0uQkkgXC1vIGZpbGUKLV0KLVsKLS5CSSBcLXAgcGlkCi1dCi1cJi4uLgotWwotLkJJIFwtcyBzdHJzaXplCi1dCi1bCi0uQkkgXC11IHVzZXJuYW1lCi1dCi1bCi0uQkkgXC1FIHZhcj12YWwKLV0KLVwmLi4uCi1bCi0uQkkgXC1FIHZhcgotXQotXCYuLi4KLVsKLS5JIGNvbW1hbmQKLVsKLS5JIGFyZwotXCYuLi4KLV0KLV0KLS5zcAotLkIgc3RyYWNlCi0uQiBcLWMKLVsKLS5CSSBcLWUgZXhwcgotXQotXCYuLi4KLVsKLS5CSSBcLU8gb3ZlcmhlYWQKLV0KLVsKLS5CSSBcLVMgc29ydGJ5Ci1dCi1bCi0uSSBjb21tYW5kCi1bCi0uSSBhcmcKLVwmLi4uCi1dCi1dCi0uU0ggREVTQ1JJUFRJT04KLS5JWCAic3RyYWNlIGNvbW1hbmQiICIiICJcZkxzdHJhY2VcZlIgY29tbWFuZCIKLS5MUAotSW4gdGhlIHNpbXBsZXN0IGNhc2UKLS5CIHN0cmFjZQotcnVucyB0aGUgc3BlY2lmaWVkCi0uSSBjb21tYW5kCi11bnRpbCBpdCBleGl0cy4KLUl0IGludGVyY2VwdHMgYW5kIHJlY29yZHMgdGhlIHN5c3RlbSBjYWxscyB3aGljaCBhcmUgY2FsbGVkCi1ieSBhIHByb2Nlc3MgYW5kIHRoZSBzaWduYWxzIHdoaWNoIGFyZSByZWNlaXZlZCBieSBhIHByb2Nlc3MuCi1UaGUgbmFtZSBvZiBlYWNoIHN5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlCi1hcmUgcHJpbnRlZCBvbiBzdGFuZGFyZCBlcnJvciBvciB0byB0aGUgZmlsZSBzcGVjaWZpZWQgd2l0aCB0aGUKLS5CIFwtbwotb3B0aW9uLgotLkxQCi0uQiBzdHJhY2UKLWlzIGEgdXNlZnVsIGRpYWdub3N0aWMsIGluc3RydWN0aW9uYWwsIGFuZCBkZWJ1Z2dpbmcgdG9vbC4KLVN5c3RlbSBhZG1pbmlzdHJhdG9ycywgZGlhZ25vc3RpY2lhbnMgYW5kIHRyb3VibGUtc2hvb3RlcnMgd2lsbCBmaW5kCi1pdCBpbnZhbHVhYmxlIGZvciBzb2x2aW5nIHByb2JsZW1zIHdpdGgKLXByb2dyYW1zIGZvciB3aGljaCB0aGUgc291cmNlIGlzIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBzaW5jZQotdGhleSBkbyBub3QgbmVlZCB0byBiZSByZWNvbXBpbGVkIGluIG9yZGVyIHRvIHRyYWNlIHRoZW0uCi1TdHVkZW50cywgaGFja2VycyBhbmQgdGhlIG92ZXJseS1jdXJpb3VzIHdpbGwgZmluZCB0aGF0Ci1hIGdyZWF0IGRlYWwgY2FuIGJlIGxlYXJuZWQgYWJvdXQgYSBzeXN0ZW0gYW5kIGl0cyBzeXN0ZW0gY2FsbHMgYnkKLXRyYWNpbmcgZXZlbiBvcmRpbmFyeSBwcm9ncmFtcy4gIEFuZCBwcm9ncmFtbWVycyB3aWxsIGZpbmQgdGhhdAotc2luY2Ugc3lzdGVtIGNhbGxzIGFuZCBzaWduYWxzIGFyZSBldmVudHMgdGhhdCBoYXBwZW4gYXQgdGhlIHVzZXIva2VybmVsCi1pbnRlcmZhY2UsIGEgY2xvc2UgZXhhbWluYXRpb24gb2YgdGhpcyBib3VuZGFyeSBpcyB2ZXJ5Ci11c2VmdWwgZm9yIGJ1ZyBpc29sYXRpb24sIHNhbml0eSBjaGVja2luZyBhbmQKLWF0dGVtcHRpbmcgdG8gY2FwdHVyZSByYWNlIGNvbmRpdGlvbnMuCi0uTFAKLUVhY2ggbGluZSBpbiB0aGUgdHJhY2UgY29udGFpbnMgdGhlIHN5c3RlbSBjYWxsIG5hbWUsIGZvbGxvd2VkCi1ieSBpdHMgYXJndW1lbnRzIGluIHBhcmVudGhlc2VzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLgotQW4gZXhhbXBsZSBmcm9tIHN0cmFjaW5nIHRoZSBjb21tYW5kIGBgY2F0IC9kZXYvbnVsbCcnIGlzOgotLkNXCi1vcGVuKCIvZGV2L251bGwiLCBPX1JET05MWSkgPSAzCi0uQ0UKLUVycm9ycyAodHlwaWNhbGx5IGEgcmV0dXJuIHZhbHVlIG9mIFwtMSkgaGF2ZSB0aGUgZXJybm8gc3ltYm9sCi1hbmQgZXJyb3Igc3RyaW5nIGFwcGVuZGVkLgotLkNXCi1vcGVuKCIvZm9vL2JhciIsIE9fUkRPTkxZKSA9IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKLS5DRQotU2lnbmFscyBhcmUgcHJpbnRlZCBhcyBhIHNpZ25hbCBzeW1ib2wgYW5kIGEgc2lnbmFsIHN0cmluZy4KLUFuIGV4Y2VycHQgZnJvbSBzdHJhY2luZyBhbmQgaW50ZXJydXB0aW5nIHRoZSBjb21tYW5kIGBgc2xlZXAgNjY2JycgaXM6Ci0uQ1cKLXNpZ3N1c3BlbmQoW10gPHVuZmluaXNoZWQgLi4uPgotLS0tIFNJR0lOVCAoSW50ZXJydXB0KSAtLS0KLSsrKyBraWxsZWQgYnkgU0lHSU5UICsrKwotLkNFCi1Bcmd1bWVudHMgYXJlIHByaW50ZWQgaW4gc3ltYm9saWMgZm9ybSB3aXRoIGEgcGFzc2lvbi4KLVRoaXMgZXhhbXBsZSBzaG93cyB0aGUgc2hlbGwgcGVyZm9ybWluZyBgYD4+eHl6enknJyBvdXRwdXQgcmVkaXJlY3Rpb246Ci0uQ1cKLW9wZW4oInh5enp5IiwgT19XUk9OTFl8T19BUFBFTkR8T19DUkVBVCwgMDY2NikgPSAzCi0uQ0UKLUhlcmUgdGhlIHRocmVlIGFyZ3VtZW50IGZvcm0gb2Ygb3BlbiBpcyBkZWNvZGVkIGJ5IGJyZWFraW5nIGRvd24gdGhlCi1mbGFnIGFyZ3VtZW50IGludG8gaXRzIHRocmVlIGJpdHdpc2UtT1IgY29uc3RpdHVlbnRzIGFuZCBwcmludGluZyB0aGUKLW1vZGUgdmFsdWUgaW4gb2N0YWwgYnkgdHJhZGl0aW9uLiAgV2hlcmUgdHJhZGl0aW9uYWwgb3IgbmF0aXZlCi11c2FnZSBkaWZmZXJzIGZyb20gQU5TSSBvciBQT1NJWCwgdGhlIGxhdHRlciBmb3JtcyBhcmUgcHJlZmVycmVkLgotSW4gc29tZSBjYXNlcywKLS5CIHN0cmFjZQotb3V0cHV0IGhhcyBwcm92ZW4gdG8gYmUgbW9yZSByZWFkYWJsZSB0aGFuIHRoZSBzb3VyY2UuCi0uTFAKLVN0cnVjdHVyZSBwb2ludGVycyBhcmUgZGVyZWZlcmVuY2VkIGFuZCB0aGUgbWVtYmVycyBhcmUgZGlzcGxheWVkCi1hcyBhcHByb3ByaWF0ZS4gIEluIGFsbCBjYXNlcyBhcmd1bWVudHMgYXJlIGZvcm1hdHRlZCBpbiB0aGUgbW9zdCBDLWxpa2UKLWZhc2hpb24gcG9zc2libGUuCi1Gb3IgZXhhbXBsZSwgdGhlIGVzc2VuY2Ugb2YgdGhlIGNvbW1hbmQgYGBscyBcLWwgL2Rldi9udWxsJycgaXMgY2FwdHVyZWQgYXM6Ci0uQ1cKLWxzdGF0KCIvZGV2L251bGwiLCB7c3RfbW9kZT1TX0lGQ0hSfDA2NjYsIHN0X3JkZXY9bWFrZWRldigxLCAzKSwgLi4ufSkgPSAwCi0uQ0UKLU5vdGljZSBob3cgdGhlIGBzdHJ1Y3Qgc3RhdCcgYXJndW1lbnQgaXMgZGVyZWZlcmVuY2VkIGFuZCBob3cgZWFjaCBtZW1iZXIgaXMKLWRpc3BsYXllZCBzeW1ib2xpY2FsbHkuICBJbiBwYXJ0aWN1bGFyLCBvYnNlcnZlIGhvdyB0aGUgc3RfbW9kZSBtZW1iZXIKLWlzIGNhcmVmdWxseSBkZWNvZGVkIGludG8gYSBiaXR3aXNlLU9SIG9mIHN5bWJvbGljIGFuZCBudW1lcmljIHZhbHVlcy4KLUFsc28gbm90aWNlIGluIHRoaXMgZXhhbXBsZSB0aGF0IHRoZSBmaXJzdCBhcmd1bWVudCB0byBsc3RhdCBpcyBhbiBpbnB1dAotdG8gdGhlIHN5c3RlbSBjYWxsIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFuIG91dHB1dC4gIFNpbmNlIG91dHB1dAotYXJndW1lbnRzIGFyZSBub3QgbW9kaWZpZWQgaWYgdGhlIHN5c3RlbSBjYWxsIGZhaWxzLCBhcmd1bWVudHMgbWF5IG5vdAotYWx3YXlzIGJlIGRlcmVmZXJlbmNlZC4gIEZvciBleGFtcGxlLCByZXRyeWluZyB0aGUgYGBscyBcLWwnJyBleGFtcGxlCi13aXRoIGEgbm9uLWV4aXN0ZW50IGZpbGUgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBsaW5lOgotLkNXCi1sc3RhdCgiL2Zvby9iYXIiLCAweGIwMDQpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQotLkNFCi1JbiB0aGlzIGNhc2UgdGhlIHBvcmNoIGxpZ2h0IGlzIG9uIGJ1dCBub2JvZHkgaXMgaG9tZS4KLS5MUAotQ2hhcmFjdGVyIHBvaW50ZXJzIGFyZSBkZXJlZmVyZW5jZWQgYW5kIHByaW50ZWQgYXMgQyBzdHJpbmdzLgotTm9uLXByaW50aW5nIGNoYXJhY3RlcnMgaW4gc3RyaW5ncyBhcmUgbm9ybWFsbHkgcmVwcmVzZW50ZWQgYnkKLW9yZGluYXJ5IEMgZXNjYXBlIGNvZGVzLgotT25seSB0aGUgZmlyc3QKLS5JIHN0cnNpemUKLSgzMiBieSBkZWZhdWx0KSBieXRlcyBvZiBzdHJpbmdzIGFyZSBwcmludGVkOwotbG9uZ2VyIHN0cmluZ3MgaGF2ZSBhbiBlbGxpcHNpcyBhcHBlbmRlZCBmb2xsb3dpbmcgdGhlIGNsb3NpbmcgcXVvdGUuCi1IZXJlIGlzIGEgbGluZSBmcm9tIGBgbHMgXC1sJycgd2hlcmUgdGhlCi0uQiBnZXRwd3VpZAotbGlicmFyeSByb3V0aW5lIGlzIHJlYWRpbmcgdGhlIHBhc3N3b3JkIGZpbGU6Ci0uQ1cKLXJlYWQoMywgInJvb3Q6OjA6MDpTeXN0ZW0gQWRtaW5pc3RyYXRvcjovIi4uLiwgMTAyNCkgPSA0MjIKLS5DRQotV2hpbGUgc3RydWN0dXJlcyBhcmUgYW5ub3RhdGVkIHVzaW5nIGN1cmx5IGJyYWNlcywgc2ltcGxlIHBvaW50ZXJzCi1hbmQgYXJyYXlzIGFyZSBwcmludGVkIHVzaW5nIHNxdWFyZSBicmFja2V0cyB3aXRoIGNvbW1hcyBzZXBhcmF0aW5nCi1lbGVtZW50cy4gIEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIHRoZSBjb21tYW5kIGBgaWQnJyBvbiBhIHN5c3RlbSB3aXRoCi1zdXBwbGVtZW50YXJ5IGdyb3VwIGlkczoKLS5DVwotZ2V0Z3JvdXBzKDMyLCBbMTAwLCAwXSkgPSAyCi0uQ0UKLU9uIHRoZSBvdGhlciBoYW5kLCBiaXQtc2V0cyBhcmUgYWxzbyBzaG93biB1c2luZyBzcXVhcmUgYnJhY2tldHMKLWJ1dCBzZXQgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCBvbmx5IGJ5IGEgc3BhY2UuICBIZXJlIGlzIHRoZSBzaGVsbAotcHJlcGFyaW5nIHRvIGV4ZWN1dGUgYW4gZXh0ZXJuYWwgY29tbWFuZDoKLS5DVwotc2lncHJvY21hc2soU0lHX0JMT0NLLCBbQ0hMRCBUVE9VXSwgW10pID0gMAotLkNFCi1IZXJlIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBiaXQtc2V0IG9mIHR3byBzaWduYWxzLCBTSUdDSExEIGFuZCBTSUdUVE9VLgotSW4gc29tZSBjYXNlcyB0aGUgYml0LXNldCBpcyBzbyBmdWxsIHRoYXQgcHJpbnRpbmcgb3V0IHRoZSB1bnNldAotZWxlbWVudHMgaXMgbW9yZSB2YWx1YWJsZS4gIEluIHRoYXQgY2FzZSwgdGhlIGJpdC1zZXQgaXMgcHJlZml4ZWQgYnkKLWEgdGlsZGUgbGlrZSB0aGlzOgotLkNXCi1zaWdwcm9jbWFzayhTSUdfVU5CTE9DSywgfltdLCBOVUxMKSA9IDAKLS5DRQotSGVyZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHJlcHJlc2VudHMgdGhlIGZ1bGwgc2V0IG9mIGFsbCBzaWduYWxzLgotLlNIIE9QVElPTlMKLS5UUCAxMgotLlRQCi0uQiBcLWMKLUNvdW50IHRpbWUsIGNhbGxzLCBhbmQgZXJyb3JzIGZvciBlYWNoIHN5c3RlbSBjYWxsIGFuZCByZXBvcnQgYSBzdW1tYXJ5IG9uCi1wcm9ncmFtIGV4aXQuICBPbiBMaW51eCwgdGhpcyBhdHRlbXB0cyB0byBzaG93IHN5c3RlbSB0aW1lIChDUFUgdGltZSBzcGVudAotcnVubmluZyBpbiB0aGUga2VybmVsKSBpbmRlcGVuZGVudCBvZiB3YWxsIGNsb2NrIHRpbWUuCi0uVFAKLS5CIFwtZAotU2hvdyBzb21lIGRlYnVnZ2luZyBvdXRwdXQgb2YKLS5CIHN0cmFjZQotaXRzZWxmIG9uIHRoZSBzdGFuZGFyZCBlcnJvci4KLS5UUAotLkIgXC1mCi1UcmFjZSBjaGlsZCBwcm9jZXNzZXMgYXMgdGhleSBhcmUgY3JlYXRlZCBieSBjdXJyZW50bHkgdHJhY2VkCi1wcm9jZXNzZXMgYXMgYSByZXN1bHQgb2YgdGhlCi0uQlIgZm9yayAoMikKLXN5c3RlbSBjYWxsLiAgVGhlIG5ldyBwcm9jZXNzIGlzCi1hdHRhY2hlZCB0byBhcyBzb29uIGFzIGl0cyBwaWQgaXMga25vd24gKHRocm91Z2ggdGhlIHJldHVybiB2YWx1ZSBvZgotLkJSIGZvcmsgKDIpCi1pbiB0aGUgcGFyZW50IHByb2Nlc3MpLiBUaGlzIG1lYW5zIHRoYXQgc3VjaCBjaGlsZHJlbiBtYXkgcnVuCi11bmNvbnRyb2xsZWQgZm9yIGEgd2hpbGUgKGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugb2YgYQotLkJSIHZmb3JrICgyKSksCi11bnRpbCB0aGUgcGFyZW50IGlzIHNjaGVkdWxlZCBhZ2FpbiB0byBjb21wbGV0ZSBpdHMKLS5SQiAoIHYgKSBmb3JrICgyKQotY2FsbC4KLUlmIHRoZSBwYXJlbnQgcHJvY2VzcyBkZWNpZGVzIHRvCi0uQlIgd2FpdCAoMikKLWZvciBhIGNoaWxkIHRoYXQgaXMgY3VycmVudGx5Ci1iZWluZyB0cmFjZWQsIGl0IGlzIHN1c3BlbmRlZCB1bnRpbCBhbiBhcHByb3ByaWF0ZSBjaGlsZCBwcm9jZXNzIGVpdGhlcgotdGVybWluYXRlcyBvciBpbmN1cnMgYSBzaWduYWwgdGhhdCB3b3VsZCBjYXVzZSBpdCB0byB0ZXJtaW5hdGUgKGFzCi1kZXRlcm1pbmVkIGZyb20gdGhlIGNoaWxkJ3MgY3VycmVudCBzaWduYWwgZGlzcG9zaXRpb24pLgotLlRQCi0uQiBcLWZmCi1JZiB0aGUKLS5CIFwtbwotLkkgZmlsZW5hbWUKLW9wdGlvbiBpcyBpbiBlZmZlY3QsIGVhY2ggcHJvY2Vzc2VzIHRyYWNlIGlzIHdyaXR0ZW4gdG8KLS5JIGZpbGVuYW1lLnBpZAotd2hlcmUgcGlkIGlzIHRoZSBudW1lcmljIHByb2Nlc3MgaWQgb2YgZWFjaCBwcm9jZXNzLgotLlRQCi0uQiBcLUYKLUF0dGVtcHQgdG8gZm9sbG93Ci0uQlIgdmZvcmsgcy4KLShPbiBTdW5PUyA0LngsIHRoaXMgaXMgYWNjb21wbGlzaGVkIHdpdGgKLXNvbWUgZHluYW1pYyBsaW5raW5nIHRyaWNrZXJ5LikKLU90aGVyd2lzZSwKLS5CUiB2Zm9yayBzCi13aWxsCi1ub3QgYmUgZm9sbG93ZWQgZXZlbiBpZgotLkIgXC1mCi1oYXMgYmVlbiBnaXZlbi4KLS5UUAotLkIgXC1oCi1QcmludCB0aGUgaGVscCBzdW1tYXJ5LgotLlRQCi0uQiBcLWkKLVByaW50IHRoZSBpbnN0cnVjdGlvbiBwb2ludGVyIGF0IHRoZSB0aW1lIG9mIHRoZSBzeXN0ZW0gY2FsbC4KLS5UUAotLkIgXC1xCi1TdXBwcmVzcyBtZXNzYWdlcyBhYm91dCBhdHRhY2hpbmcsIGRldGFjaGluZyBldGMuICBUaGlzIGhhcHBlbnMKLWF1dG9tYXRpY2FsbHkgd2hlbiBvdXRwdXQgaXMgcmVkaXJlY3RlZCB0byBhIGZpbGUgYW5kIHRoZSBjb21tYW5kCi1pcyBydW4gZGlyZWN0bHkgaW5zdGVhZCBvZiBhdHRhY2hpbmcuCi0uVFAKLS5CIFwtcgotUHJpbnQgYSByZWxhdGl2ZSB0aW1lc3RhbXAgdXBvbiBlbnRyeSB0byBlYWNoIHN5c3RlbSBjYWxsLiAgVGhpcwotcmVjb3JkcyB0aGUgdGltZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGJlZ2lubmluZyBvZiBzdWNjZXNzaXZlCi1zeXN0ZW0gY2FsbHMuCi0uVFAKLS5CIFwtdAotUHJlZml4IGVhY2ggbGluZSBvZiB0aGUgdHJhY2Ugd2l0aCB0aGUgdGltZSBvZiBkYXkuCi0uVFAKLS5CIFwtdHQKLUlmIGdpdmVuIHR3aWNlLCB0aGUgdGltZSBwcmludGVkIHdpbGwgaW5jbHVkZSB0aGUgbWljcm9zZWNvbmRzLgotLlRQCi0uQiBcLXR0dAotSWYgZ2l2ZW4gdGhyaWNlLCB0aGUgdGltZSBwcmludGVkIHdpbGwgaW5jbHVkZSB0aGUgbWljcm9zZWNvbmRzCi1hbmQgdGhlIGxlYWRpbmcgcG9ydGlvbiB3aWxsIGJlIHByaW50ZWQgYXMgdGhlIG51bWJlcgotb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2guCi0uVFAKLS5CIFwtVAotU2hvdyB0aGUgdGltZSBzcGVudCBpbiBzeXN0ZW0gY2FsbHMuIFRoaXMgcmVjb3JkcyB0aGUgdGltZQotZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgYW5kIHRoZSBlbmQgb2YgZWFjaCBzeXN0ZW0gY2FsbC4KLS5UUAotLkIgXC12Ci1QcmludCB1bmFiYnJldmlhdGVkIHZlcnNpb25zIG9mIGVudmlyb25tZW50LCBzdGF0LCB0ZXJtaW9zLCBldGMuCi1jYWxscy4gIFRoZXNlIHN0cnVjdHVyZXMgYXJlIHZlcnkgY29tbW9uIGluIGNhbGxzIGFuZCBzbyB0aGUgZGVmYXVsdAotYmVoYXZpb3IgZGlzcGxheXMgYSByZWFzb25hYmxlIHN1YnNldCBvZiBzdHJ1Y3R1cmUgbWVtYmVycy4gIFVzZQotdGhpcyBvcHRpb24gdG8gZ2V0IGFsbCBvZiB0aGUgZ29yeSBkZXRhaWxzLgotLlRQCi0uQiBcLVYKLVByaW50IHRoZSB2ZXJzaW9uIG51bWJlciBvZgotLkJSIHN0cmFjZSAuCi0uVFAKLS5CIFwteAotUHJpbnQgYWxsIG5vbi1BU0NJSSBzdHJpbmdzIGluIGhleGFkZWNpbWFsIHN0cmluZyBmb3JtYXQuCi0uVFAKLS5CIFwteHgKLVByaW50IGFsbCBzdHJpbmdzIGluIGhleGFkZWNpbWFsIHN0cmluZyBmb3JtYXQuCi0uVFAKLS5CSSAiXC1hICIgY29sdW1uCi1BbGlnbiByZXR1cm4gdmFsdWVzIGluIGEgc3BlY2lmaWMgY29sdW1uIChkZWZhdWx0IGNvbHVtbiA0MCkuCi0uVFAKLS5CSSAiXC1lICIgZXhwcgotQSBxdWFsaWZ5aW5nIGV4cHJlc3Npb24gd2hpY2ggbW9kaWZpZXMgd2hpY2ggZXZlbnRzIHRvIHRyYWNlCi1vciBob3cgdG8gdHJhY2UgdGhlbS4gIFRoZSBmb3JtYXQgb2YgdGhlIGV4cHJlc3Npb24gaXM6Ci0uUlMgMTUKLS5JUAotW1xmSXF1YWxpZmllclxmQj1cZlJdW1xmQiFcZlJdXGZJdmFsdWUxXGZSW1xmQixcZkl2YWx1ZTJcZlJdLi4uCi0uUkUKLS5JUAotd2hlcmUKLS5JIHF1YWxpZmllcgotaXMgb25lIG9mCi0uQlIgdHJhY2UgLAotLkJSIGFiYnJldiAsCi0uQlIgdmVyYm9zZSAsCi0uQlIgcmF3ICwKLS5CUiBzaWduYWwgLAotLkJSIHJlYWQgLAotb3IKLS5CIHdyaXRlCi1hbmQKLS5JIHZhbHVlCi1pcyBhIHF1YWxpZmllci1kZXBlbmRlbnQgc3ltYm9sIG9yIG51bWJlci4gIFRoZSBkZWZhdWx0Ci1xdWFsaWZpZXIgaXMKLS5CUiB0cmFjZSAuCi1Vc2luZyBhbiBleGNsYW1hdGlvbiBtYXJrIG5lZ2F0ZXMgdGhlIHNldCBvZiB2YWx1ZXMuICBGb3IgZXhhbXBsZSwKLS5CIFwtZW9wZW4KLW1lYW5zIGxpdGVyYWxseQotLkIgIlwtZSB0cmFjZT1vcGVuIgotd2hpY2ggaW4gdHVybiBtZWFucyB0cmFjZSBvbmx5IHRoZQotLkIgb3Blbgotc3lzdGVtIGNhbGwuICBCeSBjb250cmFzdCwKLS5CICJcLWV0cmFjZT0hb3BlbiIKLW1lYW5zIHRvIHRyYWNlIGV2ZXJ5IHN5c3RlbSBjYWxsIGV4Y2VwdAotLkJSIG9wZW4gLgotSW4gYWRkaXRpb24sIHRoZSBzcGVjaWFsIHZhbHVlcwotLkIgYWxsCi1hbmQKLS5CIG5vbmUKLWhhdmUgdGhlIG9idmlvdXMgbWVhbmluZ3MuCi0uSVAKLU5vdGUgdGhhdCBzb21lIHNoZWxscyB1c2UgdGhlIGV4Y2xhbWF0aW9uIHBvaW50IGZvciBoaXN0b3J5Ci1leHBhbnNpb24gZXZlbiBpbnNpZGUgcXVvdGVkIGFyZ3VtZW50cy4gIElmIHNvLCB5b3UgbXVzdCBlc2NhcGUKLXRoZSBleGNsYW1hdGlvbiBwb2ludCB3aXRoIGEgYmFja3NsYXNoLgotLlRQCi0uQkkgIlwtZSB0cmFjZT0iIHNldAotVHJhY2Ugb25seSB0aGUgc3BlY2lmaWVkIHNldCBvZiBzeXN0ZW0gY2FsbHMuICBUaGUKLS5CIFwtYwotb3B0aW9uIGlzIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggc3lzdGVtIGNhbGxzIG1pZ2h0IGJlIHVzZWZ1bAotdG8gdHJhY2UuICBGb3IgZXhhbXBsZSwKLS5CIHRyYWNlPW9wZW4sY2xvc2UscmVhZCx3cml0ZQotbWVhbnMgdG8gb25seQotdHJhY2UgdGhvc2UgZm91ciBzeXN0ZW0gY2FsbHMuICBCZSBjYXJlZnVsIHdoZW4gbWFraW5nIGluZmVyZW5jZXMKLWFib3V0IHRoZSB1c2VyL2tlcm5lbCBib3VuZGFyeSBpZiBvbmx5IGEgc3Vic2V0IG9mIHN5c3RlbSBjYWxscwotYXJlIGJlaW5nIG1vbml0b3JlZC4gIFRoZSBkZWZhdWx0IGlzCi0uQlIgdHJhY2U9YWxsIC4KLS5UUAotLkIgIlwtZSB0cmFjZT1maWxlIgotVHJhY2UgYWxsIHN5c3RlbSBjYWxscyB3aGljaCB0YWtlIGEgZmlsZSBuYW1lIGFzIGFuIGFyZ3VtZW50LiAgWW91Ci1jYW4gdGhpbmsgb2YgdGhpcyBhcyBhbiBhYmJyZXZpYXRpb24gZm9yCi0uQlIgIlwtZVwgdHJhY2U9b3BlbixzdGF0LGNobW9kLHVubGluaywiIC4uLgotd2hpY2ggaXMgdXNlZnVsIHRvIHNlZWluZyB3aGF0IGZpbGVzIHRoZSBwcm9jZXNzIGlzIHJlZmVyZW5jaW5nLgotRnVydGhlcm1vcmUsIHVzaW5nIHRoZSBhYmJyZXZpYXRpb24gd2lsbCBlbnN1cmUgdGhhdCB5b3UgZG9uJ3QKLWFjY2lkZW50YWxseSBmb3JnZXQgdG8gaW5jbHVkZSBhIGNhbGwgbGlrZQotLkIgbHN0YXQKLWluIHRoZSBsaXN0LiAgQmV0Y2h5YSB3b3VsZGEgZm9yZ290IHRoYXQgb25lLgotLlRQCi0uQiAiXC1lIHRyYWNlPXByb2Nlc3MiCi1UcmFjZSBhbGwgc3lzdGVtIGNhbGxzIHdoaWNoIGludm9sdmUgcHJvY2VzcyBtYW5hZ2VtZW50LiAgVGhpcwotaXMgdXNlZnVsIGZvciB3YXRjaGluZyB0aGUgZm9yaywgd2FpdCwgYW5kIGV4ZWMgc3RlcHMgb2YgYSBwcm9jZXNzLgotLlRQCi0uQiAiXC1lIHRyYWNlPW5ldHdvcmsiCi1UcmFjZSBhbGwgdGhlIG5ldHdvcmsgcmVsYXRlZCBzeXN0ZW0gY2FsbHMuCi0uVFAKLS5CICJcLWUgdHJhY2U9c2lnbmFsIgotVHJhY2UgYWxsIHNpZ25hbCByZWxhdGVkIHN5c3RlbSBjYWxscy4KLS5UUAotLkIgIlwtZSB0cmFjZT1pcGMiCi1UcmFjZSBhbGwgSVBDIHJlbGF0ZWQgc3lzdGVtIGNhbGxzLgotLlRQCi0uQkkgIlwtZSBhYmJyZXY9IiBzZXQKLUFiYnJldmlhdGUgdGhlIG91dHB1dCBmcm9tIHByaW50aW5nIGVhY2ggbWVtYmVyIG9mIGxhcmdlIHN0cnVjdHVyZXMuCi1UaGUgZGVmYXVsdCBpcwotLkJSIGFiYnJldj1hbGwgLgotVGhlCi0uQiBcLXYKLW9wdGlvbiBoYXMgdGhlIGVmZmVjdCBvZgotLkJSIGFiYnJldj1ub25lIC4KLS5UUAotLkJJICJcLWUgdmVyYm9zZT0iIHNldAotRGVyZWZlcmVuY2Ugc3RydWN0dXJlcyBmb3IgdGhlIHNwZWNpZmllZCBzZXQgb2Ygc3lzdGVtIGNhbGxzLiAgVGhlCi1kZWZhdWx0IGlzCi0uQlIgdmVyYm9zZT1hbGwgLgotLlRQCi0uQkkgIlwtZSByYXc9IiBzZXQKLVByaW50IHJhdywgdW5kZWNvZGVkIGFyZ3VtZW50cyBmb3IgdGhlIHNwZWNpZmllZCBzZXQgb2Ygc3lzdGVtIGNhbGxzLgotVGhpcyBvcHRpb24gaGFzIHRoZSBlZmZlY3Qgb2YgY2F1c2luZyBhbGwgYXJndW1lbnRzIHRvIGJlIHByaW50ZWQKLWluIGhleGFkZWNpbWFsLiAgVGhpcyBpcyBtb3N0bHkgdXNlZnVsIGlmIHlvdSBkb24ndCB0cnVzdCB0aGUKLWRlY29kaW5nIG9yIHlvdSBuZWVkIHRvIGtub3cgdGhlIGFjdHVhbCBudW1lcmljIHZhbHVlIG9mIGFuCi1hcmd1bWVudC4KLS5UUAotLkJJICJcLWUgc2lnbmFsPSIgc2V0Ci1UcmFjZSBvbmx5IHRoZSBzcGVjaWZpZWQgc3Vic2V0IG9mIHNpZ25hbHMuICBUaGUgZGVmYXVsdCBpcwotLkJSIHNpZ25hbD1hbGwgLgotRm9yIGV4YW1wbGUsCi0uQiBzaWduYWw9IVNJR0lPCi0ob3IKLS5CUiBzaWduYWw9IWlvICkKLWNhdXNlcyBTSUdJTyBzaWduYWxzIG5vdCB0byBiZSB0cmFjZWQuCi0uVFAKLS5CSSAiXC1lIHJlYWQ9IiBzZXQKLVBlcmZvcm0gYSBmdWxsIGhleGFkZWNpbWFsIGFuZCBBU0NJSSBkdW1wIG9mIGFsbCB0aGUgZGF0YSByZWFkIGZyb20KLWZpbGUgZGVzY3JpcHRvcnMgbGlzdGVkIGluIHRoZSBzcGVjaWZpZWQgc2V0LiAgRm9yIGV4YW1wbGUsIHRvIHNlZQotYWxsIGlucHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMgMyBhbmQgNSB1c2UKLS5CUiAiXC1lIHJlYWQ9Myw1IiAuCi1Ob3RlIHRoYXQgdGhpcyBpcyBpbmRlcGVuZGVudCBmcm9tIHRoZSBub3JtYWwgdHJhY2luZyBvZiB0aGUKLS5CUiByZWFkICgyKQotc3lzdGVtIGNhbGwgd2hpY2ggaXMgY29udHJvbGxlZCBieSB0aGUgb3B0aW9uCi0uQlIgIlwtZSB0cmFjZT1yZWFkIiAuCi0uVFAKLS5CSSAiXC1lIHdyaXRlPSIgc2V0Ci1QZXJmb3JtIGEgZnVsbCBoZXhhZGVjaW1hbCBhbmQgQVNDSUkgZHVtcCBvZiBhbGwgdGhlIGRhdGEgd3JpdHRlbiB0bwotZmlsZSBkZXNjcmlwdG9ycyBsaXN0ZWQgaW4gdGhlIHNwZWNpZmllZCBzZXQuICBGb3IgZXhhbXBsZSwgdG8gc2VlCi1hbGwgb3V0cHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMgMyBhbmQgNSB1c2UKLS5CUiAiXC1lIHdyaXRlPTMsNSIgLgotTm90ZSB0aGF0IHRoaXMgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgbm9ybWFsIHRyYWNpbmcgb2YgdGhlCi0uQlIgd3JpdGUgKDIpCi1zeXN0ZW0gY2FsbCB3aGljaCBpcyBjb250cm9sbGVkIGJ5IHRoZSBvcHRpb24KLS5CUiAiXC1lIHRyYWNlPXdyaXRlIiAuCi0uVFAKLS5CSSAiXC1vICIgZmlsZW5hbWUKLVdyaXRlIHRoZSB0cmFjZSBvdXRwdXQgdG8gdGhlIGZpbGUKLS5JIGZpbGVuYW1lCi1yYXRoZXIgdGhhbiB0byBzdGRlcnIuCi1Vc2UKLS5JIGZpbGVuYW1lLnBpZAotaWYKLS5CIFwtZmYKLWlzIHVzZWQuCi1JZiB0aGUgYXJndW1lbnQgYmVnaW5zIHdpdGggYHwnIG9yIHdpdGggYCEnIHRoZW4gdGhlIHJlc3Qgb2YgdGhlCi1hcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgY29tbWFuZCBhbmQgYWxsIG91dHB1dCBpcyBwaXBlZCB0byBpdC4KLVRoaXMgaXMgY29udmVuaWVudCBmb3IgcGlwaW5nIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGEgcHJvZ3JhbQotd2l0aG91dCBhZmZlY3RpbmcgdGhlIHJlZGlyZWN0aW9ucyBvZiBleGVjdXRlZCBwcm9ncmFtcy4KLS5UUAotLkJJICJcLU8gIiBvdmVyaGVhZAotU2V0IHRoZSBvdmVyaGVhZCBmb3IgdHJhY2luZyBzeXN0ZW0gY2FsbHMgdG8KLS5JIG92ZXJoZWFkCi1taWNyb3NlY29uZHMuCi1UaGlzIGlzIHVzZWZ1bCBmb3Igb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBoZXVyaXN0aWMgZm9yIGd1ZXNzaW5nCi1ob3cgbXVjaCB0aW1lIGlzIHNwZW50IGluIG1lcmUgbWVhc3VyaW5nIHdoZW4gdGltaW5nIHN5c3RlbSBjYWxscyB1c2luZwotdGhlCi0uQiBcLWMKLW9wdGlvbi4gIFRoZSBhY2N1cmFjeSBvZiB0aGUgaGV1cmlzdGljIGNhbiBiZSBnYXVnZWQgYnkgdGltaW5nIGEgZ2l2ZW4KLXByb2dyYW0gcnVuIHdpdGhvdXQgdHJhY2luZyAodXNpbmcKLS5CUiB0aW1lICgxKSkKLWFuZCBjb21wYXJpbmcgdGhlIGFjY3VtdWxhdGVkCi1zeXN0ZW0gY2FsbCB0aW1lIHRvIHRoZSB0b3RhbCBwcm9kdWNlZCB1c2luZwotLkJSIFwtYyAuCi0uVFAKLS5CSSAiXC1wICIgcGlkCi1BdHRhY2ggdG8gdGhlIHByb2Nlc3Mgd2l0aCB0aGUgcHJvY2VzcwotLlNNIElECi0uSSBwaWQKLWFuZCBiZWdpbiB0cmFjaW5nLgotVGhlIHRyYWNlIG1heSBiZSB0ZXJtaW5hdGVkCi1hdCBhbnkgdGltZSBieSBhIGtleWJvYXJkIGludGVycnVwdCBzaWduYWwgKFxjCi0uU00gQ1RSTFxzMC1DKS4KLS5CIHN0cmFjZQotd2lsbCByZXNwb25kIGJ5IGRldGFjaGluZyBpdHNlbGYgZnJvbSB0aGUgdHJhY2VkIHByb2Nlc3MoZXMpCi1sZWF2aW5nIGl0ICh0aGVtKSB0byBjb250aW51ZSBydW5uaW5nLgotTXVsdGlwbGUKLS5CIFwtcAotb3B0aW9ucyBjYW4gYmUgdXNlZCB0byBhdHRhY2ggdG8gdXAgdG8gMzIgcHJvY2Vzc2VzIGluIGFkZGl0aW9uIHRvCi0uSSBjb21tYW5kCi0od2hpY2ggaXMgb3B0aW9uYWwgaWYgYXQgbGVhc3Qgb25lCi0uQiBcLXAKLW9wdGlvbiBpcyBnaXZlbikuCi0uVFAKLS5CSSAiXC1zICIgc3Ryc2l6ZQotU3BlY2lmeSB0aGUgbWF4aW11bSBzdHJpbmcgc2l6ZSB0byBwcmludCAodGhlIGRlZmF1bHQgaXMgMzIpLiAgTm90ZQotdGhhdCBmaWxlbmFtZXMgYXJlIG5vdCBjb25zaWRlcmVkIHN0cmluZ3MgYW5kIGFyZSBhbHdheXMgcHJpbnRlZCBpbgotZnVsbC4KLS5UUAotLkJJICJcLVMgIiBzb3J0YnkKLVNvcnQgdGhlIG91dHB1dCBvZiB0aGUgaGlzdG9ncmFtIHByaW50ZWQgYnkgdGhlCi0uQiBcLWMKLW9wdGlvbiBieSB0aGUgc3BlY2lmaWVkIGNyaXRlcmlvbi4gIExlZ2FsIHZhbHVlcyBhcmUKLS5CUiB0aW1lICwKLS5CUiBjYWxscyAsCi0uQlIgbmFtZSAsCi1hbmQKLS5CIG5vdGhpbmcKLShkZWZhdWx0Ci0uQlIgdGltZSApLgotLlRQCi0uQkkgIlwtdSAiIHVzZXJuYW1lCi1SdW4gY29tbWFuZCB3aXRoIHRoZSB1c2VyIFxzLTFJRFxzMCwgZ3JvdXAgXHMtMklEXHMwLCBhbmQKLXN1cHBsZW1lbnRhcnkgZ3JvdXBzIG9mCi0uSVIgdXNlcm5hbWUgLgotVGhpcyBvcHRpb24gaXMgb25seSB1c2VmdWwgd2hlbiBydW5uaW5nIGFzIHJvb3QgYW5kIGVuYWJsZXMgdGhlCi1jb3JyZWN0IGV4ZWN1dGlvbiBvZiBzZXR1aWQgYW5kL29yIHNldGdpZCBiaW5hcmllcy4KLVVubGVzcyB0aGlzIG9wdGlvbiBpcyB1c2VkIHNldHVpZCBhbmQgc2V0Z2lkIHByb2dyYW1zIGFyZSBleGVjdXRlZAotd2l0aG91dCBlZmZlY3RpdmUgcHJpdmlsZWdlcy4KLS5UUAotLkJJICJcLUUgIiB2YXI9dmFsCi1SdW4gY29tbWFuZCB3aXRoCi0uSVIgdmFyPXZhbAotaW4gaXRzIGxpc3Qgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotLlRQCi0uQkkgIlwtRSAiIHZhcgotUmVtb3ZlCi0uSVIgdmFyCi1mcm9tIHRoZSBpbmhlcml0ZWQgbGlzdCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYmVmb3JlIHBhc3NpbmcgaXQgb24gdG8KLXRoZSBjb21tYW5kLgotLlNIICJTRVRVSUQgSU5TVEFMTEFUSU9OIgotSWYKLS5CIHN0cmFjZQotaXMgaW5zdGFsbGVkIHNldHVpZCB0byByb290IHRoZW4gdGhlIGludm9raW5nIHVzZXIgd2lsbCBiZSBhYmxlIHRvCi1hdHRhY2ggdG8gYW5kIHRyYWNlIHByb2Nlc3NlcyBvd25lZCBieSBhbnkgdXNlci4KLUluIGFkZGl0aW9uIHNldHVpZCBhbmQgc2V0Z2lkIHByb2dyYW1zIHdpbGwgYmUgZXhlY3V0ZWQgYW5kIHRyYWNlZAotd2l0aCB0aGUgY29ycmVjdCBlZmZlY3RpdmUgcHJpdmlsZWdlcy4KLVNpbmNlIG9ubHkgdXNlcnMgdHJ1c3RlZCB3aXRoIGZ1bGwgcm9vdCBwcml2aWxlZ2VzIHNob3VsZCBiZSBhbGxvd2VkCi10byBkbyB0aGVzZSB0aGluZ3MsCi1pdCBvbmx5IG1ha2VzIHNlbnNlIHRvIGluc3RhbGwKLS5CIHN0cmFjZQotYXMgc2V0dWlkIHRvIHJvb3Qgd2hlbiB0aGUgdXNlcnMgd2hvIGNhbiBleGVjdXRlIGl0IGFyZSByZXN0cmljdGVkCi10byB0aG9zZSB1c2VycyB3aG8gaGF2ZSB0aGlzIHRydXN0LgotRm9yIGV4YW1wbGUsIGl0IG1ha2VzIHNlbnNlIHRvIGluc3RhbGwgYSBzcGVjaWFsIHZlcnNpb24gb2YKLS5CIHN0cmFjZQotd2l0aCBtb2RlIGByd3NyLXhyLS0nLCB1c2VyCi0uQiByb290Ci1hbmQgZ3JvdXAKLS5CUiB0cmFjZSAsCi13aGVyZSBtZW1iZXJzIG9mIHRoZQotLkIgdHJhY2UKLWdyb3VwIGFyZSB0cnVzdGVkIHVzZXJzLgotSWYgeW91IGRvIHVzZSB0aGlzIGZlYXR1cmUsIHBsZWFzZSByZW1lbWJlciB0byBpbnN0YWxsCi1hIG5vbi1zZXR1aWQgdmVyc2lvbiBvZgotLkIgc3RyYWNlCi1mb3Igb3JkaW5hcnkgbHVzZXJzIHRvIHVzZS4KLS5TSCAiU0VFIEFMU08iCi0uQlIgcHRyYWNlICgyKSwKLS5CUiBwcm9jICg0KSwKLS5CUiB0aW1lICgxKSwKLS5CUiB0cmFjZSAoMSksCi0uQlIgdHJ1c3MgKDEpCi0uU0ggTk9URVMKLUl0IGlzIGEgcGl0eSB0aGF0IHNvIG11Y2ggdHJhY2luZyBjbHV0dGVyIGlzIHByb2R1Y2VkIGJ5IHN5c3RlbXMKLWVtcGxveWluZyBzaGFyZWQgbGlicmFyaWVzLgotLkxQCi1JdCBpcyBpbnN0cnVjdGl2ZSB0byB0aGluayBhYm91dCBzeXN0ZW0gY2FsbCBpbnB1dHMgYW5kIG91dHB1dHMKLWFzIGRhdGEtZmxvdyBhY3Jvc3MgdGhlIHVzZXIva2VybmVsIGJvdW5kYXJ5LiAgQmVjYXVzZSB1c2VyLXNwYWNlCi1hbmQga2VybmVsLXNwYWNlIGFyZSBzZXBhcmF0ZSBhbmQgYWRkcmVzcy1wcm90ZWN0ZWQsIGl0IGlzCi1zb21ldGltZXMgcG9zc2libGUgdG8gbWFrZSBkZWR1Y3RpdmUgaW5mZXJlbmNlcyBhYm91dCBwcm9jZXNzCi1iZWhhdmlvciB1c2luZyBpbnB1dHMgYW5kIG91dHB1dHMgYXMgcHJvcG9zaXRpb25zLgotLkxQCi1JbiBzb21lIGNhc2VzLCBhIHN5c3RlbSBjYWxsIHdpbGwgZGlmZmVyIGZyb20gdGhlIGRvY3VtZW50ZWQgYmVoYXZpb3IKLW9yIGhhdmUgYSBkaWZmZXJlbnQgbmFtZS4gIEZvciBleGFtcGxlLCBvbiBTeXN0ZW0gVi1kZXJpdmVkIHN5c3RlbXMKLXRoZSB0cnVlCi0uQlIgdGltZSAoMikKLXN5c3RlbSBjYWxsIGRvZXMgbm90IHRha2UgYW4gYXJndW1lbnQgYW5kIHRoZQotLkIgc3RhdAotZnVuY3Rpb24gaXMgY2FsbGVkCi0uQiB4c3RhdAotYW5kIHRha2VzIGFuIGV4dHJhIGxlYWRpbmcgYXJndW1lbnQuICBUaGVzZQotZGlzY3JlcGFuY2llcyBhcmUgbm9ybWFsIGJ1dCBpZGlvc3luY3JhdGljIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUKLXN5c3RlbSBjYWxsIGludGVyZmFjZSBhbmQgYXJlIGFjY291bnRlZCBmb3IgYnkgQyBsaWJyYXJ5IHdyYXBwZXIKLWZ1bmN0aW9ucy4KLS5MUAotT24gc29tZSBwbGF0Zm9ybXMgYSBwcm9jZXNzIHRoYXQgaGFzIGEgc3lzdGVtIGNhbGwgdHJhY2UgYXBwbGllZAotdG8gaXQgd2l0aCB0aGUKLS5CIFwtcAotb3B0aW9uIHdpbGwgcmVjZWl2ZSBhCi0uQlIgXHMtMVNJR1NUT1BcczAgLgotVGhpcyBzaWduYWwgbWF5IGludGVycnVwdCBhIHN5c3RlbSBjYWxsIHRoYXQgaXMgbm90IHJlc3RhcnRhYmxlLgotVGhpcyBtYXkgaGF2ZSBhbiB1bnByZWRpY3RhYmxlIGVmZmVjdCBvbiB0aGUgcHJvY2VzcwotaWYgdGhlIHByb2Nlc3MgdGFrZXMgbm8gYWN0aW9uIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBjYWxsLgotLlNIIEJVR1MKLVByb2dyYW1zIHRoYXQgdXNlIHRoZQotLkkgc2V0dWlkCi1iaXQgZG8gbm90IGhhdmUKLWVmZmVjdGl2ZSB1c2VyCi0uU00gSUQKLXByaXZpbGVnZXMgd2hpbGUgYmVpbmcgdHJhY2VkLgotLkxQCi1BIHRyYWNlZCBwcm9jZXNzIGlnbm9yZXMKLS5TTSBTSUdTVE9QCi1leGNlcHQgb24gU1ZSNCBwbGF0Zm9ybXMuCi0uTFAKLUEgdHJhY2VkIHByb2Nlc3Mgd2hpY2ggdHJpZXMgdG8gYmxvY2sgU0lHVFJBUCB3aWxsIGJlIHNlbnQgYSBTSUdTVE9QCi1pbiBhbiBhdHRlbXB0IHRvIGZvcmNlIGNvbnRpbnVhdGlvbiBvZiB0cmFjaW5nLgotLkxQCi1BIHRyYWNlZCBwcm9jZXNzIHJ1bnMgc2xvd2x5LgotLkxQCi1UcmFjZWQgcHJvY2Vzc2VzIHdoaWNoIGFyZSBkZXNjZW5kZWQgZnJvbQotLkkgY29tbWFuZAotbWF5IGJlIGxlZnQgcnVubmluZyBhZnRlciBhbiBpbnRlcnJ1cHQgc2lnbmFsIChcYwotLlNNIENUUkxcczAtQykuCi0uTFAKLU9uIExpbnV4LCBleGNpdGluZyBhcyBpdCB3b3VsZCBiZSwgdHJhY2luZyB0aGUgaW5pdCBwcm9jZXNzIGlzIGZvcmJpZGRlbi4KLS5MUAotVGhlCi0uQiBcLWkKLW9wdGlvbiBpcyB3ZWFrbHkgc3VwcG9ydGVkLgotLlNIIEhJU1RPUlkKLS5CIHN0cmFjZQotVGhlIG9yaWdpbmFsCi0uQiBzdHJhY2UKLXdhcyB3cml0dGVuIGJ5IFBhdWwgS3JhbmVuYnVyZwotZm9yIFN1bk9TIGFuZCB3YXMgaW5zcGlyZWQgYnkgaXRzIHRyYWNlIHV0aWxpdHkuCi1UaGUgU3VuT1MgdmVyc2lvbiBvZgotLkIgc3RyYWNlCi13YXMgcG9ydGVkIHRvIExpbnV4IGFuZCBlbmhhbmNlZAotYnkgQnJhbmtvIExhbmtlc3Rlciwgd2hvIGFsc28gd3JvdGUgdGhlIExpbnV4IGtlcm5lbCBzdXBwb3J0LgotRXZlbiB0aG91Z2ggUGF1bCByZWxlYXNlZAotLkIgc3RyYWNlCi0yLjUgaW4gMTk5MiwKLUJyYW5rbydzIHdvcmsgd2FzIGJhc2VkIG9uIFBhdWwncwotLkIgc3RyYWNlCi0xLjUgcmVsZWFzZSBmcm9tIDE5OTEuCi1JbiAxOTkzLCBSaWNrIFNsYWRrZXkgbWVyZ2VkCi0uQiBzdHJhY2UKLTIuNSBmb3IgU3VuT1MgYW5kIHRoZSBzZWNvbmQgcmVsZWFzZSBvZgotLkIgc3RyYWNlCi1mb3IgTGludXgsIGFkZGVkIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mCi0uQlIgdHJ1c3MgKDEpCi1mcm9tIFNWUjQsIGFuZCBwcm9kdWNlZCBhbgotLkIgc3RyYWNlCi10aGF0IHdvcmtlZCBvbiBib3RoIHBsYXRmb3Jtcy4gIEluIDE5OTQgUmljayBwb3J0ZWQKLS5CIHN0cmFjZQotdG8gU1ZSNCBhbmQgU29sYXJpcyBhbmQgd3JvdGUgdGhlCi1hdXRvbWF0aWMgY29uZmlndXJhdGlvbiBzdXBwb3J0LiAgSW4gMTk5NSBoZSBwb3J0ZWQKLS5CIHN0cmFjZQotdG8gSXJpeAotYW5kIHRpcmVkIG9mIHdyaXRpbmcgYWJvdXQgaGltc2VsZiBpbiB0aGUgdGhpcmQgcGVyc29uLgotLlNIIFBST0JMRU1TCi1Qcm9ibGVtcyB3aXRoCi0uQiBzdHJhY2UKLXNob3VsZCBiZSByZXBvcnRlZCB2aWEgdGhlIERlYmlhbiBCdWcgVHJhY2tpbmcgU3lzdGVtLAotb3IgdG8gdGhlCi0uQiBzdHJhY2UKLW1haWxpbmcgbGlzdCBhdCA8c3RyYWNlLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCmRpZmYgLS1naXQgYS9zdHJhY2UuYyBiL3N0cmFjZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMGQwZDIwLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjQ1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3RyYWNlLmMsdiAxLjY2IDIwMDUvMDYvMDcgMjM6MjE6MzEgcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8cHdkLmg+Ci0jaW5jbHVkZSA8Z3JwLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0KLSNpZiBkZWZpbmVkKElBNjQpICYmIGRlZmluZWQoTElOVVgpCi0jIGluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPgotI2VuZGlmCi0KLSNpZmRlZiBVU0VfUFJPQ0ZTCi0jaW5jbHVkZSA8cG9sbC5oPgotI2VuZGlmCi0KLSNpZmRlZiBTVlI0Ci0jaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KLSNpZmRlZiBIQVZFX01QX1BST0NGUwotI2lmZGVmIEhBVkVfU1lTX1VJT19ICi0jaW5jbHVkZSA8c3lzL3Vpby5oPgotI2VuZGlmCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0jZGVmaW5lIHdhaXQ0IF9fd2FpdDQKLSNlbmRpZgotCi1pbnQgZGVidWcgPSAwLCBmb2xsb3dmb3JrID0gMCwgZm9sbG93dmZvcmsgPSAwLCBpbnRlcmFjdGl2ZSA9IDA7Ci1pbnQgcmZsYWcgPSAwLCB0ZmxhZyA9IDAsIGR0aW1lID0gMCwgY2ZsYWcgPSAwOwotaW50IGlmbGFnID0gMCwgeGZsYWcgPSAwLCBxZmxhZyA9IDA7Ci1pbnQgcGZsYWdfc2VlbiA9IDA7Ci0KLS8qIFNvbWV0aW1lcyB3ZSB3YW50IHRvIHByaW50IG9ubHkgc3VjY2VlZGluZyBzeXNjYWxscy4gKi8KLWludCBub3RfZmFpbGluZ19vbmx5ID0gMDsKLQotY2hhciAqdXNlcm5hbWUgPSBOVUxMOwotdWlkX3QgcnVuX3VpZDsKLWdpZF90IHJ1bl9naWQ7Ci0KLWludCBhY29sdW1uID0gREVGQVVMVF9BQ09MVU1OOwotaW50IG1heF9zdHJsZW4gPSBERUZBVUxUX1NUUkxFTjsKLWNoYXIgKm91dGZuYW1lID0gTlVMTDsKLUZJTEUgKm91dGY7Ci1zdHJ1Y3QgdGNiICoqdGNidGFiOwotdW5zaWduZWQgaW50IG5wcm9jcywgdGNidGFic2l6ZTsKLWNoYXIgKnByb2duYW1lOwotZXh0ZXJuIGNoYXIgKiplbnZpcm9uOwotCi1zdGF0aWMgaW50IHRyYWNlIFAoKHZvaWQpKTsKLXN0YXRpYyB2b2lkIGNsZWFudXAgUCgodm9pZCkpOwotc3RhdGljIHZvaWQgaW50ZXJydXB0IFAoKGludCBzaWcpKTsKLXN0YXRpYyBzaWdzZXRfdCBlbXB0eV9zZXQsIGJsb2NrZWRfc2V0OwotCi0jaWZkZWYgSEFWRV9TSUdfQVRPTUlDX1QKLXN0YXRpYyB2b2xhdGlsZSBzaWdfYXRvbWljX3QgaW50ZXJydXB0ZWQ7Ci0jZWxzZSAvKiAhSEFWRV9TSUdfQVRPTUlDX1QgKi8KLSNpZmRlZiBfX1NURENfXwotc3RhdGljIHZvbGF0aWxlIGludCBpbnRlcnJ1cHRlZDsKLSNlbHNlIC8qICFfX1NURENfXyAqLwotc3RhdGljIGludCBpbnRlcnJ1cHRlZDsKLSNlbmRpZiAvKiAhX19TVERDX18gKi8KLSNlbmRpZiAvKiAhSEFWRV9TSUdfQVRPTUlDX1QgKi8KLQotI2lmZGVmIFVTRV9QUk9DRlMKLQotc3RhdGljIHN0cnVjdCB0Y2IgKnBmZDJ0Y2IgUCgoaW50IHBmZCkpOwotc3RhdGljIHZvaWQgcmVhcGVyIFAoKGludCBzaWcpKTsKLXN0YXRpYyB2b2lkIHJlYnVpbGRfcG9sbHYgUCgodm9pZCkpOwotc3RhdGljIHN0cnVjdCBwb2xsZmQgKnBvbGx2OwotCi0jaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0KLXN0YXRpYyB2b2lkIHByb2NfcG9sbF9vcGVuIFAoKHZvaWQpKTsKLXN0YXRpYyB2b2lkIHByb2NfcG9sbGVyIFAoKGludCBwZmQpKTsKLQotc3RydWN0IHByb2NfcG9sbGZkIHsKLQlpbnQgZmQ7Ci0JaW50IHJldmVudHM7Ci0JaW50IHBpZDsKLX07Ci0KLXN0YXRpYyBpbnQgcG9sbGVyX3BpZDsKLXN0YXRpYyBpbnQgcHJvY19wb2xsX3BpcGVbMl0gPSB7IC0xLCAtMSB9OwotCi0jZW5kaWYgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCi0KLSNpZmRlZiBIQVZFX01QX1BST0NGUwotI2RlZmluZSBQT0xMV0FOVAlQT0xMV1JOT1JNCi0jZWxzZQotI2RlZmluZSBQT0xMV0FOVAlQT0xMUFJJCi0jZW5kaWYKLSNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCi0KLXN0YXRpYyB2b2lkCi11c2FnZShvZnAsIGV4aXR2YWwpCi1GSUxFICpvZnA7Ci1pbnQgZXhpdHZhbDsKLXsKLQlmcHJpbnRmKG9mcCwgIlwKLXVzYWdlOiBzdHJhY2UgWy1kZmZoaXFydHR0VHZWeHhdIFstYSBjb2x1bW5dIFstZSBleHByXSAuLi4gWy1vIGZpbGVdXG5cCi0gICAgICAgICAgICAgIFstcCBwaWRdIC4uLiBbLXMgc3Ryc2l6ZV0gWy11IHVzZXJuYW1lXSBbLUUgdmFyPXZhbF0gLi4uXG5cCi0gICAgICAgICAgICAgIFtjb21tYW5kIFthcmcgLi4uXV1cblwKLSAgIG9yOiBzdHJhY2UgLWMgWy1lIGV4cHJdIC4uLiBbLU8gb3ZlcmhlYWRdIFstUyBzb3J0YnldIFstRSB2YXI9dmFsXSAuLi5cblwKLSAgICAgICAgICAgICAgW2NvbW1hbmQgW2FyZyAuLi5dXVxuXAotLWMgLS0gY291bnQgdGltZSwgY2FsbHMsIGFuZCBlcnJvcnMgZm9yIGVhY2ggc3lzY2FsbCBhbmQgcmVwb3J0IHN1bW1hcnlcblwKLS1mIC0tIGZvbGxvdyBmb3JrcywgLWZmIC0tIHdpdGggb3V0cHV0IGludG8gc2VwYXJhdGUgZmlsZXNcblwKLS1GIC0tIGF0dGVtcHQgdG8gZm9sbG93IHZmb3JrcywgLWggLS0gcHJpbnQgaGVscCBtZXNzYWdlXG5cCi0taSAtLSBwcmludCBpbnN0cnVjdGlvbiBwb2ludGVyIGF0IHRpbWUgb2Ygc3lzY2FsbFxuXAotLXEgLS0gc3VwcHJlc3MgbWVzc2FnZXMgYWJvdXQgYXR0YWNoaW5nLCBkZXRhY2hpbmcsIGV0Yy5cblwKLS1yIC0tIHByaW50IHJlbGF0aXZlIHRpbWVzdGFtcCwgLXQgLS0gYWJzb2x1dGUgdGltZXN0YW1wLCAtdHQgLS0gd2l0aCB1c2Vjc1xuXAotLVQgLS0gcHJpbnQgdGltZSBzcGVudCBpbiBlYWNoIHN5c2NhbGwsIC1WIC0tIHByaW50IHZlcnNpb25cblwKLS12IC0tIHZlcmJvc2UgbW9kZTogcHJpbnQgdW5hYmJyZXZpYXRlZCBhcmd2LCBzdGF0LCB0ZXJtaW9bc10sIGV0Yy4gYXJnc1xuXAotLXggLS0gcHJpbnQgbm9uLWFzY2lpIHN0cmluZ3MgaW4gaGV4LCAteHggLS0gcHJpbnQgYWxsIHN0cmluZ3MgaW4gaGV4XG5cCi0tYSBjb2x1bW4gLS0gYWxpZ25tZW50IENPTFVNTiBmb3IgcHJpbnRpbmcgc3lzY2FsbCByZXN1bHRzIChkZWZhdWx0ICVkKVxuXAotLWUgZXhwciAtLSBhIHF1YWxpZnlpbmcgZXhwcmVzc2lvbjogb3B0aW9uPVshXWFsbCBvciBvcHRpb249WyFddmFsMVssdmFsMl0uLi5cblwKLSAgIG9wdGlvbnM6IHRyYWNlLCBhYmJyZXYsIHZlcmJvc2UsIHJhdywgc2lnbmFsLCByZWFkLCBvciB3cml0ZVxuXAotLW8gZmlsZSAtLSBzZW5kIHRyYWNlIG91dHB1dCB0byBGSUxFIGluc3RlYWQgb2Ygc3RkZXJyXG5cCi0tTyBvdmVyaGVhZCAtLSBzZXQgb3ZlcmhlYWQgZm9yIHRyYWNpbmcgc3lzY2FsbHMgdG8gT1ZFUkhFQUQgdXNlY3NcblwKLS1wIHBpZCAtLSB0cmFjZSBwcm9jZXNzIHdpdGggcHJvY2VzcyBpZCBQSUQsIG1heSBiZSByZXBlYXRlZFxuXAotLXMgc3Ryc2l6ZSAtLSBsaW1pdCBsZW5ndGggb2YgcHJpbnQgc3RyaW5ncyB0byBTVFJTSVpFIGNoYXJzIChkZWZhdWx0ICVkKVxuXAotLVMgc29ydGJ5IC0tIHNvcnQgc3lzY2FsbCBjb3VudHMgYnk6IHRpbWUsIGNhbGxzLCBuYW1lLCBub3RoaW5nIChkZWZhdWx0ICVzKVxuXAotLXUgdXNlcm5hbWUgLS0gcnVuIGNvbW1hbmQgYXMgdXNlcm5hbWUgaGFuZGxpbmcgc2V0dWlkIGFuZC9vciBzZXRnaWRcblwKLS1FIHZhcj12YWwgLS0gcHV0IHZhcj12YWwgaW4gdGhlIGVudmlyb25tZW50IGZvciBjb21tYW5kXG5cCi0tRSB2YXIgLS0gcmVtb3ZlIHZhciBmcm9tIHRoZSBlbnZpcm9ubWVudCBmb3IgY29tbWFuZFxuXAotIiAvKiB0aGlzIGlzIGJyb2tlbiwgc28gZG9uJ3QgZG9jdW1lbnQgaXQKLS16IC0tIHByaW50IG9ubHkgc3VjY2VlZGluZyBzeXNjYWxsc1xuXAotICAqLwotLCBERUZBVUxUX0FDT0xVTU4sIERFRkFVTFRfU1RSTEVOLCBERUZBVUxUX1NPUlRCWSk7Ci0JZXhpdChleGl0dmFsKTsKLX0KLQotI2lmZGVmIFNWUjQKLSNpZmRlZiBNSVBTCi12b2lkCi1mb29iYXIoKQotewotfQotI2VuZGlmIC8qIE1JUFMgKi8KLSNlbmRpZiAvKiBTVlI0ICovCi0KLWludAotbWFpbihhcmdjLCBhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107Ci17Ci0JZXh0ZXJuIGludCBvcHRpbmQ7Ci0JZXh0ZXJuIGNoYXIgKm9wdGFyZzsKLQlzdHJ1Y3QgdGNiICp0Y3A7Ci0JaW50IGMsIHBpZCA9IDA7Ci0Jc3RydWN0IHNpZ2FjdGlvbiBzYTsKLQotCXN0YXRpYyBjaGFyIGJ1ZltCVUZTSVpdOwotCi0JLyogQWxsb2NhdGUgdGhlIGluaXRpYWwgdGNidGFiLiAgKi8KLQl0Y2J0YWJzaXplID0gYXJnYzsJLyogU3VyZWx5IGVub3VnaCBmb3IgYWxsIC1wIGFyZ3MuICAqLwotCXRjYnRhYiA9IChzdHJ1Y3QgdGNiICoqKSBtYWxsb2MgKHRjYnRhYnNpemUgKiBzaXplb2YgdGNidGFiWzBdKTsKLQl0Y2J0YWJbMF0gPSAoc3RydWN0IHRjYiAqKSBjYWxsb2MgKHRjYnRhYnNpemUsIHNpemVvZiAqdGNidGFiWzBdKTsKLQlmb3IgKHRjcCA9IHRjYnRhYlswXTsgdGNwIDwgJnRjYnRhYlswXVt0Y2J0YWJzaXplXTsgKyt0Y3ApCi0JCXRjYnRhYlt0Y3AgLSB0Y2J0YWJbMF1dID0gJnRjYnRhYlswXVt0Y3AgLSB0Y2J0YWJbMF1dOwotCi0JcHJvZ25hbWUgPSBhcmd2WzBdOwotCW91dGYgPSBzdGRlcnI7Ci0JaW50ZXJhY3RpdmUgPSAxOwotCXF1YWxpZnkoInRyYWNlPWFsbCIpOwotCXF1YWxpZnkoImFiYnJldj1hbGwiKTsKLQlxdWFsaWZ5KCJ2ZXJib3NlPWFsbCIpOwotCXF1YWxpZnkoInNpZ25hbD1hbGwiKTsKLQlzZXRfc29ydGJ5KERFRkFVTFRfU09SVEJZKTsKLQlzZXRfcGVyc29uYWxpdHkoREVGQVVMVF9QRVJTT05BTElUWSk7Ci0Jd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsCi0JCSIrY2RmRmhpcXJ0VHZWeHphOmU6bzpPOnA6czpTOnU6RToiKSkgIT0gRU9GKSB7Ci0JCXN3aXRjaCAoYykgewotCQljYXNlICdjJzoKLQkJCWNmbGFnKys7Ci0JCQlkdGltZSsrOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2QnOgotCQkJZGVidWcrKzsKLQkJCWJyZWFrOwotCQljYXNlICdmJzoKLQkJCWZvbGxvd2ZvcmsrKzsKLQkJCWJyZWFrOwotCQljYXNlICdGJzoKLQkJCWZvbGxvd3Zmb3JrKys7Ci0JCQlicmVhazsKLQkJY2FzZSAnaCc6Ci0JCQl1c2FnZShzdGRvdXQsIDApOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2knOgotCQkJaWZsYWcrKzsKLQkJCWJyZWFrOwotCQljYXNlICdxJzoKLQkJCXFmbGFnKys7Ci0JCQlicmVhazsKLQkJY2FzZSAncic6Ci0JCQlyZmxhZysrOwotCQkJdGZsYWcrKzsKLQkJCWJyZWFrOwotCQljYXNlICd0JzoKLQkJCXRmbGFnKys7Ci0JCQlicmVhazsKLQkJY2FzZSAnVCc6Ci0JCQlkdGltZSsrOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3gnOgotCQkJeGZsYWcrKzsKLQkJCWJyZWFrOwotCQljYXNlICd2JzoKLQkJCXF1YWxpZnkoImFiYnJldj1ub25lIik7Ci0JCQlicmVhazsKLQkJY2FzZSAnVic6Ci0JCQlwcmludGYoIiVzIC0tIHZlcnNpb24gJXNcbiIsIFBBQ0tBR0VfTkFNRSwgVkVSU0lPTik7Ci0JCQlleGl0KDApOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3onOgotCQkJbm90X2ZhaWxpbmdfb25seSA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSAnYSc6Ci0JCQlhY29sdW1uID0gYXRvaShvcHRhcmcpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2UnOgotCQkJcXVhbGlmeShvcHRhcmcpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ28nOgotCQkJb3V0Zm5hbWUgPSBzdHJkdXAob3B0YXJnKTsKLQkJCWJyZWFrOwotCQljYXNlICdPJzoKLQkJCXNldF9vdmVyaGVhZChhdG9pKG9wdGFyZykpOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ3AnOgotCQkJaWYgKChwaWQgPSBhdG9pKG9wdGFyZykpIDw9IDApIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBJbnZhbGlkIHByb2Nlc3MgaWQ6ICVzXG4iLAotCQkJCQlwcm9nbmFtZSwgb3B0YXJnKTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChwaWQgPT0gZ2V0cGlkKCkpIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBJJ20gc29ycnksIEkgY2FuJ3QgbGV0IHlvdSBkbyB0aGF0LCBEYXZlLlxuIiwgcHJvZ25hbWUpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKCh0Y3AgPSBhbGxvY3RjYihwaWQpKSA9PSBOVUxMKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwKLQkJCQkJcHJvZ25hbWUpOwotCQkJCWV4aXQoMSk7Ci0JCQl9Ci0JCQl0Y3AtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKLQkJCXBmbGFnX3NlZW4rKzsKLQkJCWJyZWFrOwotCQljYXNlICdzJzoKLQkJCW1heF9zdHJsZW4gPSBhdG9pKG9wdGFyZyk7Ci0JCQlpZiAobWF4X3N0cmxlbiA8IDApIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJIiVzOiBpbnZhbGlkIC1zIGFyZ3VtZW50OiAlc1xuIiwKLQkJCQkJcHJvZ25hbWUsIG9wdGFyZyk7Ci0JCQkJZXhpdCgxKTsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNlICdTJzoKLQkJCXNldF9zb3J0Ynkob3B0YXJnKTsKLQkJCWJyZWFrOwotCQljYXNlICd1JzoKLQkJCXVzZXJuYW1lID0gc3RyZHVwKG9wdGFyZyk7Ci0JCQlicmVhazsKLQkJY2FzZSAnRSc6Ci0JCQlpZiAocHV0ZW52KG9wdGFyZykgPCAwKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwKLQkJCQkJcHJvZ25hbWUpOwotCQkJCWV4aXQoMSk7Ci0JCQl9Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXVzYWdlKHN0ZGVyciwgMSk7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmIChvcHRpbmQgPT0gYXJnYyAmJiAhcGZsYWdfc2VlbikKLQkJdXNhZ2Uoc3RkZXJyLCAxKTsKLQotCS8qIFNlZSBpZiB0aGV5IHdhbnQgdG8gcnVuIGFzIGFub3RoZXIgdXNlci4gKi8KLQlpZiAodXNlcm5hbWUgIT0gTlVMTCkgewotCQlzdHJ1Y3QgcGFzc3dkICpwZW50OwotCi0JCWlmIChnZXR1aWQoKSAhPSAwIHx8IGdldGV1aWQoKSAhPSAwKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiJXM6IHlvdSBtdXN0IGJlIHJvb3QgdG8gdXNlIHRoZSAtdSBvcHRpb25cbiIsCi0JCQkJcHJvZ25hbWUpOwotCQkJZXhpdCgxKTsKLQkJfQotCQlpZiAoKHBlbnQgPSBnZXRwd25hbSh1c2VybmFtZSkpID09IE5VTEwpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbm5vdCBmaW5kIHVzZXIgYCVzJ1xuIiwKLQkJCQlwcm9nbmFtZSwgb3B0YXJnKTsKLQkJCWV4aXQoMSk7Ci0JCX0KLQkJcnVuX3VpZCA9IHBlbnQtPnB3X3VpZDsKLQkJcnVuX2dpZCA9IHBlbnQtPnB3X2dpZDsKLQl9Ci0JZWxzZSB7Ci0JCXJ1bl91aWQgPSBnZXR1aWQoKTsKLQkJcnVuX2dpZCA9IGdldGdpZCgpOwotCX0KLQotI2lmbmRlZiBTVlI0Ci0Jc2V0cmV1aWQoZ2V0ZXVpZCgpLCBnZXR1aWQoKSk7Ci0jZW5kaWYKLQotCS8qIENoZWNrIGlmIHRoZXkgd2FudCB0byByZWRpcmVjdCB0aGUgb3V0cHV0LiAqLwotCWlmIChvdXRmbmFtZSkgewotCQlsb25nIGY7Ci0KLQkJLyogU2VlIGlmIHRoZXkgd2FudCB0byBwaXBlIHRoZSBvdXRwdXQuICovCi0JCWlmIChvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKSB7Ci0JCQkvKgotCQkJICogV2UgY2FuJ3QgZG8gdGhlIDxvdXRmbmFtZT4uUElEIGZ1bm55IGJ1c2luZXNzCi0JCQkgKiB3aGVuIHVzaW5nIHBvcGVuLCBzbyBwcm9oaWJpdCBpdC4KLQkJCSAqLwotCQkJaWYgKGZvbGxvd2ZvcmsgPiAxKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJcCi0lczogcGlwaW5nIHRoZSBvdXRwdXQgYW5kIC1mZiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnNcbiIsCi0JCQkJCXByb2duYW1lKTsKLQkJCQlleGl0KDEpOwotCQkJfQotCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwib3V0cHV0IHRvIGEgcGlwZSBub3Qgc3VwcG9ydGVkIG9uIGFuZHJvaWQuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoLTEpOwotI2Vsc2UKLQkJCWlmICgob3V0ZiA9IHBvcGVuKG91dGZuYW1lICsgMSwgInciKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IHBvcGVuICclcyc6ICVzXG4iLAotCQkJCQlwcm9nbmFtZSwgb3V0Zm5hbWUgKyAxLAotCQkJCQlzdHJlcnJvcihlcnJubykpOwotCQkJCWV4aXQoMSk7Ci0JCQl9Ci0jZW5kaWYKLQkJfQotCQllbHNlIGlmICgob3V0ZiA9IGZvcGVuKG91dGZuYW1lLCAidyIpKSA9PSBOVUxMKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBmb3BlbiAnJXMnOiAlc1xuIiwKLQkJCQlwcm9nbmFtZSwgb3V0Zm5hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlleGl0KDEpOwotCQl9Ci0KLQkJaWYgKChmPWZjbnRsKGZpbGVubyhvdXRmKSwgRl9HRVRGRCkpIDwgMCApIHsKLQkJCXBlcnJvcigiZmFpbGVkIHRvIGdldCBmbGFncyBmb3Igb3V0cHV0ZmlsZSIpOwotCQkJZXhpdCgxKTsKLQkJfQotCi0JCWlmIChmY250bChmaWxlbm8ob3V0ZiksIEZfU0VURkQsIGZ8RkRfQ0xPRVhFQykgPCAwICkgewotCQkJcGVycm9yKCJmYWlsZWQgdG8gc2V0IGZsYWdzIGZvciBvdXRwdXRmaWxlIik7Ci0JCQlleGl0KDEpOwotCQl9Ci0JfQotCi0jaWZuZGVmIFNWUjQKLQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKLSNlbmRpZgotCi0JaWYgKCFvdXRmbmFtZSB8fCBvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKQotCQlzZXR2YnVmKG91dGYsIGJ1ZiwgX0lPTEJGLCBCVUZTSVopOwotCWlmIChvdXRmbmFtZSAmJiBvcHRpbmQgPCBhcmdjKSB7Ci0JCWludGVyYWN0aXZlID0gMDsKLQkJcWZsYWcgPSAxOwotCX0KLQotCWZvciAoYyA9IDA7IGMgPCB0Y2J0YWJzaXplOyBjKyspIHsKLQkJdGNwID0gdGNidGFiW2NdOwotCQkvKiBSZWluaXRpYWxpemUgdGhlIG91dHB1dCBzaW5jZSBpdCBtYXkgaGF2ZSBjaGFuZ2VkLiAqLwotCQl0Y3AtPm91dGYgPSBvdXRmOwotCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKSB8fCAhKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpKQotCQkJY29udGludWU7Ci0jaWZkZWYgVVNFX1BST0NGUwotCQlpZiAocHJvY19vcGVuKHRjcCwgMSkgPCAwKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgInRyb3VibGUgb3BlbmluZyBwcm9jIGZpbGVcbiIpOwotCQkJZHJvcHRjYih0Y3ApOwotCQkJY29udGludWU7Ci0JCX0KLSNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCi0jIGlmZGVmIExJTlVYCi0JCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZm9sbG93Zm9yaykgewotCQkJY2hhciBwcm9jZGlyW01BWFBBVEhMRU5dOwotCQkJRElSICpkaXI7Ci0JCQlzcHJpbnRmKHByb2NkaXIsICIvcHJvYy8lZC90YXNrIiwgdGNwLT5waWQpOwotCQkJZGlyID0gb3BlbmRpcihwcm9jZGlyKTsKLQkJCWlmIChkaXIgIT0gTlVMTCkgewotCQkJCXVuc2lnbmVkIGludCBudGlkID0gMCwgbmVyciA9IDA7Ci0JCQkJc3RydWN0IGRpcmVudCAqZGU7Ci0JCQkJaW50IHRpZDsKLQkJCQl3aGlsZSAoKGRlID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKSB7Ci0JCQkJCWlmIChkZS0+ZF9maWxlbm8gPT0gMCB8fAotCQkJCQkgICAgZGUtPmRfbmFtZVswXSA9PSAnLicpCi0JCQkJCQljb250aW51ZTsKLQkJCQkJdGlkID0gYXRvaShkZS0+ZF9uYW1lKTsKLQkJCQkJaWYgKHRpZCA8PSAwKQotCQkJCQkJY29udGludWU7Ci0JCQkJCSsrbnRpZDsKLQkJCQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCB0aWQsCi0JCQkJCQkgICAoY2hhciAqKSAxLCAwKSA8IDApCi0JCQkJCQkrK25lcnI7Ci0JCQkJCWVsc2UgaWYgKHRpZCAhPSB0Y2J0YWJbY10tPnBpZCkgewotCQkJCQkJaWYgKG5wcm9jcyA9PSB0Y2J0YWJzaXplICYmCi0JCQkJCQkgICAgZXhwYW5kX3RjYnRhYigpKQotCQkJCQkJCXRjcCA9IE5VTEw7Ci0JCQkJCQllbHNlCi0JCQkJCQkJdGNwID0gYWxsb2N0Y2IodGlkKTsKLQkJCQkJCWlmICh0Y3AgPT0gTlVMTCkgewotCQkJCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsCi0JCQkJCQkJCXByb2duYW1lKTsKLQkJCQkJCQlleGl0KDEpOwotCQkJCQkJfQotCQkJCQkJdGNwLT5mbGFncyB8PSBUQ0JfQVRUQUNIRUR8VENCX0NMT05FX1RIUkVBRHxUQ0JfQ0xPTkVfREVUQUNIRUR8VENCX0ZPTExPV0ZPUks7Ci0JCQkJCQl0Y2J0YWJbY10tPm5jaGlsZHJlbisrOwotCQkJCQkJdGNidGFiW2NdLT5uY2xvbmVfdGhyZWFkcysrOwotCQkJCQkJdGNidGFiW2NdLT5uY2xvbmVfZGV0YWNoZWQrKzsKLQkJCQkJCXRjcC0+cGFyZW50ID0gdGNidGFiW2NdOwotCQkJCQl9Ci0JCQkJfQotCQkJCWNsb3NlZGlyKGRpcik7Ci0JCQkJaWYgKG5lcnIgPT0gbnRpZCkgewotCQkJCQlwZXJyb3IoImF0dGFjaDogcHRyYWNlKFBUUkFDRV9BVFRBQ0gsIC4uLikiKTsKLQkJCQkJZHJvcHRjYih0Y3ApOwotCQkJCQljb250aW51ZTsKLQkJCQl9Ci0JCQkJaWYgKCFxZmxhZykgewotCQkJCQludGlkIC09IG5lcnI7Ci0JCQkJCWlmIChudGlkID4gMSkKLQkJCQkJCWZwcmludGYoc3RkZXJyLCAiXAotUHJvY2VzcyAldSBhdHRhY2hlZCB3aXRoICV1IHRocmVhZHMgLSBpbnRlcnJ1cHQgdG8gcXVpdFxuIiwKLQkJCQkJCQl0Y3AtPnBpZCwgbnRpZCk7Ci0JCQkJCWVsc2UKLQkJCQkJCWZwcmludGYoc3RkZXJyLCAiXAotUHJvY2VzcyAldSBhdHRhY2hlZCAtIGludGVycnVwdCB0byBxdWl0XG4iLAotCQkJCQkJCXRjcC0+cGlkKTsKLQkJCQl9Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0JCX0KLSMgZW5kaWYKLQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7Ci0JCQlwZXJyb3IoImF0dGFjaDogcHRyYWNlKFBUUkFDRV9BVFRBQ0gsIC4uLikiKTsKLQkJCWRyb3B0Y2IodGNwKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQkJaWYgKCFxZmxhZykKLQkJCWZwcmludGYoc3RkZXJyLAotCQkJCSJQcm9jZXNzICV1IGF0dGFjaGVkIC0gaW50ZXJydXB0IHRvIHF1aXRcbiIsCi0JCQkJdGNwLT5waWQpOwotCX0KLQotCWlmICghcGZsYWdfc2VlbikgewotCQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwotCQljaGFyICpmaWxlbmFtZTsKLQkJY2hhciBwYXRobmFtZVtNQVhQQVRITEVOXTsKLQotCQlmaWxlbmFtZSA9IGFyZ3Zbb3B0aW5kXTsKLQkJaWYgKHN0cmNocihmaWxlbmFtZSwgJy8nKSkgewotCQkJaWYgKHN0cmxlbihmaWxlbmFtZSkgPiBzaXplb2YgcGF0aG5hbWUgLSAxKSB7Ci0JCQkJZXJybm8gPSBFTkFNRVRPT0xPTkc7Ci0JCQkJcGVycm9yKCJzdHJhY2U6IGV4ZWMiKTsKLQkJCQlleGl0KDEpOwotCQkJfQotCQkJc3RyY3B5KHBhdGhuYW1lLCBmaWxlbmFtZSk7Ci0JCX0KLSNpZmRlZiBVU0VfREVCVUdHSU5HX0VYRUMKLQkJLyoKLQkJICogRGVidWdnZXJzIGN1c3RvbWFyaWx5IGNoZWNrIHRoZSBjdXJyZW50IGRpcmVjdG9yeQotCQkgKiBmaXJzdCByZWdhcmRsZXNzIG9mIHRoZSBwYXRoIGJ1dCBkb2luZyB0aGF0IGdpdmVzCi0JCSAqIHNlY3VyaXR5IGdlZWtzIGEgcGFuaWMgYXR0YWNrLgotCQkgKi8KLQkJZWxzZSBpZiAoc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpID09IDApCi0JCQlzdHJjcHkocGF0aG5hbWUsIGZpbGVuYW1lKTsKLSNlbmRpZiAvKiBVU0VfREVCVUdHSU5HX0VYRUMgKi8KLQkJZWxzZSB7Ci0JCQljaGFyICpwYXRoOwotCQkJaW50IG0sIG4sIGxlbjsKLQotCQkJZm9yIChwYXRoID0gZ2V0ZW52KCJQQVRIIik7IHBhdGggJiYgKnBhdGg7IHBhdGggKz0gbSkgewotCQkJCWlmIChzdHJjaHIocGF0aCwgJzonKSkgewotCQkJCQluID0gc3RyY2hyKHBhdGgsICc6JykgLSBwYXRoOwotCQkJCQltID0gbiArIDE7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQkJbSA9IG4gPSBzdHJsZW4ocGF0aCk7Ci0JCQkJaWYgKG4gPT0gMCkgewotCQkJCQlnZXRjd2QocGF0aG5hbWUsIE1BWFBBVEhMRU4pOwotCQkJCQlsZW4gPSBzdHJsZW4ocGF0aG5hbWUpOwotCQkJCX0KLQkJCQllbHNlIGlmIChuID4gc2l6ZW9mIHBhdGhuYW1lIC0gMSkKLQkJCQkJY29udGludWU7Ci0JCQkJZWxzZSB7Ci0JCQkJCXN0cm5jcHkocGF0aG5hbWUsIHBhdGgsIG4pOwotCQkJCQlsZW4gPSBuOwotCQkJCX0KLQkJCQlpZiAobGVuICYmIHBhdGhuYW1lW2xlbiAtIDFdICE9ICcvJykKLQkJCQkJcGF0aG5hbWVbbGVuKytdID0gJy8nOwotCQkJCXN0cmNweShwYXRobmFtZSArIGxlbiwgZmlsZW5hbWUpOwotCQkJCWlmIChzdGF0KHBhdGhuYW1lLCAmc3RhdGJ1ZikgPT0gMCAmJgotCQkJCSAgICAvKiBBY2NlcHQgb25seSByZWd1bGFyIGZpbGVzCi0JCQkJICAgICAgIHdpdGggc29tZSBleGVjdXRlIGJpdHMgc2V0LgotCQkJCSAgICAgICBYWFggbm90IHBlcmZlY3QsIG1pZ2h0IHN0aWxsIGZhaWwgKi8KLQkJCQkgICAgU19JU1JFRyhzdGF0YnVmLnN0X21vZGUpICYmCi0JCQkJICAgIChzdGF0YnVmLnN0X21vZGUgJiAwMTExKSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQkJaWYgKHN0YXQocGF0aG5hbWUsICZzdGF0YnVmKSA8IDApIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiJXM6ICVzOiBjb21tYW5kIG5vdCBmb3VuZFxuIiwKLQkJCQlwcm9nbmFtZSwgZmlsZW5hbWUpOwotCQkJZXhpdCgxKTsKLQkJfQotCQlzd2l0Y2ggKHBpZCA9IGZvcmsoKSkgewotCQljYXNlIC0xOgotCQkJcGVycm9yKCJzdHJhY2U6IGZvcmsiKTsKLQkJCWNsZWFudXAoKTsKLQkJCWV4aXQoMSk7Ci0JCQlicmVhazsKLQkJY2FzZSAwOiB7Ci0jaWZkZWYgVVNFX1BST0NGUwotCQkgICAgICAgIGlmIChvdXRmICE9IHN0ZGVycikgY2xvc2UgKGZpbGVubyAob3V0ZikpOwotI2lmZGVmIE1JUFMKLQkJCS8qIEtsdWRnZSBmb3IgU0dJLCBzZWUgcHJvY19vcGVuIGZvciBkZXRhaWxzLiAqLwotCQkJc2Euc2FfaGFuZGxlciA9IGZvb2JhcjsKLQkJCXNhLnNhX2ZsYWdzID0gMDsKLQkJCXNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKLQkJCXNpZ2FjdGlvbihTSUdJTlQsICZzYSwgTlVMTCk7Ci0jZW5kaWYgLyogTUlQUyAqLwotI2lmbmRlZiBGUkVFQlNECi0JCQlwYXVzZSgpOwotI2Vsc2UgLyogRlJFRUJTRCAqLwotCQkJa2lsbChnZXRwaWQoKSwgU0lHU1RPUCk7IC8qIHN0b3AgSEVSRSAqLwotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLSNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCi0JCQlpZiAob3V0ZiE9c3RkZXJyKQotCQkJCWNsb3NlKGZpbGVubyAob3V0ZikpOwotCi0JCQlpZiAocHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAwLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCQlwZXJyb3IoInN0cmFjZTogcHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAuLi4pIik7Ci0JCQkJcmV0dXJuIC0xOwotCQkJfQotCQkJaWYgKGRlYnVnKQotCQkJCWtpbGwoZ2V0cGlkKCksIFNJR1NUT1ApOwotCi0JCQlpZiAodXNlcm5hbWUgIT0gTlVMTCB8fCBnZXRldWlkKCkgPT0gMCkgewotCQkJCXVpZF90IHJ1bl9ldWlkID0gcnVuX3VpZDsKLQkJCQlnaWRfdCBydW5fZWdpZCA9IHJ1bl9naWQ7Ci0KLQkJCQlpZiAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JU1VJRCkKLQkJCQkJcnVuX2V1aWQgPSBzdGF0YnVmLnN0X3VpZDsKLQkJCQlpZiAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JU0dJRCkKLQkJCQkJcnVuX2VnaWQgPSBzdGF0YnVmLnN0X2dpZDsKLQotCQkJCS8qCi0JCQkJICogSXQgaXMgaW1wb3J0YW50IHRvIHNldCBncm91cHMgYmVmb3JlIHdlCi0JCQkJICogbG9zZSBwcml2aWxlZ2VzIG9uIHNldHVpZC4KLQkJCQkgKi8KLQkJCQlpZiAodXNlcm5hbWUgIT0gTlVMTCkgewotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLQkJCQkJaWYgKGluaXRncm91cHModXNlcm5hbWUsIHJ1bl9naWQpIDwgMCkgewotCQkJCQkJcGVycm9yKCJpbml0Z3JvdXBzIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0JCQkJCWlmIChzZXRyZWdpZChydW5fZ2lkLCBydW5fZWdpZCkgPCAwKSB7Ci0JCQkJCQlwZXJyb3IoInNldHJlZ2lkIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0JCQkJCWlmIChzZXRyZXVpZChydW5fdWlkLCBydW5fZXVpZCkgPCAwKSB7Ci0JCQkJCQlwZXJyb3IoInNldHJldWlkIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0JCQkJfQotCQkJfQotCQkJZWxzZQotCQkJCXNldHJldWlkKHJ1bl91aWQsIHJ1bl91aWQpOwotCi0JCQkvKgotCQkJICogSW5kdWNlIGFuIGltbWVkaWF0ZSBzdG9wIHNvIHRoYXQgdGhlIHBhcmVudAotCQkJICogd2lsbCByZXN1bWUgdXMgd2l0aCBQVFJBQ0VfU1lTQ0FMTCBhbmQgZGlzcGxheQotCQkJICogdGhpcyBleGVjdmUgY2FsbCBub3JtYWxseS4KLQkJCSAqLwotCQkJa2lsbChnZXRwaWQoKSwgU0lHU1RPUCk7Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQotCQkJZXhlY3YocGF0aG5hbWUsICZhcmd2W29wdGluZF0pOwotCQkJcGVycm9yKCJzdHJhY2U6IGV4ZWMiKTsKLQkJCV9leGl0KDEpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZGVmYXVsdDoKLQkJCWlmICgodGNwID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAidGNiIHRhYmxlIGZ1bGxcbiIpOwotCQkJCWNsZWFudXAoKTsKLQkJCQlleGl0KDEpOwotCQkJfQotI2lmZGVmIFVTRV9QUk9DRlMKLQkJCWlmIChwcm9jX29wZW4odGNwLCAwKSA8IDApIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInRyb3VibGUgb3BlbmluZyBwcm9jIGZpbGVcbiIpOwotCQkJCWNsZWFudXAoKTsKLQkJCQlleGl0KDEpOwotCQkJfQotI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0Jc2lnZW1wdHlzZXQoJmVtcHR5X3NldCk7Ci0Jc2lnZW1wdHlzZXQoJmJsb2NrZWRfc2V0KTsKLQlzYS5zYV9oYW5kbGVyID0gU0lHX0lHTjsKLQlzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7Ci0Jc2Euc2FfZmxhZ3MgPSAwOwotCXNpZ2FjdGlvbihTSUdUVE9VLCAmc2EsIE5VTEwpOwotCXNpZ2FjdGlvbihTSUdUVElOLCAmc2EsIE5VTEwpOwotCWlmIChpbnRlcmFjdGl2ZSkgewotCQlzaWdhZGRzZXQoJmJsb2NrZWRfc2V0LCBTSUdIVVApOwotCQlzaWdhZGRzZXQoJmJsb2NrZWRfc2V0LCBTSUdJTlQpOwotCQlzaWdhZGRzZXQoJmJsb2NrZWRfc2V0LCBTSUdRVUlUKTsKLQkJc2lnYWRkc2V0KCZibG9ja2VkX3NldCwgU0lHUElQRSk7Ci0JCXNpZ2FkZHNldCgmYmxvY2tlZF9zZXQsIFNJR1RFUk0pOwotCQlzYS5zYV9oYW5kbGVyID0gaW50ZXJydXB0OwotI2lmZGVmIFNVTk9TNAotCQkvKiBQT1NJWCBzaWduYWxzIG9uIHN1bm9zNC4xIGFyZSBhIGxpdHRsZSBicm9rZW4uICovCi0JCXNhLnNhX2ZsYWdzID0gU0FfSU5URVJSVVBUOwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCX0KLQlzaWdhY3Rpb24oU0lHSFVQLCAmc2EsIE5VTEwpOwotCXNpZ2FjdGlvbihTSUdJTlQsICZzYSwgTlVMTCk7Ci0Jc2lnYWN0aW9uKFNJR1FVSVQsICZzYSwgTlVMTCk7Ci0Jc2lnYWN0aW9uKFNJR1BJUEUsICZzYSwgTlVMTCk7Ci0Jc2lnYWN0aW9uKFNJR1RFUk0sICZzYSwgTlVMTCk7Ci0jaWZkZWYgVVNFX1BST0NGUwotCXNhLnNhX2hhbmRsZXIgPSByZWFwZXI7Ci0Jc2lnYWN0aW9uKFNJR0NITEQsICZzYSwgTlVMTCk7Ci0jZWxzZQotCS8qIE1ha2Ugc3VyZSBTSUdDSExEIGhhcyB0aGUgZGVmYXVsdCBhY3Rpb24gc28gdGhhdCB3YWl0cGlkCi0JICAgZGVmaW5pdGVseSB3b3JrcyB3aXRob3V0IGxvc2luZyB0cmFjayBvZiBjaGlsZHJlbi4gIFRoZSB1c2VyCi0JICAgc2hvdWxkIG5vdCBoYXZlIGdpdmVuIHVzIGEgYm9ndXMgc3RhdGUgdG8gaW5oZXJpdCwgYnV0IGhlIG1pZ2h0Ci0JICAgaGF2ZS4gIEFyZ3VhYmx5IHdlIHNob3VsZCBkZXRlY3QgU0lHX0lHTiBoZXJlIGFuZCBwYXNzIGl0IG9uCi0JICAgdG8gY2hpbGRyZW4sIGJ1dCBwcm9iYWJseSBub29uZSByZWFsbHkgbmVlZHMgdGhhdC4gICovCi0Jc2Euc2FfaGFuZGxlciA9IFNJR19ERkw7Ci0Jc2lnYWN0aW9uKFNJR0NITEQsICZzYSwgTlVMTCk7Ci0jZW5kaWYgLyogVVNFX1BST0NGUyAqLwotCi0JaWYgKHRyYWNlKCkgPCAwKQotCQlleGl0KDEpOwotCWNsZWFudXAoKTsKLQlleGl0KDApOwotfQotCi12b2lkCi1uZXdvdXRmKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQljaGFyIG5hbWVbTUFYUEFUSExFTl07Ci0JRklMRSAqZnA7Ci0KLQlpZiAob3V0Zm5hbWUgJiYgZm9sbG93Zm9yayA+IDEpIHsKLQkJc3ByaW50ZihuYW1lLCAiJXMuJXUiLCBvdXRmbmFtZSwgdGNwLT5waWQpOwotI2lmbmRlZiBTVlI0Ci0JCXNldHJldWlkKGdldGV1aWQoKSwgZ2V0dWlkKCkpOwotI2VuZGlmCi0JCWZwID0gZm9wZW4obmFtZSwgInciKTsKLSNpZm5kZWYgU1ZSNAotCQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKLSNlbmRpZgotCQlpZiAoZnAgPT0gTlVMTCkgewotCQkJcGVycm9yKCJmb3BlbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0JCXRjcC0+b3V0ZiA9IGZwOwotCX0KLQlyZXR1cm47Ci19Ci0KLWludAotZXhwYW5kX3RjYnRhYigpCi17Ci0JLyogQWxsb2NhdGUgc29tZSBtb3JlIFRDQnMgYW5kIGV4cGFuZCB0aGUgdGFibGUuCi0JICAgV2UgZG9uJ3Qgd2FudCB0byByZWxvY2F0ZSB0aGUgVENCcyBiZWNhdXNlIG91cgotCSAgIGNhbGxlcnMgaGF2ZSBwb2ludGVycyBhbmQgaXQgd291bGQgYmUgYSBwYWluLgotCSAgIFNvIHRjYnRhYiBpcyBhIHRhYmxlIG9mIHBvaW50ZXJzLiAgU2luY2Ugd2UgbmV2ZXIKLQkgICBmcmVlIHRoZSBUQ0JzLCB3ZSBhbGxvY2F0ZSBhIHNpbmdsZSBjaHVuayBvZiBtYW55LiAgKi8KLQlzdHJ1Y3QgdGNiICoqbmV3dGFiID0gKHN0cnVjdCB0Y2IgKiopCi0JCXJlYWxsb2ModGNidGFiLCAyICogdGNidGFic2l6ZSAqIHNpemVvZiB0Y2J0YWJbMF0pOwotCXN0cnVjdCB0Y2IgKm5ld3RjYnMgPSAoc3RydWN0IHRjYiAqKSBjYWxsb2ModGNidGFic2l6ZSwKLQkJCQkJCSAgICBzaXplb2YgKm5ld3RjYnMpOwotCWludCBpOwotCWlmIChuZXd0YWIgPT0gTlVMTCB8fCBuZXd0Y2JzID09IE5VTEwpIHsKLQkJaWYgKG5ld3RhYiAhPSBOVUxMKQotCQkJZnJlZShuZXd0YWIpOwotCQlyZXR1cm4gMTsKLQl9Ci0JZm9yIChpID0gdGNidGFic2l6ZTsgaSA8IDIgKiB0Y2J0YWJzaXplOyArK2kpCi0JCW5ld3RhYltpXSA9ICZuZXd0Y2JzW2kgLSB0Y2J0YWJzaXplXTsKLQl0Y2J0YWJzaXplICo9IDI7Ci0JdGNidGFiID0gbmV3dGFiOwotCi0JcmV0dXJuIDA7Ci19Ci0KLQotc3RydWN0IHRjYiAqCi1hbGxvY3RjYihwaWQpCi1pbnQgcGlkOwotewotCWludCBpOwotCXN0cnVjdCB0Y2IgKnRjcDsKLQotCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKLQkJdGNwID0gdGNidGFiW2ldOwotCQlpZiAoKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5VU0UpID09IDApIHsKLQkJCXRjcC0+cGlkID0gcGlkOwotCQkJdGNwLT5wYXJlbnQgPSBOVUxMOwotCQkJdGNwLT5uY2hpbGRyZW4gPSAwOwotCQkJdGNwLT5uem9tYmllcyA9IDA7Ci0jaWZkZWYgVENCX0NMT05FX1RIUkVBRAotCQkJdGNwLT5uY2xvbmVfdGhyZWFkcyA9IHRjcC0+bmNsb25lX2RldGFjaGVkID0gMDsKLQkJCXRjcC0+bmNsb25lX3dhaXRpbmcgPSAwOwotI2VuZGlmCi0JCQl0Y3AtPmZsYWdzID0gVENCX0lOVVNFIHwgVENCX1NUQVJUVVA7Ci0JCQl0Y3AtPm91dGYgPSBvdXRmOyAvKiBJbml0aWFsaXNlIHRvIGN1cnJlbnQgb3V0IGZpbGUgKi8KLQkJCXRjcC0+c3RpbWUudHZfc2VjID0gMDsKLQkJCXRjcC0+c3RpbWUudHZfdXNlYyA9IDA7Ci0JCQl0Y3AtPnBmZCA9IC0xOwotCQkJbnByb2NzKys7Ci0JCQlyZXR1cm4gdGNwOwotCQl9Ci0JfQotCXJldHVybiBOVUxMOwotfQotCi0jaWZkZWYgVVNFX1BST0NGUwotaW50Ci1wcm9jX29wZW4odGNwLCBhdHRhY2hpbmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgYXR0YWNoaW5nOwotewotCWNoYXIgcHJvY1szMl07Ci0JbG9uZyBhcmc7Ci0jaWZkZWYgU1ZSNAotCWludCBpOwotCXN5c3NldF90IHN5c2NhbGxzOwotCXNpZ3NldF90IHNpZ25hbHM7Ci0JZmx0c2V0X3QgZmF1bHRzOwotI2VuZGlmCi0jaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0Jc3RhdGljIGludCBsYXN0X3BmZDsKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLQkvKiBPcGVuIHRoZSBwcm9jZXNzIHBzZXVkby1maWxlcyBpbiAvcHJvYy4gKi8KLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9jdGwiLCB0Y3AtPnBpZCk7Ci0JaWYgKCh0Y3AtPnBmZCA9IG9wZW4ocHJvYywgT19XUk9OTFl8T19FWENMKSkgPCAwKSB7Ci0JCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkLCBGX0dFVEZEKSkgPCAwKSB7Ci0JCXBlcnJvcigiRl9HRVRGRCIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmIChmY250bCh0Y3AtPnBmZCwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQlwZXJyb3IoIkZfU0VURkQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9zdGF0dXMiLCB0Y3AtPnBpZCk7Ci0JaWYgKCh0Y3AtPnBmZF9zdGF0ID0gb3Blbihwcm9jLCBPX1JET05MWXxPX0VYQ0wpKSA8IDApIHsKLQkJcGVycm9yKCJzdHJhY2U6IG9wZW4oXCIvcHJvYy8uLi5cIiwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmICgoYXJnID0gZmNudGwodGNwLT5wZmRfc3RhdCwgRl9HRVRGRCkpIDwgMCkgewotCQlwZXJyb3IoIkZfR0VURkQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoZmNudGwodGNwLT5wZmRfc3RhdCwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQlwZXJyb3IoIkZfU0VURkQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9hcyIsIHRjcC0+cGlkKTsKLQlpZiAoKHRjcC0+cGZkX2FzID0gb3Blbihwcm9jLCBPX1JET05MWXxPX0VYQ0wpKSA8IDApIHsKLQkJcGVycm9yKCJzdHJhY2U6IG9wZW4oXCIvcHJvYy8uLi5cIiwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmICgoYXJnID0gZmNudGwodGNwLT5wZmRfYXMsIEZfR0VURkQpKSA8IDApIHsKLQkJcGVycm9yKCJGX0dFVEZEIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKGZjbnRsKHRjcC0+cGZkX2FzLCBGX1NFVEZELCBhcmd8RkRfQ0xPRVhFQykgPCAwKSB7Ci0JCXBlcnJvcigiRl9TRVRGRCIpOwotCQlyZXR1cm4gLTE7Ci0JfQotI2Vsc2UKLQkvKiBPcGVuIHRoZSBwcm9jZXNzIHBzZXVkby1maWxlIGluIC9wcm9jLiAqLwotI2lmbmRlZiBGUkVFQlNECi0Jc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQiLCB0Y3AtPnBpZCk7Ci0JaWYgKCh0Y3AtPnBmZCA9IG9wZW4ocHJvYywgT19SRFdSfE9fRVhDTCkpIDwgMCkgewotI2Vsc2UgLyogRlJFRUJTRCAqLwotCXNwcmludGYocHJvYywgIi9wcm9jLyVkL21lbSIsIHRjcC0+cGlkKTsKLQlpZiAoKHRjcC0+cGZkID0gb3Blbihwcm9jLCBPX1JEV1IpKSA8IDApIHsKLSNlbmRpZiAvKiBGUkVFQlNEICovCi0JCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkLCBGX0dFVEZEKSkgPCAwKSB7Ci0JCXBlcnJvcigiRl9HRVRGRCIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmIChmY250bCh0Y3AtPnBmZCwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQlwZXJyb3IoIkZfU0VURkQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNlbmRpZgotI2lmZGVmIEZSRUVCU0QKLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9yZWdzIiwgdGNwLT5waWQpOwotCWlmICgodGNwLT5wZmRfcmVnID0gb3Blbihwcm9jLCBPX1JET05MWSkpIDwgMCkgewotCQlwZXJyb3IoInN0cmFjZTogb3BlbihcIi9wcm9jLy4uLi9yZWdzXCIsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoY2ZsYWcpIHsKLQkJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgdGNwLT5waWQpOwotCQlpZiAoKHRjcC0+cGZkX3N0YXR1cyA9IG9wZW4ocHJvYywgT19SRE9OTFkpKSA8IDApIHsKLQkJCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uL3N0YXR1c1wiLCAuLi4pIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQl9IGVsc2UKLQkJdGNwLT5wZmRfc3RhdHVzID0gLTE7Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCXJlYnVpbGRfcG9sbHYoKTsKLQlpZiAoIWF0dGFjaGluZykgewotCQkvKgotCQkgKiBXYWl0IGZvciB0aGUgY2hpbGQgdG8gcGF1c2UuICBCZWNhdXNlIG9mIGEgcmFjZQotCQkgKiBjb25kaXRpb24gd2UgaGF2ZSB0byBwb2xsIGZvciB0aGUgZXZlbnQuCi0JCSAqLwotCQlmb3IgKDs7KSB7Ci0JCQlpZiAoSU9DVExfU1RBVFVTICh0Y3ApIDwgMCkgewotCQkJCXBlcnJvcigic3RyYWNlOiBQSU9DU1RBVFVTIik7Ci0JCQkJcmV0dXJuIC0xOwotCQkJfQotCQkJaWYgKHRjcC0+c3RhdHVzLlBSX0ZMQUdTICYgUFJfQVNMRUVQKQotCQkJICAgIGJyZWFrOwotCQl9Ci0JfQotI2lmbmRlZiBGUkVFQlNECi0JLyogU3RvcCB0aGUgcHJvY2VzcyBzbyB0aGF0IHdlIG93biB0aGUgc3RvcC4gKi8KLQlpZiAoSU9DVEwodGNwLT5wZmQsIFBJT0NTVE9QLCAoY2hhciAqKU5VTEwpIDwgMCkgewotCQlwZXJyb3IoInN0cmFjZTogUElPQ1NUT1AiKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNlbmRpZgotI2lmZGVmIFBJT0NTRVQKLQkvKiBTZXQgUnVuLW9uLUxhc3QtQ2xvc2UuICovCi0JYXJnID0gUFJfUkxDOwotCWlmIChJT0NUTCh0Y3AtPnBmZCwgUElPQ1NFVCwgJmFyZykgPCAwKSB7Ci0JCXBlcnJvcigiUElPQ1NFVCBQUl9STEMiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQkvKiBTZXQgb3IgUmVzZXQgSW5oZXJpdC1vbi1Gb3JrLiAqLwotCWFyZyA9IFBSX0ZPUks7Ci0JaWYgKElPQ1RMKHRjcC0+cGZkLCBmb2xsb3dmb3JrID8gUElPQ1NFVCA6IFBJT0NSRVNFVCwgJmFyZykgPCAwKSB7Ci0JCXBlcnJvcigiUElPQ3tTRVQsUkVTRVR9IFBSX0ZPUksiKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNlbHNlICAvKiAhUElPQ1NFVCAqLwotI2lmbmRlZiBGUkVFQlNECi0JaWYgKGlvY3RsKHRjcC0+cGZkLCBQSU9DU1JMQykgPCAwKSB7Ci0JCXBlcnJvcigiUElPQ1NSTEMiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoaW9jdGwodGNwLT5wZmQsIGZvbGxvd2ZvcmsgPyBQSU9DU0ZPUksgOiBQSU9DUkZPUkspIDwgMCkgewotCQlwZXJyb3IoIlBJT0N7UyxSfUZPUksiKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNlbHNlIC8qIEZSRUVCU0QgKi8KLQkvKiBqdXN0IHVuc2V0IHRoZSBQRl9MSU5HRVIgZmxhZyBmb3IgdGhlIFJ1bi1vbi1MYXN0LUNsb3NlLiAqLwotCWlmIChpb2N0bCh0Y3AtPnBmZCwgUElPQ0dGTCwgJmFyZykgPCAwKSB7Ci0JICAgICAgICBwZXJyb3IoIlBJT0NHRkwiKTsKLQkgICAgICAgIHJldHVybiAtMTsKLQl9Ci0JYXJnICY9IH5QRl9MSU5HRVI7Ci0JaWYgKGlvY3RsKHRjcC0+cGZkLCBQSU9DU0ZMLCBhcmcpIDwgMCkgewotCSAgICAgICAgcGVycm9yKCJQSU9DU0ZMIik7Ci0JICAgICAgICByZXR1cm4gLTE7Ci0JfQotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLSNlbmRpZiAvKiAhUElPQ1NFVCAqLwotI2lmbmRlZiBGUkVFQlNECi0JLyogRW5hYmxlIGFsbCBzeXNjYWxsIGVudHJpZXMgd2UgY2FyZSBhYm91dC4gKi8KLQlwcmVtcHR5c2V0KCZzeXNjYWxscyk7Ci0JZm9yIChpID0gMTsgaSA8IE1BWF9RVUFMUzsgKytpKSB7Ci0JCWlmIChpID4gKHNpemVvZiBzeXNjYWxscykgKiBDSEFSX0JJVCkgYnJlYWs7Ci0JCWlmIChxdWFsX2ZsYWdzIFtpXSAmIFFVQUxfVFJBQ0UpIHByYWRkc2V0ICgmc3lzY2FsbHMsIGkpOwotCX0KLQlwcmFkZHNldCAoJnN5c2NhbGxzLCBTWVNfZXhlY3ZlKTsKLQlpZiAoZm9sbG93Zm9yaykgewotCQlwcmFkZHNldCAoJnN5c2NhbGxzLCBTWVNfZm9yayk7Ci0jaWZkZWYgU1lTX2ZvcmthbGwKLQkJcHJhZGRzZXQgKCZzeXNjYWxscywgU1lTX2ZvcmthbGwpOwotI2VuZGlmCi0jaWZkZWYgU1lTX2ZvcmsxCi0JCXByYWRkc2V0ICgmc3lzY2FsbHMsIFNZU19mb3JrMSk7Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmZvcmsxCi0JCXByYWRkc2V0ICgmc3lzY2FsbHMsIFNZU19yZm9yazEpOwotI2VuZGlmCi0jaWZkZWYgU1lTX3Jmb3JrYWxsCi0JCXByYWRkc2V0ICgmc3lzY2FsbHMsIFNZU19yZm9ya2FsbCk7Ci0jZW5kaWYKLQl9Ci0JaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DU0VOVFJZLCAmc3lzY2FsbHMpIDwgMCkgewotCQlwZXJyb3IoIlBJT0NTRU5UUlkiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQkvKiBFbmFibGUgdGhlIHN5c2NhbGwgZXhpdHMuICovCi0JaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DU0VYSVQsICZzeXNjYWxscykgPCAwKSB7Ci0JCXBlcnJvcigiUElPU0VYSVQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQkvKiBFbmFibGUgc2lnbmFscyB3ZSBjYXJlIGFib3V0LiAqLwotCXByZW1wdHlzZXQoJnNpZ25hbHMpOwotCWZvciAoaSA9IDE7IGkgPCBNQVhfUVVBTFM7ICsraSkgewotCQlpZiAoaSA+IChzaXplb2Ygc2lnbmFscykgKiBDSEFSX0JJVCkgYnJlYWs7Ci0JCWlmIChxdWFsX2ZsYWdzIFtpXSAmIFFVQUxfU0lHTkFMKSBwcmFkZHNldCAoJnNpZ25hbHMsIGkpOwotCX0KLQlpZiAoSU9DVEwodGNwLT5wZmQsIFBJT0NTVFJBQ0UsICZzaWduYWxzKSA8IDApIHsKLQkJcGVycm9yKCJQSU9DU1RSQUNFIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JLyogRW5hYmxlIGZhdWx0cyB3ZSBjYXJlIGFib3V0ICovCi0JcHJlbXB0eXNldCgmZmF1bHRzKTsKLQlmb3IgKGkgPSAxOyBpIDwgTUFYX1FVQUxTOyArK2kpIHsKLQkJaWYgKGkgPiAoc2l6ZW9mIGZhdWx0cykgKiBDSEFSX0JJVCkgYnJlYWs7Ci0JCWlmIChxdWFsX2ZsYWdzIFtpXSAmIFFVQUxfRkFVTFQpIHByYWRkc2V0ICgmZmF1bHRzLCBpKTsKLQl9Ci0JaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DU0ZBVUxULCAmZmF1bHRzKSA8IDApIHsKLQkJcGVycm9yKCJQSU9DU0ZBVUxUIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0jZWxzZSAvKiBGUkVFQlNEICovCi0JLyogc2V0IGV2ZW50cyBmbGFncy4gKi8KLQlhcmcgPSBTX1NJRyB8IFNfU0NFIHwgU19TQ1ggOwotCWlmKGlvY3RsKHRjcC0+cGZkLCBQSU9DQklTLCBhcmcpIDwgMCkgewotCQlwZXJyb3IoIlBJT0NCSVMiKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0JaWYgKCFhdHRhY2hpbmcpIHsKLSNpZmRlZiBNSVBTCi0JCS8qCi0JCSAqIFRoZSBTR0kgUFJTQUJPUlQgZG9lc24ndCB3b3JrIGZvciBwYXVzZSgpIHNvCi0JCSAqIHdlIHNlbmQgaXQgYSBjYXVnaHQgc2lnbmFsIHRvIHdha2UgaXQgdXAuCi0JCSAqLwotCQlraWxsKHRjcC0+cGlkLCBTSUdJTlQpOwotI2Vsc2UgLyogIU1JUFMgKi8KLSNpZmRlZiBQUlNBQk9SVAotCQkvKiBUaGUgY2hpbGQgaXMgaW4gYSBwYXVzZSgpLCBhYm9ydCBpdC4gKi8KLQkJYXJnID0gUFJTQUJPUlQ7Ci0JCWlmIChJT0NUTCAodGNwLT5wZmQsIFBJT0NSVU4sICZhcmcpIDwgMCkgewotCQkJcGVycm9yKCJQSU9DUlVOIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLSNlbmRpZgotI2VuZGlmIC8qICFNSVBTKi8KLSNpZmRlZiBGUkVFQlNECi0JCS8qIHdha2UgdXAgdGhlIGNoaWxkIGlmIGl0IHJlY2VpdmVkIHRoZSBTSUdTVE9QICovCi0JCWtpbGwodGNwLT5waWQsIFNJR0NPTlQpOwotI2VuZGlmCi0JCWZvciAoOzspIHsKLQkJCS8qIFdhaXQgZm9yIHRoZSBjaGlsZCB0byBkbyBzb21ldGhpbmcuICovCi0JCQlpZiAoSU9DVExfV1NUT1AgKHRjcCkgPCAwKSB7Ci0JCQkJcGVycm9yKCJQSU9DV1NUT1AiKTsKLQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0JCQlpZiAodGNwLT5zdGF0dXMuUFJfV0hZID09IFBSX1NZU0VOVFJZKSB7Ci0JCQkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKLQkJCQlnZXRfc2Nubyh0Y3ApOwotCQkJCWlmIChrbm93bl9zY25vKHRjcCkgPT0gU1lTX2V4ZWN2ZSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQkvKiBTZXQgaXQgcnVubmluZzogbWF5YmUgZXhlY3ZlIHdpbGwgYmUgbmV4dC4gKi8KLSNpZm5kZWYgRlJFRUJTRAotCQkJYXJnID0gMDsKLQkJCWlmIChJT0NUTCh0Y3AtPnBmZCwgUElPQ1JVTiwgJmFyZykgPCAwKSB7Ci0jZWxzZSAvKiBGUkVFQlNEICovCi0JCQlpZiAoSU9DVEwodGNwLT5wZmQsIFBJT0NSVU4sIDApIDwgMCkgewotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLQkJCQlwZXJyb3IoIlBJT0NSVU4iKTsKLQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0jaWZkZWYgRlJFRUJTRAotCQkJLyogaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlICJvcGVuZWQiIHRoZSBjaGlsZCBiZWZvcmUKLQkJCSAgIGl0IGRpZCB0aGUga2lsbCAtU1RPUCAqLwotCQkJaWYgKHRjcC0+c3RhdHVzLlBSX1dIWSA9PSBQUl9TSUdOQUxMRUQgJiYKLQkJCSAgICB0Y3AtPnN0YXR1cy5QUl9XSEFUID09IFNJR1NUT1ApCi0JCQkgICAgICAgIGtpbGwodGNwLT5waWQsIFNJR0NPTlQpOwotI2VuZGlmCi0JCX0KLSNpZm5kZWYgRlJFRUJTRAotCX0KLSNlbHNlIC8qIEZSRUVCU0QgKi8KLQl9IGVsc2UgewotCQlpZiAoYXR0YWNoaW5nIDwgMikgewotCQkJLyogV2UgYXJlIGF0dGFjaGluZyB0byBhbiBhbHJlYWR5IHJ1bm5pbmcgcHJvY2Vzcy4KLQkJCSAqIFRyeSB0byBmaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiB0aGUgcHJvY2VzcyBpbiBzeXNjYWxscywKLQkJCSAqIHRvIGhhbmRsZSB0aGUgZmlyc3QgZXZlbnQgd2VsbC4KLQkJCSAqIFRoaXMgaXMgZG9uZSBieSBoYXZpbmcgYSBsb29rIGF0IHRoZSAid2NoYW4iIHByb3BlcnR5IG9mIHRoZQotCQkJICogcHJvY2Vzcywgd2hpY2ggdGVsbHMgd2hlcmUgaXQgaXMgc3RvcHBlZCAoaWYgaXQgaXMpLiAqLwotCQkJRklMRSAqIHN0YXR1czsKLQkJCWNoYXIgd2NoYW5bMjBdOyAvKiBzaG91bGQgYmUgZW5vdWdoICovCi0KLQkJCXNwcmludGYocHJvYywgIi9wcm9jLyVkL3N0YXR1cyIsIHRjcC0+cGlkKTsKLQkJCXN0YXR1cyA9IGZvcGVuKHByb2MsICJyIik7Ci0JCQlpZiAoc3RhdHVzICYmCi0JCQkgICAgKGZzY2FuZihzdGF0dXMsICIlKnMgJSpkICUqZCAlKmQgJSpkICUqZCwlKmQgJSpzICUqZCwlKmQiCi0JCQkJICAgICIlKmQsJSpkICUqZCwlKmQgJTE5cyIsIHdjaGFuKSA9PSAxKSAmJgotCQkJICAgIHN0cmNtcCh3Y2hhbiwgIm5vY2hhbiIpICYmIHN0cmNtcCh3Y2hhbiwgInNwcmVhZCIpICYmCi0JCQkgICAgc3RyY21wKHdjaGFuLCAic3RvcGV2ZW50IikpIHsKLQkJCQkvKiBUaGUgcHJvY2VzcyBpcyBhc2xlZXAgaW4gdGhlIG1pZGRsZSBvZiBhIHN5c2NhbGwuCi0JCQkJICAgRmFrZSB0aGUgc3lzY2FsbCBlbnRyeSBldmVudCAqLwotCQkJCXRjcC0+ZmxhZ3MgJj0gfihUQ0JfSU5TWVNDQUxMfFRDQl9TVEFSVFVQKTsKLQkJCQl0Y3AtPnN0YXR1cy5QUl9XSFkgPSBQUl9TWVNFTlRSWTsKLQkJCQl0cmFjZV9zeXNjYWxsKHRjcCk7Ci0JCQl9Ci0JCQlpZiAoc3RhdHVzKQotCQkJCWZjbG9zZShzdGF0dXMpOwotCQl9IC8qIG90aGVyd2lzZSBpdCdzIGEgZm9yayBiZWluZyBmb2xsb3dlZCAqLwotCX0KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0jaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0JaWYgKHByb2NfcG9sbF9waXBlWzBdICE9IC0xKQotCQlwcm9jX3BvbGxlcih0Y3AtPnBmZCk7Ci0JZWxzZSBpZiAobnByb2NzID4gMSkgewotCQlwcm9jX3BvbGxfb3BlbigpOwotCQlwcm9jX3BvbGxlcihsYXN0X3BmZCk7Ci0JCXByb2NfcG9sbGVyKHRjcC0+cGZkKTsKLQl9Ci0JbGFzdF9wZmQgPSB0Y3AtPnBmZDsKLSNlbmRpZiAvKiAhSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KLQotc3RydWN0IHRjYiAqCi1waWQydGNiKHBpZCkKLWludCBwaWQ7Ci17Ci0JaW50IGk7Ci0Jc3RydWN0IHRjYiAqdGNwOwotCi0JZm9yIChpID0gMDsgaSA8IHRjYnRhYnNpemU7IGkrKykgewotCQl0Y3AgPSB0Y2J0YWJbaV07Ci0JCWlmIChwaWQgJiYgdGNwLT5waWQgIT0gcGlkKQotCQkJY29udGludWU7Ci0JCWlmICh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKQotCQkJcmV0dXJuIHRjcDsKLQl9Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLSNpZmRlZiBVU0VfUFJPQ0ZTCi0KLXN0YXRpYyBzdHJ1Y3QgdGNiICoKLXBmZDJ0Y2IocGZkKQotaW50IHBmZDsKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKLQkJc3RydWN0IHRjYiAqdGNwID0gdGNidGFiW2ldOwotCQlpZiAodGNwLT5wZmQgIT0gcGZkKQotCQkJY29udGludWU7Ci0JCWlmICh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKQotCQkJcmV0dXJuIHRjcDsKLQl9Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLSNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCi0KLXZvaWQKLWRyb3B0Y2IodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmICh0Y3AtPnBpZCA9PSAwKQotCQlyZXR1cm47Ci0jaWZkZWYgVENCX0NMT05FX1RIUkVBRAotCWlmICh0Y3AtPm5jbG9uZV90aHJlYWRzID4gMCkgewotCQkvKiBUaGVyZSBhcmUgb3RoZXIgdGhyZWFkcyBsZWZ0IGluIHRoaXMgcHJvY2VzcywgYnV0IHRoaXMKLQkJICAgaXMgdGhlIG9uZSB3aG9zZSBQSUQgcmVwcmVzZW50cyB0aGUgd2hvbGUgcHJvY2Vzcy4KLQkJICAgV2UgbmVlZCB0byBrZWVwIHRoaXMgcmVjb3JkIGFyb3VuZCBhcyBhIHpvbWJpZSB1bnRpbAotCQkgICBhbGwgdGhlIHRocmVhZHMgZGllLiAgKi8KLQkJdGNwLT5mbGFncyB8PSBUQ0JfRVhJVElORzsKLQkJcmV0dXJuOwotCX0KLSNlbmRpZgotCW5wcm9jcy0tOwotCXRjcC0+cGlkID0gMDsKLQotCWlmICh0Y3AtPnBhcmVudCAhPSBOVUxMKSB7Ci0JCXRjcC0+cGFyZW50LT5uY2hpbGRyZW4tLTsKLSNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECi0JCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX0RFVEFDSEVEKQotCQkJdGNwLT5wYXJlbnQtPm5jbG9uZV9kZXRhY2hlZC0tOwotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCi0JCQl0Y3AtPnBhcmVudC0+bmNsb25lX3RocmVhZHMtLTsKLSNlbmRpZgotI2lmZGVmIFRDQl9DTE9ORV9ERVRBQ0hFRAotCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0NMT05FX0RFVEFDSEVEKSkKLSNlbmRpZgotCQkJdGNwLT5wYXJlbnQtPm56b21iaWVzKys7Ci0JCXRjcC0+cGFyZW50ID0gTlVMTDsKLQl9Ci0KLQl0Y3AtPmZsYWdzID0gMDsKLQlpZiAodGNwLT5wZmQgIT0gLTEpIHsKLQkJY2xvc2UodGNwLT5wZmQpOwotCQl0Y3AtPnBmZCA9IC0xOwotI2lmZGVmIEZSRUVCU0QKLQkJaWYgKHRjcC0+cGZkX3JlZyAhPSAtMSkgewotCQkgICAgICAgIGNsb3NlKHRjcC0+cGZkX3JlZyk7Ci0JCSAgICAgICAgdGNwLT5wZmRfcmVnID0gLTE7Ci0JCX0KLQkJaWYgKHRjcC0+cGZkX3N0YXR1cyAhPSAtMSkgewotCQkJY2xvc2UodGNwLT5wZmRfc3RhdHVzKTsKLQkJCXRjcC0+cGZkX3N0YXR1cyA9IC0xOwotCQl9Ci0jZW5kaWYgLyogIUZSRUVCU0QgKi8KLSNpZmRlZiBVU0VfUFJPQ0ZTCi0JCXJlYnVpbGRfcG9sbHYoKTsgLyogTm90ZSwgZmxhZ3MgbmVlZHMgdG8gYmUgY2xlYXJlZCBieSBub3cuICAqLwotI2VuZGlmCi0JfQotCi0JaWYgKG91dGZuYW1lICYmIGZvbGxvd2ZvcmsgPiAxICYmIHRjcC0+b3V0ZikKLQkJZmNsb3NlKHRjcC0+b3V0Zik7Ci0KLQl0Y3AtPm91dGYgPSAwOwotfQotCi0jaWZuZGVmIFVTRV9QUk9DRlMKLQotc3RhdGljIGludAotcmVzdW1lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAodGNwID09IE5VTEwpCi0JCXJldHVybiAtMTsKLQotCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBwaWQgJXUgbm90IHN1c3BlbmRlZFxuIiwgdGNwLT5waWQpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXRjcC0+ZmxhZ3MgJj0gflRDQl9TVVNQRU5ERUQ7Ci0jaWZkZWYgVENCX0NMT05FX1RIUkVBRAotCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKLQkJdGNwLT5wYXJlbnQtPm5jbG9uZV93YWl0aW5nLS07Ci0jZW5kaWYKLQotCWlmIChwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIHRjcC0+cGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJcGVycm9yKCJyZXN1bWU6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCi0JaWYgKCFxZmxhZykKLQkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICV1IHJlc3VtZWRcbiIsIHRjcC0+cGlkKTsKLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0KLS8qIGRldGFjaCB0cmFjZWQgcHJvY2VzczsgY29udGludWUgd2l0aCBzaWcgKi8KLQotc3RhdGljIGludAotZGV0YWNoKHRjcCwgc2lnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IHNpZzsKLXsKLQlpbnQgZXJyb3IgPSAwOwotI2lmZGVmIExJTlVYCi0JaW50IHN0YXR1cywgcmVzdW1lZDsKLSNlbmRpZgotCi0JaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKQotCQlzaWcgPSBTSUdLSUxMOwotCi0jaWZkZWYgTElOVVgKLQkvKgotCSAqIExpbnV4IHdyb25nbHkgaW5zaXN0cyB0aGUgY2hpbGQgYmUgc3RvcHBlZAotCSAqIGJlZm9yZSBkZXRhY2hpbmcuICBBcmdoaC4gIFdlIGdvIHRocm91Z2ggaG9vcHMKLQkgKiB0byBtYWtlIGEgY2xlYW4gYnJlYWsgb2YgdGhpbmdzLgotCSAqLwotI2lmIGRlZmluZWQoU1BBUkMpCi0jdW5kZWYgUFRSQUNFX0RFVEFDSAotI2RlZmluZSBQVFJBQ0VfREVUQUNIIFBUUkFDRV9TVU5ERVRBQ0gKLSNlbmRpZgotCWlmICgoZXJyb3IgPSBwdHJhY2UoUFRSQUNFX0RFVEFDSCwgdGNwLT5waWQsIChjaGFyICopIDEsIHNpZykpID09IDApIHsKLQkJLyogT24gYSBjbGVhciBkYXksIHlvdSBjYW4gc2VlIGZvcmV2ZXIuICovCi0JfQotCWVsc2UgaWYgKGVycm5vICE9IEVTUkNIKSB7Ci0JCS8qIFNob3VsZG4ndCBoYXBwZW4uICovCi0JCXBlcnJvcigiZGV0YWNoOiBwdHJhY2UoUFRSQUNFX0RFVEFDSCwgLi4uKSIpOwotCX0KLQllbHNlIGlmIChraWxsKHRjcC0+cGlkLCAwKSA8IDApIHsKLQkJaWYgKGVycm5vICE9IEVTUkNIKQotCQkJcGVycm9yKCJkZXRhY2g6IGNoZWNraW5nIHNhbml0eSIpOwotCX0KLQllbHNlIGlmIChraWxsKHRjcC0+cGlkLCBTSUdTVE9QKSA8IDApIHsKLQkJaWYgKGVycm5vICE9IEVTUkNIKQotCQkJcGVycm9yKCJkZXRhY2g6IHN0b3BwaW5nIGNoaWxkIik7Ci0JfQotCWVsc2UgewotCQlmb3IgKDs7KSB7Ci0jaWZkZWYgX19XQUxMCi0JCQlpZiAod2FpdDQodGNwLT5waWQsICZzdGF0dXMsIF9fV0FMTCwgTlVMTCkgPCAwKSB7Ci0JCQkJaWYgKGVycm5vID09IEVDSElMRCkgLyogQWxyZWFkeSBnb25lLiAgKi8KLQkJCQkJYnJlYWs7Ci0JCQkJaWYgKGVycm5vICE9IEVJTlZBTCkgewotCQkJCQlwZXJyb3IoImRldGFjaDogd2FpdGluZyIpOwotCQkJCQlicmVhazsKLQkJCQl9Ci0jZW5kaWYgLyogX19XQUxMICovCi0JCQkJLyogTm8gX19XQUxMIGhlcmUuICAqLwotCQkJCWlmICh3YWl0cGlkKHRjcC0+cGlkLCAmc3RhdHVzLCAwKSA8IDApIHsKLQkJCQkJaWYgKGVycm5vICE9IEVDSElMRCkgewotCQkJCQkJcGVycm9yKCJkZXRhY2g6IHdhaXRpbmciKTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9Ci0jaWZkZWYgX19XQ0xPTkUKLQkJCQkJLyogSWYgbm8gcHJvY2Vzc2VzLCB0cnkgY2xvbmVzLiAgKi8KLQkJCQkJaWYgKHdhaXQ0KHRjcC0+cGlkLCAmc3RhdHVzLCBfX1dDTE9ORSwKLQkJCQkJCSAgTlVMTCkgPCAwKSB7Ci0JCQkJCQlpZiAoZXJybm8gIT0gRUNISUxEKQotCQkJCQkJCXBlcnJvcigiZGV0YWNoOiB3YWl0aW5nIik7Ci0JCQkJCQlicmVhazsKLQkJCQkJfQotI2VuZGlmIC8qIF9fV0NMT05FICovCi0JCQkJfQotI2lmZGVmIF9fV0FMTAotCQkJfQotI2VuZGlmCi0JCQlpZiAoIVdJRlNUT1BQRUQoc3RhdHVzKSkgewotCQkJCS8qIEF1IHJldm9pciwgbW9uIGFtaS4gKi8KLQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1NUT1ApIHsKLQkJCQlpZiAoKGVycm9yID0gcHRyYWNlKFBUUkFDRV9ERVRBQ0gsCi0JCQkJICAgIHRjcC0+cGlkLCAoY2hhciAqKSAxLCBzaWcpKSA8IDApIHsKLQkJCQkJaWYgKGVycm5vICE9IEVTUkNIKQotCQkJCQkJcGVycm9yKCJkZXRhY2g6IHB0cmFjZShQVFJBQ0VfREVUQUNILCAuLi4pIik7Ci0JCQkJCS8qIEkgZGllZCB0cnlpbmcuICovCi0JCQkJfQotCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKChlcnJvciA9IHB0cmFjZShQVFJBQ0VfQ09OVCwgdGNwLT5waWQsIChjaGFyICopIDEsCi0JCQkgICAgV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdUUkFQID8KLQkJCSAgICAwIDogV1NUT1BTSUcoc3RhdHVzKSkpIDwgMCkgewotCQkJCWlmIChlcnJubyAhPSBFU1JDSCkKLQkJCQkJcGVycm9yKCJkZXRhY2g6IHB0cmFjZShQVFJBQ0VfQ09OVCwgLi4uKSIpOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JfQotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpZiBkZWZpbmVkKFNVTk9TNCkKLQkvKiBQVFJBQ0VfREVUQUNIIHdvbid0IHJlc3BlY3QgYHNpZycgYXJndW1lbnQsIHNvIHdlIHBvc3QgaXQgaGVyZS4gKi8KLQlpZiAoc2lnICYmIGtpbGwodGNwLT5waWQsIHNpZykgPCAwKQotCQlwZXJyb3IoImRldGFjaDoga2lsbCIpOwotCXNpZyA9IDA7Ci0JaWYgKChlcnJvciA9IHB0cmFjZShQVFJBQ0VfREVUQUNILCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgc2lnKSkgPCAwKQotCQlwZXJyb3IoImRldGFjaDogcHRyYWNlKFBUUkFDRV9ERVRBQ0gsIC4uLikiKTsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0JcmVzdW1lZCA9IDA7Ci0KLQkvKiBYWFggVGhpcyB3b24ndCBhbHdheXMgYmUgcXVpdGUgcmlnaHQgKGJ1dCBpdCBuZXZlciB3YXMpLgotCSAgIEEgd2FpdGVyIHdpdGggYXJndW1lbnQgMCBvciA8IC0xIGlzIHdhaXRpbmcgZm9yIGFueSBwaWQgaW4KLQkgICBhIHBhcnRpY3VsYXIgcGdycCwgd2hpY2ggdGhpcyBjaGlsZCBtaWdodCBvciBtaWdodCBub3QgYmUKLQkgICBpbi4gIFRoZSB3YWl0ZXIgd2lsbCBvbmx5IHdha2UgdXAgaWYgaXQncyBhcmd1bWVudCBpcyAtMQotCSAgIG9yIGlmIGl0J3Mgd2FpdGluZyBmb3IgdGNwLT5waWQncyBwZ3JwLiAgSXQgbWFrZXMgYQotCSAgIGRpZmZlcmVuY2UgdG8gd2FrZSB1cCBhIHdhaXRlciB3aGVuIHRoZXJlIG1pZ2h0IGJlIG1vcmUKLQkgICB0cmFjZWQgY2hpbGRyZW4sIGJlY2F1c2UgaXQgY291bGQgZ2V0IGEgZmFsc2UgRUNISUxECi0JICAgZXJyb3IuICBPVE9ILCBpZiB0aGlzIHdhcyB0aGUgbGFzdCBjaGlsZCBpbiB0aGUgcGdycCwgdGhlbgotCSAgIGl0IG91Z2h0IHRvIHdha2UgdXAgYW5kIGdldCBFQ0hJTEQuICBXZSB3b3VsZCBoYXZlIHRvCi0JICAgc2VhcmNoIHRoZSBzeXN0ZW0gZm9yIGFsbCBwaWQncyBpbiB0aGUgcGdycCB0byBiZSBzdXJlLgotCi0JICAgICAmJiAodC0+d2FpdHBpZCA9PSAtMSB8fAotCQkgKHQtPndhaXRwaWQgPT0gMCAmJiBnZXRwZ2lkICh0Y3AtPnBpZCkgPT0gZ2V0cGdpZCAodC0+cGlkKSkKLQkJIHx8ICh0LT53YWl0cGlkIDwgMCAmJiB0LT53YWl0cGlkID09IC1nZXRwaWQgKHQtPnBpZCkpKQotCSovCi0KLQlpZiAodGNwLT5wYXJlbnQgJiYKLQkgICAgKHRjcC0+cGFyZW50LT5mbGFncyAmIFRDQl9TVVNQRU5ERUQpICYmCi0JICAgICh0Y3AtPnBhcmVudC0+d2FpdHBpZCA8PSAwIHx8IHRjcC0+cGFyZW50LT53YWl0cGlkID09IHRjcC0+cGlkKSkgewotIAkJZXJyb3IgPSByZXN1bWUodGNwLT5wYXJlbnQpOwotCQkrK3Jlc3VtZWQ7Ci0JfQotI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKLQlpZiAodGNwLT5wYXJlbnQgJiYgdGNwLT5wYXJlbnQtPm5jbG9uZV93YWl0aW5nID4gMCkgewotCQkvKiBTb21lIG90aGVyIHRocmVhZHMgb2Ygb3VyIHBhcmVudCBhcmUgd2FpdGluZyB0b28uICAqLwotCQl1bnNpZ25lZCBpbnQgaTsKLQotCQkvKiBSZXN1bWUgYWxsIHRoZSB0aHJlYWRzIHRoYXQgd2VyZSB3YWl0aW5nIGZvciB0aGlzIFBJRC4gICovCi0JCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKLQkJCXN0cnVjdCB0Y2IgKnQgPSB0Y2J0YWJbaV07Ci0JCQlpZiAodC0+cGFyZW50ID09IHRjcC0+cGFyZW50ICYmIHQgIT0gdGNwCi0JCQkgICAgJiYgKCh0LT5mbGFncyAmIChUQ0JfQ0xPTkVfVEhSRUFEfFRDQl9TVVNQRU5ERUQpKQotCQkJCT09IChUQ0JfQ0xPTkVfVEhSRUFEfFRDQl9TVVNQRU5ERUQpKQotCQkJICAgICYmIHQtPndhaXRwaWQgPT0gdGNwLT5waWQpIHsKLQkJCQllcnJvciB8PSByZXN1bWUgKHQpOwotCQkJCSsrcmVzdW1lZDsKLQkJCX0KLQkJfQotCQlpZiAocmVzdW1lZCA9PSAwKQotCQkJLyogTm9vbmUgd2FzIHdhaXRpbmcgZm9yIHRoaXMgUElEIGluIHBhcnRpY3VsYXIsCi0JCQkgICBzbyBub3cgd2UgbWlnaHQgbmVlZCB0byByZXN1bWUgc29tZSB3aWxkY2FyZGVycy4gICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7Ci0JCQkJc3RydWN0IHRjYiAqdCA9IHRjYnRhYltpXTsKLQkJCQlpZiAodC0+cGFyZW50ID09IHRjcC0+cGFyZW50ICYmIHQgIT0gdGNwCi0JCQkJICAgICYmICgodC0+ZmxhZ3MKLQkJCQkJICYgKFRDQl9DTE9ORV9USFJFQUR8VENCX1NVU1BFTkRFRCkpCi0JCQkJCT09IChUQ0JfQ0xPTkVfVEhSRUFEfFRDQl9TVVNQRU5ERUQpKQotCQkJCSAgICAmJiB0LT53YWl0cGlkIDw9IDAKLQkJCQkJKSB7Ci0JCQkJCWVycm9yIHw9IHJlc3VtZSAodCk7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQl9Ci0jZW5kaWYKLQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0KLQlpZiAoIXFmbGFnKQotCQlmcHJpbnRmKHN0ZGVyciwgIlByb2Nlc3MgJXUgZGV0YWNoZWRcbiIsIHRjcC0+cGlkKTsKLQotCWRyb3B0Y2IodGNwKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLSNpZmRlZiBVU0VfUFJPQ0ZTCi0KLXN0YXRpYyB2b2lkCi1yZWFwZXIoc2lnKQotaW50IHNpZzsKLXsKLQlpbnQgcGlkOwotCWludCBzdGF0dXM7Ci0KLQl3aGlsZSAoKHBpZCA9IHdhaXRwaWQoLTEsICZzdGF0dXMsIFdOT0hBTkcpKSA+IDApIHsKLSNpZiAwCi0JCXN0cnVjdCB0Y2IgKnRjcDsKLQotCQl0Y3AgPSBwaWQydGNiKHBpZCk7Ci0JCWlmICh0Y3ApCi0JCQlkcm9wdGNiKHRjcCk7Ci0jZW5kaWYKLQl9Ci19Ci0KLSNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCi0KLXN0YXRpYyB2b2lkCi1jbGVhbnVwKCkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgdGNiICp0Y3A7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7Ci0JCXRjcCA9IHRjYnRhYltpXTsKLQkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkpCi0JCQljb250aW51ZTsKLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsCi0JCQkJImNsZWFudXA6IGxvb2tpbmcgYXQgcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCWlmICh0Y3BfbGFzdCAmJgotCQkgICAgKCFvdXRmbmFtZSB8fCBmb2xsb3dmb3JrIDwgMiB8fCB0Y3BfbGFzdCA9PSB0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIgPHVuZmluaXNoZWQgLi4uPlxuIik7Ci0JCQl0Y3BfbGFzdCA9IE5VTEw7Ci0JCX0KLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpCi0JCQlkZXRhY2godGNwLCAwKTsKLQkJZWxzZSB7Ci0JCQlraWxsKHRjcC0+cGlkLCBTSUdDT05UKTsKLQkJCWtpbGwodGNwLT5waWQsIFNJR1RFUk0pOwotCQl9Ci0JfQotCWlmIChjZmxhZykKLQkJY2FsbF9zdW1tYXJ5KG91dGYpOwotfQotCi1zdGF0aWMgdm9pZAotaW50ZXJydXB0KHNpZykKLWludCBzaWc7Ci17Ci0JaW50ZXJydXB0ZWQgPSAxOwotfQotCi0jaWZuZGVmIEhBVkVfU1RSRVJST1IKLQotI2lmICFIQVZFX0RFQ0xfU1lTX0VSUkxJU1QKLWV4dGVybiBpbnQgc3lzX25lcnI7Ci1leHRlcm4gY2hhciAqc3lzX2Vycmxpc3RbXTsKLSNlbmRpZiAvKiBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgKi8KLQotY29uc3QgY2hhciAqCi1zdHJlcnJvcihlcnJubykKLWludCBlcnJubzsKLXsKLQlzdGF0aWMgY2hhciBidWZbNjRdOwotCi0JaWYgKGVycm5vIDwgMSB8fCBlcnJubyA+PSBzeXNfbmVycikgewotCQlzcHJpbnRmKGJ1ZiwgIlVua25vd24gZXJyb3IgJWQiLCBlcnJubyk7Ci0JCXJldHVybiBidWY7Ci0JfQotCXJldHVybiBzeXNfZXJybGlzdFtlcnJub107Ci19Ci0KLSNlbmRpZiAvKiBIQVZFX1NURVJSUk9SICovCi0KLSNpZm5kZWYgSEFWRV9TVFJTSUdOQUwKLQotI2lmIGRlZmluZWQgSEFWRV9TWVNfU0lHTElTVCAmJiAhZGVmaW5lZCBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QKLWV4dGVybiBjaGFyICpzeXNfc2lnbGlzdFtdOwotI2VuZGlmCi0jaWYgZGVmaW5lZCBIQVZFX1NZU19fU0lHTElTVCAmJiAhZGVmaW5lZCBIQVZFX0RFQ0xfX1NZU19TSUdMSVNUCi1leHRlcm4gY2hhciAqX3N5c19zaWdsaXN0W107Ci0jZW5kaWYKLQotY29uc3QgY2hhciAqCi1zdHJzaWduYWwoc2lnKQotaW50IHNpZzsKLXsKLQlzdGF0aWMgY2hhciBidWZbNjRdOwotCi0JaWYgKHNpZyA8IDEgfHwgc2lnID49IE5TSUcpIHsKLQkJc3ByaW50ZihidWYsICJVbmtub3duIHNpZ25hbCAlZCIsIHNpZyk7Ci0JCXJldHVybiBidWY7Ci0JfQotI2lmZGVmIEhBVkVfX1NZU19TSUdMSVNUCi0JcmV0dXJuIF9zeXNfc2lnbGlzdFtzaWddOwotI2Vsc2UKLQlyZXR1cm4gc3lzX3NpZ2xpc3Rbc2lnXTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLyogSEFWRV9TVFJTSUdOQUwgKi8KLQotI2lmZGVmIFVTRV9QUk9DRlMKLQotc3RhdGljIHZvaWQKLXJlYnVpbGRfcG9sbHYoKQotewotCWludCBpLCBqOwotCi0JaWYgKHBvbGx2ICE9IE5VTEwpCi0JCWZyZWUgKHBvbGx2KTsKLQlwb2xsdiA9IChzdHJ1Y3QgcG9sbGZkICopIG1hbGxvYyhucHJvY3MgKiBzaXplb2YgcG9sbHZbMF0pOwotCWlmIChwb2xsdiA9PSBOVUxMKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsIHByb2duYW1lKTsKLQkJZXhpdCgxKTsKLQl9Ci0KLQlmb3IgKGkgPSBqID0gMDsgaSA8IHRjYnRhYnNpemU7IGkrKykgewotCQlzdHJ1Y3QgdGNiICp0Y3AgPSB0Y2J0YWJbaV07Ci0JCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5VU0UpKQotCQkJY29udGludWU7Ci0JCXBvbGx2W2pdLmZkID0gdGNwLT5wZmQ7Ci0JCXBvbGx2W2pdLmV2ZW50cyA9IFBPTExXQU5UOwotCQlqKys7Ci0JfQotCWlmIChqICE9IG5wcm9jcykgewotCQlmcHJpbnRmKHN0ZGVyciwgInN0cmFjZTogcHJvYyBtaXNjb3VudFxuIik7Ci0JCWV4aXQoMSk7Ci0JfQotfQotCi0jaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0KLXN0YXRpYyB2b2lkCi1wcm9jX3BvbGxfb3BlbigpCi17Ci0JaW50IGFyZzsKLQlpbnQgaTsKLQotCWlmIChwaXBlKHByb2NfcG9sbF9waXBlKSA8IDApIHsKLQkJcGVycm9yKCJwaXBlIik7Ci0JCWV4aXQoMSk7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKLQkJaWYgKChhcmcgPSBmY250bChwcm9jX3BvbGxfcGlwZVtpXSwgRl9HRVRGRCkpIDwgMCkgewotCQkJcGVycm9yKCJGX0dFVEZEIik7Ci0JCQlleGl0KDEpOwotCQl9Ci0JCWlmIChmY250bChwcm9jX3BvbGxfcGlwZVtpXSwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQkJcGVycm9yKCJGX1NFVEZEIik7Ci0JCQlleGl0KDEpOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgaW50Ci1wcm9jX3BvbGwocG9sbHYsIG5mZHMsIHRpbWVvdXQpCi1zdHJ1Y3QgcG9sbGZkICpwb2xsdjsKLWludCBuZmRzOwotaW50IHRpbWVvdXQ7Ci17Ci0JaW50IGk7Ci0JaW50IG47Ci0Jc3RydWN0IHByb2NfcG9sbGZkIHBvbGxpbmZvOwotCi0JaWYgKChuID0gcmVhZChwcm9jX3BvbGxfcGlwZVswXSwgJnBvbGxpbmZvLCBzaXplb2YocG9sbGluZm8pKSkgPCAwKQotCQlyZXR1cm4gbjsKLQlpZiAobiAhPSBzaXplb2Yoc3RydWN0IHByb2NfcG9sbGZkKSkgewotCQlmcHJpbnRmKHN0ZGVyciwgInBhbmljOiBzaG9ydCByZWFkOiAlZFxuIiwgbik7Ci0JCWV4aXQoMSk7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCBucHJvY3M7IGkrKykgewotCQlpZiAocG9sbHZbaV0uZmQgPT0gcG9sbGluZm8uZmQpCi0JCQlwb2xsdltpXS5yZXZlbnRzID0gcG9sbGluZm8ucmV2ZW50czsKLQkJZWxzZQotCQkJcG9sbHZbaV0ucmV2ZW50cyA9IDA7Ci0JfQotCXBvbGxlcl9waWQgPSBwb2xsaW5mby5waWQ7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB2b2lkCi13YWtldXBfaGFuZGxlcihzaWcpCi1pbnQgc2lnOwotewotfQotCi1zdGF0aWMgdm9pZAotcHJvY19wb2xsZXIocGZkKQotaW50IHBmZDsKLXsKLQlzdHJ1Y3QgcHJvY19wb2xsZmQgcG9sbGluZm87Ci0Jc3RydWN0IHNpZ2FjdGlvbiBzYTsKLQlzaWdzZXRfdCBibG9ja2VkX3NldCwgZW1wdHlfc2V0OwotCWludCBpOwotCWludCBuOwotCXN0cnVjdCBybGltaXQgcmw7Ci0jaWZkZWYgRlJFRUJTRAotCXN0cnVjdCBwcm9jZnNfc3RhdHVzIHBmczsKLSNlbmRpZiAvKiBGUkVFQlNEICovCi0KLQlzd2l0Y2ggKGZvcmsoKSkgewotCWNhc2UgLTE6Ci0JCXBlcnJvcigiZm9yayIpOwotCQlfZXhpdCgwKTsKLQljYXNlIDA6Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybjsKLQl9Ci0KLQlzYS5zYV9oYW5kbGVyID0gaW50ZXJhY3RpdmUgPyBTSUdfREZMIDogU0lHX0lHTjsKLQlzYS5zYV9mbGFncyA9IDA7Ci0Jc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOwotCXNpZ2FjdGlvbihTSUdIVVAsICZzYSwgTlVMTCk7Ci0Jc2lnYWN0aW9uKFNJR0lOVCwgJnNhLCBOVUxMKTsKLQlzaWdhY3Rpb24oU0lHUVVJVCwgJnNhLCBOVUxMKTsKLQlzaWdhY3Rpb24oU0lHUElQRSwgJnNhLCBOVUxMKTsKLQlzaWdhY3Rpb24oU0lHVEVSTSwgJnNhLCBOVUxMKTsKLQlzYS5zYV9oYW5kbGVyID0gd2FrZXVwX2hhbmRsZXI7Ci0Jc2lnYWN0aW9uKFNJR1VTUjEsICZzYSwgTlVMTCk7Ci0Jc2lnZW1wdHlzZXQoJmJsb2NrZWRfc2V0KTsKLQlzaWdhZGRzZXQoJmJsb2NrZWRfc2V0LCBTSUdVU1IxKTsKLQlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZibG9ja2VkX3NldCwgTlVMTCk7Ci0Jc2lnZW1wdHlzZXQoJmVtcHR5X3NldCk7Ci0KLQlpZiAoZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybCkgPCAwKSB7Ci0JCXBlcnJvcigiZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsIC4uLikiKTsKLQkJX2V4aXQoMCk7Ci0JfQotCW4gPSBybC5ybGltX2N1cjsKLQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0JCWlmIChpICE9IHBmZCAmJiBpICE9IHByb2NfcG9sbF9waXBlWzFdKQotCQkJY2xvc2UoaSk7Ci0JfQotCi0JcG9sbGluZm8uZmQgPSBwZmQ7Ci0JcG9sbGluZm8ucGlkID0gZ2V0cGlkKCk7Ci0JZm9yICg7OykgewotI2lmbmRlZiBGUkVFQlNECi0JICAgICAgICBpZiAoaW9jdGwocGZkLCBQSU9DV1NUT1AsIE5VTEwpIDwgMCkKLSNlbHNlIC8qIEZSRUVCU0QgKi8KLQkgICAgICAgIGlmIChpb2N0bChwZmQsIFBJT0NXU1RPUCwgJnBmcykgPCAwKQotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLQkJewotCQkJc3dpdGNoIChlcnJubykgewotCQkJY2FzZSBFSU5UUjoKLQkJCQljb250aW51ZTsKLQkJCWNhc2UgRUJBREY6Ci0JCQkJcG9sbGluZm8ucmV2ZW50cyA9IFBPTExFUlI7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIEVOT0VOVDoKLQkJCQlwb2xsaW5mby5yZXZlbnRzID0gUE9MTEhVUDsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJcGVycm9yKCJwcm9jX3BvbGxlcjogUElPQ1dTVE9QIik7Ci0JCQl9Ci0JCQl3cml0ZShwcm9jX3BvbGxfcGlwZVsxXSwgJnBvbGxpbmZvLCBzaXplb2YocG9sbGluZm8pKTsKLQkJCV9leGl0KDApOwotCQl9Ci0JCXBvbGxpbmZvLnJldmVudHMgPSBQT0xMV0FOVDsKLQkJd3JpdGUocHJvY19wb2xsX3BpcGVbMV0sICZwb2xsaW5mbywgc2l6ZW9mKHBvbGxpbmZvKSk7Ci0JCXNpZ3N1c3BlbmQoJmVtcHR5X3NldCk7Ci0JfQotfQotCi0jZW5kaWYgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCi0KLXN0YXRpYyBpbnQKLWNob29zZV9wZmQoKQotewotCWludCBpLCBqOwotCXN0cnVjdCB0Y2IgKnRjcDsKLQotCXN0YXRpYyBpbnQgbGFzdDsKLQotCWlmIChmb2xsb3dmb3JrIDwgMiAmJgotCSAgICBsYXN0IDwgbnByb2NzICYmIChwb2xsdltsYXN0XS5yZXZlbnRzICYgUE9MTFdBTlQpKSB7Ci0JCS8qCi0JCSAqIFRoZSBwcmV2aW91cyBwcm9jZXNzIGlzIHJlYWR5IHRvIHJ1biBhZ2Fpbi4gIFdlJ2xsCi0JCSAqIGxldCBpdCBkbyBzbyBpZiBpdCBpcyBjdXJyZW50bHkgaW4gYSBzeXNjYWxsLiAgVGhpcwotCQkgKiBoZXVyaXN0aWMgaW1wcm92ZXMgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSB0cmFjZS4KLQkJICovCi0JCXRjcCA9IHBmZDJ0Y2IocG9sbHZbbGFzdF0uZmQpOwotCQlpZiAodGNwICYmICh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpCi0JCQlyZXR1cm4gcG9sbHZbbGFzdF0uZmQ7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IG5wcm9jczsgaSsrKSB7Ci0JCS8qIExldCBjb21wZXRpbmcgY2hpbGRyZW4gcnVuIHJvdW5kIHJvYmluLiAqLwotCQlqID0gKGkgKyBsYXN0ICsgMSkgJSBucHJvY3M7Ci0JCWlmIChwb2xsdltqXS5yZXZlbnRzICYgKFBPTExIVVAgfCBQT0xMRVJSKSkgewotCQkJdGNwID0gcGZkMnRjYihwb2xsdltqXS5mZCk7Ci0JCQlpZiAoIXRjcCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAic3RyYWNlOiBsb3N0IHByb2NcbiIpOwotCQkJCWV4aXQoMSk7Ci0JCQl9Ci0JCQlkcm9wdGNiKHRjcCk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJaWYgKHBvbGx2W2pdLnJldmVudHMgJiBQT0xMV0FOVCkgewotCQkJbGFzdCA9IGo7Ci0JCQlyZXR1cm4gcG9sbHZbal0uZmQ7Ci0JCX0KLQl9Ci0JZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IG5vdGhpbmcgcmVhZHlcbiIpOwotCWV4aXQoMSk7Ci19Ci0KLXN0YXRpYyBpbnQKLXRyYWNlKCkKLXsKLSNpZmRlZiBQT0xMX0hBQ0sKLQlzdHJ1Y3QgdGNiICppbl9zeXNjYWxsID0gTlVMTDsKLSNlbmRpZgotCXN0cnVjdCB0Y2IgKnRjcDsKLQlpbnQgcGZkOwotCWludCB3aGF0OwotCWludCBpb2N0bF9yZXN1bHQgPSAwLCBpb2N0bF9lcnJubyA9IDA7Ci0JbG9uZyBhcmc7Ci0KLQlmb3IgKDs7KSB7Ci0JCWlmIChpbnRlcmFjdGl2ZSkKLQkJCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmZW1wdHlfc2V0LCBOVUxMKTsKLQotCQlpZiAobnByb2NzID09IDApCi0JCQlicmVhazsKLQotCQlzd2l0Y2ggKG5wcm9jcykgewotCQljYXNlIDE6Ci0jaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0JCQlpZiAocHJvY19wb2xsX3BpcGVbMF0gPT0gLTEpIHsKLSNlbmRpZgotCQkJCXRjcCA9IHBpZDJ0Y2IoMCk7Ci0JCQkJaWYgKCF0Y3ApCi0JCQkJCWNvbnRpbnVlOwotCQkJCXBmZCA9IHRjcC0+cGZkOwotCQkJCWlmIChwZmQgPT0gLTEpCi0JCQkJCWNvbnRpbnVlOwotCQkJCWJyZWFrOwotI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUwotCQkJfQotCQkJLyogZmFsbCB0aHJvdWdoIC4uLiAqLwotI2VuZGlmIC8qICFIQVZFX1BPTExBQkxFX1BST0NGUyAqLwotCQlkZWZhdWx0OgotI2lmZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0jaWZkZWYgUE9MTF9IQUNLCi0JCSAgICAgICAgLyogT24gc29tZSBzeXN0ZW1zIChlLmcuIFVuaXhXYXJlKSB3ZSBnZXQgdG9vIG11Y2ggdWdseQotCQkJICAgInVuZmluaXNoZWQuLi4iIHN0dWZmIHdoZW4gbXVsdGlwbGUgcHJvY2VzZXMgYXJlIGluCi0JCQkgICBzeXNjYWxscy4gIEhlcmUncyBhIG5hc3R5IGhhY2sgKi8KLQotCQkJaWYgKGluX3N5c2NhbGwpIHsKLQkJCQlzdHJ1Y3QgcG9sbGZkIHB2OwotCQkJCXRjcCA9IGluX3N5c2NhbGw7Ci0JCQkJaW5fc3lzY2FsbCA9IE5VTEw7Ci0JCQkJcHYuZmQgPSB0Y3AtPnBmZDsKLQkJCQlwdi5ldmVudHMgPSBQT0xMV0FOVDsKLQkJCQlpZiAoKHdoYXQgPSBwb2xsICgmcHYsIDEsIDEpKSA8IDApIHsKLQkJCQkJaWYgKGludGVycnVwdGVkKQotCQkJCQkJcmV0dXJuIDA7Ci0JCQkJCWNvbnRpbnVlOwotCQkJCX0KLQkJCQllbHNlIGlmICh3aGF0ID09IDEgJiYgcHYucmV2ZW50cyAmIFBPTExXQU5UKSB7Ci0JCQkJCWdvdG8gRk9VTkQ7Ci0JCQkJfQotCQkJfQotI2VuZGlmCi0KLQkJCWlmIChwb2xsKHBvbGx2LCBucHJvY3MsIElORlRJTSkgPCAwKSB7Ci0JCQkJaWYgKGludGVycnVwdGVkKQotCQkJCQlyZXR1cm4gMDsKLQkJCQljb250aW51ZTsKLQkJCX0KLSNlbHNlIC8qICFIQVZFX1BPTExBQkxFX1BST0NGUyAqLwotCQkJaWYgKHByb2NfcG9sbChwb2xsdiwgbnByb2NzLCBJTkZUSU0pIDwgMCkgewotCQkJCWlmIChpbnRlcnJ1cHRlZCkKLQkJCQkJcmV0dXJuIDA7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0jZW5kaWYgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCi0JCQlwZmQgPSBjaG9vc2VfcGZkKCk7Ci0JCQlpZiAocGZkID09IC0xKQotCQkJCWNvbnRpbnVlOwotCQkJYnJlYWs7Ci0JCX0KLQotCQkvKiBMb29rIHVwIGBwZmQnIGluIG91ciB0YWJsZS4gKi8KLQkJaWYgKCh0Y3AgPSBwZmQydGNiKHBmZCkpID09IE5VTEwpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAidW5rbm93biBwZmQ6ICV1XG4iLCBwZmQpOwotCQkJZXhpdCgxKTsKLQkJfQotI2lmZGVmIFBPTExfSEFDSwotCUZPVU5EOgotI2VuZGlmCi0JCS8qIEdldCB0aGUgc3RhdHVzIG9mIHRoZSBwcm9jZXNzLiAqLwotCQlpZiAoIWludGVycnVwdGVkKSB7Ci0jaWZuZGVmIEZSRUVCU0QKLQkJCWlvY3RsX3Jlc3VsdCA9IElPQ1RMX1dTVE9QICh0Y3ApOwotI2Vsc2UgLyogRlJFRUJTRCAqLwotCQkJLyogVGhhbmtzIHRvIHNvbWUgc2NoZWR1bGluZyBteXN0ZXJ5LCB0aGUgZmlyc3QgcG9sbGVyCi0JCQkgICBzb21ldGltZXMgd2FpdHMgZm9yIHRoZSBhbHJlYWR5IHByb2Nlc3NlZCBlbmQgb2YgZm9yawotCQkJICAgZXZlbnQuIERvaW5nIGEgbm9uIGJsb2NraW5nIHBvbGwgaGVyZSBzb2x2ZXMgdGhlIHByb2JsZW0uICovCi0JCQlpZiAocHJvY19wb2xsX3BpcGVbMF0gIT0gLTEpCi0JCQkJaW9jdGxfcmVzdWx0ID0gSU9DVExfU1RBVFVTICh0Y3ApOwotCQkJZWxzZQotCQkJICAJaW9jdGxfcmVzdWx0ID0gSU9DVExfV1NUT1AgKHRjcCk7Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCQkJaW9jdGxfZXJybm8gPSBlcnJubzsKLSNpZm5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKLQkJCWlmIChwcm9jX3BvbGxfcGlwZVswXSAhPSAtMSkgewotCQkJCWlmIChpb2N0bF9yZXN1bHQgPCAwKQotCQkJCQlraWxsKHBvbGxlcl9waWQsIFNJR0tJTEwpOwotCQkJCWVsc2UKLQkJCQkJa2lsbChwb2xsZXJfcGlkLCBTSUdVU1IxKTsKLQkJCX0KLSNlbmRpZiAvKiAhSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KLQkJfQotCQlpZiAoaW50ZXJydXB0ZWQpCi0JCQlyZXR1cm4gMDsKLQotCQlpZiAoaW50ZXJhY3RpdmUpCi0JCQlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZibG9ja2VkX3NldCwgTlVMTCk7Ci0KLQkJaWYgKGlvY3RsX3Jlc3VsdCA8IDApIHsKLQkJCS8qIEZpbmQgb3V0IHdoYXQgaGFwcGVuZWQgaWYgaXQgZmFpbGVkLiAqLwotCQkJc3dpdGNoIChpb2N0bF9lcnJubykgewotCQkJY2FzZSBFSU5UUjoKLQkJCWNhc2UgRUJBREY6Ci0JCQkJY29udGludWU7Ci0jaWZkZWYgRlJFRUJTRAotCQkJY2FzZSBFTk9UVFk6Ci0jZW5kaWYKLQkJCWNhc2UgRU5PRU5UOgotCQkJCWRyb3B0Y2IodGNwKTsKLQkJCQljb250aW51ZTsKLQkJCWRlZmF1bHQ6Ci0JCQkJcGVycm9yKCJQSU9DV1NUT1AiKTsKLQkJCQlleGl0KDEpOwotCQkJfQotCQl9Ci0KLSNpZmRlZiBGUkVFQlNECi0JCWlmICgodGNwLT5mbGFncyAmIFRDQl9TVEFSVFVQKSAmJiAodGNwLT5zdGF0dXMuUFJfV0hZID09IFBSX1NZU0VYSVQpKSB7Ci0JCQkvKiBkaXNjYXJkIGZpcnN0IGV2ZW50IGZvciBhIHN5c2NhbGwgd2UgbmV2ZXIgZW50ZXJlZCAqLwotCQkJSU9DVEwgKHRjcC0+cGZkLCBQSU9DUlVOLCAwKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0jZW5kaWYKLQotCQkvKiBjbGVhciB0aGUganVzdCBzdGFydGVkIGZsYWcgKi8KLQkJdGNwLT5mbGFncyAmPSB+VENCX1NUQVJUVVA7Ci0KLQkJLyogc2V0IGN1cnJlbnQgb3V0cHV0IGZpbGUgKi8KLQkJb3V0ZiA9IHRjcC0+b3V0ZjsKLQotCQlpZiAoY2ZsYWcpIHsKLQkJCXN0cnVjdCB0aW1ldmFsIHN0aW1lOwotI2lmZGVmIEZSRUVCU0QKLQkJCWNoYXIgYnVmWzEwMjRdOwotCQkJaW50IGxlbjsKLQotCQkJaWYgKChsZW4gPSBwcmVhZCh0Y3AtPnBmZF9zdGF0dXMsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLSAxLCAwKSkgPiAwKSB7Ci0JCQkJYnVmW2xlbl0gPSAnXDAnOwotCQkJCXNzY2FuZihidWYsCi0JCQkJICAgICAgICIlKnMgJSpkICUqZCAlKmQgJSpkICUqZCwlKmQgJSpzICUqZCwlKmQgJSpkLCUqZCAlbGQsJWxkIiwKLQkJCQkgICAgICAgJnN0aW1lLnR2X3NlYywgJnN0aW1lLnR2X3VzZWMpOwotCQkJfSBlbHNlCi0JCQkJc3RpbWUudHZfc2VjID0gc3RpbWUudHZfdXNlYyA9IDA7Ci0jZWxzZSAvKiAhRlJFRUJTRCAqLwotCQkJc3RpbWUudHZfc2VjID0gdGNwLT5zdGF0dXMucHJfc3RpbWUudHZfc2VjOwotCQkJc3RpbWUudHZfdXNlYyA9IHRjcC0+c3RhdHVzLnByX3N0aW1lLnR2X25zZWMvMTAwMDsKLSNlbmRpZiAvKiAhRlJFRUJTRCAqLwotCQkJdHZfc3ViKCZ0Y3AtPmR0aW1lLCAmc3RpbWUsICZ0Y3AtPnN0aW1lKTsKLQkJCXRjcC0+c3RpbWUgPSBzdGltZTsKLQkJfQotCQl3aGF0ID0gdGNwLT5zdGF0dXMuUFJfV0hBVDsKLQkJc3dpdGNoICh0Y3AtPnN0YXR1cy5QUl9XSFkpIHsKLSNpZm5kZWYgRlJFRUJTRAotCQljYXNlIFBSX1JFUVVFU1RFRDoKLQkJCWlmICh0Y3AtPnN0YXR1cy5QUl9GTEFHUyAmIFBSX0FTTEVFUCkgewotCQkJCXRjcC0+c3RhdHVzLlBSX1dIWSA9IFBSX1NZU0VOVFJZOwotCQkJCWlmICh0cmFjZV9zeXNjYWxsKHRjcCkgPCAwKSB7Ci0JCQkJCWZwcmludGYoc3RkZXJyLCAic3lzY2FsbCB0cm91YmxlXG4iKTsKLQkJCQkJZXhpdCgxKTsKLQkJCQl9Ci0JCQl9Ci0JCQlicmVhazsKLSNlbmRpZiAvKiAhRlJFRUJTRCAqLwotCQljYXNlIFBSX1NZU0VOVFJZOgotI2lmZGVmIFBPTExfSEFDSwotCQkgICAgICAgIGluX3N5c2NhbGwgPSB0Y3A7Ci0jZW5kaWYKLQkJY2FzZSBQUl9TWVNFWElUOgotCQkJaWYgKHRyYWNlX3N5c2NhbGwodGNwKSA8IDApIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGwgdHJvdWJsZVxuIik7Ci0JCQkJZXhpdCgxKTsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNlIFBSX1NJR05BTExFRDoKLQkJCWlmICghY2ZsYWcgJiYgKHF1YWxfZmxhZ3Nbd2hhdF0gJiBRVUFMX1NJR05BTCkpIHsKLQkJCQlwcmludGxlYWRlcih0Y3ApOwotCQkJCXRwcmludGYoIi0tLSAlcyAoJXMpIC0tLSIsCi0JCQkJCXNpZ25hbWUod2hhdCksIHN0cnNpZ25hbCh3aGF0KSk7Ci0JCQkJcHJpbnR0cmFpbGVyKHRjcCk7Ci0jaWZkZWYgUFJfSU5GTwotCQkJCWlmICh0Y3AtPnN0YXR1cy5QUl9JTkZPLnNpX3NpZ25vID09IHdoYXQpIHsKLQkJCQkJcHJpbnRsZWFkZXIodGNwKTsKLQkJCQkJdHByaW50ZigiICAgIHNpZ2luZm89Iik7Ci0JCQkJCXByaW50c2lnaW5mbygmdGNwLT5zdGF0dXMuUFJfSU5GTywgMSk7Ci0JCQkJCXByaW50dHJhaWxlcih0Y3ApOwotCQkJCX0KLSNlbmRpZgotCQkJfQotCQkJYnJlYWs7Ci0JCWNhc2UgUFJfRkFVTFRFRDoKLQkJCWlmICghY2ZsYWcgJiYgKHF1YWxfZmxhZ3Nbd2hhdF0gJiBRVUFMX0ZBVUxUKSkgewotCQkJCXByaW50bGVhZGVyKHRjcCk7Ci0JCQkJdHByaW50ZigiPT09IEZBVUxUICVkID09PSIsIHdoYXQpOwotCQkJCXByaW50dHJhaWxlcih0Y3ApOwotCQkJfQotCQkJYnJlYWs7Ci0jaWZkZWYgRlJFRUJTRAotCQljYXNlIDA6IC8qIGhhbmRsZSBjYXNlIHdlIHBvbGxlZCBmb3Igbm90aGluZyAqLwotCQkgIAljb250aW51ZTsKLSNlbmRpZgotCQlkZWZhdWx0OgotCQkJZnByaW50ZihzdGRlcnIsICJvZGQgc3RvcCAlZFxuIiwgdGNwLT5zdGF0dXMuUFJfV0hZKTsKLQkJCWV4aXQoMSk7Ci0JCQlicmVhazsKLQkJfQotCQlhcmcgPSAwOwotI2lmbmRlZiBGUkVFQlNECi0JCWlmIChJT0NUTCAodGNwLT5wZmQsIFBJT0NSVU4sICZhcmcpIDwgMCkgewotI2Vsc2UKLQkJaWYgKElPQ1RMICh0Y3AtPnBmZCwgUElPQ1JVTiwgMCkgPCAwKSB7Ci0jZW5kaWYKLQkJCXBlcnJvcigiUElPQ1JVTiIpOwotCQkJZXhpdCgxKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2Vsc2UgLyogIVVTRV9QUk9DRlMgKi8KLQotI2lmZGVmIFRDQl9HUk9VUF9FWElUSU5HCi0vKiBIYW5kbGUgYW4gZXhpdCBkZXRhY2ggb3IgZGVhdGggc2lnbmFsIHRoYXQgaXMgdGFraW5nIGFsbCB0aGUKLSAgIHJlbGF0ZWQgY2xvbmUgdGhyZWFkcyB3aXRoIGl0LiAgVGhpcyBpcyBjYWxsZWQgaW4gdGhyZWUgY2lyY3Vtc3RhbmNlczoKLSAgIFNJRyA9PSAtMQlUQ1AgaGFzIGFscmVhZHkgZGllZCAoVENCX0FUVEFDSEVEIGlzIGNsZWFyLCBzdHJhY2UgaXMgcGFyZW50KS4KLSAgIFNJRyA9PSAwCUNvbnRpbnVpbmcgVENQIHdpbGwgcGVyZm9ybSBhbiBleGl0X2dyb3VwIHN5c2NhbGwuCi0gICBTSUcgPT0gb3RoZXIJQ29udGludWluZyBUQ1Agd2l0aCBTSUcgd2lsbCBraWxsIHRoZSBwcm9jZXNzLgotKi8KLXN0YXRpYyBpbnQKLWhhbmRsZV9ncm91cF9leGl0KHN0cnVjdCB0Y2IgKnRjcCwgaW50IHNpZykKLXsKLQkvKiBXZSBuZWVkIHRvIGxvY2F0ZSBvdXIgcmVjb3JkcyBvZiBhbGwgdGhlIGNsb25lIHRocmVhZHMKLQkgICByZWxhdGVkIHRvIFRDUCwgZWl0aGVyIGl0cyBjaGlsZHJlbiBvciBzaWJsaW5ncy4gICovCi0Jc3RydWN0IHRjYiAqbGVhZGVyID0gKCh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKLQkJCSAgICAgID8gdGNwLT5wYXJlbnQKLQkJCSAgICAgIDogdGNwLT5uY2xvbmVfZGV0YWNoZWQgPiAwCi0JCQkgICAgICA/IHRjcCA6IE5VTEwpOwotCi0JaWYgKHNpZyA8IDApIHsKLQkJaWYgKGxlYWRlciAhPSBOVUxMICYmIGxlYWRlciAhPSB0Y3AgJiYKLQkJICAgICEobGVhZGVyLT5mbGFncyAmIFRDQl9HUk9VUF9FWElUSU5HKSkKLQkJCWZwcmludGYoc3RkZXJyLAotCQkJCSJQQU5JQzogaGFuZGxlX2dyb3VwX2V4aXQ6ICVkIGxlYWRlciAlZFxuIiwKLQkJCQl0Y3AtPnBpZCwgbGVhZGVyID8gbGVhZGVyLT5waWQgOiAtMSk7Ci0JCWRyb3B0Y2IodGNwKTsJLyogQWxyZWFkeSBkaWVkLiAgKi8KLQl9Ci0JZWxzZSB7Ci0JCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSB7Ci0JCSAgCWlmIChsZWFkZXIgIT0gTlVMTCAmJiBsZWFkZXIgIT0gdGNwKSB7Ci0JCQkJaWYgKGxlYWRlci0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpIHsKLQkJCQkJLyogV2UgbmVlZCB0byBkZXRhY2ggdGhlIGxlYWRlciBzbwotCQkJCQkgICB0aGF0IHRoZSBwcm9jZXNzIGRlYXRoIHdpbGwgYmUKLQkJCQkJICAgcmVwb3J0ZWQgdG8gaXRzIHJlYWwgcGFyZW50LgotCQkJCQkgICBCdXQgd2Uga2lsbCBpdCBmaXJzdCB0byBwcmV2ZW50Ci0JCQkJCSAgIGl0IGRvaW5nIGFueXRoaW5nIGJlZm9yZSB3ZSBraWxsCi0JCQkJCSAgIHRoZSB3aG9sZSBwcm9jZXNzIGluIGEgbW9tZW50LgotCQkJCQkgICBXZSBjYW4gdXNlIFBUUkFDRV9LSUxMIG9uIGEKLQkJCQkJICAgdGhyZWFkIHRoYXQncyBub3QgYWxyZWFkeQotCQkJCQkgICBzdG9wcGVkLiAgVGhlbiB0aGUgdmFsdWUgd2UgcGFzcwotCQkJCQkgICBpbiBQVFJBQ0VfREVUQUNIIGp1c3Qgc2V0cyB0aGUKLQkJCQkJICAgZGVhdGggc2lnbmFsIHJlcG9ydGVkIHRvIHRoZQotCQkJCQkgICByZWFsIHBhcmVudC4gICovCi0JCQkJCXB0cmFjZShQVFJBQ0VfS0lMTCwgbGVhZGVyLT5waWQsIDAsIDApOwotCQkJCQlpZiAoZGVidWcpCi0JCQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJCQkiIFslZCBleGl0ICVkIGtpbGxzICVkXVxuIiwKLQkJCQkJCQl0Y3AtPnBpZCwgc2lnLCBsZWFkZXItPnBpZCk7Ci0JCQkJCWRldGFjaChsZWFkZXIsIHNpZyk7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQkJbGVhZGVyLT5mbGFncyB8PSBUQ0JfR1JPVVBfRVhJVElORzsKLQkJCX0KLQkJCWRldGFjaCh0Y3AsIHNpZyk7Ci0JCX0KLQkJZWxzZSBpZiAocHRyYWNlKFBUUkFDRV9DT05ULCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgc2lnKSA8IDApIHsKLQkJCXBlcnJvcigic3RyYWNlOiBwdHJhY2UoUFRSQUNFX0NPTlQsIC4uLikiKTsKLQkJCWNsZWFudXAoKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQllbHNlIHsKLQkJCWlmIChsZWFkZXIgIT0gTlVMTCkKLQkJCQlsZWFkZXItPmZsYWdzIHw9IFRDQl9HUk9VUF9FWElUSU5HOwotCQkJaWYgKGxlYWRlciAhPSBOVUxMICYmIGxlYWRlciAhPSB0Y3ApCi0JCQkJZHJvcHRjYih0Y3ApOwotCQkJLyogVGhlIGxlYWRlciB3aWxsIHJlcG9ydCB0byB1cyBhcyBwYXJlbnQgbm93LAotCQkJICAgYW5kIHRoZW4gd2UnbGwgZ2V0IHRvIHRoZSBTSUc9PS0xIGNhc2UuICAqLwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1zdGF0aWMgaW50Ci10cmFjZSgpCi17Ci0JaW50IHBpZDsKLQlpbnQgd2FpdF9lcnJubzsKLQlpbnQgc3RhdHVzOwotCXN0cnVjdCB0Y2IgKnRjcDsKLSNpZmRlZiBMSU5VWAotCXN0cnVjdCBydXNhZ2UgcnU7Ci0jaWZkZWYgX19XQUxMCi0Jc3RhdGljIGludCB3YWl0NF9vcHRpb25zID0gX19XQUxMOwotI2VuZGlmCi0jZW5kaWYgLyogTElOVVggKi8KLQotCXdoaWxlIChucHJvY3MgIT0gMCkgewotCQlpZiAoaW50ZXJhY3RpdmUpCi0JCQlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJmVtcHR5X3NldCwgTlVMTCk7Ci0jaWZkZWYgTElOVVgKLSNpZmRlZiBfX1dBTEwKLQkJcGlkID0gd2FpdDQoLTEsICZzdGF0dXMsIHdhaXQ0X29wdGlvbnMsIGNmbGFnID8gJnJ1IDogTlVMTCk7Ci0JCWlmIChwaWQgPCAwICYmICh3YWl0NF9vcHRpb25zICYgX19XQUxMKSAmJiBlcnJubyA9PSBFSU5WQUwpIHsKLQkJCS8qIHRoaXMga2VybmVsIGRvZXMgbm90IHN1cHBvcnQgX19XQUxMICovCi0JCQl3YWl0NF9vcHRpb25zICY9IH5fX1dBTEw7Ci0JCQllcnJubyA9IDA7Ci0JCQlwaWQgPSB3YWl0NCgtMSwgJnN0YXR1cywgd2FpdDRfb3B0aW9ucywKLQkJCQkJY2ZsYWcgPyAmcnUgOiBOVUxMKTsKLQkJfQotCQlpZiAocGlkIDwgMCAmJiAhKHdhaXQ0X29wdGlvbnMgJiBfX1dBTEwpICYmIGVycm5vID09IEVDSElMRCkgewotCQkJLyogbW9zdCBsaWtlbHkgYSAiY2xvbmVkIiBwcm9jZXNzICovCi0JCQlwaWQgPSB3YWl0NCgtMSwgJnN0YXR1cywgX19XQ0xPTkUsCi0JCQkJCWNmbGFnID8gJnJ1IDogTlVMTCk7Ci0JCQlpZiAocGlkID09IC0xKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IGNsb25lIHdhaXQ0ICIKLQkJCQkJCSJmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotCQkJfQotCQl9Ci0jZWxzZQotCQlwaWQgPSB3YWl0NCgtMSwgJnN0YXR1cywgMCwgY2ZsYWcgPyAmcnUgOiBOVUxMKTsKLSNlbmRpZiAvKiBfX1dBTEwgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotCQlwaWQgPSB3YWl0KCZzdGF0dXMpOwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCQl3YWl0X2Vycm5vID0gZXJybm87Ci0JCWlmIChpbnRlcmFjdGl2ZSkKLQkJCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJmJsb2NrZWRfc2V0LCBOVUxMKTsKLQotCQlpZiAoaW50ZXJydXB0ZWQpCi0JCQlyZXR1cm4gMDsKLQotCQlpZiAocGlkID09IC0xKSB7Ci0JCQlzd2l0Y2ggKHdhaXRfZXJybm8pIHsKLQkJCWNhc2UgRUlOVFI6Ci0JCQkJY29udGludWU7Ci0JCQljYXNlIEVDSElMRDoKLQkJCQkvKgotCQkJCSAqIFdlIHdvdWxkIGxpa2UgdG8gdmVyaWZ5IHRoaXMgY2FzZQotCQkJCSAqIGJ1dCBzb21ldGltZXMgYSByYWNlIGluIFNvbGJvdXJuZSdzCi0JCQkJICogdmVyc2lvbiBvZiBTdW5PUyBzb21ldGltZXMgcmVwb3J0cwotCQkJCSAqIEVDSElMRCBiZWZvcmUgc2VuZGluZyB1cyBTSUdDSElMRC4KLQkJCQkgKi8KLSNpZiAwCi0JCQkJaWYgKG5wcm9jcyA9PSAwKQotCQkJCQlyZXR1cm4gMDsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInN0cmFjZTogcHJvYyBtaXNjb3VudFxuIik7Ci0JCQkJZXhpdCgxKTsKLSNlbmRpZgotCQkJCXJldHVybiAwOwotCQkJZGVmYXVsdDoKLQkJCQllcnJubyA9IHdhaXRfZXJybm87Ci0JCQkJcGVycm9yKCJzdHJhY2U6IHdhaXQiKTsKLQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0JCX0KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICIgW3dhaXQoJSN4KSA9ICV1XVxuIiwgc3RhdHVzLCBwaWQpOwotCi0JCS8qIExvb2sgdXAgYHBpZCcgaW4gb3VyIHRhYmxlLiAqLwotCQlpZiAoKHRjcCA9IHBpZDJ0Y2IocGlkKSkgPT0gTlVMTCkgewotI2lmZGVmIExJTlVYCi0JCQlpZiAoZm9sbG93Zm9yayB8fCBmb2xsb3d2Zm9yaykgewotCQkJCS8qIFRoaXMgaXMgbmVlZGVkIHRvIGdvIHdpdGggdGhlIENMT05FX1BUUkFDRQotCQkJCSAgIGNoYW5nZXMgaW4gcHJvY2Vzcy5jL3V0aWwuYzogd2UgbWlnaHQgc2VlCi0JCQkJICAgdGhlIGNoaWxkJ3MgaW5pdGlhbCB0cmFwIGJlZm9yZSB3ZSBzZWUgdGhlCi0JCQkJICAgcGFyZW50IHJldHVybiBmcm9tIHRoZSBjbG9uZSBzeXNjYWxsLgotCQkJCSAgIExlYXZlIHRoZSBjaGlsZCBzdXNwZW5kZWQgdW50aWwgdGhlIHBhcmVudAotCQkJCSAgIHJldHVybnMgZnJvbSBpdHMgc3lzdGVtIGNhbGwuICBPbmx5IHRoZW4KLQkJCQkgICB3aWxsIHdlIGhhdmUgdGhlIGFzc29jaWF0aW9uIG9mIHBhcmVudCBhbmQKLQkJCQkgICBjaGlsZCBzbyB0aGF0IHdlIGtub3cgaG93IHRvIGRvIGNsZWFyYnB0Ci0JCQkJICAgaW4gdGhlIGNoaWxkLiAgKi8KLQkJCQlpZiAoKHRjcCA9IGFsbG9jdGNiKHBpZCkpID09IE5VTEwpIHsKLQkJCQkJZnByaW50ZihzdGRlcnIsICIgW3RjYiB0YWJsZSBmdWxsXVxuIik7Ci0JCQkJCWtpbGwocGlkLCBTSUdLSUxMKTsgLyogWFhYICovCi0JCQkJCXJldHVybiAwOwotCQkJCX0KLQkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRCB8IFRDQl9TVVNQRU5ERUQ7Ci0JCQkJbmV3b3V0Zih0Y3ApOwotCQkJCWlmICghcWZsYWcpCi0JCQkJCWZwcmludGYoc3RkZXJyLCAiXAotUHJvY2VzcyAlZCBhdHRhY2hlZCAod2FpdGluZyBmb3IgcGFyZW50KVxuIiwKLQkJCQkJCXBpZCk7Ci0JCQl9Ci0JCQllbHNlCi0JCQkJLyogVGhpcyBjYW4gaGFwcGVuIGlmIGEgY2xvbmUgY2FsbCB1c2VkCi0JCQkJICAgQ0xPTkVfUFRSQUNFIGl0c2VsZi4gICovCi0jZW5kaWYKLQkJCXsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInVua25vd24gcGlkOiAldVxuIiwgcGlkKTsKLQkJCQlpZiAoV0lGU1RPUFBFRChzdGF0dXMpKQotCQkJCQlwdHJhY2UoUFRSQUNFX0NPTlQsIHBpZCwgKGNoYXIgKikgMSwgMCk7Ci0JCQkJZXhpdCgxKTsKLQkJCX0KLQkJfQotCQkvKiBzZXQgY3VycmVudCBvdXRwdXQgZmlsZSAqLwotCQlvdXRmID0gdGNwLT5vdXRmOwotCQlpZiAoY2ZsYWcpIHsKLSNpZmRlZiBMSU5VWAotCQkJdHZfc3ViKCZ0Y3AtPmR0aW1lLCAmcnUucnVfc3RpbWUsICZ0Y3AtPnN0aW1lKTsKLQkJCXRjcC0+c3RpbWUgPSBydS5ydV9zdGltZTsKLSNlbmRpZiAvKiAhTElOVVggKi8KLQkJfQotCi0JCWlmICh0Y3AtPmZsYWdzICYgVENCX1NVU1BFTkRFRCkgewotCQkJLyoKLQkJCSAqIEFwcGFyZW50bHksIGRvaW5nIGFueSBwdHJhY2UoKSBjYWxsIG9uIGEgc3RvcHBlZAotCQkJICogcHJvY2VzcywgcHJvdm9rZXMgdGhlIGtlcm5lbCB0byByZXBvcnQgdGhlIHByb2Nlc3MKLQkJCSAqIHN0YXR1cyBhZ2FpbiBvbiBhIHN1YnNlcXVlbnQgd2FpdCgpLCBldmVuIGlmIHRoZQotCQkJICogcHJvY2VzcyBoYXMgbm90IGJlZW4gYWN0dWFsbHkgcmVzdGFydGVkLgotCQkJICogU2luY2Ugd2UgaGF2ZSBpbnNwZWN0ZWQgdGhlIGFyZ3VtZW50cyBvZiBzdXNwZW5kZWQKLQkJCSAqIHByb2Nlc3NlcyB3ZSBlbmQgdXAgaGVyZSB0ZXN0aW5nIGZvciB0aGlzIGNhc2UuCi0JCQkgKi8KLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChXSUZTSUdOQUxFRChzdGF0dXMpKSB7Ci0JCQlpZiAoIWNmbGFnCi0JCQkgICAgJiYgKHF1YWxfZmxhZ3NbV1RFUk1TSUcoc3RhdHVzKV0gJiBRVUFMX1NJR05BTCkpIHsKLQkJCQlwcmludGxlYWRlcih0Y3ApOwotCQkJCXRwcmludGYoIisrKyBraWxsZWQgYnkgJXMgJXMrKysiLAotCQkJCQlzaWduYW1lKFdURVJNU0lHKHN0YXR1cykpLAotI2lmZGVmIFdDT1JFRFVNUAotCQkJCQlXQ09SRURVTVAoc3RhdHVzKSA/ICIoY29yZSBkdW1wZWQpICIgOgotI2VuZGlmCi0JCQkJCSIiKTsKLQkJCQlwcmludHRyYWlsZXIodGNwKTsKLQkJCX0KLSNpZmRlZiBUQ0JfR1JPVVBfRVhJVElORwotCQkJaGFuZGxlX2dyb3VwX2V4aXQodGNwLCAtMSk7Ci0jZWxzZQotCQkJZHJvcHRjYih0Y3ApOwotI2VuZGlmCi0JCQljb250aW51ZTsKLQkJfQotCQlpZiAoV0lGRVhJVEVEKHN0YXR1cykpIHsKLQkJCWlmIChkZWJ1ZykKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInBpZCAldSBleGl0ZWRcbiIsIHBpZCk7Ci0JCQlpZiAoKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpCi0jaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKLQkJCSAgICAmJiAhKHRjcC0+cGFyZW50ICYmICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJgotCQkJCQkJIFRDQl9HUk9VUF9FWElUSU5HKSkKLSNlbmRpZgotCQkJCSkKLQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJIlBBTklDOiBhdHRhY2hlZCBwaWQgJXUgZXhpdGVkXG4iLAotCQkJCQlwaWQpOwotCQkJaWYgKHRjcCA9PSB0Y3BfbGFzdCkgewotCQkJCWlmICgodGNwLT5mbGFncyAmIChUQ0JfSU5TWVNDQUxMfFRDQl9SRVBSSU5UKSkKLQkJCQkgICAgPT0gVENCX0lOU1lTQ0FMTCkKLQkJCQkJdHByaW50ZigiIDx1bmZpbmlzaGVkIC4uLiBleGl0IHN0YXR1cyAlZD5cbiIsCi0JCQkJCQlXRVhJVFNUQVRVUyhzdGF0dXMpKTsKLQkJCQl0Y3BfbGFzdCA9IE5VTEw7Ci0JCQl9Ci0jaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKLQkJCWhhbmRsZV9ncm91cF9leGl0KHRjcCwgLTEpOwotI2Vsc2UKLQkJCWRyb3B0Y2IodGNwKTsKLSNlbmRpZgotCQkJY29udGludWU7Ci0JCX0KLQkJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IHBpZCAldSBub3Qgc3RvcHBlZFxuIiwgcGlkKTsKLQkJCWRyb3B0Y2IodGNwKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLCAicGlkICV1IHN0b3BwZWQsIFslc11cbiIsCi0JCQkJcGlkLCBzaWduYW1lKFdTVE9QU0lHKHN0YXR1cykpKTsKLQotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9TVEFSVFVQKSB7Ci0JCQkvKgotCQkJICogVGhpcyBmbGFnIGlzIHRoZXJlIHRvIGtlZXAgdXMgaW4gc3luYy4KLQkJCSAqIE5leHQgdGltZSB0aGlzIHByb2Nlc3Mgc3RvcHMgaXQgc2hvdWxkCi0JCQkgKiByZWFsbHkgYmUgZW50ZXJpbmcgYSBzeXN0ZW0gY2FsbC4KLQkJCSAqLwotCQkJdGNwLT5mbGFncyAmPSB+VENCX1NUQVJUVVA7Ci0JCQlpZiAodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkgewotCQkJCS8qCi0JCQkJICogSW50ZXJlc3RpbmdseSwgdGhlIHByb2Nlc3MgbWF5IHN0b3AKLQkJCQkgKiB3aXRoIFNUT1BTSUcgZXF1YWwgdG8gc29tZSBvdGhlciBzaWduYWwKLQkJCQkgKiB0aGFuIFNJR1NUT1AgaWYgd2UgaGFwcGVuZCB0byBhdHRhY2gKLQkJCQkgKiBqdXN0IGJlZm9yZSB0aGUgcHJvY2VzcyB0YWtlcyBhIHNpZ25hbC4KLQkJCQkgKi8KLQkJCQlpZiAoIVdJRlNUT1BQRUQoc3RhdHVzKSkgewotCQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJCSJwaWQgJXUgbm90IHN0b3BwZWRcbiIsIHBpZCk7Ci0JCQkJCWRldGFjaCh0Y3AsIFdTVE9QU0lHKHN0YXR1cykpOwotCQkJCQljb250aW51ZTsKLQkJCQl9Ci0JCQl9Ci0JCQllbHNlIHsKLSNpZmRlZiBTVU5PUzQKLQkJCQkvKiBBIGNoaWxkIG9mIHVzIHN0b3BwZWQgYXQgZXhlYyAqLwotCQkJCWlmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1RSQVAgJiYgZm9sbG93dmZvcmspCi0JCQkJCWZpeHZmb3JrKHRjcCk7Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0JCQl9Ci0JCQlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpIHsKLQkJCQlpZiAoY2xlYXJicHQodGNwKSA8IDApIC8qIFByZXR0eSBmYXRhbCAqLyB7Ci0JCQkJCWRyb3B0Y2IodGNwKTsKLQkJCQkJY2xlYW51cCgpOwotCQkJCQlyZXR1cm4gLTE7Ci0JCQkJfQotCQkJfQotCQkJZ290byB0cmFjaW5nOwotCQl9Ci0KLQkJaWYgKFdTVE9QU0lHKHN0YXR1cykgIT0gU0lHVFJBUCkgewotCQkJaWYgKFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHU1RPUCAmJgotCQkJCQkodGNwLT5mbGFncyAmIFRDQl9TSUdUUkFQUEVEKSkgewotCQkJCS8qCi0JCQkJICogVHJhcHBlZCBhdHRlbXB0IHRvIGJsb2NrIFNJR1RSQVAKLQkJCQkgKiBIb3BlIHdlIGFyZSBiYWNrIGluIGNvbnRyb2wgbm93LgotCQkJCSAqLwotCQkJCXRjcC0+ZmxhZ3MgJj0gfihUQ0JfSU5TWVNDQUxMIHwgVENCX1NJR1RSQVBQRUQpOwotCQkJCWlmIChwdHJhY2UoUFRSQUNFX1NZU0NBTEwsCi0JCQkJCQlwaWQsIChjaGFyICopIDEsIDApIDwgMCkgewotCQkJCQlwZXJyb3IoInRyYWNlOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKLQkJCQkJY2xlYW51cCgpOwotCQkJCQlyZXR1cm4gLTE7Ci0JCQkJfQotCQkJCWNvbnRpbnVlOwotCQkJfQotCQkJaWYgKCFjZmxhZwotCQkJICAgICYmIChxdWFsX2ZsYWdzW1dTVE9QU0lHKHN0YXR1cyldICYgUVVBTF9TSUdOQUwpKSB7Ci0JCQkJdW5zaWduZWQgbG9uZyBhZGRyID0gMCwgcGMgPSAwOwotI2lmZGVmIFBUX0dFVFNJR0lORk8KLSMJCQkJZGVmaW5lIFBTUl9SSQk0MQotCQkJCXN0cnVjdCBzaWdpbmZvIHNpOwotCQkJCXVuc2lnbmVkIGxvbmcgcHNyOwotCi0JCQkJdXBlZWsocGlkLCBQVF9DUl9JUFNSLCAmcHNyKTsKLQkJCQl1cGVlayhwaWQsIFBUX0NSX0lJUCwgJnBjKTsKLQotCQkJCXBjICs9IChwc3IgPj4gUFNSX1JJKSAmIDB4MzsKLQkJCQlwdHJhY2UoUFRfR0VUU0lHSU5GTywgcGlkLCAwLCAobG9uZykgJnNpKTsKLQkJCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpIHNpLnNpX2FkZHI7Ci0jZWxpZiBkZWZpbmVkIFBUUkFDRV9HRVRTSUdJTkZPCi0JCQkJaWYgKFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHU0VHViB8fAotCQkJCSAgICBXU1RPUFNJRyhzdGF0dXMpID09IFNJR0JVUykgewotCQkJCQlzaWdpbmZvX3Qgc2k7Ci0JCQkJCWlmIChwdHJhY2UoUFRSQUNFX0dFVFNJR0lORk8sIHBpZCwKLQkJCQkJCSAgIDAsICZzaSkgPT0gMCkKLQkJCQkJCWFkZHIgPSAodW5zaWduZWQgbG9uZykKLQkJCQkJCQlzaS5zaV9hZGRyOwotCQkJCX0KLSNlbmRpZgotCQkJCXByaW50bGVhZGVyKHRjcCk7Ci0JCQkJdHByaW50ZigiLS0tICVzICglcykgQCAlbHggKCVseCkgLS0tIiwKLQkJCQkJc2lnbmFtZShXU1RPUFNJRyhzdGF0dXMpKSwKLQkJCQkJc3Ryc2lnbmFsKFdTVE9QU0lHKHN0YXR1cykpLCBwYywgYWRkcik7Ci0JCQkJcHJpbnR0cmFpbGVyKHRjcCk7Ci0JCQl9Ci0JCQlpZiAoKCh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSB8fAotCQkJICAgICB0Y3AtPm5jbG9uZV90aHJlYWRzID4gMCkgJiYKLQkJCQkhc2lnaXNoYW5kbGVkKHRjcCwgV1NUT1BTSUcoc3RhdHVzKSkpIHsKLSNpZmRlZiBUQ0JfR1JPVVBfRVhJVElORwotCQkJCWhhbmRsZV9ncm91cF9leGl0KHRjcCwgV1NUT1BTSUcoc3RhdHVzKSk7Ci0jZWxzZQotCQkJCWRldGFjaCh0Y3AsIFdTVE9QU0lHKHN0YXR1cykpOwotI2VuZGlmCi0JCQkJY29udGludWU7Ci0JCQl9Ci0JCQlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLCBwaWQsIChjaGFyICopIDEsCi0JCQkJICAgV1NUT1BTSUcoc3RhdHVzKSkgPCAwKSB7Ci0JCQkJcGVycm9yKCJ0cmFjZTogcHRyYWNlKFBUUkFDRV9TWVNDQUxMLCAuLi4pIik7Ci0JCQkJY2xlYW51cCgpOwotCQkJCXJldHVybiAtMTsKLQkJCX0KLQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9TVVNQRU5ERUQ7Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAodHJhY2Vfc3lzY2FsbCh0Y3ApIDwgMCkgewotCQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpCi0JCQkJZGV0YWNoKHRjcCwgMCk7Ci0JCQllbHNlIHsKLQkJCQlwdHJhY2UoUFRSQUNFX0tJTEwsCi0JCQkJCXRjcC0+cGlkLCAoY2hhciAqKSAxLCBTSUdURVJNKTsKLQkJCQlkcm9wdGNiKHRjcCk7Ci0JCQl9Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9FWElUSU5HKSB7Ci0jaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKLQkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0dST1VQX0VYSVRJTkcpIHsKLQkJCQlpZiAoaGFuZGxlX2dyb3VwX2V4aXQodGNwLCAwKSA8IDApCi0JCQkJCXJldHVybiAtMTsKLQkJCQljb250aW51ZTsKLQkJCX0KLSNlbmRpZgotCQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpCi0JCQkJZGV0YWNoKHRjcCwgMCk7Ci0JCQllbHNlIGlmIChwdHJhY2UoUFRSQUNFX0NPTlQsIHBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7Ci0JCQkJcGVycm9yKCJzdHJhY2U6IHB0cmFjZShQVFJBQ0VfQ09OVCwgLi4uKSIpOwotCQkJCWNsZWFudXAoKTsKLQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9TVVNQRU5ERUQpIHsKLQkJCWlmICghcWZsYWcpCi0JCQkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICV1IHN1c3BlbmRlZFxuIiwgcGlkKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JdHJhY2luZzoKLQkJaWYgKHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCXBlcnJvcigidHJhY2U6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOwotCQkJY2xlYW51cCgpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQotc3RhdGljIGludCBjdXJjb2w7Ci0KLSNpZmRlZiBfX1NURENfXwotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2RlZmluZSBWQV9TVEFSVChhLCBiKSB2YV9zdGFydChhLCBiKQotI2Vsc2UKLSNpbmNsdWRlIDx2YXJhcmdzLmg+Ci0jZGVmaW5lIFZBX1NUQVJUKGEsIGIpIHZhX3N0YXJ0KGEpCi0jZW5kaWYKLQotdm9pZAotI2lmZGVmIF9fU1REQ19fCi10cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotI2Vsc2UKLXRwcmludGYoZm10LCB2YV9hbGlzdCkKLWNoYXIgKmZtdDsKLXZhX2RjbAotI2VuZGlmCi17Ci0JdmFfbGlzdCBhcmdzOwotCi0JVkFfU1RBUlQoYXJncywgZm10KTsKLQlpZiAob3V0ZikgewotCQlpbnQgbiA9IHZmcHJpbnRmKG91dGYsIGZtdCwgYXJncyk7Ci0JCWlmIChuIDwgMCAmJiBvdXRmICE9IHN0ZGVycikKLQkJCXBlcnJvcihvdXRmbmFtZSA9PSBOVUxMCi0JCQkgICAgICAgPyAiPHdyaXRpbmcgdG8gcGlwZT4iIDogb3V0Zm5hbWUpOwotCQllbHNlCi0JCQljdXJjb2wgKz0gbjsKLQl9Ci0JdmFfZW5kKGFyZ3MpOwotCXJldHVybjsKLX0KLQotdm9pZAotcHJpbnRsZWFkZXIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmICh0Y3BfbGFzdCAmJiAoIW91dGZuYW1lIHx8IGZvbGxvd2ZvcmsgPCAyIHx8IHRjcF9sYXN0ID09IHRjcCkpIHsKLQkJdGNwX2xhc3QtPmZsYWdzIHw9IFRDQl9SRVBSSU5UOwotCQl0cHJpbnRmKCIgPHVuZmluaXNoZWQgLi4uPlxuIik7Ci0JfQotCWN1cmNvbCA9IDA7Ci0JaWYgKChmb2xsb3dmb3JrID09IDEgfHwgcGZsYWdfc2VlbiA+IDEpICYmIG91dGZuYW1lKQotCQl0cHJpbnRmKCIlLTVkICIsIHRjcC0+cGlkKTsKLQllbHNlIGlmIChucHJvY3MgPiAxICYmICFvdXRmbmFtZSkKLQkJdHByaW50ZigiW3BpZCAlNXVdICIsIHRjcC0+cGlkKTsKLQlpZiAodGZsYWcpIHsKLQkJY2hhciBzdHJbc2l6ZW9mKCJISDpNTTpTUyIpXTsKLQkJc3RydWN0IHRpbWV2YWwgdHYsIGR0djsKLQkJc3RhdGljIHN0cnVjdCB0aW1ldmFsIG90djsKLQotCQlnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKLQkJaWYgKHJmbGFnKSB7Ci0JCQlpZiAob3R2LnR2X3NlYyA9PSAwKQotCQkJCW90diA9IHR2OwotCQkJdHZfc3ViKCZkdHYsICZ0diwgJm90dik7Ci0JCQl0cHJpbnRmKCIlNmxkLiUwNmxkICIsCi0JCQkJKGxvbmcpIGR0di50dl9zZWMsIChsb25nKSBkdHYudHZfdXNlYyk7Ci0JCQlvdHYgPSB0djsKLQkJfQotCQllbHNlIGlmICh0ZmxhZyA+IDIpIHsKLQkJCXRwcmludGYoIiVsZC4lMDZsZCAiLAotCQkJCShsb25nKSB0di50dl9zZWMsIChsb25nKSB0di50dl91c2VjKTsKLQkJfQotCQllbHNlIHsKLQkJCXRpbWVfdCBsb2NhbCA9IHR2LnR2X3NlYzsKLQkJCXN0cmZ0aW1lKHN0ciwgc2l6ZW9mKHN0ciksICIlVCIsIGxvY2FsdGltZSgmbG9jYWwpKTsKLQkJCWlmICh0ZmxhZyA+IDEpCi0JCQkJdHByaW50ZigiJXMuJTA2bGQgIiwgc3RyLCAobG9uZykgdHYudHZfdXNlYyk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiJXMgIiwgc3RyKTsKLQkJfQotCX0KLQlpZiAoaWZsYWcpCi0JCXByaW50Y2FsbCh0Y3ApOwotfQotCi12b2lkCi10YWJ0byhjb2wpCi1pbnQgY29sOwotewotCWlmIChjdXJjb2wgPCBjb2wpCi0JCXRwcmludGYoIiUqcyIsIGNvbCAtIGN1cmNvbCwgIiIpOwotfQotCi12b2lkCi1wcmludHRyYWlsZXIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXRwcmludGYoIlxuIik7Ci0JdGNwX2xhc3QgPSBOVUxMOwotfQotCi0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLQotaW50IG1wX2lvY3RsIChpbnQgZmQsIGludCBjbWQsIHZvaWQgKmFyZywgaW50IHNpemUpIHsKLQotCXN0cnVjdCBpb3ZlYyBpb3ZbMl07Ci0JaW50IG4gPSAxOwotCi0JaW92WzBdLmlvdl9iYXNlID0gJmNtZDsKLQlpb3ZbMF0uaW92X2xlbiA9IHNpemVvZiBjbWQ7Ci0JaWYgKGFyZykgewotCQkrK247Ci0JCWlvdlsxXS5pb3ZfYmFzZSA9IGFyZzsKLQkJaW92WzFdLmlvdl9sZW4gPSBzaXplOwotCX0KLQotCXJldHVybiB3cml0ZXYgKGZkLCBpb3YsIG4pOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3N0cmFjZS5zcGVjIGIvc3RyYWNlLnNwZWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlOTRmYTUuLjAwMDAwMDAKLS0tIGEvc3RyYWNlLnNwZWMKKysrIC9kZXYvbnVsbApAQCAtMSwzNTYgKzAsMCBAQAotU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzLgotTmFtZTogc3RyYWNlCi1WZXJzaW9uOiA0LjUuMTIKLVJlbGVhc2U6IDEKLUxpY2Vuc2U6IEJTRAotR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwotVVJMOiBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3N0cmFjZS8KLVNvdXJjZTA6ICV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuYnoyCi1CdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tcm9vdAotCi0lZGVmaW5lIHN0cmFjZTY0X2FyY2hlcyBwcGM2NAotCi0lZGVzY3JpcHRpb24KLVRoZSBzdHJhY2UgcHJvZ3JhbSBpbnRlcmNlcHRzIGFuZCByZWNvcmRzIHRoZSBzeXN0ZW0gY2FsbHMgY2FsbGVkIGFuZAotcmVjZWl2ZWQgYnkgYSBydW5uaW5nIHByb2Nlc3MuICBTdHJhY2UgY2FuIHByaW50IGEgcmVjb3JkIG9mIGVhY2gKLXN5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLiAgU3RyYWNlIGlzIHVzZWZ1bCBmb3IKLWRpYWdub3NpbmcgcHJvYmxlbXMgYW5kIGRlYnVnZ2luZywgYXMgd2VsbCBhcyBmb3IgaW5zdHJ1Y3Rpb25hbAotcHVycG9zZXMuCi0KLUluc3RhbGwgc3RyYWNlIGlmIHlvdSBuZWVkIGEgdG9vbCB0byB0cmFjayB0aGUgc3lzdGVtIGNhbGxzIG1hZGUgYW5kCi1yZWNlaXZlZCBieSBhIHByb2Nlc3MuCi0KLSVpZmFyY2ggJXtzdHJhY2U2NF9hcmNoZXN9Ci0lcGFja2FnZSAtbiBzdHJhY2U2NAotU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzLgotR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwotCi0lZGVzY3JpcHRpb24gLW4gc3RyYWNlNjQKLVRoZSBzdHJhY2UgcHJvZ3JhbSBpbnRlcmNlcHRzIGFuZCByZWNvcmRzIHRoZSBzeXN0ZW0gY2FsbHMgY2FsbGVkIGFuZAotcmVjZWl2ZWQgYnkgYSBydW5uaW5nIHByb2Nlc3MuICBTdHJhY2UgY2FuIHByaW50IGEgcmVjb3JkIG9mIGVhY2gKLXN5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLiAgU3RyYWNlIGlzIHVzZWZ1bCBmb3IKLWRpYWdub3NpbmcgcHJvYmxlbXMgYW5kIGRlYnVnZ2luZywgYXMgd2VsbCBhcyBmb3IgaW5zdHJ1Y3Rpb25hbAotcHVycG9zZXMuCi0KLUluc3RhbGwgc3RyYWNlIGlmIHlvdSBuZWVkIGEgdG9vbCB0byB0cmFjayB0aGUgc3lzdGVtIGNhbGxzIG1hZGUgYW5kCi1yZWNlaXZlZCBieSBhIHByb2Nlc3MuCi0KLVRoaXMgcGFja2FnZSBwcm92aWRlcyB0aGUgYHN0cmFjZTY0JyBwcm9ncmFtIHRvIHRyYWNlIDY0LWJpdCBwcm9jZXNzZXMuCi1UaGUgYHN0cmFjZScgcHJvZ3JhbSBpbiB0aGUgYHN0cmFjZScgcGFja2FnZSBpcyBmb3IgMzItYml0IHByb2Nlc3Nlcy4KLSVlbmRpZgotCi0lcHJlcAotJXNldHVwIC1xCi0KLSVidWlsZAotJWNvbmZpZ3VyZQotbWFrZQotCi0laW5zdGFsbAotcm0gLXJmICV7YnVpbGRyb290fQotbWtkaXIgLXAgJXtidWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4xCi1ta2RpciAtcCAle2J1aWxkcm9vdH0le19iaW5kaXJ9Ci0lbWFrZWluc3RhbGwgbWFuMWRpcj0le2J1aWxkcm9vdH0le19tYW5kaXJ9L21hbjEKLQotIyByZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKLXJtIC1mICV7YnVpbGRyb290fSV7X2JpbmRpcn0vc3RyYWNlLWdyYXBoCi0KLSVpZmFyY2ggJXtzdHJhY2U2NF9hcmNoZXN9Ci1sbiAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZSAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZTY0Ci0lZW5kaWYKLQotJWNsZWFuCi1ybSAtcmYgJXtidWlsZHJvb3R9Ci0KLSVmaWxlcwotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0le19iaW5kaXJ9L3N0cmFjZQotJXtfbWFuZGlyfS9tYW4xLyoKLQotJWlmYXJjaCAle3N0cmFjZTY0X2FyY2hlc30KLSVmaWxlcyAtbiBzdHJhY2U2NAotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0le19iaW5kaXJ9L3N0cmFjZTY0Ci0lZW5kaWYKLQotCi0lY2hhbmdlbG9nCi0qIFdlZCBKdW4gIDggMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjEyLTEKLS0gRml4IGtub3duIHN5c2NhbGwgcmVjb2duaXRpb24gZm9yIElBMzIgcHJvY2Vzc2VzIG9uIHg4Ni02NCAoIzE1ODkzNCkuCi0tIEZpeCBiYWQgb3V0cHV0IGZvciBwdHJhY2Ugb24geDg2LTY0ICgjMTU5Nzg3KS4KLS0gRml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcnJ1bnMgKCMxNTE1NzAsICMxNTkxOTYpLgotLSBNYWtlIHNvbWUgZGlhZ25vc3RpY3MgbW9yZSBjb25zaXN0ZW50ICgjMTU5MzA4KS4KLS0gVXBkYXRlIFBvd2VyUEMgc3lzdGVtIGNhbGxzLgotLSBCZXR0ZXIgcHJpbnRpbmcgZm9yIExpbnV4IGFpbyBzeXN0ZW0gY2FsbHMuCi0tIERvbid0IHRydW5jYXRlIHN0YXRmczY0IGZpZWxkcyB0byAzMiBiaXRzIGluIG91dHB1dCAoIzE1ODI0MykuCi0tIENvc21ldGljIGNvZGUgY2xlYW51cHMgKCMxNTk2ODgpLgotCi0qIFR1ZSBNYXIgMjIgMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjExLTEKLS0gQnVpbGQgdHdlYWtzLgotLSBOb3RlIDQuNS4xMCBzZWxlY3QgZml4ICgjMTUxNTcwKS4KLQotKiBNb24gTWFyIDE0IDIwMDUgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiAtIDQuNS4xMC0xCi0tIEZpeCBzZWxlY3QgaGFuZGxpbmcgb24gbm9uc3RhbmRhcmQgZmRfc2V0IHNpemVzLgotLSBEb24ndCBwcmludCBlcnJvcnMgZm9yIG51bGwgZmlsZSBuYW1lIHBvaW50ZXJzLgotLSBGaXggaW5pdGlhbCBleGVjdmUgb3V0cHV0IHdpdGggLWkgKCMxNDMzNjUpLgotCi0qIEZyaSBGZWIgIDQgMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjktMgotLSB1cGRhdGUgaWE2NCBzeXNjYWxsIGxpc3QgKCMxNDYyNDUpCi0tIGZpeCB4ODZfNjQgc3lzY2FsbCBhcmd1bWVudCBleHRyYWN0aW9uIGZvciAzMi1iaXQgcHJvY2Vzc2VzICgjMTQ2MDkzKQotLSBmaXggLWUgc2lnbmFsPU5BTUUgcGFyc2luZyAoIzE0MzM2MikKLS0gZml4IHg4Nl82NCBleGl0X2dyb3VwIHN5c2NhbGwgaGFuZGxpbmcKLS0gaW1wcm92ZSBzb2NrZXQgaW9jdGwgcHJpbnRpbmcgKCMxMzgyMjMpCi0tIGNvZGUgY2xlYW51cHMgKCMxNDMzNjksICMxNDMzNzApCi0tIGltcHJvdmUgbW91bnQgZmxhZ3MgcHJpbnRpbmcgKCMxNDE5MzIpCi0tIHN1cHBvcnQgc3ltYm9saWMgcHJpbnRpbmcgb2YgeDg2XzY0IGFyY2hfcHJjdGwgcGFyYW1ldGVycyAoIzE0MjY2NykKLS0gZml4IHBvdGVudGlhbCBjcmFzaCBpbiBnZXR4YXR0ciBwcmludGluZwotCi0qIFR1ZSBPY3QgMTkgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjgtMQotLSBmaXggbXVsdGl0aHJlYWRlZCBleGl0IGhhbmRsaW5nICgjMTMyMTUwLCAjMTM1MjU0KQotLSBmaXggaW9jdGwgbmFtZSBtYXRjaGluZyAoIzEyOTgwOCkKLS0gcHJpbnQgUlRDXyogaW9jdGwgc3RydWN0dXJlIGNvbnRlbnRzICgjNTg2MDYpCi0tIGdyb2sgZXBvbGxfKiBzeXNjYWxscyAoIzEzNDQ2MykKLS0gZ3JvayBuZXcgUkxJTUlUXyogdmFsdWVzICgjMTMzNTk0KQotLSBwcmludCBzdHJ1Y3QgY21zZ2hkciBjb250ZW50cyBmb3Igc2VuZG1zZyAoIzEzMTY4OSkKLS0gZml4IGNsb2NrXyogYW5kIHRpbWVyXyogYXJndW1lbnQgb3V0cHV0ICgjMTMxNDIwKQotCi0qIFR1ZSBBdWcgMzEgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjctMgotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbWlzYyBmaXhlcyBhbmQgdXBkYXRlcyAoIzEyODA5MSwgIzEyOTE2NiwgIzEyODM5MSwgIzEyOTM3OCwgIzEzMDk2NSwgIzEzMTE3NykKLQotKiBNb24gSnVsIDEyIDIwMDQgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUuNi0xCi0tIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCB1cGRhdGVzIGlvY3RsIGxpc3RzICgjMTI3Mzk4KSwgZml4ZXMgcXVvdGFjdGwgKCMxMjczOTMpLCBtb3JlIGlvY3RsIGRlY29kaW5nICgjMTI2OTE3KQotCi0qIFN1biBKdW4gMjcgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS41LTEKLS0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIGZpeGVzIHg4Ni02NCBiaWFyY2ggc3VwcG9ydCAoIzEyNjU0NykKLQotKiBUdWUgSnVuIDE1IDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjUuNC0yCi0tIHJlYnVpbHQKLQotKiBUaHUgSnVuICAzIDIwMDQgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUuNC0wLkZDMQotLSByZWJ1aWx0IGZvciBGQzEgdXBkYXRlCi0KLSogVGh1IEp1biAgMyAyMDA0IFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LjQtMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbW9yZSBpb2N0bHMgKCMxMjIyNTcpLCBtaW5vciBmaXhlcwotCi0qIEZyaSBBcHIgMTYgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS4zLTEKLS0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIG1xXyogY2FsbHMgKCMxMjA3MDEpLCAtcCB2cyBOUFRMICgjMTIwNDYyKSwgbW9yZSBmaXhlcyAoIzExODY5NCwgIzEyMDU0MSwgIzExODY4NSkKLQotKiBUdWUgTWFyIDAyIDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjUuMi0xLjEKLS0gcmVidWlsdAotCi0qIE1vbiBNYXIgIDEgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS4yLTEKLS0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIHNjaGVkXyogY2FsbHMgKCMxMTY5OTApLCBzaG93IGNvcmUgZmxhZyAoIzExMjExNykKLQotKiBGcmkgRmViIDEzIDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPgotLSByZWJ1aWx0Ci0KLSogVGh1IE5vdiAxMyAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LjEtMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbW9yZSBmaXhlcyAoIzEwODAxMiwgIzEwNTM2NiwgIzEwNTM1OSwgIzEwNTM1OCkKLQotKiBUdWUgU2VwIDMwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUtMwotLSByZXZlcnQgYm9ndXMgczM5MCBmaXgKLQotKiBUaHUgU2VwIDI1IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUtMS4yLjFBUwotLSByZWJ1aWx0IGZvciAyLjFBUyBlcnJhdHVtCi0KLSogV2VkIFNlcCAyNCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LTIKLS0gcmVidWlsdAotCi0qIFdlZCBTZXAgMjQgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS0xCi0tIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBtb3JlIGZpeGVzICgjMTAxNDk5LCAjMTA0MzY1KQotCi0qIFRodSBKdWwgMTcgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45OS0yCi0tIHJlYnVpbHQKLQotKiBUaHUgSnVsIDE3IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTktMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgZ3Jva3MgbW9yZSBuZXcgc3lzdGVtIGNhbGxzLCBQRl9JTkVUNiBzb2NrZXRzCi0KLSogTW9uIEp1biAxMCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC40Ljk4LTEKLS0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIG1vcmUgZml4ZXMgKCM5MDc1NCwgIzkxMDg1KQotCi0qIFdlZCBKdW4gMDQgMjAwMyBFbGxpb3QgTGVlIDxzb3B3aXRoQHJlZGhhdC5jb20+Ci0tIHJlYnVpbHQKLQotKiBTdW4gTWFyIDMwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTYtMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgaGFuZGxlcyB5ZXQgbW9yZSAyLjUgc3lzY2FsbHMsIHg4Nl82NCAmIGlhNjQgZml4ZXMKLQotKiBNb24gRmViIDI0IDIwMDMgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjQuOTUtMgotLSByZWJ1aWx0Ci0KLSogTW9uIEZlYiAyNCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC40Ljk1LTEKLS0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIGZpeGVkIGdldHJlc3VpZC9nZXRyZXNnaWQgKCM4NDk1OSkKLQotKiBXZWQgRmViIDE5IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTQtMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbmV3IG9wdGlvbiAtRSB0byBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzICgjODIzOTIpCi0KLSogV2VkIEphbiAyMiAyMDAzIFRpbSBQb3dlcnMgPHRpbXBAcmVkaGF0LmNvbT4gNC40LjkzLTIKLS0gcmVidWlsdAotCi0qIFR1ZSBKYW4gMjEgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45My0xCi0tIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBmaXhlcyBwcGMgYW5kIHMzOTAgYnVncywgYWRkcyBtaXNzaW5nIHB0cmFjZSByZXF1ZXN0cwotCi0qIEZyaSBKYW4gMTAgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45MS0xCi0tIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBmaXhlcyAtZiBvbiB4ODYtNjQKLQotKiBGcmkgSmFuIDEwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTAtMQotLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgZml4ZXMgYWxsIGtub3duIGJ1Z3MgbW9kdWxvIGlhNjQgYW5kIHMzOTAgaXNzdWVzCi0KLSogRnJpIEphbiAwMyAyMDAzIEZsb3JpYW4gTGEgUm9jaGUgPEZsb3JpYW4uTGFSb2NoZUByZWRoYXQuZGU+IDQuNC0xMQotLSBhZGQgZnVydGhlciBzMzkwIHBhdGNoIGZyb20gSUJNCi0KLSogV2VkIE5vdiAyNyAyMDAyIFRpbSBQb3dlcnMgPHRpbXBAcmVkaGF0LmNvbT4gNC40LTEwCi0tIHJlbW92ZSB1bnBhY2thZ2VkIGZpbGVzIGZyb20gdGhlIGJ1aWxkcm9vdAotCi0qIE1vbiBPY3QgMDcgMjAwMiBQaGlsIEtuaXJzY2ggPHBrbmlyc2NoQHJlZGhhdC5jb20+IDQuNC05LjEKLS0gQWRkZWQgbGF0ZXN0IHMzOTAoeCkgcGF0Y2guCi0KLSogRnJpIFNlcCAwNiAyMDAyIEthcnN0ZW4gSG9wcCA8a2Fyc3RlbkByZWRoYXQuZGU+IDQuNC05Ci0tIHByZWxpbWluYXJ5IHg4Nl82NCBzdXBwb3J0IHdpdGggYW4gdWdseSBwYXRjaCB0byBoZWxwCi0gIGRlYnVnZ2luZy4gTmVlZHMgY2xlYW51cCEKLQotKiBNb24gU2VwICAyIDIwMDIgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LTgKLS0gbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY2xvbmUgZml4aW5nIHBhdGNoIChSb2xhbmQgTWNHcmF0aCkKLS0gYWlvIHN5c2NhbGxzIGZvciBpMzg2L2lhNjQvcHBjIChCZW4gTGFIYWlzZSkKLQotKiBXZWQgQXVnIDI4IDIwMDIgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LTcKLS0gZml4IHN0cmFjZSAtZiAoUm9sYW5kIE1jR3JhdGgsICM2ODk5NCkKLS0gaGFuZGxlID9ldF90aHJlYWRfYXJlYSwgU0FfUkVTVE9SRVIgKFVscmljaCBEcmVwcGVyKQotCi0qIEZyaSBKdW4gMjEgMjAwMiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQtNgotLSBoYW5kbGUgZnV0ZXhlcywgKnhhdHRyLCBzZW5kZmlsZTY0LCBldGMuIChVbHJpY2ggRHJlcHBlcikKLS0gaGFuZGxlIG1vZGlmeV9sZHQgKCM2Njg5NCkKLQotKiBUaHUgTWF5IDIzIDIwMDIgVGltIFBvd2VycyA8dGltcEByZWRoYXQuY29tPgotLSBhdXRvbWF0ZWQgcmVidWlsZAotCi0qIFR1ZSBBcHIgMTYgMjAwMiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQtNAotLSBmaXggZm9yIHRoZSBsYXN0IHBhdGNoIGJ5IEplZmYgTGF3ICgjNjI1OTEpCi0KLSogTW9uIE1hciAgNCAyMDAyIFByZXN0b24gQnJvd24gPHBicm93bkByZWRoYXQuY29tPiA0LjQtMwotLSBpbnRlZ3JhdGUgcGF0Y2ggZnJvbSBKZWZmIExhdyB0byBlbGltaW5hdGUgaGFuZyB0cmFjaW5nIHRocmVhZHMKLQotKiBTYXQgRmViIDIzIDIwMDIgRmxvcmlhbiBMYSBSb2NoZSA8Rmxvcmlhbi5MYVJvY2hlQHJlZGhhdC5kZT4KLS0gbWlub3IgdXBkYXRlIGZyb20gZGViaWFuIHRhci1iYWxsCi0KLSogV2VkIEphbiAwMiAyMDAyIEZsb3JpYW4gTGEgUm9jaGUgPEZsb3JpYW4uTGFSb2NoZUByZWRoYXQuZGU+Ci0tIHVwZGF0ZSB0byA0LjQKLQotKiBTdW4gSnVsIDIyIDIwMDEgRmxvcmlhbiBMYSBSb2NoZSA8Rmxvcmlhbi5MYVJvY2hlQHJlZGhhdC5kZT4KLS0gZGlzYWJsZSBzMzkwIHBhdGNoZXMsIHRoZXkgYXJlIGFscmVhZHkgaW5jbHVkZWQKLQotKiBXZWQgSnVsIDE4IDIwMDEgUHJlc3RvbiBCcm93biA8cGJyb3duQHJlZGhhdC5jb20+IDQuMy0xCi0tIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLiAgU2VlbXMgdG8gaGF2ZSBpbnRlZ3JhdGVkIG1vc3QgbmV3IHN5c2NhbGxzCi0tIHRyYWNpbmcgdGhyZWFkZWQgcHJvZ3JhbXMgaXMgbm93IGZ1bmN0aW9uYWwuCi0KLSogTW9uIEp1biAxMSAyMDAxIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+Ci0tIHBvcnQgczM5MCBwYXRjaGVzIGZyb20gSUJNCi0KLSogV2VkIE1heSAxNiAyMDAxIE5hbGluIERhaHlhYmhhaSA8bmFsaW5AcmVkaGF0LmNvbT4KLS0gbW9kaWZ5IG5ldyBzeXNjYWxsIHBhdGNoIHRvIGFsbG9jYXRlIGVub3VnaCBoZWFwIHNwYWNlIGluIHNldGdyb3VwczMyKCkKLQotKiBXZWQgRmViIDE0IDIwMDEgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KLS0gI2luY2x1ZGUgPHRpbWUuaD4gaW4gYWRkaXRpb24gdG8gPHN5cy90aW1lLmg+Ci0KLSogRnJpIEphbiAyNiAyMDAxIEthcnN0ZW4gSG9wcCA8a2Fyc3RlbkByZWRoYXQuY29tPgotLSBjbGVhbiB1cCBjb25mbGljdGluZyBwYXRjaGVzLiBUaGlzIGhhcHBlbmVkIG9ubHkKLSAgd2hlbiBidWlsZGluZyBvbiBTMzkwCi0KLSogRnJpIEphbiAxOSAyMDAxIEJpbGwgTm90dGluZ2hhbSA8bm90dGluZ0ByZWRoYXQuY29tPgotLSB1cGRhdGUgdG8gQ1ZTLCByZWludGVncmF0ZSBpYTY0IHN1cHBvcnQKLQotKiBTYXQgRGVjICA4IDIwMDAgQmVybmhhcmQgUm9zZW5rcmFlbnplciA8YmVyb0ByZWRoYXQuY29tPgotLSBHZXQgUy8zOTAgc3VwcG9ydCBpbnRvIHRoZSBub3JtYWwgcGFja2FnZQotCi0qIFNhdCBOb3YgMTggMjAwMCBGbG9yaWFuIExhIFJvY2hlIDxGbG9yaWFuLkxhUm9jaGVAcmVkaGF0LmRlPgotLSBhZGRlZCBTLzM5MCBwYXRjaCBmcm9tIElCTSwgYWRhcHRpbmcgaXQgdG8gbm90IGNvbmZsaWN0IHdpdGgKLSAgSUE2NCBwYXRjaAotCi0qIFNhdCBBdWcgMTkgMjAwMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgotLSBkb2gsIGFjdHVhbGx5IGFwcGx5IHRoZSAyLjQgc3lzY2FsbHMgcGF0Y2gKLS0gbWFrZSBpdCBjb21waWxlIHdpdGggMi40LjAtdGVzdDctcHJlNCsgaGVhZGVycywgYWRkCi0gIGdldGRlbnRzNjQgYW5kIGZjbnRsNjQKLQotKiBUaHUgQXVnICAzIDIwMDAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KLS0gYWRkIGEgYnVuY2ggb2YgbmV3IDIuNCBzeXNjYWxscyAoIzE0MDM2KQotCi0qIFdlZCBKdWwgMTIgMjAwMCBQcm9zcGVjdG9yIDxidWd6aWxsYUByZWRoYXQuY29tPgotLSBhdXRvbWF0aWMgcmVidWlsZAotLSBleGNsdWRlYXJjaCBpYTY0Ci0KLSogRnJpIEp1biAgMiAyMDAwIE1hdHQgV2lsc29uIDxtc3dAcmVkaGF0LmNvbT4KLS0gdXNlIGJ1aWxkaW5zdGFsbCBmb3IgRkhTCi0KLSogV2VkIE1heSAyNCAyMDAwIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+Ci0tIG1ha2UgdGhpbmdzIGNvbXBpbGUgb24gc3BhcmMKLS0gZml4IHNpZ3JldHVybiBvbiBzcGFyYwotCi0qIEZyaSBNYXIgMzEgMjAwMCBCaWxsIE5vdHRpbmdoYW0gPG5vdHRpbmdAcmVkaGF0LmNvbT4KLS0gZml4IHN0YXQ2NCBtaXNkZWYgKCMxMDQ4NSkKLQotKiBUdWUgTWFyIDIxIDIwMDAgTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUByZWRoYXQuY29tPgotLSBhZGRlZCBpYTY0IHBhdGNoCi0KLSogVGh1IEZlYiAwMyAyMDAwIENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+Ci0tIG1hbiBwYWdlcyBhcmUgY29tcHJlc3NlZAotLSB2ZXJzaW9uIDQuMiAod2h5IGFyZSB3ZSBrZWVwaW5nIGFsbCB0aGVzZSBwYXRjaGVzIGFyb3VuZD8pCi0KLSogU2F0IE5vdiAyNyAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+Ci0tIHVwZGF0ZSB0byA0LjEgKHdpdGggc3BhcmMgc29ja2V0Y2FsbCBwYXRjaCkuCi0KLSogRnJpIE5vdiAxMiAxOTk5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+Ci0tIGZpeCBzb2NrZXRjYWxsIG9uIHNwYXJjLgotCi0qIFRodSBTZXAgMDIgMTk5OSBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgotLSBmaXggS0VSTl9TRUNVUkVMVkwgY29tcGlsZSBwcm9ibGVtCi0KLSogVHVlIEF1ZyAzMSAxOTk5IENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+Ci0tIGFkZGVkIGFscGhhIHBhdGNoIGZyb20gSEpMdSB0byBmaXggdGhlIG9zZl9zaWdwcm9jbWFzayBpbnRlcnByZXRhdGlvbgotCi0qIFNhdCBKdW4gMTIgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgotLSB1cGRhdGUgdG8gMy45OS4xLgotCi0qIFdlZCBKdW4gIDIgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgotLSBhZGQgKHRoZSBvdGhlciA6LSkgamoncyBzcGFyYyBwYXRjaC4KLQotKiBXZWQgTWF5IDI2IDE5OTkgSmVmZiBKb2huc29uIDxqYmpAcmVkaGF0LmNvbT4KLS0gdXBncmFkZSB0byAzLjk5IGluIG9yZGVyIHRvCi0tICAgIGFkZCBuZXcgMi4yLnggb3BlbiBmbGFncyAoIzI5NTUpLgotLSAgICBhZGQgbmV3IDIuMi54IHN5c2NhbGxzICgjMjg2NikuCi0tIHN0cmFjZSAzLjEgcGF0Y2hlcyBjYXJyaWVkIGFsb25nIGZvciBub3cuCi0KLSogU3VuIE1heSAxNiAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+Ci0tIGRvbid0IHJlbHkgb24gKGJyb2tlbiEpIHJwbSAlcGF0Y2ggKCMyNzM1KQotCi0qIFR1ZSBBcHIgMDYgMTk5OSBQcmVzdG9uIEJyb3duIDxwYnJvd25AcmVkaGF0LmNvbT4KLS0gc3RyaXAgYmluYXJ5Ci0KLSogU3VuIE1hciAyMSAxOTk5IENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+Ci0tIGF1dG8gcmVidWlsZCBpbiB0aGUgbmV3IGJ1aWxkIGVudmlyb25tZW50IChyZWxlYXNlIDE2KQotCi0qIFR1ZSBGZWIgIDkgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgotLSB2Zm9yayBlc3QgYXJyaXZlIQotCi0qIFR1ZSBGZWIgIDkgMTk5OSBDaHJpc3RvcGhlciBCbGl6emFyZCA8YmxpenphcmRAcmVkaGF0LmNvbT4KLS0gQWRkIHBhdGNoIHRvIGZvbGxvdyBjbG9uZSgpIHN5c2NhbGxzLCB0b28uCi0KLSogU3VuIEphbiAxNyAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+Ci0tIHBhdGNoIHRvIGJ1aWxkIGFscGhhL3NwYXJjIHdpdGggZ2xpYmMgMi4xLgotCi0qIFRodSBEZWMgMDMgMTk5OCBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgotLSBwYXRjaCB0byBidWlsZCBvbiBBUk0KLQotKiBXZWQgU2VwIDMwIDE5OTggSmVmZiBKb2huc29uIDxqYmpAcmVkaGF0LmNvbT4KLS0gZml4IHR5cG8gKHByaW50Ziwgbm90IHRwcmludGYpLgotCi0qIFNhdCBTZXAgMTkgMTk5OCBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgotLSBmaXggY29tcGlsZSBwcm9ibGVtIG9uIHNwYXJjLgotCi0qIFR1ZSBBdWcgMTggMTk5OCBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgotLSBidWlsZHJvb3QKLQotKiBNb24gSnVsIDIwIDE5OTggQ3Jpc3RpYW4gR2FmdG9uIDxnYWZ0b25AcmVkaGF0LmNvbT4KLS0gYWRkZWQgdGhlIHVtb3ZlbiBwYXRjaCBmcm9tIEphbWVzIFlvdW5nbWFuIDxqYXlAZ251Lm9yZz4KLS0gZml4ZWQgYnVpbGQgcHJvYmxlbXMgb24gbmV3ZXIgZ2xpYmMgcmVsZWFzZXMKLQotKiBNb24gSnVuIDA4IDE5OTggUHJvc3BlY3RvciBTeXN0ZW0gPGJ1Z3NAcmVkaGF0LmNvbT4KLS0gdHJhbnNsYXRpb25zIG1vZGlmaWVkIGZvciBkZSwgZnIsIHRyCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9hbHBoYS9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmZhZmY5Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9hbHBoYS9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTE2ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVERUFETEsiLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVBR0FJTiIsIC8qIDM1ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMzYgKi8KLQkiRUFMUkVBRFkiLCAvKiAzNyAqLwotCSJFTk9UU09DSyIsIC8qIDM4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDM5ICovCi0JIkVNU0dTSVpFIiwgLyogNDAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDQxICovCi0JIkVOT1BST1RPT1BUIiwgLyogNDIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogNDMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogNDQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDQ1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDQ2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDQ3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA0OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogNDkgKi8KLQkiRU5FVERPV04iLCAvKiA1MCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDUxICovCi0JIkVORVRSRVNFVCIsIC8qIDUyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDUzICovCi0JIkVDT05OUkVTRVQiLCAvKiA1NCAqLwotCSJFTk9CVUZTIiwgLyogNTUgKi8KLQkiRUlTQ09OTiIsIC8qIDU2ICovCi0JIkVOT1RDT05OIiwgLyogNTcgKi8KLQkiRVNIVVRET1dOIiwgLyogNTggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogNTkgKi8KLQkiRVRJTUVET1VUIiwgLyogNjAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogNjEgKi8KLQkiRUxPT1AiLCAvKiA2MiAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiA2MyAqLwotCSJFSE9TVERPV04iLCAvKiA2NCAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiA2NSAqLwotCSJFTk9URU1QVFkiLCAvKiA2NiAqLwotCSJFUlJOT182NyIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFUlJOT183MiIsIC8qIDcyICovCi0JIkVSUk5PXzczIiwgLyogNzMgKi8KLQkiRVJSTk9fNzQiLCAvKiA3NCAqLwotCSJFUlJOT183NSIsIC8qIDc1ICovCi0JIkVSUk5PXzc2IiwgLyogNzYgKi8KLQkiRU5PTENLIiwgLyogNzcgKi8KLQkiRU5PU1lTIiwgLyogNzggKi8KLQkiRVJSTk9fNzkiLCAvKiA3OSAqLwotCSJFTk9NU0ciLCAvKiA4MCAqLwotCSJFSURSTSIsIC8qIDgxICovCi0JIkVOT1NSIiwgLyogODIgKi8KLQkiRVRJTUUiLCAvKiA4MyAqLwotCSJFQkFETVNHIiwgLyogODQgKi8KLQkiRVBST1RPIiwgLyogODUgKi8KLQkiRU5PREFUQSIsIC8qIDg2ICovCi0JIkVOT1NUUiIsIC8qIDg3ICovCi0JIkVDSFJORyIsIC8qIDg4ICovCi0JIkVMMk5TWU5DIiwgLyogODkgKi8KLQkiRUwzSExUIiwgLyogOTAgKi8KLQkiRUwzUlNUIiwgLyogOTEgKi8KLQkiRU5PUEtHIiwgLyogOTIgKi8KLQkiRUxOUk5HIiwgLyogOTMgKi8KLQkiRVVOQVRDSCIsIC8qIDk0ICovCi0JIkVOT0NTSSIsIC8qIDk1ICovCi0JIkVMMkhMVCIsIC8qIDk2ICovCi0JIkVCQURFIiwgLyogOTcgKi8KLQkiRUJBRFIiLCAvKiA5OCAqLwotCSJFWEZVTEwiLCAvKiA5OSAqLwotCSJFTk9BTk8iLCAvKiAxMDAgKi8KLQkiRUJBRFJRQyIsIC8qIDEwMSAqLwotCSJFQkFEU0xUIiwgLyogMTAyICovCi0JIkVERUFETE9DSyIsIC8qIDEwMyAqLwotCSJFQkZPTlQiLCAvKiAxMDQgKi8KLQkiRU5PTkVUIiwgLyogMTA1ICovCi0JIkVOT0xJTksiLCAvKiAxMDYgKi8KLQkiRUFEViIsIC8qIDEwNyAqLwotCSJFU1JNTlQiLCAvKiAxMDggKi8KLQkiRUNPTU0iLCAvKiAxMDkgKi8KLQkiRU1VTFRJSE9QIiwgLyogMTEwICovCi0JIkVET1RET1QiLCAvKiAxMTEgKi8KLQkiRU9WRVJGTE9XIiwgLyogMTEyICovCi0JIkVOT1RVTklRIiwgLyogMTEzICovCi0JIkVCQURGRCIsIC8qIDExNCAqLwotCSJFUkVNQ0hHIiwgLyogMTE1ICovCi0JIkVJTFNFUSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVMSUJBQ0MiLCAvKiAxMjIgKi8KLQkiRUxJQkJBRCIsIC8qIDEyMyAqLwotCSJFTElCU0NOIiwgLyogMTI0ICovCi0JIkVMSUJNQVgiLCAvKiAxMjUgKi8KLQkiRUxJQkVYRUMiLCAvKiAxMjYgKi8KLQkiRVJFU1RBUlQiLCAvKiAxMjcgKi8KLQkiRVNUUlBJUEUiLCAvKiAxMjggKi8KLQkiRVJSTk9fMTI5IiwgLyogMTI5ICovCi0JIkVSUk5PXzEzMCIsIC8qIDEzMCAqLwotCSJFUlJOT18xMzEiLCAvKiAxMzEgKi8KLQkiRVJSTk9fMTMyIiwgLyogMTMyICovCi0JIkVSUk5PXzEzMyIsIC8qIDEzMyAqLwotCSJFUlJOT18xMzQiLCAvKiAxMzQgKi8KLQkiRVJSTk9fMTM1IiwgLyogMTM1ICovCi0JIkVSUk5PXzEzNiIsIC8qIDEzNiAqLwotCSJFUlJOT18xMzciLCAvKiAxMzcgKi8KLQkiRVJSTk9fMTM4IiwgLyogMTM4ICovCi0JIkVSUk5PXzEzOSIsIC8qIDEzOSAqLwotCSJFUlJOT18xNDAiLCAvKiAxNDAgKi8KLQkiRVJSTk9fMTQxIiwgLyogMTQxICovCi0JIkVSUk5PXzE0MiIsIC8qIDE0MiAqLwotCSJFUlJOT18xNDMiLCAvKiAxNDMgKi8KLQkiRVJSTk9fMTQ0IiwgLyogMTQ0ICovCi0JIkVSUk5PXzE0NSIsIC8qIDE0NSAqLwotCSJFUlJOT18xNDYiLCAvKiAxNDYgKi8KLQkiRVJSTk9fMTQ3IiwgLyogMTQ3ICovCi0JIkVSUk5PXzE0OCIsIC8qIDE0OCAqLwotCSJFUlJOT18xNDkiLCAvKiAxNDkgKi8KLQkiRVJSTk9fMTUwIiwgLyogMTUwICovCi0JIkVSUk5PXzE1MSIsIC8qIDE1MSAqLwotCSJFUlJOT18xNTIiLCAvKiAxNTIgKi8KLQkiRVJSTk9fMTUzIiwgLyogMTUzICovCi0JIkVSUk5PXzE1NCIsIC8qIDE1NCAqLwotCSJFUlJOT18xNTUiLCAvKiAxNTUgKi8KLQkiRVJSTk9fMTU2IiwgLyogMTU2ICovCi0JIkVSUk5PXzE1NyIsIC8qIDE1NyAqLwotCSJFUlJOT18xNTgiLCAvKiAxNTggKi8KLQkiRVJSTk9fMTU5IiwgLyogMTU5ICovCi0JIkVSUk5PXzE2MCIsIC8qIDE2MCAqLwotCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KLQkiRVJSTk9fMTYyIiwgLyogMTYyICovCi0JIkVSUk5PXzE2MyIsIC8qIDE2MyAqLwotCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KLQkiRVJSTk9fMTY1IiwgLyogMTY1ICovCi0JIkVSUk5PXzE2NiIsIC8qIDE2NiAqLwotCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KLQkiRVJSTk9fMTY4IiwgLyogMTY4ICovCi0JIkVSUk5PXzE2OSIsIC8qIDE2OSAqLwotCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KLQkiRVJSTk9fMTcxIiwgLyogMTcxICovCi0JIkVSUk5PXzE3MiIsIC8qIDE3MiAqLwotCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KLQkiRVJSTk9fMTc0IiwgLyogMTc0ICovCi0JIkVSUk5PXzE3NSIsIC8qIDE3NSAqLwotCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KLQkiRVJSTk9fMTc3IiwgLyogMTc3ICovCi0JIkVSUk5PXzE3OCIsIC8qIDE3OCAqLwotCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KLQkiRVJSTk9fMTgwIiwgLyogMTgwICovCi0JIkVSUk5PXzE4MSIsIC8qIDE4MSAqLwotCSJFUlJOT18xODIiLCAvKiAxODIgKi8KLQkiRVJSTk9fMTgzIiwgLyogMTgzICovCi0JIkVSUk5PXzE4NCIsIC8qIDE4NCAqLwotCSJFUlJOT18xODUiLCAvKiAxODUgKi8KLQkiRVJSTk9fMTg2IiwgLyogMTg2ICovCi0JIkVSUk5PXzE4NyIsIC8qIDE4NyAqLwotCSJFUlJOT18xODgiLCAvKiAxODggKi8KLQkiRVJSTk9fMTg5IiwgLyogMTg5ICovCi0JIkVSUk5PXzE5MCIsIC8qIDE5MCAqLwotCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KLQkiRVJSTk9fMTkyIiwgLyogMTkyICovCi0JIkVSUk5PXzE5MyIsIC8qIDE5MyAqLwotCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KLQkiRVJSTk9fMTk1IiwgLyogMTk1ICovCi0JIkVSUk5PXzE5NiIsIC8qIDE5NiAqLwotCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KLQkiRVJSTk9fMTk4IiwgLyogMTk4ICovCi0JIkVSUk5PXzE5OSIsIC8qIDE5OSAqLwotCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KLQkiRVJSTk9fMjAxIiwgLyogMjAxICovCi0JIkVSUk5PXzIwMiIsIC8qIDIwMiAqLwotCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KLQkiRVJSTk9fMjA0IiwgLyogMjA0ICovCi0JIkVSUk5PXzIwNSIsIC8qIDIwNSAqLwotCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KLQkiRVJSTk9fMjA3IiwgLyogMjA3ICovCi0JIkVSUk5PXzIwOCIsIC8qIDIwOCAqLwotCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KLQkiRVJSTk9fMjEwIiwgLyogMjEwICovCi0JIkVSUk5PXzIxMSIsIC8qIDIxMSAqLwotCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KLQkiRVJSTk9fMjEzIiwgLyogMjEzICovCi0JIkVSUk5PXzIxNCIsIC8qIDIxNCAqLwotCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KLQkiRVJSTk9fMjE2IiwgLyogMjE2ICovCi0JIkVSUk5PXzIxNyIsIC8qIDIxNyAqLwotCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KLQkiRVJSTk9fMjE5IiwgLyogMjE5ICovCi0JIkVSUk5PXzIyMCIsIC8qIDIyMCAqLwotCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KLQkiRVJSTk9fMjIyIiwgLyogMjIyICovCi0JIkVSUk5PXzIyMyIsIC8qIDIyMyAqLwotCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KLQkiRVJSTk9fMjI1IiwgLyogMjI1ICovCi0JIkVSUk5PXzIyNiIsIC8qIDIyNiAqLwotCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KLQkiRVJSTk9fMjI4IiwgLyogMjI4ICovCi0JIkVSUk5PXzIyOSIsIC8qIDIyOSAqLwotCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KLQkiRVJSTk9fMjMxIiwgLyogMjMxICovCi0JIkVSUk5PXzIzMiIsIC8qIDIzMiAqLwotCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KLQkiRVJSTk9fMjM0IiwgLyogMjM0ICovCi0JIkVSUk5PXzIzNSIsIC8qIDIzNSAqLwotCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KLQkiRVJSTk9fMjM3IiwgLyogMjM3ICovCi0JIkVSUk5PXzIzOCIsIC8qIDIzOCAqLwotCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KLQkiRVJSTk9fMjQwIiwgLyogMjQwICovCi0JIkVSUk5PXzI0MSIsIC8qIDI0MSAqLwotCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KLQkiRVJSTk9fMjQzIiwgLyogMjQzICovCi0JIkVSUk5PXzI0NCIsIC8qIDI0NCAqLwotCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KLQkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCi0JIkVSUk5PXzI0NyIsIC8qIDI0NyAqLwotCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KLQkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCi0JIkVSUk5PXzI1MCIsIC8qIDI1MCAqLwotCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KLQkiRVJSTk9fMjUyIiwgLyogMjUyICovCi0JIkVSUk5PXzI1MyIsIC8qIDI1MyAqLwotCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KLQkiRVJSTk9fMjU1IiwgLyogMjU1ICovCi0JIkVSUk5PXzI1NiIsIC8qIDI1NiAqLwotCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KLQkiRVJSTk9fMjU4IiwgLyogMjU4ICovCi0JIkVSUk5PXzI1OSIsIC8qIDI1OSAqLwotCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KLQkiRVJSTk9fMjYxIiwgLyogMjYxICovCi0JIkVSUk5PXzI2MiIsIC8qIDI2MiAqLwotCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KLQkiRVJSTk9fMjY0IiwgLyogMjY0ICovCi0JIkVSUk5PXzI2NSIsIC8qIDI2NSAqLwotCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KLQkiRVJSTk9fMjY3IiwgLyogMjY3ICovCi0JIkVSUk5PXzI2OCIsIC8qIDI2OCAqLwotCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KLQkiRVJSTk9fMjcwIiwgLyogMjcwICovCi0JIkVSUk5PXzI3MSIsIC8qIDI3MSAqLwotCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KLQkiRVJSTk9fMjczIiwgLyogMjczICovCi0JIkVSUk5PXzI3NCIsIC8qIDI3NCAqLwotCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KLQkiRVJSTk9fMjc2IiwgLyogMjc2ICovCi0JIkVSUk5PXzI3NyIsIC8qIDI3NyAqLwotCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KLQkiRVJSTk9fMjc5IiwgLyogMjc5ICovCi0JIkVSUk5PXzI4MCIsIC8qIDI4MCAqLwotCSJFUlJOT18yODEiLCAvKiAyODEgKi8KLQkiRVJSTk9fMjgyIiwgLyogMjgyICovCi0JIkVSUk5PXzI4MyIsIC8qIDI4MyAqLwotCSJFUlJOT18yODQiLCAvKiAyODQgKi8KLQkiRVJSTk9fMjg1IiwgLyogMjg1ICovCi0JIkVSUk5PXzI4NiIsIC8qIDI4NiAqLwotCSJFUlJOT18yODciLCAvKiAyODcgKi8KLQkiRVJSTk9fMjg4IiwgLyogMjg4ICovCi0JIkVSUk5PXzI4OSIsIC8qIDI4OSAqLwotCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KLQkiRVJSTk9fMjkxIiwgLyogMjkxICovCi0JIkVSUk5PXzI5MiIsIC8qIDI5MiAqLwotCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KLQkiRVJSTk9fMjk0IiwgLyogMjk0ICovCi0JIkVSUk5PXzI5NSIsIC8qIDI5NSAqLwotCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KLQkiRVJSTk9fMjk3IiwgLyogMjk3ICovCi0JIkVSUk5PXzI5OCIsIC8qIDI5OCAqLwotCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KLQkiRVJSTk9fMzAwIiwgLyogMzAwICovCi0JIkVSUk5PXzMwMSIsIC8qIDMwMSAqLwotCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KLQkiRVJSTk9fMzAzIiwgLyogMzAzICovCi0JIkVSUk5PXzMwNCIsIC8qIDMwNCAqLwotCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KLQkiRVJSTk9fMzA2IiwgLyogMzA2ICovCi0JIkVSUk5PXzMwNyIsIC8qIDMwNyAqLwotCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KLQkiRVJSTk9fMzA5IiwgLyogMzA5ICovCi0JIkVSUk5PXzMxMCIsIC8qIDMxMCAqLwotCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KLQkiRVJSTk9fMzEyIiwgLyogMzEyICovCi0JIkVSUk5PXzMxMyIsIC8qIDMxMyAqLwotCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KLQkiRVJSTk9fMzE1IiwgLyogMzE1ICovCi0JIkVSUk5PXzMxNiIsIC8qIDMxNiAqLwotCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KLQkiRVJSTk9fMzE4IiwgLyogMzE4ICovCi0JIkVSUk5PXzMxOSIsIC8qIDMxOSAqLwotCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KLQkiRVJSTk9fMzIxIiwgLyogMzIxICovCi0JIkVSUk5PXzMyMiIsIC8qIDMyMiAqLwotCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KLQkiRVJSTk9fMzI0IiwgLyogMzI0ICovCi0JIkVSUk5PXzMyNSIsIC8qIDMyNSAqLwotCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KLQkiRVJSTk9fMzI3IiwgLyogMzI3ICovCi0JIkVSUk5PXzMyOCIsIC8qIDMyOCAqLwotCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KLQkiRVJSTk9fMzMwIiwgLyogMzMwICovCi0JIkVSUk5PXzMzMSIsIC8qIDMzMSAqLwotCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KLQkiRVJSTk9fMzMzIiwgLyogMzMzICovCi0JIkVSUk5PXzMzNCIsIC8qIDMzNCAqLwotCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KLQkiRVJSTk9fMzM2IiwgLyogMzM2ICovCi0JIkVSUk5PXzMzNyIsIC8qIDMzNyAqLwotCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KLQkiRVJSTk9fMzM5IiwgLyogMzM5ICovCi0JIkVSUk5PXzM0MCIsIC8qIDM0MCAqLwotCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KLQkiRVJSTk9fMzQyIiwgLyogMzQyICovCi0JIkVSUk5PXzM0MyIsIC8qIDM0MyAqLwotCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KLQkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCi0JIkVSUk5PXzM0NiIsIC8qIDM0NiAqLwotCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KLQkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCi0JIkVSUk5PXzM0OSIsIC8qIDM0OSAqLwotCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KLQkiRVJSTk9fMzUxIiwgLyogMzUxICovCi0JIkVSUk5PXzM1MiIsIC8qIDM1MiAqLwotCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KLQkiRVJSTk9fMzU0IiwgLyogMzU0ICovCi0JIkVSUk5PXzM1NSIsIC8qIDM1NSAqLwotCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KLQkiRVJSTk9fMzU3IiwgLyogMzU3ICovCi0JIkVSUk5PXzM1OCIsIC8qIDM1OCAqLwotCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KLQkiRVJSTk9fMzYwIiwgLyogMzYwICovCi0JIkVSUk5PXzM2MSIsIC8qIDM2MSAqLwotCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KLQkiRVJSTk9fMzYzIiwgLyogMzYzICovCi0JIkVSUk5PXzM2NCIsIC8qIDM2NCAqLwotCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KLQkiRVJSTk9fMzY2IiwgLyogMzY2ICovCi0JIkVSUk5PXzM2NyIsIC8qIDM2NyAqLwotCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KLQkiRVJSTk9fMzY5IiwgLyogMzY5ICovCi0JIkVSUk5PXzM3MCIsIC8qIDM3MCAqLwotCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KLQkiRVJSTk9fMzcyIiwgLyogMzcyICovCi0JIkVSUk5PXzM3MyIsIC8qIDM3MyAqLwotCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KLQkiRVJSTk9fMzc1IiwgLyogMzc1ICovCi0JIkVSUk5PXzM3NiIsIC8qIDM3NiAqLwotCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KLQkiRVJSTk9fMzc4IiwgLyogMzc4ICovCi0JIkVSUk5PXzM3OSIsIC8qIDM3OSAqLwotCSJFUlJOT18zODAiLCAvKiAzODAgKi8KLQkiRVJSTk9fMzgxIiwgLyogMzgxICovCi0JIkVSUk5PXzM4MiIsIC8qIDM4MiAqLwotCSJFUlJOT18zODMiLCAvKiAzODMgKi8KLQkiRVJSTk9fMzg0IiwgLyogMzg0ICovCi0JIkVSUk5PXzM4NSIsIC8qIDM4NSAqLwotCSJFUlJOT18zODYiLCAvKiAzODYgKi8KLQkiRVJSTk9fMzg3IiwgLyogMzg3ICovCi0JIkVSUk5PXzM4OCIsIC8qIDM4OCAqLwotCSJFUlJOT18zODkiLCAvKiAzODkgKi8KLQkiRVJSTk9fMzkwIiwgLyogMzkwICovCi0JIkVSUk5PXzM5MSIsIC8qIDM5MSAqLwotCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KLQkiRVJSTk9fMzkzIiwgLyogMzkzICovCi0JIkVSUk5PXzM5NCIsIC8qIDM5NCAqLwotCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KLQkiRVJSTk9fMzk2IiwgLyogMzk2ICovCi0JIkVSUk5PXzM5NyIsIC8qIDM5NyAqLwotCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KLQkiRVJSTk9fMzk5IiwgLyogMzk5ICovCi0JIkVSUk5PXzQwMCIsIC8qIDQwMCAqLwotCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KLQkiRVJSTk9fNDAyIiwgLyogNDAyICovCi0JIkVSUk5PXzQwMyIsIC8qIDQwMyAqLwotCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KLQkiRVJSTk9fNDA1IiwgLyogNDA1ICovCi0JIkVSUk5PXzQwNiIsIC8qIDQwNiAqLwotCSJFUlJOT180MDciLCAvKiA0MDcgKi8KLQkiRVJSTk9fNDA4IiwgLyogNDA4ICovCi0JIkVSUk5PXzQwOSIsIC8qIDQwOSAqLwotCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KLQkiRVJSTk9fNDExIiwgLyogNDExICovCi0JIkVSUk5PXzQxMiIsIC8qIDQxMiAqLwotCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KLQkiRVJSTk9fNDE0IiwgLyogNDE0ICovCi0JIkVSUk5PXzQxNSIsIC8qIDQxNSAqLwotCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KLQkiRVJSTk9fNDE3IiwgLyogNDE3ICovCi0JIkVSUk5PXzQxOCIsIC8qIDQxOCAqLwotCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KLQkiRVJSTk9fNDIwIiwgLyogNDIwICovCi0JIkVSUk5PXzQyMSIsIC8qIDQyMSAqLwotCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KLQkiRVJSTk9fNDIzIiwgLyogNDIzICovCi0JIkVSUk5PXzQyNCIsIC8qIDQyNCAqLwotCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KLQkiRVJSTk9fNDI2IiwgLyogNDI2ICovCi0JIkVSUk5PXzQyNyIsIC8qIDQyNyAqLwotCSJFUlJOT180MjgiLCAvKiA0MjggKi8KLQkiRVJSTk9fNDI5IiwgLyogNDI5ICovCi0JIkVSUk5PXzQzMCIsIC8qIDQzMCAqLwotCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KLQkiRVJSTk9fNDMyIiwgLyogNDMyICovCi0JIkVSUk5PXzQzMyIsIC8qIDQzMyAqLwotCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KLQkiRVJSTk9fNDM1IiwgLyogNDM1ICovCi0JIkVSUk5PXzQzNiIsIC8qIDQzNiAqLwotCSJFUlJOT180MzciLCAvKiA0MzcgKi8KLQkiRVJSTk9fNDM4IiwgLyogNDM4ICovCi0JIkVSUk5PXzQzOSIsIC8qIDQzOSAqLwotCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KLQkiRVJSTk9fNDQxIiwgLyogNDQxICovCi0JIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLwotCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KLQkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCi0JIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLwotCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KLQkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCi0JIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLwotCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KLQkiRVJSTk9fNDUwIiwgLyogNDUwICovCi0JIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLwotCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KLQkiRVJSTk9fNDUzIiwgLyogNDUzICovCi0JIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLwotCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KLQkiRVJSTk9fNDU2IiwgLyogNDU2ICovCi0JIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLwotCSJFUlJOT180NTgiLCAvKiA0NTggKi8KLQkiRVJSTk9fNDU5IiwgLyogNDU5ICovCi0JIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLwotCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KLQkiRVJSTk9fNDYyIiwgLyogNDYyICovCi0JIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLwotCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KLQkiRVJSTk9fNDY1IiwgLyogNDY1ICovCi0JIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLwotCSJFUlJOT180NjciLCAvKiA0NjcgKi8KLQkiRVJSTk9fNDY4IiwgLyogNDY4ICovCi0JIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLwotCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KLQkiRVJSTk9fNDcxIiwgLyogNDcxICovCi0JIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLwotCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KLQkiRVJSTk9fNDc0IiwgLyogNDc0ICovCi0JIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLwotCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KLQkiRVJSTk9fNDc3IiwgLyogNDc3ICovCi0JIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLwotCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KLQkiRVJSTk9fNDgwIiwgLyogNDgwICovCi0JIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLwotCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KLQkiRVJSTk9fNDgzIiwgLyogNDgzICovCi0JIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLwotCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KLQkiRVJSTk9fNDg2IiwgLyogNDg2ICovCi0JIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLwotCSJFUlJOT180ODgiLCAvKiA0ODggKi8KLQkiRVJSTk9fNDg5IiwgLyogNDg5ICovCi0JIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLwotCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KLQkiRVJSTk9fNDkyIiwgLyogNDkyICovCi0JIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLwotCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KLQkiRVJSTk9fNDk1IiwgLyogNDk1ICovCi0JIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLwotCSJFUlJOT180OTciLCAvKiA0OTcgKi8KLQkiRVJSTk9fNDk4IiwgLyogNDk4ICovCi0JIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLwotCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KLQkiRVJSTk9fNTAxIiwgLyogNTAxICovCi0JIkVSUk5PXzUwMiIsIC8qIDUwMiAqLwotCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KLQkiRVJSTk9fNTA0IiwgLyogNTA0ICovCi0JIkVSUk5PXzUwNSIsIC8qIDUwNSAqLwotCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KLQkiRVJSTk9fNTA3IiwgLyogNTA3ICovCi0JIkVSUk5PXzUwOCIsIC8qIDUwOCAqLwotCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KLQkiRVJSTk9fNTEwIiwgLyogNTEwICovCi0JIkVSUk5PXzUxMSIsIC8qIDUxMSAqLwotCSJFUkVTVEFSVFNZUyIsIC8qIDUxMiAqLwotCSJFUkVTVEFSVE5PSU5UUiIsIC8qIDUxMyAqLwotCSJFUkVTVEFSVE5PSEFORCIsIC8qIDUxNCAqLwotCSJFTk9JT0NUTENNRCIsIC8qIDUxNSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2FscGhhL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NmZGI1Yi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1MiArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDY2N2J9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDY2N2N9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg2NjdkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg2NjdlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NjY3Zn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDczMDd9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDczMDh9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDczMDl9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVFAiLAkweDc0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVRQIiwJMHg3NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUTiIsCTB4NzQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEMiLAkweDc0MTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVRDIiwJMHg3NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDc0MTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NzQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NzQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NzQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg3NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDc0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDc0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDc0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NzQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg3NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDc0MWZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg3NDY3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg3NDY4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RBUlQiLAkweDc0NmV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVE9QIiwJMHg3NDZmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NzQ3M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMVEMiLAkweDc0NzR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTFRDIiwJMHg3NDc1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDc0NzZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NzQ3N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNTA3ZTMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L2FscGhhL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVUkciLAkvKiAxNiAqLwotCSJTSUdTVE9QIiwJLyogMTcgKi8KLQkiU0lHVFNUUCIsCS8qIDE4ICovCi0JIlNJR0NPTlQiLAkvKiAxOSAqLwotCSJTSUdDSExEIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdJTyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU5GTyIsCS8qIDI5ICovCi0JIlNJR1VTUjEiLAkvKiAzMCAqLwotCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9hbHBoYS9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGMxN2FkLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9hbHBoYS9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudC5oLHYgMS4xNSAyMDA1LzA1LzA5IDA4OjAyOjA1IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJvc2Zfc3lzY2FsbCIJCX0sIC8qIDAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXQiCQkJfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQkJfSwgLyogMiAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQkJfSwgLyogMyAqLwotCXsgMywJVEYsCXN5c193cml0ZSwJCSJ3cml0ZSIJCQl9LCAvKiA0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9vcGVuIgkJfSwgLyogNSwgbm90IGltcGxlbWVudGVkICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQkJfSwgLyogNiAqLwotCXsgNCwJVFAsCXN5c19vc2Zfd2FpdDQsCQkib3NmX3dhaXQ0IgkJfSwgLyogNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfY3JlYXQiCQl9LCAvKiA4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJCX0sIC8qIDEwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2V4ZWN2ZSIJCX0sIC8qIDExLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQkJfSwgLyogMTIgKi8KLQl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJCX0sIC8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJCX0sIC8qIDE2ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCQl9LCAvKiAxNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRmc3N0YXQiCQl9LCAvKiAxOCwgbm90IGltcGxlbWVudGVkICovCi0JeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHhwaWQiCQl9LCAvKiAyMCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tb3VudCIJCX0sIC8qIDIxICovCi0JeyAyLAkwLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCQl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR4dWlkIgkJfSwgLyogMjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJleGVjX3dpdGhfbG9hZGVyIgl9LCAvKiAyNSwgbm90IGltcGxlbWVudGVkICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX25yZWN2bXNnIgkJfSwgLyogMjcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uc2VuZG1zZyIJCX0sIC8qIDI4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnJlY3Zmcm9tIgkJfSwgLyogMjksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uYWNjZXB0IgkJfSwgLyogMzAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZ2V0cGVlcm5hbWUiCX0sIC8qIDMxLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbmdldHNvY2tuYW1lIgl9LCAvKiAzMiwgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCQl9LCAvKiAzMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9jaGZsYWdzIgkJfSwgLyogMzQsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9mY2hmbGFncyIJCX0sIC8qIDM1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJCX0sIC8qIDM3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zdGF0IgkJfSwgLyogMzgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJCX0sIC8qIDM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9sc3RhdCIJCX0sIC8qIDQwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJCX0sIC8qIDQyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldF9wcm9ncmFtX2F0dHJpYnV0ZXMiCX0sIC8qIDQzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Byb2ZpbCIJCX0sIC8qIDQ0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJCX0sIC8qIDQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zaWdhY3Rpb24iCX0sIC8qIDQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCTAsCXN5c19nZXRnaWQsCQkiZ2V0eGdpZCIJCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJcHJpbnRhcmdzLAkJIm9zZl9zaWdwcm9jbWFzayIJfSwgLyogNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0bG9naW4iCQl9LCAvKiA0OSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGxvZ2luIgkJfSwgLyogNTAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQkJfSwgLyogNTEgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgkJfSwgLyogNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNTMiCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3JlYm9vdCIJCX0sIC8qIDU1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcmV2b2tlIgkJfSwgLyogNTYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCQl9LCAvKiA1NyAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDU4ICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCQl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCQl9LCAvKiA2MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZnN0YXQiCQl9LCAvKiA2Miwgbm90IGltcGxlbWVudGVkICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgkJfSwgLyogNjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXJlbWFwIgkJfSwgLyogNjUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJInZmb3JrIgkJCX0sIC8qIDY2ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCQl9LCAvKiA2NyAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCQl9LCAvKiA2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zYnJrIgkJfSwgLyogNjksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zc3RrIgkJfSwgLyogNzAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdmFkdmlzZSIJfSwgLyogNzIsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA3MyAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0IgkJfSwgLyogNzQgKi8KLQl7IDAsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCQl9LCAvKiA3NSAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJCX0sIC8qIDc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ttb2RjYWxsIgkJfSwgLyogNzcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9taW5jb3JlIgkJfSwgLyogNzgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZ2V0cGdycCIJfSwgLyogODEsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX3NldHBncnAsCQkic2V0cGdycCIJCX0sIC8qIDgyICovCi0JeyAzLAkwLAlzeXNfb3NmX3NldGl0aW1lciwJIm9zZl9zZXRpdGltZXIiCQl9LCAvKiA4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfd2FpdCIJCX0sIC8qIDg0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdGFibGUiCQl9LCAvKiA4NSwgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAkwLAlzeXNfb3NmX2dldGl0aW1lciwJIm9zZl9nZXRpdGltZXIiCQl9LCAvKiA4NiAqLwotCXsgMiwJMCwJc3lzX2dldGhvc3RuYW1lLAkiZ2V0aG9zdG5hbWUiCQl9LCAvKiA4NyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCQl9LCAvKiA4OCAqLwotCXsgMCwJMCwJc3lzX2dldGR0YWJsZXNpemUsCSJnZXRkdGFibGVzaXplIgkJfSwgLyogODkgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQkJfSwgLyogOTAgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCQl9LCAvKiA5MSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJCX0sIC8qIDkyICovCi0JeyA1LAkwLAlzeXNfb3NmX3NlbGVjdCwJCSJvc2Zfc2VsZWN0IgkJfSwgLyogOTMgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogOTQgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCQl9LCAvKiA5NSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCQl9LCAvKiA5NiAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0IgkJfSwgLyogOTcgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0IgkJfSwgLyogOTggKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJvc2ZfZ2V0cHJpb3JpdHkiCX0sIC8qIDEwMCAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQkJfSwgLyogMTAxICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCQl9LCAvKiAxMDIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJCX0sIC8qIDEwMyAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQkJfSwgLyogMTA0ICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJCX0sIC8qIDEwNSAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgkJfSwgLyogMTA2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Bsb2NrIgkJfSwgLyogMTA3LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3ZlYyIJfSwgLyogMTA4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ2Jsb2NrIgl9LCAvKiAxMDksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfc2lnc2V0bWFzayIJfSwgLyogMTEwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgkJfSwgLyogMTExICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2lnc3RhY2siCQl9LCAvKiAxMTIgKi8KLQl7IDMsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTEzICovCi0JeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJCX0sIC8qIDExNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdnRyYWNlIgl9LCAvKiAxMTUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX29zZl9nZXR0aW1lb2ZkYXksCSJvc2ZfZ2V0dGltZW9mZGF5Igl9LCAvKiAxMTYgKi8KLQl7IDIsCTAsCXN5c19vc2ZfZ2V0cnVzYWdlLAkib3NmX2dldHJ1c2FnZSIJCX0sIC8qIDExNyAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCQl9LCAvKiAxMTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTE5IgkJfSwgLyogMTE5ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQkJfSwgLyogMTIwICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJCX0sIC8qIDEyMSAqLwotCXsgMiwJMCwJc3lzX29zZl9zZXR0aW1lb2ZkYXksCSJvc2Zfc2V0dGltZW9mZGF5Igl9LCAvKiAxMjIgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgkJfSwgLyogMTIzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDEyNCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyNSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgkJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiAxMjcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJCX0sIC8qIDEyOCAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDEyOSAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCQl9LCAvKiAxMzAgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCQl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogMTMyICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCQl9LCAvKiAxMzMgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCQl9LCAvKiAxMzQgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgkJfSwgLyogMTM1ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJCX0sIC8qIDEzNiAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCQl9LCAvKiAxMzcgKi8KLQl7IDIsCTAsCXN5c19vc2ZfdXRpbWVzLAkJIm9zZl91dGltZXMiCQl9LCAvKiAxMzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3JldHVybiIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FkanRpbWUiCQl9LCAvKiAxNDAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgkJfSwgLyogMTQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGhvc3RpZCIJCX0sIC8qIDE0Miwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGhvc3RpZCIJCX0sIC8qIDE0Mywgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDE0NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCQl9LCAvKiAxNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX2tpbGxwZyIJfSwgLyogMTQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgkJfSwgLyogMTQ3ICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCQl9LCAvKiAxNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkcXVvdGEiCQl9LCAvKiAxNDksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgkJfSwgLyogMTUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MSIJCX0sIC8qIDE1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIiCQl9LCAvKiAxNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX2Jsb2NrIgkJfSwgLyogMTUzLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX3VuYmxvY2siCX0sIC8qIDE1NCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NSIJCX0sIC8qIDE1NSAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgkJfSwgLyogMTU2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ3dhaXRwcmltIgl9LCAvKiAxNTcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZnNzdmMiCQl9LCAvKiAxNTgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRkaXJlbnRyaWVzIgl9LCAvKiAxNTkgKi8KLQl7IDMsCTAsCW9zZl9zdGF0ZnMsCQkib3NmX3N0YXRmcyIJCX0sIC8qIDE2MCAqLwotCXsgMywJMCwJb3NmX2ZzdGF0ZnMsCQkib3NmX2ZzdGF0ZnMiCQl9LCAvKiAxNjEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTYyIgkJfSwgLyogMTYyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FzeW5jaF9kYWVtb24iCX0sIC8qIDE2Mywgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGZoIgkJfSwgLyogMTY0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMTY1ICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCQl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY3IgkJfSwgLyogMTY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OCIJCX0sIC8qIDE2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9leHBvcnRmcyIJCX0sIC8qIDE2OSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MCIJCX0sIC8qIDE3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzEiCQl9LCAvKiAxNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTcyIgkJfSwgLyogMTcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MyIJCX0sIC8qIDE3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQiCQl9LCAvKiAxNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc1IgkJfSwgLyogMTc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NiIJCX0sIC8qIDE3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzciCQl9LCAvKiAxNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc4IgkJfSwgLyogMTc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJCX0sIC8qIDE3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAiCQl9LCAvKiAxODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfYWx0X3Bsb2NrIgkJfSwgLyogMTgxLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgkJfSwgLyogMTgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJCX0sIC8qIDE4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRtbnQiCQl9LCAvKiAxODQsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUiCQl9LCAvKiAxODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg2IgkJfSwgLyogMTg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FsdF9zaWdwZW5kaW5nIgl9LCAvKiAxODcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hbHRfc2V0c2lkIgl9LCAvKiAxODgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCQl9LCAvKiAxODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkwIgkJfSwgLyogMTkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MSIJCX0sIC8qIDE5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTIiCQl9LCAvKiAxOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkzIgkJfSwgLyogMTkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NCIJCX0sIC8qIDE5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTUiCQl9LCAvKiAxOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTk2IgkJfSwgLyogMTk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NyIJCX0sIC8qIDE5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTgiCQl9LCAvKiAxOTggKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJvc2Zfc3dhcG9uIgkJfSwgLyogMTk5ICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCQl9LCAvKiAyMDAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJCX0sIC8qIDIwMSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMjAyICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCQl9LCAvKiAyMDMgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJCX0sIC8qIDIwNCAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMjA1ICovCi0JeyA0LAlUSSwJcHJpbnRhcmdzLAkJInNlbW9wIgkJCX0sIC8qIDIwNiAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dHNuYW1lIgkJfSwgLyogMjA3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDIwOCAqLwotCXsgMywJVEksCXByaW50YXJncywJCSJvc2Zfc2htYXQiCQl9LCAvKiAyMDkgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDIxMCAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCQl9LCAvKiAyMTEgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJCX0sIC8qIDIxMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tdmFsaWQiCQl9LCAvKiAyMTMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRhZGRyZXNzY29uZiIJfSwgLyogMjE0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXNsZWVwIgkJfSwgLyogMjE1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXdha2V1cCIJCX0sIC8qIDIxNiwgbm90IGltcGxlbWVudGVkICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQkJfSwgLyogMjE3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ25hbCIJCX0sIC8qIDIxOCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3V0Y19nZXR0aW1lIgl9LCAvKiAyMTksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dGNfYWRqdGltZSIJfSwgLyogMjIwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgkJfSwgLyogMjIxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NlY3VyaXR5IgkJfSwgLyogMjIyLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfa2xvYWRjYWxsIgkJfSwgLyogMjIzLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI0IgkJfSwgLyogMjI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIJCX0sIC8qIDIyNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCQl9LCAvKiAyMjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI3IgkJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIJCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCQl9LCAvKiAyMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgkJfSwgLyogMjMwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMSIJCX0sIC8qIDIzMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiCQl9LCAvKiAyMzIgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCQl9LCAvKiAyMzMgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMjM0ICovCi0JeyA1LAkwLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJCX0sIC8qIDIzNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl93YWl0aWQiCQl9LCAvKiAyMzYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcmlvY250bHNldCIJfSwgLyogMjM3LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2lnc2VuZHNldCIJfSwgLyogMjM4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0X3NwZWN1bGF0aXZlIgl9LCAvKiAyMzksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tc2ZzX3N5c2NhbGwiCX0sIC8qIDI0MCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3N5c2luZm8iCQl9LCAvKiAyNDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdWFkbWluIgkJfSwgLyogMjQyLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZnVzZXIiCQl9LCAvKiAyNDMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcm9wbGlzdF9zeXNjYWxsIgl9LCAvKiAyNDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnRwX2FkanRpbWUiCX0sIC8qIDI0NSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX250cF9nZXR0aW1lIgl9LCAvKiAyNDYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wYXRoY29uZiIJCX0sIC8qIDI0Nywgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZwYXRoY29uZiIJCX0sIC8qIDI0OCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJCX0sIC8qIDI0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91c3dpdGNoIgkJfSwgLyogMjUwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfdXNsZWVwX3RocmVhZCIJfSwgLyogMjUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2F1ZGNudGwiCQl9LCAvKiAyNTIsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hdWRnZW4iCQl9LCAvKiAyNTMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJCX0sIC8qIDI1NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zdWJzeXNpbmZvIgl9LCAvKiAyNTUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRzeXNpbmZvIgl9LCAvKiAyNTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0c3lzaW5mbyIJfSwgLyogMjU3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2Fmc19zeXNjYWxsIgl9LCAvKiAyNTgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zd2FwY3RsIgkJfSwgLyogMjU5LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbWVtY250bCIJCX0sIC8qIDI2MCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZkYXRhc3luYyIJCX0sIC8qIDI2MSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MiIJCX0sIC8qIDI2MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCQl9LCAvKiAyNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0IgkJfSwgLyogMjY0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJCX0sIC8qIDI2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCQl9LCAvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3IgkJfSwgLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJCX0sIC8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCQl9LCAvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgkJfSwgLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJCX0sIC8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCQl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgkJfSwgLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCQl9LCAvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2IgkJfSwgLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJCX0sIC8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCQl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5IgkJfSwgLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJCX0sIC8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCQl9LCAvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgkJfSwgLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJCX0sIC8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCQl9LCAvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1IgkJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJCX0sIC8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCQl9LCAvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4IgkJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJCX0sIC8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCQl9LCAvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgkJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJCX0sIC8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCQl9LCAvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0IgkJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJCX0sIC8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCQl9LCAvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3IgkJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCQl9LCAvKiAyOTkgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCQl9LCAvKiAzMDAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRoYWUiCQl9LCAvKiAzMDEgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQkJfSwgLyogMzAyICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgzMiIJCX0sIC8qIDMwMyAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJCX0sIC8qIDMwNCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgkJfSwgLyogMzA1ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCQl9LCAvKiAzMDYgKi8KLQl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgkJfSwgLyogMzA3ICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCQl9LCAvKiAzMDggKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMiCX0sIC8qIDMwOSAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCQl9LCAvKiAzMTAgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290IgkJfSwgLyogMzExICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJCX0sIC8qIDMxMiAqLwotCXsgMSwJMCwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCQl9LCAvKiAzMTMgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCQl9LCAvKiAzMTQgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCQl9LCAvKiAzMTUgKi8KLQl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJCX0sIC8qIDMxNiAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJCX0sIC8qIDMxNyAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJCX0sIC8qIDMxOCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJzeXNjdGwiCQl9LCAvKiAzMTkgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQkJfSwgLyogMzIwICovCi0JeyAxLAkwLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJCX0sIC8qIDMyMSAqLwotCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCQl9LCAvKiAzMjIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCQl9LCAvKiAzMjMgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5IgkJfSwgLyogMzI0ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCQl9LCAvKiAzMjUgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJCX0sIC8qIDMyNiAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJCX0sIC8qIDMyNyAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgkJfSwgLyogMzI4ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgkJfSwgLyogMzI5ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSIJfSwgLyogMzMwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSIJfSwgLyogMzMxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIgl9LCAvKiAzMzIgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIiCX0sIC8qIDMzMyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCQl9LCAvKiAzMzQgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4Igl9LCAvKiAzMzUgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIgl9LCAvKiAzMzYgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCIJfSwgLyogMzM3ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJCX0sIC8qIDMzOCAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJCX0sIC8qIDMzOSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCQl9LCAvKiAzNDAgKi8KLQl7IDUsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgkJfSwgLyogMzQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDM0MiAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAzNDMgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMzQ0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3JlYWQiCX0sIC8qIDM0NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ193cml0ZSIJfSwgLyogMzQ2ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgkJfSwgLyogMzQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQkJfSwgLyogMzQ4ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJCX0sIC8qIDM0OSAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCQkicHdyaXRlIgkJfSwgLyogMzUwICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJCX0sIC8qIDM1MSAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCQl9LCAvKiAzNTIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayIJfSwgLyogMzUzICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgkJfSwgLyogMzU0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCIJfSwgLyogMzU1ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywJInJ0X3NpZ3F1ZXVlaW5mbyIJfSwgLyogMzU2ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgkJfSwgLyogMzU3ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJCX0sIC8qIDM1OCAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJCX0sIC8qIDM1OSAqLwotCXsgMywJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJCX0sIC8qIDM2MCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCQl9LCAvKiAzNjEgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgkJfSwgLyogMzYyICovCi0JeyAyLAkwLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJCX0sIC8qIDM2MyAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCQl9LCAvKiAzNjQgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQkJfSwgLyogMzY1ICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCQl9LCAvKiAzNjYgKi8KLQl7IDIsCTAsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgkJfSwgLyogMzY3ICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJCX0sIC8qIDM2OCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCQl9LCAvKiAzNjkgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCQl9LCAvKiAzNzAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXNnaWQiCQl9LCAvKiAzNzEgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXNnaWQiCQl9LCAvKiAzNzIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJkaXBjIgkJCX0sIC8qIDM3Mywgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAlURiwJcHJpbnRhcmdzLAkJInBpdm90X3Jvb3QiCQl9LCAvKiAzNzQgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgkJfSwgLyogMzc1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX2lvYmFzZSIJfSwgLyogMzc2ICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0IgkJfSwgLyogMzc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMzc4ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDM3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCQl9LCAvKiAzODAgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCQl9LCAvKiAzODEgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAzODIgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMzgzICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDM4NCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDM4NSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAzODYgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMzg3ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAzODggKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAzODkgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAzOTAgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MSAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MiAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MyAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJCX0sIC8qIDM5NCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDM5NSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDM5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInR1eGNhbGwiCQl9LCAvKiAzOTcgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJCX0sIC8qIDM5OCAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJCX0sIC8qIDM5OSAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCQl9LCAvKiA0MDAgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0IgkJfSwgLyogNDAxICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJCX0sIC8qIDQwMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCQl9LCAvKiA0MDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNDA0IgkJfSwgLyogNDA0ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJCX0sIC8qIDQwNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiA0MDYgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCQl9LCAvKiA0MDcgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgkJfSwgLyogNDA4ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0IgkJfSwgLyogNDA5ICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMiCX0sIC8qIDQxMCAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyIJfSwgLyogNDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicmVzdGFydF9zeXNjYWxsIgl9LCAvKiA0MTIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJmYWR2aXNlIgkJfSwgLyogNDEzICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgkJfSwgLyogNDE0ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCQl9LCAvKiA0MTUgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJCX0sIC8qIDQxNiAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIgl9LCAvKiA0MTcgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCQl9LCAvKiA0MTggKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJCX0sIC8qIDQxOSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgkJfSwgLyogNDIwICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgkJfSwgLyogNDIxICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIgl9LCAvKiA0MjIgKi8KLQl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgkJfSwgLyogNDIzICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCQl9LCAvKiA0MjQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDQyNSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiA0MjYgKi8KLQl7IDIsCTAsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCQl9LCAvKiA0MjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgkJfSwgLyogNDI4ID8/PyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1iaW5kIgkJCX0sIC8qIDQyOSA/Pz8gKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJnZXRfbWVtcG9saWN5IgkJfSwgLyogNDMwID8/PyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF9tZW1wb2xpY3kiCQl9LCAvKiA0MzEgPz8/ICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgkJfSwgLyogNDMyICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJCX0sIC8qIDQzMyAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJCX0sIC8qIDQzNCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIJfSwgLyogNDM1ICovCi0JeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJCX0sIC8qIDQzNiAqLwotCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogNDM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkid2FpdGlkIgkJfSwgLyogNDM4ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvZHVtbXkuaCBiL3N0cmFjZS9saW51eC9kdW1teS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTZjZDA1Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9kdW1teS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGR1bW15LmgsdiAxLjE3IDIwMDQvMDQvMTYgMjE6NDg6NDQgcm9sYW5kIEV4cCAkCi0gKi8KLQotLyogc3RpbGwgdW5maW5pc2hlZCAqLwotI2RlZmluZQlzeXNfaW9wZXJtCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N5c2xvZwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19pb3BsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3ZtODZvbGQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0X2tlcm5lbF9zeW1zCXByaW50YXJncwotI2RlZmluZQlzeXNfYmRmbHVzaAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeXNmcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19hZnNfc3lzY2FsbAkJcHJpbnRhcmdzCi0KLS8qIG1hY2hpbmUtc3BlY2lmaWMgKi8KLSNpZm5kZWYgSTM4NgotI2RlZmluZQlzeXNfbW9kaWZ5X2xkdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRfdGhyZWFkX2FyZWEJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZXRfdGhyZWFkX2FyZWEJcHJpbnRhcmdzCi0jZW5kaWYKLQotI2RlZmluZSBzeXNfc2NoZWRfeWllbGQJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgotI2RlZmluZSBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsIHByaW50YXJncwotCi0vKiBsaWtlIGFub3RoZXIgY2FsbCAqLwotI2RlZmluZQlzeXNfdXNlbGliCQlzeXNfY2hkaXIKLSNkZWZpbmUJc3lzX3Vtb3VudAkJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19zd2Fwb24JCXN5c19jaGRpcgotI2RlZmluZQlzeXNfc3dhcG9mZgkJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19kZWxldGVfbW9kdWxlCXN5c19jaGRpcgotI2RlZmluZQlzeXNfZmNoZGlyCQlzeXNfY2xvc2UKLSNkZWZpbmUJc3lzX3NldGZzdWlkCQlzeXNfc2V0dWlkCi0jZGVmaW5lCXN5c19zZXRmc2dpZAkJc3lzX3NldGdpZAotI2RlZmluZSBzeXNfbmFub3NsZWVwCQlzeXNfYWRqdGltZQotI2RlZmluZQlzeXNfYWNjdAkJc3lzX2NoZGlyCi0jZGVmaW5lIHN5c19mZGF0YXN5bmMJCXN5c19jbG9zZQotI2RlZmluZSBzeXNfbWxvY2sJCXN5c19tdW5tYXAKLSNkZWZpbmUgc3lzX211bmxvY2sJCXN5c19tdW5tYXAKLSNkZWZpbmUgc3lzX2Nsb2NrX2dldHJlcwlzeXNfY2xvY2tfZ2V0dGltZQotI2RlZmluZSBzeXNfbXFfdW5saW5rCQlzeXNfdW5saW5rCi0KLS8qIHByaW50YXJncyBkb2VzIHRoZSByaWdodCB0aGluZyAqLwotI2RlZmluZQlzeXNfc2V0dXAJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cGlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19wYXVzZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRldWlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGVnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cHBpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwZ3JwCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHNpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c192aGFuZ3VwCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lkbGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cGdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tdW5sb2NrYWxsCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3RpbWVyX2dldG92ZXJydW4JcHJpbnRhcmdzCi0jZGVmaW5lIHN5c190aW1lcl9kZWxldGUJcHJpbnRhcmdzCi0KLS8qIHN1YmNhbGwgZW50cnkgcG9pbnRzICovCi0jZGVmaW5lCXN5c19zb2NrZXRjYWxsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncwotCi0vKiB1bmltcGxlbWVudGVkICovCi0jZGVmaW5lCXN5c19zdHR5CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2d0dHkJCXByaW50YXJncwotI2RlZmluZQlzeXNfZnRpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcHJvZgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19waHlzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xvY2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfbXB4CQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bGltaXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfcHJvZmlsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3VzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2JyZWFrCQlwcmludGFyZ3MKLQotLyogZGVwcmVjYXRlZCAqLwotI2RlZmluZQlzeXNfb2xkdW5hbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfb2xkb2xkdW5hbWUJCXByaW50YXJncwotCi0vKiBubyBsaWJyYXJ5IHN1cHBvcnQgKi8KLSNpZm5kZWYgSEFWRV9TRU5ETVNHCi0jZGVmaW5lIHN5c19zZW5kbXNnCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3JlY3Ztc2cJCXByaW50YXJncwotI2VuZGlmCi0KLSNpZm5kZWYgU1lTX2dldHBtc2cKLSNkZWZpbmUgc3lzX2dldHBtc2cJCXByaW50YXJncwotI2VuZGlmCi0jaWZuZGVmIFNZU19wdXRwbXNnCi0jZGVmaW5lIHN5c19wdXRwbXNnCQlwcmludGFyZ3MKLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUCi0jZGVmaW5lIHN5c19vbGRzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZGZzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZGxzdGF0CQlwcmludGFyZ3MKLSNlbmRpZgotCi0jaWYgRE9ORQotI2RlZmluZSBzeXNfb2xkc2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Zsb2NrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGRlbnRzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3RpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfdGltZXMJCXByaW50YXJncwotI2RlZmluZQlzeXNfbW91bnQJCXByaW50YXJncwotI2RlZmluZQlzeXNfbmljZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tcHJvdGVjdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdwcm9jbWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19hZGp0aW1leAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeXNpbmZvCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0ZG9tYWlubmFtZQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0YXRmcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mc3RhdGZzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3B0cmFjZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdyZXR1cm4JCXByaW50YXJncwotI2RlZmluZQlzeXNfZnN5bmMJCXByaW50YXJncwotI2RlZmluZQlzeXNfYWxhcm0JCXByaW50YXJncwotI2RlZmluZQlzeXNfc29ja2V0Y2FsbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdzdXNwZW5kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3V0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2JyawkJCXByaW50YXJncwotI2RlZmluZQlzeXNfbW1hcAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tdW5tYXAJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0cmV1aWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0cmVnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0Z3JvdXBzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldGdyb3VwcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cmxpbWl0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHJ1c2FnZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwcmlvcml0eQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRwcmlvcml0eQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRwZ2lkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2FjY2VzcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRob3N0bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWFkZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3dhaXRwaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfd2FpdDQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZXhlY3ZlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZvcmsJCXByaW50YXJncwotI2RlZmluZQlzeXNfdW5hbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcGlwZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdnZXRtYXNrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ3NldG1hc2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfZXhpdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19raWxsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ25hbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdhY3Rpb24JCXByaW50YXJncwotI2RlZmluZQlzeXNfc2lncGVuZGluZwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mY250bAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19kdXAJCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2R1cDIJCXByaW50YXJncwotI2RlZmluZQlzeXNfY2xvc2UJCXByaW50YXJncwotI2RlZmluZQlzeXNfaW9jdGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfcmVhZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c193cml0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19vcGVuCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NyZWF0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xpbmsJCXByaW50YXJncwotI2RlZmluZQlzeXNfdW5saW5rCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NoZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21rbm9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NobW9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Nob3duCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xzZWVrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3JlbmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19ta2RpcgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19ybWRpcgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19jaHJvb3QJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZQlzeXNfc3ltbGluawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWFkbGluawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c190cnVuY2F0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mdHJ1bmNhdGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfZmNobW9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZjaG93bgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRpdGltZXIJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0aXRpbWVyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfbHN0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZnN0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfcGVyc29uYWxpdHkJCXByaW50YXJncwotI2RlZmluZSBzeXNfcG9sbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19jcmVhdGVfbW9kdWxlCXByaW50YXJncwotI2RlZmluZQlzeXNfaW5pdF9tb2R1bGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcXVvdGFjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfbWxvY2thbGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfcmVib290CQlwcmludGFyZ3MKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhiMmFkYy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUyOSArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVERUFETEsiLCAvKiAzNSAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiAzNiAqLwotCSJFTk9MQ0siLCAvKiAzNyAqLwotCSJFTk9TWVMiLCAvKiAzOCAqLwotCSJFTk9URU1QVFkiLCAvKiAzOSAqLwotCSJFTE9PUCIsIC8qIDQwICovCi0JIkVSUk5PXzQxIiwgLyogNDEgKi8KLQkiRU5PTVNHIiwgLyogNDIgKi8KLQkiRUlEUk0iLCAvKiA0MyAqLwotCSJFQ0hSTkciLCAvKiA0NCAqLwotCSJFTDJOU1lOQyIsIC8qIDQ1ICovCi0JIkVMM0hMVCIsIC8qIDQ2ICovCi0JIkVMM1JTVCIsIC8qIDQ3ICovCi0JIkVMTlJORyIsIC8qIDQ4ICovCi0JIkVVTkFUQ0giLCAvKiA0OSAqLwotCSJFTk9DU0kiLCAvKiA1MCAqLwotCSJFTDJITFQiLCAvKiA1MSAqLwotCSJFQkFERSIsIC8qIDUyICovCi0JIkVCQURSIiwgLyogNTMgKi8KLQkiRVhGVUxMIiwgLyogNTQgKi8KLQkiRU5PQU5PIiwgLyogNTUgKi8KLQkiRUJBRFJRQyIsIC8qIDU2ICovCi0JIkVCQURTTFQiLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCi0JIkVSUk5PXzEyNSIsIC8qIDEyNSAqLwotCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KLQkiRVJSTk9fMTI3IiwgLyogMTI3ICovCi0JIkVSUk5PXzEyOCIsIC8qIDEyOCAqLwotCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KLQkiRVJSTk9fMTMwIiwgLyogMTMwICovCi0JIkVSUk5PXzEzMSIsIC8qIDEzMSAqLwotCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KLQkiRVJSTk9fMTMzIiwgLyogMTMzICovCi0JIkVSUk5PXzEzNCIsIC8qIDEzNCAqLwotCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KLQkiRVJSTk9fMTM2IiwgLyogMTM2ICovCi0JIkVSUk5PXzEzNyIsIC8qIDEzNyAqLwotCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KLQkiRVJSTk9fMTM5IiwgLyogMTM5ICovCi0JIkVSUk5PXzE0MCIsIC8qIDE0MCAqLwotCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KLQkiRVJSTk9fMTQyIiwgLyogMTQyICovCi0JIkVSUk5PXzE0MyIsIC8qIDE0MyAqLwotCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KLQkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCi0JIkVSUk5PXzE0NiIsIC8qIDE0NiAqLwotCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KLQkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCi0JIkVSUk5PXzE0OSIsIC8qIDE0OSAqLwotCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KLQkiRVJSTk9fMTUxIiwgLyogMTUxICovCi0JIkVSUk5PXzE1MiIsIC8qIDE1MiAqLwotCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KLQkiRVJSTk9fMTU0IiwgLyogMTU0ICovCi0JIkVSUk5PXzE1NSIsIC8qIDE1NSAqLwotCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KLQkiRVJSTk9fMTU3IiwgLyogMTU3ICovCi0JIkVSUk5PXzE1OCIsIC8qIDE1OCAqLwotCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KLQkiRVJSTk9fMTYwIiwgLyogMTYwICovCi0JIkVSUk5PXzE2MSIsIC8qIDE2MSAqLwotCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KLQkiRVJSTk9fMTYzIiwgLyogMTYzICovCi0JIkVSUk5PXzE2NCIsIC8qIDE2NCAqLwotCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KLQkiRVJSTk9fMTY2IiwgLyogMTY2ICovCi0JIkVSUk5PXzE2NyIsIC8qIDE2NyAqLwotCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KLQkiRVJSTk9fMTY5IiwgLyogMTY5ICovCi0JIkVSUk5PXzE3MCIsIC8qIDE3MCAqLwotCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KLQkiRVJSTk9fMTcyIiwgLyogMTcyICovCi0JIkVSUk5PXzE3MyIsIC8qIDE3MyAqLwotCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KLQkiRVJSTk9fMTc1IiwgLyogMTc1ICovCi0JIkVSUk5PXzE3NiIsIC8qIDE3NiAqLwotCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KLQkiRVJSTk9fMTc4IiwgLyogMTc4ICovCi0JIkVSUk5PXzE3OSIsIC8qIDE3OSAqLwotCSJFUlJOT18xODAiLCAvKiAxODAgKi8KLQkiRVJSTk9fMTgxIiwgLyogMTgxICovCi0JIkVSUk5PXzE4MiIsIC8qIDE4MiAqLwotCSJFUlJOT18xODMiLCAvKiAxODMgKi8KLQkiRVJSTk9fMTg0IiwgLyogMTg0ICovCi0JIkVSUk5PXzE4NSIsIC8qIDE4NSAqLwotCSJFUlJOT18xODYiLCAvKiAxODYgKi8KLQkiRVJSTk9fMTg3IiwgLyogMTg3ICovCi0JIkVSUk5PXzE4OCIsIC8qIDE4OCAqLwotCSJFUlJOT18xODkiLCAvKiAxODkgKi8KLQkiRVJSTk9fMTkwIiwgLyogMTkwICovCi0JIkVSUk5PXzE5MSIsIC8qIDE5MSAqLwotCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KLQkiRVJSTk9fMTkzIiwgLyogMTkzICovCi0JIkVSUk5PXzE5NCIsIC8qIDE5NCAqLwotCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KLQkiRVJSTk9fMTk2IiwgLyogMTk2ICovCi0JIkVSUk5PXzE5NyIsIC8qIDE5NyAqLwotCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KLQkiRVJSTk9fMTk5IiwgLyogMTk5ICovCi0JIkVSUk5PXzIwMCIsIC8qIDIwMCAqLwotCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KLQkiRVJSTk9fMjAyIiwgLyogMjAyICovCi0JIkVSUk5PXzIwMyIsIC8qIDIwMyAqLwotCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KLQkiRVJSTk9fMjA1IiwgLyogMjA1ICovCi0JIkVSUk5PXzIwNiIsIC8qIDIwNiAqLwotCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KLQkiRVJSTk9fMjA4IiwgLyogMjA4ICovCi0JIkVSUk5PXzIwOSIsIC8qIDIwOSAqLwotCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KLQkiRVJSTk9fMjExIiwgLyogMjExICovCi0JIkVSUk5PXzIxMiIsIC8qIDIxMiAqLwotCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KLQkiRVJSTk9fMjE0IiwgLyogMjE0ICovCi0JIkVSUk5PXzIxNSIsIC8qIDIxNSAqLwotCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KLQkiRVJSTk9fMjE3IiwgLyogMjE3ICovCi0JIkVSUk5PXzIxOCIsIC8qIDIxOCAqLwotCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KLQkiRVJSTk9fMjIwIiwgLyogMjIwICovCi0JIkVSUk5PXzIyMSIsIC8qIDIyMSAqLwotCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KLQkiRVJSTk9fMjIzIiwgLyogMjIzICovCi0JIkVSUk5PXzIyNCIsIC8qIDIyNCAqLwotCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KLQkiRVJSTk9fMjI2IiwgLyogMjI2ICovCi0JIkVSUk5PXzIyNyIsIC8qIDIyNyAqLwotCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KLQkiRVJSTk9fMjI5IiwgLyogMjI5ICovCi0JIkVSUk5PXzIzMCIsIC8qIDIzMCAqLwotCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KLQkiRVJSTk9fMjMyIiwgLyogMjMyICovCi0JIkVSUk5PXzIzMyIsIC8qIDIzMyAqLwotCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KLQkiRVJSTk9fMjM1IiwgLyogMjM1ICovCi0JIkVSUk5PXzIzNiIsIC8qIDIzNiAqLwotCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KLQkiRVJSTk9fMjM4IiwgLyogMjM4ICovCi0JIkVSUk5PXzIzOSIsIC8qIDIzOSAqLwotCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KLQkiRVJSTk9fMjQxIiwgLyogMjQxICovCi0JIkVSUk5PXzI0MiIsIC8qIDI0MiAqLwotCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KLQkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCi0JIkVSUk5PXzI0NSIsIC8qIDI0NSAqLwotCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KLQkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCi0JIkVSUk5PXzI0OCIsIC8qIDI0OCAqLwotCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KLQkiRVJSTk9fMjUwIiwgLyogMjUwICovCi0JIkVSUk5PXzI1MSIsIC8qIDI1MSAqLwotCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KLQkiRVJSTk9fMjUzIiwgLyogMjUzICovCi0JIkVSUk5PXzI1NCIsIC8qIDI1NCAqLwotCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KLQkiRVJSTk9fMjU2IiwgLyogMjU2ICovCi0JIkVSUk5PXzI1NyIsIC8qIDI1NyAqLwotCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KLQkiRVJSTk9fMjU5IiwgLyogMjU5ICovCi0JIkVSUk5PXzI2MCIsIC8qIDI2MCAqLwotCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KLQkiRVJSTk9fMjYyIiwgLyogMjYyICovCi0JIkVSUk5PXzI2MyIsIC8qIDI2MyAqLwotCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KLQkiRVJSTk9fMjY1IiwgLyogMjY1ICovCi0JIkVSUk5PXzI2NiIsIC8qIDI2NiAqLwotCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KLQkiRVJSTk9fMjY4IiwgLyogMjY4ICovCi0JIkVSUk5PXzI2OSIsIC8qIDI2OSAqLwotCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KLQkiRVJSTk9fMjcxIiwgLyogMjcxICovCi0JIkVSUk5PXzI3MiIsIC8qIDI3MiAqLwotCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KLQkiRVJSTk9fMjc0IiwgLyogMjc0ICovCi0JIkVSUk5PXzI3NSIsIC8qIDI3NSAqLwotCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KLQkiRVJSTk9fMjc3IiwgLyogMjc3ICovCi0JIkVSUk5PXzI3OCIsIC8qIDI3OCAqLwotCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KLQkiRVJSTk9fMjgwIiwgLyogMjgwICovCi0JIkVSUk5PXzI4MSIsIC8qIDI4MSAqLwotCSJFUlJOT18yODIiLCAvKiAyODIgKi8KLQkiRVJSTk9fMjgzIiwgLyogMjgzICovCi0JIkVSUk5PXzI4NCIsIC8qIDI4NCAqLwotCSJFUlJOT18yODUiLCAvKiAyODUgKi8KLQkiRVJSTk9fMjg2IiwgLyogMjg2ICovCi0JIkVSUk5PXzI4NyIsIC8qIDI4NyAqLwotCSJFUlJOT18yODgiLCAvKiAyODggKi8KLQkiRVJSTk9fMjg5IiwgLyogMjg5ICovCi0JIkVSUk5PXzI5MCIsIC8qIDI5MCAqLwotCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KLQkiRVJSTk9fMjkyIiwgLyogMjkyICovCi0JIkVSUk5PXzI5MyIsIC8qIDI5MyAqLwotCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KLQkiRVJSTk9fMjk1IiwgLyogMjk1ICovCi0JIkVSUk5PXzI5NiIsIC8qIDI5NiAqLwotCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KLQkiRVJSTk9fMjk4IiwgLyogMjk4ICovCi0JIkVSUk5PXzI5OSIsIC8qIDI5OSAqLwotCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KLQkiRVJSTk9fMzAxIiwgLyogMzAxICovCi0JIkVSUk5PXzMwMiIsIC8qIDMwMiAqLwotCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KLQkiRVJSTk9fMzA0IiwgLyogMzA0ICovCi0JIkVSUk5PXzMwNSIsIC8qIDMwNSAqLwotCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KLQkiRVJSTk9fMzA3IiwgLyogMzA3ICovCi0JIkVSUk5PXzMwOCIsIC8qIDMwOCAqLwotCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KLQkiRVJSTk9fMzEwIiwgLyogMzEwICovCi0JIkVSUk5PXzMxMSIsIC8qIDMxMSAqLwotCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KLQkiRVJSTk9fMzEzIiwgLyogMzEzICovCi0JIkVSUk5PXzMxNCIsIC8qIDMxNCAqLwotCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KLQkiRVJSTk9fMzE2IiwgLyogMzE2ICovCi0JIkVSUk5PXzMxNyIsIC8qIDMxNyAqLwotCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KLQkiRVJSTk9fMzE5IiwgLyogMzE5ICovCi0JIkVSUk5PXzMyMCIsIC8qIDMyMCAqLwotCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KLQkiRVJSTk9fMzIyIiwgLyogMzIyICovCi0JIkVSUk5PXzMyMyIsIC8qIDMyMyAqLwotCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KLQkiRVJSTk9fMzI1IiwgLyogMzI1ICovCi0JIkVSUk5PXzMyNiIsIC8qIDMyNiAqLwotCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KLQkiRVJSTk9fMzI4IiwgLyogMzI4ICovCi0JIkVSUk5PXzMyOSIsIC8qIDMyOSAqLwotCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KLQkiRVJSTk9fMzMxIiwgLyogMzMxICovCi0JIkVSUk5PXzMzMiIsIC8qIDMzMiAqLwotCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KLQkiRVJSTk9fMzM0IiwgLyogMzM0ICovCi0JIkVSUk5PXzMzNSIsIC8qIDMzNSAqLwotCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KLQkiRVJSTk9fMzM3IiwgLyogMzM3ICovCi0JIkVSUk5PXzMzOCIsIC8qIDMzOCAqLwotCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KLQkiRVJSTk9fMzQwIiwgLyogMzQwICovCi0JIkVSUk5PXzM0MSIsIC8qIDM0MSAqLwotCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KLQkiRVJSTk9fMzQzIiwgLyogMzQzICovCi0JIkVSUk5PXzM0NCIsIC8qIDM0NCAqLwotCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KLQkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCi0JIkVSUk5PXzM0NyIsIC8qIDM0NyAqLwotCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KLQkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCi0JIkVSUk5PXzM1MCIsIC8qIDM1MCAqLwotCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KLQkiRVJSTk9fMzUyIiwgLyogMzUyICovCi0JIkVSUk5PXzM1MyIsIC8qIDM1MyAqLwotCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KLQkiRVJSTk9fMzU1IiwgLyogMzU1ICovCi0JIkVSUk5PXzM1NiIsIC8qIDM1NiAqLwotCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KLQkiRVJSTk9fMzU4IiwgLyogMzU4ICovCi0JIkVSUk5PXzM1OSIsIC8qIDM1OSAqLwotCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KLQkiRVJSTk9fMzYxIiwgLyogMzYxICovCi0JIkVSUk5PXzM2MiIsIC8qIDM2MiAqLwotCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KLQkiRVJSTk9fMzY0IiwgLyogMzY0ICovCi0JIkVSUk5PXzM2NSIsIC8qIDM2NSAqLwotCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KLQkiRVJSTk9fMzY3IiwgLyogMzY3ICovCi0JIkVSUk5PXzM2OCIsIC8qIDM2OCAqLwotCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KLQkiRVJSTk9fMzcwIiwgLyogMzcwICovCi0JIkVSUk5PXzM3MSIsIC8qIDM3MSAqLwotCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KLQkiRVJSTk9fMzczIiwgLyogMzczICovCi0JIkVSUk5PXzM3NCIsIC8qIDM3NCAqLwotCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KLQkiRVJSTk9fMzc2IiwgLyogMzc2ICovCi0JIkVSUk5PXzM3NyIsIC8qIDM3NyAqLwotCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KLQkiRVJSTk9fMzc5IiwgLyogMzc5ICovCi0JIkVSUk5PXzM4MCIsIC8qIDM4MCAqLwotCSJFUlJOT18zODEiLCAvKiAzODEgKi8KLQkiRVJSTk9fMzgyIiwgLyogMzgyICovCi0JIkVSUk5PXzM4MyIsIC8qIDM4MyAqLwotCSJFUlJOT18zODQiLCAvKiAzODQgKi8KLQkiRVJSTk9fMzg1IiwgLyogMzg1ICovCi0JIkVSUk5PXzM4NiIsIC8qIDM4NiAqLwotCSJFUlJOT18zODciLCAvKiAzODcgKi8KLQkiRVJSTk9fMzg4IiwgLyogMzg4ICovCi0JIkVSUk5PXzM4OSIsIC8qIDM4OSAqLwotCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KLQkiRVJSTk9fMzkxIiwgLyogMzkxICovCi0JIkVSUk5PXzM5MiIsIC8qIDM5MiAqLwotCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KLQkiRVJSTk9fMzk0IiwgLyogMzk0ICovCi0JIkVSUk5PXzM5NSIsIC8qIDM5NSAqLwotCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KLQkiRVJSTk9fMzk3IiwgLyogMzk3ICovCi0JIkVSUk5PXzM5OCIsIC8qIDM5OCAqLwotCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KLQkiRVJSTk9fNDAwIiwgLyogNDAwICovCi0JIkVSUk5PXzQwMSIsIC8qIDQwMSAqLwotCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KLQkiRVJSTk9fNDAzIiwgLyogNDAzICovCi0JIkVSUk5PXzQwNCIsIC8qIDQwNCAqLwotCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KLQkiRVJSTk9fNDA2IiwgLyogNDA2ICovCi0JIkVSUk5PXzQwNyIsIC8qIDQwNyAqLwotCSJFUlJOT180MDgiLCAvKiA0MDggKi8KLQkiRVJSTk9fNDA5IiwgLyogNDA5ICovCi0JIkVSUk5PXzQxMCIsIC8qIDQxMCAqLwotCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KLQkiRVJSTk9fNDEyIiwgLyogNDEyICovCi0JIkVSUk5PXzQxMyIsIC8qIDQxMyAqLwotCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KLQkiRVJSTk9fNDE1IiwgLyogNDE1ICovCi0JIkVSUk5PXzQxNiIsIC8qIDQxNiAqLwotCSJFUlJOT180MTciLCAvKiA0MTcgKi8KLQkiRVJSTk9fNDE4IiwgLyogNDE4ICovCi0JIkVSUk5PXzQxOSIsIC8qIDQxOSAqLwotCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KLQkiRVJSTk9fNDIxIiwgLyogNDIxICovCi0JIkVSUk5PXzQyMiIsIC8qIDQyMiAqLwotCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KLQkiRVJSTk9fNDI0IiwgLyogNDI0ICovCi0JIkVSUk5PXzQyNSIsIC8qIDQyNSAqLwotCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KLQkiRVJSTk9fNDI3IiwgLyogNDI3ICovCi0JIkVSUk5PXzQyOCIsIC8qIDQyOCAqLwotCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KLQkiRVJSTk9fNDMwIiwgLyogNDMwICovCi0JIkVSUk5PXzQzMSIsIC8qIDQzMSAqLwotCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KLQkiRVJSTk9fNDMzIiwgLyogNDMzICovCi0JIkVSUk5PXzQzNCIsIC8qIDQzNCAqLwotCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KLQkiRVJSTk9fNDM2IiwgLyogNDM2ICovCi0JIkVSUk5PXzQzNyIsIC8qIDQzNyAqLwotCSJFUlJOT180MzgiLCAvKiA0MzggKi8KLQkiRVJSTk9fNDM5IiwgLyogNDM5ICovCi0JIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLwotCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KLQkiRVJSTk9fNDQyIiwgLyogNDQyICovCi0JIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLwotCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KLQkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCi0JIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLwotCSJFUlJOT180NDciLCAvKiA0NDcgKi8KLQkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCi0JIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLwotCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KLQkiRVJSTk9fNDUxIiwgLyogNDUxICovCi0JIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLwotCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KLQkiRVJSTk9fNDU0IiwgLyogNDU0ICovCi0JIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLwotCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KLQkiRVJSTk9fNDU3IiwgLyogNDU3ICovCi0JIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLwotCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KLQkiRVJSTk9fNDYwIiwgLyogNDYwICovCi0JIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLwotCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KLQkiRVJSTk9fNDYzIiwgLyogNDYzICovCi0JIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLwotCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KLQkiRVJSTk9fNDY2IiwgLyogNDY2ICovCi0JIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLwotCSJFUlJOT180NjgiLCAvKiA0NjggKi8KLQkiRVJSTk9fNDY5IiwgLyogNDY5ICovCi0JIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLwotCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KLQkiRVJSTk9fNDcyIiwgLyogNDcyICovCi0JIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLwotCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KLQkiRVJSTk9fNDc1IiwgLyogNDc1ICovCi0JIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLwotCSJFUlJOT180NzciLCAvKiA0NzcgKi8KLQkiRVJSTk9fNDc4IiwgLyogNDc4ICovCi0JIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLwotCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KLQkiRVJSTk9fNDgxIiwgLyogNDgxICovCi0JIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLwotCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KLQkiRVJSTk9fNDg0IiwgLyogNDg0ICovCi0JIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLwotCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KLQkiRVJSTk9fNDg3IiwgLyogNDg3ICovCi0JIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLwotCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KLQkiRVJSTk9fNDkwIiwgLyogNDkwICovCi0JIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLwotCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KLQkiRVJSTk9fNDkzIiwgLyogNDkzICovCi0JIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLwotCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KLQkiRVJSTk9fNDk2IiwgLyogNDk2ICovCi0JIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLwotCSJFUlJOT180OTgiLCAvKiA0OTggKi8KLQkiRVJSTk9fNDk5IiwgLyogNDk5ICovCi0JIkVSUk5PXzUwMCIsIC8qIDUwMCAqLwotCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KLQkiRVJSTk9fNTAyIiwgLyogNTAyICovCi0JIkVSUk5PXzUwMyIsIC8qIDUwMyAqLwotCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KLQkiRVJSTk9fNTA1IiwgLyogNTA1ICovCi0JIkVSUk5PXzUwNiIsIC8qIDUwNiAqLwotCSJFUlJOT181MDciLCAvKiA1MDcgKi8KLQkiRVJSTk9fNTA4IiwgLyogNTA4ICovCi0JIkVSUk5PXzUwOSIsIC8qIDUwOSAqLwotCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KLQkiRVJSTk9fNTExIiwgLyogNTExICovCi0JIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCi0JIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCi0JIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCi0JIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLwotCSJFUlJOT181MTciLCAvKiA1MTcgKi8KLQkiRVJSTk9fNTE4IiwgLyogNTE4ICovCi0JIkVSUk5PXzUxOSIsIC8qIDUxOSAqLwotCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KLQkiRUJBREhBTkRMRSIsIC8qIDUyMSAqLwotCSJFTk9UU1lOQyIsIC8qIDUyMiAqLwotCSJFQkFEQ09PS0lFIiwgLyogNTIzICovCi0JIkVOT1RTVVBQIiwgLyogNTI0ICovCi0JIkVUT09TTUFMTCIsIC8qIDUyNSAqLwotCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KLQkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KLQkiRUpVS0VCT1giLCAvKiA1MjggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9ocHBhL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvaHBwYS9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzkyNjMzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFTk9NU0ciLCAvKiAzNSAqLwotCSJFSURSTSIsIC8qIDM2ICovCi0JIkVDSFJORyIsIC8qIDM3ICovCi0JIkVMMk5TWU5DIiwgLyogMzggKi8KLQkiRUwzSExUIiwgLyogMzkgKi8KLQkiRUwzUlNUIiwgLyogNDAgKi8KLQkiRUxOUk5HIiwgLyogNDEgKi8KLQkiRVVOQVRDSCIsIC8qIDQyICovCi0JIkVOT0NTSSIsIC8qIDQzICovCi0JIkVMMkhMVCIsIC8qIDQ0ICovCi0JIkVERUFETEsiLCAvKiA0NSAqLwotCSJFTk9MQ0siLCAvKiA0NiAqLwotCSJFSUxTRVEiLCAvKiA0NyAqLwotCSJFUlJOT180OCIsIC8qIDQ4ICovCi0JIkVSUk5PXzQ5IiwgLyogNDkgKi8KLQkiRU5PTkVUIiwgLyogNTAgKi8KLQkiRU5PREFUQSIsIC8qIDUxICovCi0JIkVUSU1FIiwgLyogNTIgKi8KLQkiRU5PU1IiLCAvKiA1MyAqLwotCSJFTk9TVFIiLCAvKiA1NCAqLwotCSJFTk9QS0ciLCAvKiA1NSAqLwotCSJFUlJOT181NiIsIC8qIDU2ICovCi0JIkVOT0xJTksiLCAvKiA1NyAqLwotCSJFQURWIiwgLyogNTggKi8KLQkiRVNSTU5UIiwgLyogNTkgKi8KLQkiRUNPTU0iLCAvKiA2MCAqLwotCSJFUFJPVE8iLCAvKiA2MSAqLwotCSJFUlJOT182MiIsIC8qIDYyICovCi0JIkVSUk5PXzYzIiwgLyogNjMgKi8KLQkiRU1VTFRJSE9QIiwgLyogNjQgKi8KLQkiRVJSTk9fNjUiLCAvKiA2NSAqLwotCSJFRE9URE9UIiwgLyogNjYgKi8KLQkiRUJBRE1TRyIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFT1ZFUkZMT1ciLCAvKiA3MiAqLwotCSJFUlJOT183MyIsIC8qIDczICovCi0JIkVSUk5PXzc0IiwgLyogNzQgKi8KLQkiRVJSTk9fNzUiLCAvKiA3NSAqLwotCSJFUlJOT183NiIsIC8qIDc2ICovCi0JIkVSUk5PXzc3IiwgLyogNzcgKi8KLQkiRVJSTk9fNzgiLCAvKiA3OCAqLwotCSJFUlJOT183OSIsIC8qIDc5ICovCi0JIkVSUk5PXzgwIiwgLyogODAgKi8KLQkiRVJSTk9fODEiLCAvKiA4MSAqLwotCSJFUlJOT184MiIsIC8qIDgyICovCi0JIkVSUk5PXzgzIiwgLyogODMgKi8KLQkiRVJSTk9fODQiLCAvKiA4NCAqLwotCSJFUlJOT184NSIsIC8qIDg1ICovCi0JIkVSUk5PXzg2IiwgLyogODYgKi8KLQkiRVJSTk9fODciLCAvKiA4NyAqLwotCSJFUlJOT184OCIsIC8qIDg4ICovCi0JIkVSUk5PXzg5IiwgLyogODkgKi8KLQkiRVJSTk9fOTAiLCAvKiA5MCAqLwotCSJFUlJOT185MSIsIC8qIDkxICovCi0JIkVSUk5PXzkyIiwgLyogOTIgKi8KLQkiRVJSTk9fOTMiLCAvKiA5MyAqLwotCSJFUlJOT185NCIsIC8qIDk0ICovCi0JIkVSUk5PXzk1IiwgLyogOTUgKi8KLQkiRVJSTk9fOTYiLCAvKiA5NiAqLwotCSJFUlJOT185NyIsIC8qIDk3ICovCi0JIkVSUk5PXzk4IiwgLyogOTggKi8KLQkiRVJSTk9fOTkiLCAvKiA5OSAqLwotCSJFUlJOT18xMDAiLCAvKiAxMDAgKi8KLQkiRVJSTk9fMTAxIiwgLyogMTAxICovCi0JIkVSUk5PXzEwMiIsIC8qIDEwMiAqLwotCSJFUlJOT18xMDMiLCAvKiAxMDMgKi8KLQkiRVJSTk9fMTA0IiwgLyogMTA0ICovCi0JIkVSUk5PXzEwNSIsIC8qIDEwNSAqLwotCSJFUlJOT18xMDYiLCAvKiAxMDYgKi8KLQkiRVJSTk9fMTA3IiwgLyogMTA3ICovCi0JIkVSUk5PXzEwOCIsIC8qIDEwOCAqLwotCSJFUlJOT18xMDkiLCAvKiAxMDkgKi8KLQkiRVJSTk9fMTEwIiwgLyogMTEwICovCi0JIkVSUk5PXzExMSIsIC8qIDExMSAqLwotCSJFUlJOT18xMTIiLCAvKiAxMTIgKi8KLQkiRVJSTk9fMTEzIiwgLyogMTEzICovCi0JIkVSUk5PXzExNCIsIC8qIDExNCAqLwotCSJFUlJOT18xMTUiLCAvKiAxMTUgKi8KLQkiRVJSTk9fMTE2IiwgLyogMTE2ICovCi0JIkVSUk5PXzExNyIsIC8qIDExNyAqLwotCSJFUlJOT18xMTgiLCAvKiAxMTggKi8KLQkiRVJSTk9fMTE5IiwgLyogMTE5ICovCi0JIkVSUk5PXzEyMCIsIC8qIDEyMCAqLwotCSJFUlJOT18xMjEiLCAvKiAxMjEgKi8KLQkiRVJSTk9fMTIyIiwgLyogMTIyICovCi0JIkVSUk5PXzEyMyIsIC8qIDEyMyAqLwotCSJFUlJOT18xMjQiLCAvKiAxMjQgKi8KLQkiRVJSTk9fMTI1IiwgLyogMTI1ICovCi0JIkVSUk5PXzEyNiIsIC8qIDEyNiAqLwotCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KLQkiRVJSTk9fMTI4IiwgLyogMTI4ICovCi0JIkVSUk5PXzEyOSIsIC8qIDEyOSAqLwotCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KLQkiRVJSTk9fMTMxIiwgLyogMTMxICovCi0JIkVSUk5PXzEzMiIsIC8qIDEzMiAqLwotCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KLQkiRVJSTk9fMTM0IiwgLyogMTM0ICovCi0JIkVSUk5PXzEzNSIsIC8qIDEzNSAqLwotCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KLQkiRVJSTk9fMTM3IiwgLyogMTM3ICovCi0JIkVSUk5PXzEzOCIsIC8qIDEzOCAqLwotCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KLQkiRVJSTk9fMTQwIiwgLyogMTQwICovCi0JIkVSUk5PXzE0MSIsIC8qIDE0MSAqLwotCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KLQkiRVJSTk9fMTQzIiwgLyogMTQzICovCi0JIkVSUk5PXzE0NCIsIC8qIDE0NCAqLwotCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KLQkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCi0JIkVSUk5PXzE0NyIsIC8qIDE0NyAqLwotCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KLQkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCi0JIkVSUk5PXzE1MCIsIC8qIDE1MCAqLwotCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KLQkiRVJSTk9fMTUyIiwgLyogMTUyICovCi0JIkVSUk5PXzE1MyIsIC8qIDE1MyAqLwotCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KLQkiRVJSTk9fMTU1IiwgLyogMTU1ICovCi0JIkVSUk5PXzE1NiIsIC8qIDE1NiAqLwotCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KLQkiRVJSTk9fMTU4IiwgLyogMTU4ICovCi0JIkVSUk5PXzE1OSIsIC8qIDE1OSAqLwotCSJFQkFERSIsIC8qIDE2MCAqLwotCSJFQkFEUiIsIC8qIDE2MSAqLwotCSJFWEZVTEwiLCAvKiAxNjIgKi8KLQkiRU5PQU5PIiwgLyogMTYzICovCi0JIkVCQURSUUMiLCAvKiAxNjQgKi8KLQkiRUJBRFNMVCIsIC8qIDE2NSAqLwotCSJFQkZPTlQiLCAvKiAxNjYgKi8KLQkiRU5PVFVOSVEiLCAvKiAxNjcgKi8KLQkiRUJBREZEIiwgLyogMTY4ICovCi0JIkVSRU1DSEciLCAvKiAxNjkgKi8KLQkiRUxJQkFDQyIsIC8qIDE3MCAqLwotCSJFTElCQkFEIiwgLyogMTcxICovCi0JIkVMSUJTQ04iLCAvKiAxNzIgKi8KLQkiRUxJQk1BWCIsIC8qIDE3MyAqLwotCSJFTElCRVhFQyIsIC8qIDE3NCAqLwotCSJFUkVTVEFSVCIsIC8qIDE3NSAqLwotCSJFU1RSUElQRSIsIC8qIDE3NiAqLwotCSJFVUNMRUFOIiwgLyogMTc3ICovCi0JIkVOT1ROQU0iLCAvKiAxNzggKi8KLQkiRU5BVkFJTCIsIC8qIDE3OSAqLwotCSJFSVNOQU0iLCAvKiAxODAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTgxICovCi0JIkVOT01FRElVTSIsIC8qIDE4MiAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDE4MyAqLwotCSJFUlJOT18xODQiLCAvKiAxODQgKi8KLQkiRVJSTk9fMTg1IiwgLyogMTg1ICovCi0JIkVSUk5PXzE4NiIsIC8qIDE4NiAqLwotCSJFUlJOT18xODciLCAvKiAxODcgKi8KLQkiRVJSTk9fMTg4IiwgLyogMTg4ICovCi0JIkVSUk5PXzE4OSIsIC8qIDE4OSAqLwotCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KLQkiRVJSTk9fMTkxIiwgLyogMTkxICovCi0JIkVSUk5PXzE5MiIsIC8qIDE5MiAqLwotCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KLQkiRVJSTk9fMTk0IiwgLyogMTk0ICovCi0JIkVSUk5PXzE5NSIsIC8qIDE5NSAqLwotCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KLQkiRVJSTk9fMTk3IiwgLyogMTk3ICovCi0JIkVSUk5PXzE5OCIsIC8qIDE5OCAqLwotCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KLQkiRVJSTk9fMjAwIiwgLyogMjAwICovCi0JIkVSUk5PXzIwMSIsIC8qIDIwMSAqLwotCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KLQkiRVJSTk9fMjAzIiwgLyogMjAzICovCi0JIkVSUk5PXzIwNCIsIC8qIDIwNCAqLwotCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KLQkiRVJSTk9fMjA2IiwgLyogMjA2ICovCi0JIkVSUk5PXzIwNyIsIC8qIDIwNyAqLwotCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KLQkiRVJSTk9fMjA5IiwgLyogMjA5ICovCi0JIkVSUk5PXzIxMCIsIC8qIDIxMCAqLwotCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KLQkiRVJSTk9fMjEyIiwgLyogMjEyICovCi0JIkVSUk5PXzIxMyIsIC8qIDIxMyAqLwotCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KLQkiRU5PU1lNIiwgLyogMjE1ICovCi0JIkVOT1RTT0NLIiwgLyogMjE2ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDIxNyAqLwotCSJFTVNHU0laRSIsIC8qIDIxOCAqLwotCSJFUFJPVE9UWVBFIiwgLyogMjE5ICovCi0JIkVOT1BST1RPT1BUIiwgLyogMjIwICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDIyMSAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiAyMjIgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDIyMyAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiAyMjQgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogMjI1ICovCi0JIkVBRERSSU5VU0UiLCAvKiAyMjYgKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDIyNyAqLwotCSJFTkVURE9XTiIsIC8qIDIyOCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDIyOSAqLwotCSJFTkVUUkVTRVQiLCAvKiAyMzAgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMjMxICovCi0JIkVDT05OUkVTRVQiLCAvKiAyMzIgKi8KLQkiRU5PQlVGUyIsIC8qIDIzMyAqLwotCSJFSVNDT05OIiwgLyogMjM0ICovCi0JIkVOT1RDT05OIiwgLyogMjM1ICovCi0JIkVTSFVURE9XTiIsIC8qIDIzNiAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAyMzcgKi8KLQkiRVRJTUVET1VUIiwgLyogMjM4ICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDIzOSAqLwotCSJFUkVNT1RFUkVMRUFTRSIsIC8qIDI0MCAqLwotCSJFSE9TVERPV04iLCAvKiAyNDEgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMjQyICovCi0JIkVSUk5PXzI0MyIsIC8qIDI0MyAqLwotCSJFQUxSRUFEWSIsIC8qIDI0NCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDI0NSAqLwotCSJFV09VTERCTE9DSyIsIC8qIDI0NiAqLwotCSJFTk9URU1QVFkiLCAvKiAyNDcgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMjQ4ICovCi0JIkVMT09QIiwgLyogMjQ5ICovCi0JIkVSUk5PXzI1MCIsIC8qIDI1MCAqLwotCSJFTk9TWVMiLCAvKiAyNTEgKi8KLQkiRU5PVFNVUCIsIC8qIDI1MiAqLwotCSJFQ0FOQ0VMTEVEIiwgLyogMjUzICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RkYWFmNS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaHBwYS9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzc5ICswLDAgQEAKLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmU1NTY1Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVU1IxIiwJLyogMTYgKi8KLQkiU0lHVVNSMiIsCS8qIDE3ICovCi0JIlNJR0NITEQiLAkvKiAxOCAqLwotCSJTSUdQV1IiLAkvKiAxOSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyMCAqLwotCSJTSUdQUk9GIiwJLyogMjEgKi8KLQkiU0lHSU8iLAkvKiAyMiAqLwotCSJTSUdXSU5DSCIsCS8qIDIzICovCi0JIlNJR1NUT1AiLAkvKiAyNCAqLwotCSJTSUdUU1RQIiwJLyogMjUgKi8KLQkiU0lHQ09OVCIsCS8qIDI2ICovCi0JIlNJR1RUSU4iLAkvKiAyNyAqLwotCSJTSUdUVE9VIiwJLyogMjggKi8KLQkiU0lHVVJHIiwJLyogMjkgKi8KLQkiU0lHTE9TVCIsCS8qIDMwICovCi0JIlNJR1VOVVNFRCIsCS8qIDMxICovCi0JIlNJR18zMiIsCS8qIDMyICovCi0JIlNJR1hDUFUiLAkvKiAzMyAqLwotCSJTSUdYRlNaIiwJLyogMzQgKi8KLQkiU0lHXzM1IiwJLyogMzUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMzYgKi8KLQkiU0lHUlRNSU4iLAkvKiAzNyAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2hwcGEvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGE1MDE2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDAxIEhld2xldHQtUGFja2FyZCwgTWF0dGhldyBXaWxjb3gKLSAqCi0gKiAkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMTIgMjAwNS8wNS8wOSAwODowMjowNCByb2xhbmQgRXhwICQKLSAqCi0gKi8KLQotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18wIgkJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJCX0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJCX0sIC8qIDIgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZCwJCSJyZWFkIgkJCX0sIC8qIDMgKi8KLQl7IDMsCVRGLAlzeXNfd3JpdGUsCQkid3JpdGUiCQkJfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJCX0sIC8qIDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgkJfSwgLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCQl9LCAvKiAxMCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgkJfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQkJfSwgLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQkJfSwgLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgkJfSwgLyogMTYgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJCX0sIC8qIDE3ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkibmV3c3RhdCIJCX0sIC8qIDE4ICovCi0JeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJCX0sIC8qIDIxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCQl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCQl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJuZXdmc3RhdCIJCX0sIC8qIDI4ICovCi0JeyAwLAkwLAlzeXNfcGF1c2UsCQkicGF1c2UiCQkJfSwgLyogMjkgKi8KLQl7IDIsCTAsCXN5c191dGltZSwJCSJ1dGltZSIJCQl9LCAvKiAzMCAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCQl9LCAvKiAzMSAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgkJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJCX0sIC8qIDM0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCQl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCQl9LCAvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJCX0sIC8qIDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCQl9LCAvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJCX0sIC8qIDQzICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCQl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgkJfSwgLyogNDcgKi8KLQl7IDIsCTAsCXN5c19zaWduYWwsCQkic2lnbmFsIgkJfSwgLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCQl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCQl9LCAvKiA1MSAqLwotCXsgMiwJMCwJc3lzX3Vtb3VudDIsCQkidW1vdW50MiIJCX0sIC8qIDUyICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkibG9jayIJCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQkJfSwgLyogNTUgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgkJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCQl9LCAvKiA1NyAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQkJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJuZXd1bmFtZSIJCQl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCQl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJCX0sIC8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgkJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCQl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCQl9LCAvKiA2NiAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJCX0sIC8qIDY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2dldG1hc2siCQl9LCAvKiA2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNzZXRtYXNrIgkJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiA3MSAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5IgkJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCQl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MSAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgkJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgkJfSwgLyogODMgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibmV3bHN0YXQiCQl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDg1ICovCi0JeyAxLAkwLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJCX0sIC8qIDg2ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJCX0sIC8qIDg4ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCQl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJCX0sIC8qIDk3ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCQl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgkJfSwgLyogOTkgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCQl9LCAvKiAxMDAgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDEwMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIiCQl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgkJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCQl9LCAvKiAxMDUgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0IgkJfSwgLyogMTA2ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJCX0sIC8qIDEwNyAqLwotCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZCIJCQl9LCAvKiAxMDggKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJCX0sIC8qIDEwOSAqLwotCXsgMiwJMCwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCQl9LCAvKiAxMTEgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0IgkJfSwgLyogMTEyICovCi0JeyAwLAkwLAlzeXNfdmZvcmssCQkidmZvcmsiCQkJfSwgLyogMTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJCX0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJCX0sIC8qIDExNiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJCX0sIC8qIDExOCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCQl9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJCX0sIC8qIDEyMSAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJCX0sIC8qIDEyMiAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4IgkJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCQl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgkJfSwgLyogMTI3ICovCi0JeyA0LAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgkJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIgl9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJCX0sIC8qIDEzMiAqLwotCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgkJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgkJfSwgLyogMTM0ICovCi0JeyA1LAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQkJfSwgLyogMTM1ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCQl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJCX0sIC8qIDEzOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgkJfSwgLyogMTM5ICovCi0JeyA1LAlURiwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgkJfSwgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCQl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkiX25ld3NlbGVjdCIJCX0sIC8qIDE0MiAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJCX0sIC8qIDE0NSAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCQl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJCX0sIC8qIDE0OCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgkJfSwgLyogMTQ5ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgkJfSwgLyogMTUxICovCi0JeyAxLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCQl9LCAvKiAxNTIgKi8KLQl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCQl9LCAvKiAxNTMgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAvKiAxNTQgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIgl9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIiCX0sIC8qIDE1NiAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgLyogMTU3ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJCX0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgkJfSwgLyogMTYyICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMTY1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCQl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCQl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogMTY4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCQl9LCAvKiAxNzAgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgkJfSwgLyogMTcxICovCi0JeyA1LAkwLAlzeXNfcHJjdGwsCQkicHJjdGwiCQkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJydF9zaWdyZXR1cm4iCQl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgkJfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2siCX0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJCX0sIC8qIDE3NiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8iCX0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJCX0sIC8qIDE3OSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCQl9LCAvKiAxODAgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0IgkJfSwgLyogMTgxICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJCX0sIC8qIDE4MiAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCQl9LCAvKiAxODMgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTg0ICovCi0JeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJCX0sIC8qIDE4NSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMTg2ICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCQl9LCAvKiAxODcgKi8KLQl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJCX0sIC8qIDE4OCAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMTg5ICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCQl9LCAvKiAxOTAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJCX0sIC8qIDE5MSAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCQl9LCAvKiAxOTIgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQkJfSwgLyogMTkzICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCQl9LCAvKiAxOTQgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDE5NSAqLwotCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJCX0sIC8qIDE5NiAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJCX0sIC8qIDE5NyAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiAxOTggKi8KLQl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0IgkJfSwgLyogMTk5ICovCi0JeyAzLAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCQl9LCAvKiAyMDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCQl9LCAvKiAyMDEgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0IgkJfSwgLyogMjAyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiYXR0cmN0bCIJCX0sIC8qIDIwMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFjbF9nZXQiCQl9LCAvKiAyMDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJhY2xfc2V0IgkJfSwgLyogMjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMjA2ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDIwNyAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJCX0sIC8qIDIwOCAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZTY0IgkJfSwgLyogMjA5ICovCi0JeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQkJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIJfSwgLyogMjExICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIJfSwgLyogMjEyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2V0X3RocmVhZF9hcmVhIgl9LCAvKiAyMTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJnZXRfdGhyZWFkX2FyZWEiCX0sIC8qIDIxNCAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgkJfSwgLyogMjE1ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95IgkJfSwgLyogMjE2ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJCX0sIC8qIDIxNyAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCQl9LCAvKiAyMTggKi8KLQl7IDQsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgkJfSwgLyogMjE5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiYWxsb2NfaHVnZXBhZ2VzIgl9LCAvKiAyMjAgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJmcmVlX2h1Z2VwYWdlcyIJfSwgLyogMjIxICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJCX0sIC8qIDIyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiAyMjMgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCQl9LCAvKiAyMjQgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgkJfSwgLyogMjI1ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0IgkJfSwgLyogMjI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicmVtYXBfZmlsZV9wYWdlcyIJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2VtdGltZWRvcCIJCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1xX29wZW4iCQl9LCAvKiAyMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV91bmxpbmsiCQl9LCAvKiAyMzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV90aW1lZHNlbmQiCQl9LCAvKiAyMzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV90aW1lZHJlY2VpdmUiCQl9LCAvKiAyMzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV9ub3RpZnkiCQl9LCAvKiAyMzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogMjM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkid2FpdGlkIgkJfSwgLyogMjM1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZmFkdmlzZTY0XzY0IgkJfSwgLyogMjM2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIgl9LCAvKiAyMzcgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAyMzggKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMjM5ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDI0MCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDI0MSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAyNDIgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMjQzICovCi0JeyA1LAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAyNDQgKi8KLQl7IDUsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAyNDUgKi8KLQl7IDUsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAyNDYgKi8KLQl7IDUsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDI0NyAqLwotCXsgNSwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDI0OCAqLwotCXsgNSwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDI0OSAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJCX0sIC8qIDI1MCAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgkJfSwgLyogMjUxICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCQl9LCAvKiAyNTIgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biIJfSwgLyogMjUzICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgkJfSwgLyogMjU0ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCQl9LCAvKiAyNTUgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJCX0sIC8qIDI1NiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJCX0sIC8qIDI1NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImNsb2NrX25hbm9zbGVlcCIJfSwgLyogMjU4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidGdraWxsIgkJfSwgLyogMjU5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkibWJpbmQiCQkJfSwgLyogMjYwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZ2V0X21lbXBvbGljeSIJCX0sIC8qIDI2MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF9tZW1wb2xpY3kiCQl9LCAvKiAyNjIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgkJfSwgLyogMjYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJCX0sIC8qIDI2NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCQl9LCAvKiAyNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY2IgkJfSwgLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJCX0sIC8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCQl9LCAvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY5IgkJfSwgLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJCX0sIC8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCQl9LCAvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgkJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJCX0sIC8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCQl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1IgkJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCQl9LCAvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4IgkJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCQl9LCAvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgkJfSwgLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCQl9LCAvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0IgkJfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCQl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3IgkJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCQl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgkJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCQl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgkJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJCX0sIC8qIDI5NCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lhNjQvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L2Vycm5vZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MGI1MDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L2lhNjQvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNSArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVERUFETEsiLCAvKiAzNSAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiAzNiAqLwotCSJFTk9MQ0siLCAvKiAzNyAqLwotCSJFTk9TWVMiLCAvKiAzOCAqLwotCSJFTk9URU1QVFkiLCAvKiAzOSAqLwotCSJFTE9PUCIsIC8qIDQwICovCi0JIkVSUk5PXzQxIiwgLyogNDEgKi8KLQkiRU5PTVNHIiwgLyogNDIgKi8KLQkiRUlEUk0iLCAvKiA0MyAqLwotCSJFQ0hSTkciLCAvKiA0NCAqLwotCSJFTDJOU1lOQyIsIC8qIDQ1ICovCi0JIkVMM0hMVCIsIC8qIDQ2ICovCi0JIkVMM1JTVCIsIC8qIDQ3ICovCi0JIkVMTlJORyIsIC8qIDQ4ICovCi0JIkVVTkFUQ0giLCAvKiA0OSAqLwotCSJFTk9DU0kiLCAvKiA1MCAqLwotCSJFTDJITFQiLCAvKiA1MSAqLwotCSJFQkFERSIsIC8qIDUyICovCi0JIkVCQURSIiwgLyogNTMgKi8KLQkiRVhGVUxMIiwgLyogNTQgKi8KLQkiRU5PQU5PIiwgLyogNTUgKi8KLQkiRUJBRFJRQyIsIC8qIDU2ICovCi0JIkVCQURTTFQiLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L2lhNjQvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNkMmFjZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA4MCArMCwwIEBACi0JLyogR2VuZXJhdGVkIGJ5IGlvY3Rsc29ydCAqLwotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRMQVNUU0VDVCIsCTB4MTI2Y30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFVExBU1RTRUNUIiwJMHgxMjZkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NBVFRBQ0giLAkweDQwNjV9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ0RFVEFDSCIsCTB4NDA2Nn0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DU1VTUEVORCIsCTB4NDA2N30sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DUkVTVU1FIiwJMHg0MDY4fSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NDTFJQT0xJQ1kiLAkweDQwNjl9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1NFVFBPTElDWSIsCTB4NDA2YX0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DSUFNQVVESVREIiwJMHg0MDZifSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NTRVRBVURJVElEIiwJMHg0MDZjfSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NMT0dJTiIsCTB4NDA2ZX0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DVVNFUk1FU1NBR0UiLAkweDQwNmZ9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ0NMUkZJTFRFUiIsCTB4NDA3MH0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DU0VURklMVEVSIiwJMHg0MDcxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAotCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0ZDVVJTT1JJTkZPIiwJMHg0NjA3fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQ1VSU09SSU5GTyIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfVkNVUlNPUklORk8iLAkweDQ2MDl9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NVUlNPUlNUQVRFIiwJMHg0NjBhfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DVVJTT1JTVEFURSIsCTB4NDYwYn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0lPQ1NPVU5EIiwJMHg0YjJmfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RNS1RPTkUiLAkweDRiMzB9LAotCXsibGludXgva2QuaCIsCSJLREdFVExFRCIsCTB4NGIzMX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTEVEIiwJMHg0YjMyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JUWVBFIiwJMHg0YjMzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RBRERJTyIsCTB4NGIzNH0sCi0JeyJsaW51eC9rZC5oIiwJIktEREVMSU8iLAkweDRiMzV9LAotCXsibGludXgva2QuaCIsCSJLREVOQUJJTyIsCTB4NGIzNn0sCi0JeyJsaW51eC9rZC5oIiwJIktERElTQUJJTyIsCTB4NGIzN30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTU9ERSIsCTB4NGIzYX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUTU9ERSIsCTB4NGIzYn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUFQRElTUCIsCTB4NGIzY30sCi0JeyJsaW51eC9rZC5oIiwJIktEVU5NQVBESVNQIiwJMHg0YjNkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1NDUk5NQVAiLAkweDRiNDB9LAotCXsibGludXgva2QuaCIsCSJQSU9fU0NSTk1BUCIsCTB4NGI0MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTU9ERSIsCTB4NGI0NH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTU9ERSIsCTB4NGI0NX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCRU5UIiwJMHg0YjQ2fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JFTlQiLAkweDRiNDd9LAotCXsibGludXgva2QuaCIsCSJLREdLQlNFTlQiLAkweDRiNDh9LAotCXsibGludXgva2QuaCIsCSJLRFNLQlNFTlQiLAkweDRiNDl9LAotCXsibGludXgva2QuaCIsCSJLREdLQkRJQUNSIiwJMHg0YjRhfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JESUFDUiIsCTB4NGI0Yn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUS0VZQ09ERSIsCTB4NGI0Y30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUS0VZQ09ERSIsCTB4NGI0ZH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0lHQUNDRVBUIiwJMHg0YjRlfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHSFdDTEsiLAkweDRiNTB9LAotCXsibGludXgva2QuaCIsCSJLRFNIV0NMSyIsCTB4NGI1MX0sCi0JeyJsaW51eC9rZC5oIiwJIktES0JEUkVQIiwJMHg0YjUyfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlQiLAkweDRiNjB9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVCIsCTB4NGI2MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTUVUQSIsCTB4NGI2Mn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTUVUQSIsCTB4NGI2M30sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTEVEIiwJMHg0YjY0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JMRUQiLAkweDRiNjV9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JTUFQIiwJMHg0YjY2fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUCIsCTB4NGI2N30sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVBDTFIiLAkweDRiNjh9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JU0NSTk1BUCIsCTB4NGI2OX0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklTQ1JOTUFQIiwJMHg0YjZhfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlRYIiwJMHg0YjZifSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRYIiwJMHg0YjZjfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRSRVNFVCIsCTB4NGI2ZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19DTUFQIiwJMHg0YjcwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0NNQVAiLAkweDRiNzF9LAotCXsibGludXgva2QuaCIsCSJLREZPTlRPUCIsCTB4NGI3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUEFVU0UiLAkweDUzMDF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU1VNRSIsCTB4NTMwMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWU1TRiIsCTB4NTMwM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWVRSS0lORCIsCTB4NTMwNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0hEUiIsCTB4NTMwNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0VOVFJZIiwJMHg1MzA2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVE9QIiwJMHg1MzA3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVEFSVCIsCTB4NTMwOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1QiLAkweDUzMDl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTENUUkwiLAkweDUzMGF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNVQkNITkwiLAkweDUzMGJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMiIsCTB4NTMwY30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUxIiwJMHg1MzBkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQVVESU8iLAkweDUzMGV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUX1NXIiwJMHg1MzBmfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01NVUxUSVNFU1NJT04iLAkweDUzMTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfTUNOIiwJMHg1MzExfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNFVCIsCTB4NTMxMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MUkVBRCIsCTB4NTMxM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFJBVyIsCTB4NTMxNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRENPT0tFRCIsCTB4NTMxNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VFSyIsCTB4NTMxNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWUJMSyIsCTB4NTMxN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFMTCIsCTB4NTMxOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQ0xPU0VUUkFZIiwJMHg1MzE5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01HRVRTUElORE9XTiIsCTB4NTMxZH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VUU1BJTkRPV04iLAkweDUzMWV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRVRfT1BUSU9OUyIsCTB4NTMyMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NMRUFSX09QVElPTlMiLAkweDUzMjF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfU1BFRUQiLAkweDUzMjJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfRElTQyIsCTB4NTMyM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX01FRElBX0NIQU5HRUQiLAkweDUzMjV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9EUklWRV9TVEFUVVMiLAkweDUzMjZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ESVNDX1NUQVRVUyIsCTB4NTMyN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NIQU5HRVJfTlNMT1RTIiwJMHg1MzI4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTE9DS0RPT1IiLAkweDUzMjl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ERUJVRyIsCTB4NTMzMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9DQVBBQklMSVRZIiwJMHg1MzMxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01BVURJT0JVRlNJWiIsCTB4NTM4Mn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9SRUFEX1NUUlVDVCIsCTB4NTM5MH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9XUklURV9TVFJVQ1QiLAkweDUzOTF9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfQVVUSCIsCTB4NTM5Mn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTkRfUEFDS0VUIiwJMHg1MzkzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTkVYVF9XUklUQUJMRSIsCTB4NTM5NH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xBU1RfV1JJVFRFTiIsCTB4NTM5NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDU0NjB9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfT1BFTlFSWSIsCTB4NTYwMH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVE1PREUiLAkweDU2MDF9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRVRNT0RFIiwJMHg1NjAyfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUU1RBVEUiLAkweDU2MDN9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRU5EU0lHIiwJMHg1NjA0fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVMRElTUCIsCTB4NTYwNX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0FDVElWQVRFIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfV0FJVEFDVElWRSIsCTB4NTYwN30sCi0JeyJsaW51eC92dC5oIiwJIlZUX0RJU0FMTE9DQVRFIiwJMHg1NjA4fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFWCIsCTB4NTYwYX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0xPQ0tTV0lUQ0giLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9VTkxPQ0tTV0lUQ0giLAkweDU2MGN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg4OTAxfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg4OTAyfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg4OTAzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg4OTA0fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4ODkwNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDg5MDZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERSVCIsCTB4ODkwYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTFJUIiwJMHg4OTBjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUlRNU0ciLAkweDg5MGR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZOQU1FIiwJMHg4OTEwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTElOSyIsCTB4ODkxMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPTkYiLAkweDg5MTJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZGTEFHUyIsCTB4ODkxM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkZMQUdTIiwJMHg4OTE0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQUREUiIsCTB4ODkxNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkFERFIiLAkweDg5MTZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZEU1RBRERSIiwJMHg4OTE3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRFNUQUREUiIsCTB4ODkxOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSREFERFIiLAkweDg5MTl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUkRBRERSIiwJMHg4OTFhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkVUTUFTSyIsCTB4ODkxYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5FVE1BU0siLAkweDg5MWN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRVRSSUMiLAkweDg5MWR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRVRSSUMiLAkweDg5MWV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRU0iLAkweDg5MWZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRU0iLAkweDg5MjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNVFUiLAkweDg5MjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNVFUiLAkweDg5MjJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZOQU1FIiwJMHg4OTIzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdBRERSIiwJMHg4OTI0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRU5DQVAiLAkweDg5MjV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZFTkNBUCIsCTB4ODkyNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkhXQUREUiIsCTB4ODkyN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlNMQVZFIiwJMHg4OTI5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGU0xBVkUiLAkweDg5MzB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERNVUxUSSIsCTB4ODkzMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTE1VTFRJIiwJMHg4OTMyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSU5ERVgiLAkweDg5MzN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZQRkxBR1MiLAkweDg5MzR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZQRkxBR1MiLAkweDg5MzV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NESUZBRERSIiwJMHg4OTM2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdCUk9BRENBU1QiLAkweDg5Mzd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT1VOVCIsCTB4ODkzOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSIiwJMHg4OTQwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlIiLAkweDg5NDF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZUWFFMRU4iLAkweDg5NDJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZUWFFMRU4iLAkweDg5NDN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZESVZFUlQiLAkweDg5NDR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZESVZFUlQiLAkweDg5NDV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NFVEhUT09MIiwJMHg4OTQ2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVBIWSIsCTB4ODk0N30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlSRUciLAkweDg5NDh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTTUlJUkVHIiwJMHg4OTQ5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREFSUCIsCTB4ODk1M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dBUlAiLAkweDg5NTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTQVJQIiwJMHg4OTU1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRFJBUlAiLAkweDg5NjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHUkFSUCIsCTB4ODk2MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NSQVJQIiwJMHg4OTYyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUFQIiwJMHg4OTcwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUFQIiwJMHg4OTcxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURERExDSSIsCTB4ODk4MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTERMQ0kiLAkweDg5ODF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZWTEFOIiwJMHg4OTgyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVkxBTiIsCTB4ODk4M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRFTlNMQVZFIiwJMHg4OTkwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFJFTEVBU0UiLAkweDg5OTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0VUSFdBRERSIiwJMHg4OTkyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNMQVZFSU5GT1FVRVJZIiwJMHg4OTkzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORElORk9RVUVSWSIsCTB4ODk5NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRDSEFOR0VBQ1RJVkUiLAkweDg5OTV9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUFJPVE9QUklWQVRFIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFVlBSSVZBVEUiLAkweDg5ZjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVCIsCTB4OGIwMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdDT01NSVQiLAkweDhiMDB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTkFNRSIsCTB4OGIwMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOV0lEIiwJMHg4YjAyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05XSUQiLAkweDhiMDN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJFUSIsCTB4OGIwNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkVRIiwJMHg4YjA1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV01PREUiLAkweDhiMDZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTU9ERSIsCTB4OGIwN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTRU5TIiwJMHg4YjA4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NFTlMiLAkweDhiMDl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFOR0UiLAkweDhiMGF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFOR0UiLAkweDhiMGJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUFJJViIsCTB4OGIwY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQUklWIiwJMHg4YjBkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NUQVRTIiwJMHg4YjBlfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NUQVRTIiwJMHg4YjBmfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NQWSIsCTB4OGIxMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTUFkiLAkweDhiMTF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXQVAiLAkweDhiMTR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVAiLAkweDhiMTV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVBMSVNUIiwJMHg4YjE3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NDQU4iLAkweDhiMTh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0NBTiIsCTB4OGIxOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFU1NJRCIsCTB4OGIxYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFU1NJRCIsCTB4OGIxYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOSUNLTiIsCTB4OGIxY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOSUNLTiIsCTB4OGIxZH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQVRFIiwJMHg4YjIwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JBVEUiLAkweDhiMjF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUlRTIiwJMHg4YjIyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JUUyIsCTB4OGIyM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkFHIiwJMHg4YjI0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSQUciLAkweDhiMjV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVFhQT1ciLAkweDhiMjZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVFhQT1ciLAkweDhiMjd9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkVUUlkiLAkweDhiMjh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkVUUlkiLAkweDhiMjl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRU5DT0RFIiwJMHg4YjJhfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VOQ09ERSIsCTB4OGIyYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQT1dFUiIsCTB4OGIyY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQT1dFUiIsCTB4OGIyZH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0ZJUlNUUFJJViIsCTB4OGJlMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0xBU1RQUklWIiwJMHg4YmZmfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaWE2NC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzkxYTY0Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9pYTY0L3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdTWVMiLAkvKiAzMSAqLwotCSJTSUdSVDAiLAkvKiAzMiAqLwotCSJTSUdSVDEiLAkvKiAzMyAqLwotCSJTSUdSVDIiLAkvKiAzNCAqLwotCSJTSUdSVDMiLAkvKiAzNSAqLwotCSJTSUdSVDQiLAkvKiAzNiAqLwotCSJTSUdSVDUiLAkvKiAzNyAqLwotCSJTSUdSVDYiLAkvKiAzOCAqLwotCSJTSUdSVDciLAkvKiAzOSAqLwotCSJTSUdSVDgiLAkvKiA0MCAqLwotCSJTSUdSVDkiLAkvKiA0MSAqLwotCSJTSUdSVDEwIiwJLyogNDIgKi8KLQkiU0lHUlQxMSIsCS8qIDQzICovCi0JIlNJR1JUMTIiLAkvKiA0NCAqLwotCSJTSUdSVDEzIiwJLyogNDUgKi8KLQkiU0lHUlQxNCIsCS8qIDQ2ICovCi0JIlNJR1JUMTUiLAkvKiA0NyAqLwotCSJTSUdSVDE2IiwJLyogNDggKi8KLQkiU0lHUlQxNyIsCS8qIDQ5ICovCi0JIlNJR1JUMTgiLAkvKiA1MCAqLwotCSJTSUdSVDE5IiwJLyogNTEgKi8KLQkiU0lHUlQyMCIsCS8qIDUyICovCi0JIlNJR1JUMjEiLAkvKiA1MyAqLwotCSJTSUdSVDIyIiwJLyogNTQgKi8KLQkiU0lHUlQyMyIsCS8qIDU1ICovCi0JIlNJR1JUMjQiLAkvKiA1NiAqLwotCSJTSUdSVDI1IiwJLyogNTcgKi8KLQkiU0lHUlQyNiIsCS8qIDU4ICovCi0JIlNJR1JUMjciLAkvKiA1OSAqLwotCSJTSUdSVDI4IiwJLyogNjAgKi8KLQkiU0lHUlQyOSIsCS8qIDYxICovCi0JIlNJR1JUMzAiLAkvKiA2MiAqLwotCSJTSUdSVDMxIiwJLyogNjMgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM3ZTg2Zi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaWE2NC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTksIDIwMDEgSGV3bGV0dC1QYWNrYXJkIENvCi0gKglEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjE4IDIwMDUvMDUvMDkgMDg6MDI6MDUgcm9sYW5kIEV4cCAkCi0gKi8KLQotLyoKLSAqIElBLTMyIHN5c2NhbGxzIHRoYXQgaGF2ZSBwb2ludGVyIGFyZ3VtZW50cyB3aGljaCBhcmUgaW5jb21wYXRpYmxlCi0gKiB3aXRoIDY0LWJpdCBsYXlvdXQgZ2V0IHJlZGlyZWN0ZWQgdG8gcHJpbnRhcmdzLgotICovCi0jZGVmaW5lIHN5c19nZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfYWZzX3N5c2NhbGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0cG1zZwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wdXRwbXNnCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3VnZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfZm9yawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c193YWl0cGlkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3RpbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfYnJlYWsJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkc3RhdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19sc2VlawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zdGltZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wdHJhY2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfYWxhcm0JCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkZnN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfcGF1c2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfdXRpbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3R0eQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19ndHR5CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2Z0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3BpcGUJCXByaW50YXJncwotI2RlZmluZSBzeXNfdGltZXMJCXByaW50YXJncwotI2RlZmluZSBzeXNfcHJvZgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWduYWwJCXByaW50YXJncwotI2RlZmluZSBzeXNfbG9jawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19pb2N0bAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19mY250bAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tcHgJCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3VsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19vbGRvbGR1bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdhY3Rpb24JCXByaW50YXJncwotI2RlZmluZSBzeXNfc2dldG1hc2sJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3NldG1hc2sJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2lnc3VzcGVuZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdwZW5kaW5nCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NldHJsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRydXNhZ2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZSBzeXNfc2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0Z3JvdXBzCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NldGdyb3VwcwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZWxlY3QJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkbHN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfcmVhZGRpcgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wcm9maWwJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3RhdGZzCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0ZnMJCXByaW50YXJncwotI2RlZmluZSBzeXNfaW9wZXJtCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NvY2tldGNhbGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2V0aXRpbWVyCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2dldGl0aW1lcgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2xzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZHVuYW1lCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2lvcGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfaWRsZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192bTg2b2xkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3dhaXQ0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3N5c2luZm8JCXByaW50YXJncwotI2RlZmluZSBzeXNfaXBjCQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdyZXR1cm4JCXByaW50YXJncwotI2RlZmluZSBzeXNfdW5hbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfbW9kaWZ5X2xkdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19hZGp0aW1leAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdwcm9jbWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19jcmVhdGVfbW9kdWxlCXByaW50YXJncwotI2RlZmluZSBzeXNfaW5pdF9tb2R1bGUJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0X2tlcm5lbF9zeW1zCXByaW50YXJncwotI2RlZmluZSBzeXNfcXVvdGFjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfYmRmbHVzaAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wZXJzb25hbGl0eQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRkZW50cwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19fbmV3c2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3JlYWR2CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3dyaXRldgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19fc3lzY3RsCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2dldHJlc3VpZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192bTg2CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3F1ZXJ5X21vZHVsZQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX25mc3NlcnZjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0cmVzZ2lkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ3JldHVybglwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ2FjdGlvbglwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ3Byb2NtYXNrCXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lndGltZWR3YWl0CXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lncXVldWVpbmZvCXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lnc3VzcGVuZAlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3ByZWFkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3B3cml0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdhbHRzdGFjawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZW5kZmlsZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192Zm9yawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c190cnVuY2F0ZTY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2Z0cnVuY2F0ZTY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3N0YXQ2NAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19sc3RhdDY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0NjQJCXByaW50YXJncwotI2RlZmluZSBzeXNfZmNudGw2NAkJcHJpbnRhcmdzCi0KLSNpbmNsdWRlICIuLi9zeXNjYWxsZW50LmgiCi0KLSN1bmRlZiBzeXNfZ2V0cmxpbWl0Ci0jdW5kZWYgc3lzX2Fmc19zeXNjYWxsCi0jdW5kZWYgc3lzX2dldHBtc2cKLSN1bmRlZiBzeXNfcHV0cG1zZwotI3VuZGVmIHN5c191Z2V0cmxpbWl0Ci0jdW5kZWYgc3lzX2ZvcmsKLSN1bmRlZiBzeXNfd2FpdHBpZAotI3VuZGVmIHN5c190aW1lCi0jdW5kZWYgc3lzX2JyZWFrCi0jdW5kZWYgc3lzX29sZHN0YXQKLSN1bmRlZiBzeXNfbHNlZWsKLSN1bmRlZiBzeXNfc3RpbWUKLSN1bmRlZiBzeXNfcHRyYWNlCi0jdW5kZWYgc3lzX2FsYXJtCi0jdW5kZWYgc3lzX29sZGZzdGF0Ci0jdW5kZWYgc3lzX3BhdXNlCi0jdW5kZWYgc3lzX3V0aW1lCi0jdW5kZWYgc3lzX3N0dHkKLSN1bmRlZiBzeXNfZ3R0eQotI3VuZGVmIHN5c19mdGltZQotI3VuZGVmIHN5c19waXBlCi0jdW5kZWYgc3lzX3RpbWVzCi0jdW5kZWYgc3lzX3Byb2YKLSN1bmRlZiBzeXNfc2lnbmFsCi0jdW5kZWYgc3lzX2xvY2sKLSN1bmRlZiBzeXNfaW9jdGwKLSN1bmRlZiBzeXNfZmNudGwKLSN1bmRlZiBzeXNfbXB4Ci0jdW5kZWYgc3lzX3VsaW1pdAotI3VuZGVmIHN5c19vbGRvbGR1bmFtZQotI3VuZGVmIHN5c19zaWdhY3Rpb24KLSN1bmRlZiBzeXNfc2dldG1hc2sKLSN1bmRlZiBzeXNfc3NldG1hc2sKLSN1bmRlZiBzeXNfc2lnc3VzcGVuZAotI3VuZGVmIHN5c19zaWdwZW5kaW5nCi0jdW5kZWYgc3lzX3NldHJsaW1pdAotI3VuZGVmIHN5c19nZXRydXNhZ2UKLSN1bmRlZiBzeXNfZ2V0dGltZW9mZGF5Ci0jdW5kZWYgc3lzX3NldHRpbWVvZmRheQotI3VuZGVmIHN5c19nZXRncm91cHMKLSN1bmRlZiBzeXNfc2V0Z3JvdXBzCi0jdW5kZWYgc3lzX3NlbGVjdAotI3VuZGVmIHN5c19vbGRsc3RhdAotI3VuZGVmIHN5c19yZWFkZGlyCi0jdW5kZWYgc3lzX3Byb2ZpbAotI3VuZGVmIHN5c19zdGF0ZnMKLSN1bmRlZiBzeXNfZnN0YXRmcwotI3VuZGVmIHN5c19pb3Blcm0KLSN1bmRlZiBzeXNfc29ja2V0Y2FsbAotI3VuZGVmIHN5c19zZXRpdGltZXIKLSN1bmRlZiBzeXNfZ2V0aXRpbWVyCi0jdW5kZWYgc3lzX3N0YXQKLSN1bmRlZiBzeXNfbHN0YXQKLSN1bmRlZiBzeXNfZnN0YXQKLSN1bmRlZiBzeXNfb2xkdW5hbWUKLSN1bmRlZiBzeXNfaW9wbAotI3VuZGVmIHN5c19pZGxlCi0jdW5kZWYgc3lzX3ZtODZvbGQKLSN1bmRlZiBzeXNfd2FpdDQKLSN1bmRlZiBzeXNfc3lzaW5mbwotI3VuZGVmIHN5c19pcGMKLSN1bmRlZiBzeXNfc2lncmV0dXJuCi0jdW5kZWYgc3lzX3VuYW1lCi0jdW5kZWYgc3lzX21vZGlmeV9sZHQKLSN1bmRlZiBzeXNfYWRqdGltZXgKLSN1bmRlZiBzeXNfc2lncHJvY21hc2sKLSN1bmRlZiBzeXNfY3JlYXRlX21vZHVsZQotI3VuZGVmIHN5c19pbml0X21vZHVsZQotI3VuZGVmIHN5c19kZWxldGVfbW9kdWxlCi0jdW5kZWYgc3lzX2dldF9rZXJuZWxfc3ltcwotI3VuZGVmIHN5c19xdW90YWN0bAotI3VuZGVmIHN5c19iZGZsdXNoCi0jdW5kZWYgc3lzX3BlcnNvbmFsaXR5Ci0jdW5kZWYgc3lzX2dldGRlbnRzCi0jdW5kZWYgc3lzX19uZXdzZWxlY3QKLSN1bmRlZiBzeXNfbXN5bmMKLSN1bmRlZiBzeXNfcmVhZHYKLSN1bmRlZiBzeXNfd3JpdGV2Ci0jdW5kZWYgc3lzX19zeXNjdGwKLSN1bmRlZiBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsCi0jdW5kZWYgc3lzX25hbm9zbGVlcAotI3VuZGVmIHN5c19nZXRyZXN1aWQKLSN1bmRlZiBzeXNfdm04NgotI3VuZGVmIHN5c19xdWVyeV9tb2R1bGUKLSN1bmRlZiBzeXNfbmZzc2VydmN0bAotI3VuZGVmIHN5c19nZXRyZXNnaWQKLSN1bmRlZiBzeXNfcnRfc2lncmV0dXJuCi0jdW5kZWYgc3lzX3J0X3NpZ2FjdGlvbgotI3VuZGVmIHN5c19ydF9zaWdwcm9jbWFzawotI3VuZGVmIHN5c19ydF9zaWd0aW1lZHdhaXQKLSN1bmRlZiBzeXNfcnRfc2lncXVldWVpbmZvCi0jdW5kZWYgc3lzX3J0X3NpZ3N1c3BlbmQKLSN1bmRlZiBzeXNfcHJlYWQKLSN1bmRlZiBzeXNfcHdyaXRlCi0jdW5kZWYgc3lzX3NpZ2FsdHN0YWNrCi0jdW5kZWYgc3lzX3NlbmRmaWxlCi0jdW5kZWYgc3lzX3Zmb3JrCi0jdW5kZWYgc3lzX3RydW5jYXRlNjQKLSN1bmRlZiBzeXNfZnRydW5jYXRlNjQKLSN1bmRlZiBzeXNfc3RhdDY0Ci0jdW5kZWYgc3lzX2xzdGF0NjQKLSN1bmRlZiBzeXNfZnN0YXQ2NAotI3VuZGVmIHN5c19mY250bDY0Ci0KLSNpbmNsdWRlICIuLi9kdW1teS5oIgotCi0vKiBZb3UgbXVzdCBiZSBjYXJlZnVsIHRvIGNoZWNrIC4uL3N5c2NhbGxlbnQuaCBzbyB0aGF0IHRoaXMgdGFibGUKLSAgIHN0YXJ0cyB3aGVyZSB0aGF0IG9uZSBsZWF2ZXMgb2ZmLgotKi8KLQotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMiCX0sIC8qIDM0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQiCX0sIC8qIDM0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUiCX0sIC8qIDM0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYiCX0sIC8qIDM0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDciCX0sIC8qIDM0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgiCX0sIC8qIDM0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkiCX0sIC8qIDM0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTAiCX0sIC8qIDM1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEiCX0sIC8qIDM1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTIiCX0sIC8qIDM1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTMiCX0sIC8qIDM1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQiCX0sIC8qIDM1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUiCX0sIC8qIDM1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYiCX0sIC8qIDM1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTciCX0sIC8qIDM1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgiCX0sIC8qIDM1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkiCX0sIC8qIDM1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAiCX0sIC8qIDM2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjEiCX0sIC8qIDM2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIiCX0sIC8qIDM2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMiCX0sIC8qIDM2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAiCX0sIC8qIDM3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEiCX0sIC8qIDM3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIiCX0sIC8qIDM3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qIDM3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQiCX0sIC8qIDM3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qIDM3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qIDM3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzciCX0sIC8qIDM3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qIDM3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qIDM3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCX0sIC8qIDM4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEiCX0sIC8qIDM4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qIDM4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMiCX0sIC8qIDM4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qIDM4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qIDM4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYiCX0sIC8qIDM4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qIDM4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qIDM4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkiCX0sIC8qIDM4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDAiCX0sIC8qIDQwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDEiCX0sIC8qIDQwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDIiCX0sIC8qIDQwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCX0sIC8qIDQwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDQiCX0sIC8qIDQwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDUiCX0sIC8qIDQwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDYiCX0sIC8qIDQwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDciCX0sIC8qIDQwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDgiCX0sIC8qIDQwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDkiCX0sIC8qIDQwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTAiCX0sIC8qIDQxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTEiCX0sIC8qIDQxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTIiCX0sIC8qIDQxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTMiCX0sIC8qIDQxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTQiCX0sIC8qIDQxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTUiCX0sIC8qIDQxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTYiCX0sIC8qIDQxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTciCX0sIC8qIDQxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTgiCX0sIC8qIDQxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTkiCX0sIC8qIDQxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjAiCX0sIC8qIDQyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjEiCX0sIC8qIDQyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjIiCX0sIC8qIDQyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjMiCX0sIC8qIDQyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjQiCX0sIC8qIDQyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjUiCX0sIC8qIDQyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjYiCX0sIC8qIDQyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjciCX0sIC8qIDQyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjgiCX0sIC8qIDQyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjkiCX0sIC8qIDQyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzAiCX0sIC8qIDQzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEiCX0sIC8qIDQzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIiCX0sIC8qIDQzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMiCX0sIC8qIDQzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQiCX0sIC8qIDQzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUiCX0sIC8qIDQzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzYiCX0sIC8qIDQzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzciCX0sIC8qIDQzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgiCX0sIC8qIDQzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzkiCX0sIC8qIDQzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDAiCX0sIC8qIDQ0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEiCX0sIC8qIDQ0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDIiCX0sIC8qIDQ0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDMiCX0sIC8qIDQ0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQiCX0sIC8qIDQ0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDUiCX0sIC8qIDQ0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDYiCX0sIC8qIDQ0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDciCX0sIC8qIDQ0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDgiCX0sIC8qIDQ0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDkiCX0sIC8qIDQ0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAiCX0sIC8qIDQ1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTEiCX0sIC8qIDQ1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTIiCX0sIC8qIDQ1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMiCX0sIC8qIDQ1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQiCX0sIC8qIDQ1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTUiCX0sIC8qIDQ1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYiCX0sIC8qIDQ1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTciCX0sIC8qIDQ1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTgiCX0sIC8qIDQ1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkiCX0sIC8qIDQ1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjAiCX0sIC8qIDQ2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjEiCX0sIC8qIDQ2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIiCX0sIC8qIDQ2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjMiCX0sIC8qIDQ2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQiCX0sIC8qIDQ2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUiCX0sIC8qIDQ2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjYiCX0sIC8qIDQ2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjciCX0sIC8qIDQ2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgiCX0sIC8qIDQ2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjkiCX0sIC8qIDQ2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzAiCX0sIC8qIDQ3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEiCX0sIC8qIDQ3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzIiCX0sIC8qIDQ3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzMiCX0sIC8qIDQ3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQiCX0sIC8qIDQ3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzUiCX0sIC8qIDQ3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzYiCX0sIC8qIDQ3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzciCX0sIC8qIDQ3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzgiCX0sIC8qIDQ3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzkiCX0sIC8qIDQ3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAiCX0sIC8qIDQ4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODEiCX0sIC8qIDQ4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODIiCX0sIC8qIDQ4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMiCX0sIC8qIDQ4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQiCX0sIC8qIDQ4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODUiCX0sIC8qIDQ4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYiCX0sIC8qIDQ4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODciCX0sIC8qIDQ4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODgiCX0sIC8qIDQ4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkiCX0sIC8qIDQ4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTAiCX0sIC8qIDQ5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTEiCX0sIC8qIDQ5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIiCX0sIC8qIDQ5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTMiCX0sIC8qIDQ5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQiCX0sIC8qIDQ5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUiCX0sIC8qIDQ5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTYiCX0sIC8qIDQ5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTciCX0sIC8qIDQ5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgiCX0sIC8qIDQ5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTkiCX0sIC8qIDQ5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDAiCX0sIC8qIDUwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDEiCX0sIC8qIDUwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDIiCX0sIC8qIDUwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDMiCX0sIC8qIDUwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDQiCX0sIC8qIDUwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDUiCX0sIC8qIDUwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDYiCX0sIC8qIDUwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDciCX0sIC8qIDUwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDgiCX0sIC8qIDUwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDkiCX0sIC8qIDUwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTAiCX0sIC8qIDUxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTEiCX0sIC8qIDUxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTIiCX0sIC8qIDUxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTMiCX0sIC8qIDUxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTQiCX0sIC8qIDUxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTUiCX0sIC8qIDUxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTYiCX0sIC8qIDUxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTciCX0sIC8qIDUxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTgiCX0sIC8qIDUxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTkiCX0sIC8qIDUxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjAiCX0sIC8qIDUyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjEiCX0sIC8qIDUyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjIiCX0sIC8qIDUyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjMiCX0sIC8qIDUyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjQiCX0sIC8qIDUyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjUiCX0sIC8qIDUyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjYiCX0sIC8qIDUyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjciCX0sIC8qIDUyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjgiCX0sIC8qIDUyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjkiCX0sIC8qIDUyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzAiCX0sIC8qIDUzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzEiCX0sIC8qIDUzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzIiCX0sIC8qIDUzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzMiCX0sIC8qIDUzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQiCX0sIC8qIDUzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzUiCX0sIC8qIDUzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzYiCX0sIC8qIDUzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzciCX0sIC8qIDUzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzgiCX0sIC8qIDUzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzkiCX0sIC8qIDUzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDAiCX0sIC8qIDU0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDEiCX0sIC8qIDU0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDIiCX0sIC8qIDU0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDMiCX0sIC8qIDU0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQiCX0sIC8qIDU0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDUiCX0sIC8qIDU0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDYiCX0sIC8qIDU0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDciCX0sIC8qIDU0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDgiCX0sIC8qIDU0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDkiCX0sIC8qIDU0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTAiCX0sIC8qIDU1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTEiCX0sIC8qIDU1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTIiCX0sIC8qIDU1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTMiCX0sIC8qIDU1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTQiCX0sIC8qIDU1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTUiCX0sIC8qIDU1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTYiCX0sIC8qIDU1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTciCX0sIC8qIDU1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTgiCX0sIC8qIDU1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTkiCX0sIC8qIDU1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjAiCX0sIC8qIDU2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjEiCX0sIC8qIDU2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjIiCX0sIC8qIDU2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjMiCX0sIC8qIDU2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQiCX0sIC8qIDU2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjUiCX0sIC8qIDU2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjYiCX0sIC8qIDU2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjciCX0sIC8qIDU2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjgiCX0sIC8qIDU2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjkiCX0sIC8qIDU2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzAiCX0sIC8qIDU3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzEiCX0sIC8qIDU3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzIiCX0sIC8qIDU3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzMiCX0sIC8qIDU3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQiCX0sIC8qIDU3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzUiCX0sIC8qIDU3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzYiCX0sIC8qIDU3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzciCX0sIC8qIDU3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzgiCX0sIC8qIDU3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzkiCX0sIC8qIDU3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODAiCX0sIC8qIDU4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODEiCX0sIC8qIDU4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODIiCX0sIC8qIDU4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODMiCX0sIC8qIDU4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODQiCX0sIC8qIDU4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODUiCX0sIC8qIDU4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODYiCX0sIC8qIDU4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODciCX0sIC8qIDU4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODgiCX0sIC8qIDU4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODkiCX0sIC8qIDU4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTAiCX0sIC8qIDU5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTEiCX0sIC8qIDU5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTIiCX0sIC8qIDU5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTMiCX0sIC8qIDU5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQiCX0sIC8qIDU5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTUiCX0sIC8qIDU5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTYiCX0sIC8qIDU5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTciCX0sIC8qIDU5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTgiCX0sIC8qIDU5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTkiCX0sIC8qIDU5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDAiCX0sIC8qIDYwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDEiCX0sIC8qIDYwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDIiCX0sIC8qIDYwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDMiCX0sIC8qIDYwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDQiCX0sIC8qIDYwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDUiCX0sIC8qIDYwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDYiCX0sIC8qIDYwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDciCX0sIC8qIDYwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDgiCX0sIC8qIDYwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDkiCX0sIC8qIDYwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTAiCX0sIC8qIDYxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTEiCX0sIC8qIDYxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTIiCX0sIC8qIDYxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTMiCX0sIC8qIDYxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTQiCX0sIC8qIDYxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTUiCX0sIC8qIDYxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTYiCX0sIC8qIDYxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTciCX0sIC8qIDYxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTgiCX0sIC8qIDYxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTkiCX0sIC8qIDYxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjAiCX0sIC8qIDYyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjEiCX0sIC8qIDYyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjIiCX0sIC8qIDYyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjMiCX0sIC8qIDYyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjQiCX0sIC8qIDYyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjUiCX0sIC8qIDYyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjYiCX0sIC8qIDYyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjciCX0sIC8qIDYyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjgiCX0sIC8qIDYyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjkiCX0sIC8qIDYyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzAiCX0sIC8qIDYzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzEiCX0sIC8qIDYzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzIiCX0sIC8qIDYzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzMiCX0sIC8qIDYzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQiCX0sIC8qIDYzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzUiCX0sIC8qIDYzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzYiCX0sIC8qIDYzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzciCX0sIC8qIDYzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzgiCX0sIC8qIDYzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzkiCX0sIC8qIDYzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDAiCX0sIC8qIDY0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDEiCX0sIC8qIDY0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDIiCX0sIC8qIDY0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDMiCX0sIC8qIDY0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQiCX0sIC8qIDY0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDUiCX0sIC8qIDY0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDYiCX0sIC8qIDY0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDciCX0sIC8qIDY0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDgiCX0sIC8qIDY0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDkiCX0sIC8qIDY0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTAiCX0sIC8qIDY1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTEiCX0sIC8qIDY1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTIiCX0sIC8qIDY1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTMiCX0sIC8qIDY1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQiCX0sIC8qIDY1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTUiCX0sIC8qIDY1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTYiCX0sIC8qIDY1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTciCX0sIC8qIDY1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTgiCX0sIC8qIDY1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTkiCX0sIC8qIDY1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjAiCX0sIC8qIDY2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjEiCX0sIC8qIDY2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjIiCX0sIC8qIDY2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjMiCX0sIC8qIDY2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQiCX0sIC8qIDY2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjUiCX0sIC8qIDY2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjYiCX0sIC8qIDY2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjciCX0sIC8qIDY2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjgiCX0sIC8qIDY2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjkiCX0sIC8qIDY2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzAiCX0sIC8qIDY3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzEiCX0sIC8qIDY3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzIiCX0sIC8qIDY3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzMiCX0sIC8qIDY3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQiCX0sIC8qIDY3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzUiCX0sIC8qIDY3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzYiCX0sIC8qIDY3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzciCX0sIC8qIDY3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzgiCX0sIC8qIDY3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzkiCX0sIC8qIDY3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODAiCX0sIC8qIDY4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODEiCX0sIC8qIDY4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODIiCX0sIC8qIDY4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODMiCX0sIC8qIDY4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQiCX0sIC8qIDY4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODUiCX0sIC8qIDY4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODYiCX0sIC8qIDY4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODciCX0sIC8qIDY4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODgiCX0sIC8qIDY4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODkiCX0sIC8qIDY4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTAiCX0sIC8qIDY5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTEiCX0sIC8qIDY5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTIiCX0sIC8qIDY5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTMiCX0sIC8qIDY5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQiCX0sIC8qIDY5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTUiCX0sIC8qIDY5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTYiCX0sIC8qIDY5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTciCX0sIC8qIDY5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTgiCX0sIC8qIDY5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTkiCX0sIC8qIDY5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDAiCX0sIC8qIDcwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDEiCX0sIC8qIDcwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDIiCX0sIC8qIDcwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDMiCX0sIC8qIDcwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDQiCX0sIC8qIDcwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDUiCX0sIC8qIDcwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDYiCX0sIC8qIDcwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDciCX0sIC8qIDcwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDgiCX0sIC8qIDcwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDkiCX0sIC8qIDcwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTAiCX0sIC8qIDcxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTEiCX0sIC8qIDcxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTIiCX0sIC8qIDcxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTMiCX0sIC8qIDcxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTQiCX0sIC8qIDcxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTUiCX0sIC8qIDcxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTYiCX0sIC8qIDcxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTciCX0sIC8qIDcxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTgiCX0sIC8qIDcxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTkiCX0sIC8qIDcxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjAiCX0sIC8qIDcyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjEiCX0sIC8qIDcyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjIiCX0sIC8qIDcyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjMiCX0sIC8qIDcyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjQiCX0sIC8qIDcyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjUiCX0sIC8qIDcyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjYiCX0sIC8qIDcyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjciCX0sIC8qIDcyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjgiCX0sIC8qIDcyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjkiCX0sIC8qIDcyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzAiCX0sIC8qIDczMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzEiCX0sIC8qIDczMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzIiCX0sIC8qIDczMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzMiCX0sIC8qIDczMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzQiCX0sIC8qIDczNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzUiCX0sIC8qIDczNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzYiCX0sIC8qIDczNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzciCX0sIC8qIDczNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzgiCX0sIC8qIDczOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzkiCX0sIC8qIDczOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDAiCX0sIC8qIDc0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDEiCX0sIC8qIDc0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDIiCX0sIC8qIDc0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDMiCX0sIC8qIDc0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDQiCX0sIC8qIDc0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDUiCX0sIC8qIDc0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDYiCX0sIC8qIDc0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDciCX0sIC8qIDc0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDgiCX0sIC8qIDc0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDkiCX0sIC8qIDc0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTAiCX0sIC8qIDc1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTEiCX0sIC8qIDc1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTIiCX0sIC8qIDc1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTMiCX0sIC8qIDc1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTQiCX0sIC8qIDc1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTUiCX0sIC8qIDc1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTYiCX0sIC8qIDc1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTciCX0sIC8qIDc1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTgiCX0sIC8qIDc1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTkiCX0sIC8qIDc1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjAiCX0sIC8qIDc2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjEiCX0sIC8qIDc2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjIiCX0sIC8qIDc2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjMiCX0sIC8qIDc2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjQiCX0sIC8qIDc2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjUiCX0sIC8qIDc2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjYiCX0sIC8qIDc2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjciCX0sIC8qIDc2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjgiCX0sIC8qIDc2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjkiCX0sIC8qIDc2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzAiCX0sIC8qIDc3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzEiCX0sIC8qIDc3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzIiCX0sIC8qIDc3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzMiCX0sIC8qIDc3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzQiCX0sIC8qIDc3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzUiCX0sIC8qIDc3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzYiCX0sIC8qIDc3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzciCX0sIC8qIDc3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzgiCX0sIC8qIDc3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzkiCX0sIC8qIDc3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODAiCX0sIC8qIDc4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODEiCX0sIC8qIDc4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODIiCX0sIC8qIDc4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODMiCX0sIC8qIDc4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODQiCX0sIC8qIDc4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODUiCX0sIC8qIDc4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODYiCX0sIC8qIDc4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODciCX0sIC8qIDc4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODgiCX0sIC8qIDc4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODkiCX0sIC8qIDc4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTAiCX0sIC8qIDc5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTEiCX0sIC8qIDc5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTIiCX0sIC8qIDc5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTMiCX0sIC8qIDc5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTQiCX0sIC8qIDc5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTUiCX0sIC8qIDc5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTYiCX0sIC8qIDc5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTciCX0sIC8qIDc5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTgiCX0sIC8qIDc5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTkiCX0sIC8qIDc5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDAiCX0sIC8qIDgwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDEiCX0sIC8qIDgwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDIiCX0sIC8qIDgwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDMiCX0sIC8qIDgwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDQiCX0sIC8qIDgwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDUiCX0sIC8qIDgwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDYiCX0sIC8qIDgwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDciCX0sIC8qIDgwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDgiCX0sIC8qIDgwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDkiCX0sIC8qIDgwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTAiCX0sIC8qIDgxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTEiCX0sIC8qIDgxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTIiCX0sIC8qIDgxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTMiCX0sIC8qIDgxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTQiCX0sIC8qIDgxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTUiCX0sIC8qIDgxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTYiCX0sIC8qIDgxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTciCX0sIC8qIDgxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTgiCX0sIC8qIDgxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTkiCX0sIC8qIDgxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjAiCX0sIC8qIDgyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjEiCX0sIC8qIDgyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjIiCX0sIC8qIDgyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjMiCX0sIC8qIDgyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjQiCX0sIC8qIDgyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjUiCX0sIC8qIDgyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjYiCX0sIC8qIDgyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjciCX0sIC8qIDgyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjgiCX0sIC8qIDgyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjkiCX0sIC8qIDgyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzAiCX0sIC8qIDgzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzEiCX0sIC8qIDgzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzIiCX0sIC8qIDgzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzMiCX0sIC8qIDgzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzQiCX0sIC8qIDgzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzUiCX0sIC8qIDgzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzYiCX0sIC8qIDgzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzciCX0sIC8qIDgzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzgiCX0sIC8qIDgzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzkiCX0sIC8qIDgzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDAiCX0sIC8qIDg0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDEiCX0sIC8qIDg0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDIiCX0sIC8qIDg0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDMiCX0sIC8qIDg0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDQiCX0sIC8qIDg0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDUiCX0sIC8qIDg0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDYiCX0sIC8qIDg0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDciCX0sIC8qIDg0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDgiCX0sIC8qIDg0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDkiCX0sIC8qIDg0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTAiCX0sIC8qIDg1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTEiCX0sIC8qIDg1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTIiCX0sIC8qIDg1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTMiCX0sIC8qIDg1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTQiCX0sIC8qIDg1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTUiCX0sIC8qIDg1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTYiCX0sIC8qIDg1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTciCX0sIC8qIDg1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTgiCX0sIC8qIDg1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTkiCX0sIC8qIDg1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjAiCX0sIC8qIDg2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjEiCX0sIC8qIDg2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjIiCX0sIC8qIDg2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjMiCX0sIC8qIDg2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjQiCX0sIC8qIDg2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjUiCX0sIC8qIDg2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjYiCX0sIC8qIDg2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjciCX0sIC8qIDg2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjgiCX0sIC8qIDg2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjkiCX0sIC8qIDg2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzAiCX0sIC8qIDg3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzEiCX0sIC8qIDg3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzIiCX0sIC8qIDg3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzMiCX0sIC8qIDg3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzQiCX0sIC8qIDg3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzUiCX0sIC8qIDg3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzYiCX0sIC8qIDg3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzciCX0sIC8qIDg3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzgiCX0sIC8qIDg3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzkiCX0sIC8qIDg3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODAiCX0sIC8qIDg4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODEiCX0sIC8qIDg4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODIiCX0sIC8qIDg4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODMiCX0sIC8qIDg4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODQiCX0sIC8qIDg4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODUiCX0sIC8qIDg4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODYiCX0sIC8qIDg4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODciCX0sIC8qIDg4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODgiCX0sIC8qIDg4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODkiCX0sIC8qIDg4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTAiCX0sIC8qIDg5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTEiCX0sIC8qIDg5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTIiCX0sIC8qIDg5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTMiCX0sIC8qIDg5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTQiCX0sIC8qIDg5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTUiCX0sIC8qIDg5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTYiCX0sIC8qIDg5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTciCX0sIC8qIDg5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTgiCX0sIC8qIDg5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTkiCX0sIC8qIDg5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDAiCX0sIC8qIDkwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDEiCX0sIC8qIDkwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDIiCX0sIC8qIDkwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDMiCX0sIC8qIDkwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDQiCX0sIC8qIDkwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDUiCX0sIC8qIDkwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDYiCX0sIC8qIDkwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDciCX0sIC8qIDkwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDgiCX0sIC8qIDkwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDkiCX0sIC8qIDkwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTAiCX0sIC8qIDkxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTEiCX0sIC8qIDkxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTIiCX0sIC8qIDkxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTMiCX0sIC8qIDkxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTQiCX0sIC8qIDkxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTUiCX0sIC8qIDkxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTYiCX0sIC8qIDkxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTciCX0sIC8qIDkxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTgiCX0sIC8qIDkxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTkiCX0sIC8qIDkxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjAiCX0sIC8qIDkyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjEiCX0sIC8qIDkyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjIiCX0sIC8qIDkyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjMiCX0sIC8qIDkyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjQiCX0sIC8qIDkyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjUiCX0sIC8qIDkyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjYiCX0sIC8qIDkyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjciCX0sIC8qIDkyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjgiCX0sIC8qIDkyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjkiCX0sIC8qIDkyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzAiCX0sIC8qIDkzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzEiCX0sIC8qIDkzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzIiCX0sIC8qIDkzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzMiCX0sIC8qIDkzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzQiCX0sIC8qIDkzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzUiCX0sIC8qIDkzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzYiCX0sIC8qIDkzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzciCX0sIC8qIDkzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzgiCX0sIC8qIDkzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzkiCX0sIC8qIDkzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDAiCX0sIC8qIDk0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDEiCX0sIC8qIDk0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDIiCX0sIC8qIDk0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDMiCX0sIC8qIDk0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDQiCX0sIC8qIDk0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDUiCX0sIC8qIDk0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDYiCX0sIC8qIDk0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDciCX0sIC8qIDk0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDgiCX0sIC8qIDk0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDkiCX0sIC8qIDk0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTAiCX0sIC8qIDk1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTEiCX0sIC8qIDk1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTIiCX0sIC8qIDk1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTMiCX0sIC8qIDk1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTQiCX0sIC8qIDk1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTUiCX0sIC8qIDk1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTYiCX0sIC8qIDk1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTciCX0sIC8qIDk1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTgiCX0sIC8qIDk1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTkiCX0sIC8qIDk1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjAiCX0sIC8qIDk2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjEiCX0sIC8qIDk2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjIiCX0sIC8qIDk2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjMiCX0sIC8qIDk2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjQiCX0sIC8qIDk2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjUiCX0sIC8qIDk2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjYiCX0sIC8qIDk2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjciCX0sIC8qIDk2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjgiCX0sIC8qIDk2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjkiCX0sIC8qIDk2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzAiCX0sIC8qIDk3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzEiCX0sIC8qIDk3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzIiCX0sIC8qIDk3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzMiCX0sIC8qIDk3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzQiCX0sIC8qIDk3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzUiCX0sIC8qIDk3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzYiCX0sIC8qIDk3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzciCX0sIC8qIDk3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzgiCX0sIC8qIDk3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzkiCX0sIC8qIDk3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODAiCX0sIC8qIDk4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODEiCX0sIC8qIDk4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODIiCX0sIC8qIDk4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODMiCX0sIC8qIDk4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODQiCX0sIC8qIDk4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODUiCX0sIC8qIDk4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODYiCX0sIC8qIDk4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODciCX0sIC8qIDk4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODgiCX0sIC8qIDk4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODkiCX0sIC8qIDk4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTAiCX0sIC8qIDk5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTEiCX0sIC8qIDk5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTIiCX0sIC8qIDk5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTMiCX0sIC8qIDk5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTQiCX0sIC8qIDk5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTUiCX0sIC8qIDk5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTYiCX0sIC8qIDk5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTciCX0sIC8qIDk5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTgiCX0sIC8qIDk5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTkiCX0sIC8qIDk5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDAwIgl9LCAvKiAxMDAwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDEiCX0sIC8qIDEwMDEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwMiIJfSwgLyogMTAwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDAzIgl9LCAvKiAxMDAzICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDQiCX0sIC8qIDEwMDQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwNSIJfSwgLyogMTAwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA2Igl9LCAvKiAxMDA2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDciCX0sIC8qIDEwMDcgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwOCIJfSwgLyogMTAwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA5Igl9LCAvKiAxMDA5ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTAiCX0sIC8qIDEwMTAgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxMSIJfSwgLyogMTAxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDEyIgl9LCAvKiAxMDEyICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTMiCX0sIC8qIDEwMTMgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxNCIJfSwgLyogMTAxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE1Igl9LCAvKiAxMDE1ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTYiCX0sIC8qIDEwMTYgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxNyIJfSwgLyogMTAxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE4Igl9LCAvKiAxMDE4ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTkiCX0sIC8qIDEwMTkgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAyMCIJfSwgLyogMTAyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIxIgl9LCAvKiAxMDIxICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMjIiCX0sIC8qIDEwMjIgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAyMyIJfSwgLyogMTAyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm5pX3N5c2NhbGwiCX0sIC8qIDEwMjQgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJfSwgLyogMTAyNSAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAxMDI2ICovCi0JeyAzLAlURiwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogMTAyNyAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiAxMDI4ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiAxMDI5ICovCi0JeyAyLAkwLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiAxMDMwICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDEwMzEgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAzMiAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMDMzICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTAzNCAqLwotCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMDM1ICovCi0JeyAyLAkwLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMTAzNiAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDEwMzcgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxMDM4ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTAzOSAqLwotCXsgMywJVEYsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDEwNDAgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAxMDQxICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiAxMDQyICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMTA0MyAqLwotCXsgMSwJMCwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiAxMDQ0ICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMTA0NSAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDEwNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDEwNDcgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAxMDQ4ICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDEwNDkgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAxMDUwICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMDUxICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTA1MiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAxMDUzICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEwNTQgKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAxMDU1ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogMTA1NiAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiAxMDU3ICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogMTA1OCAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogMTA1OSAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiAxMDYwICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogMTA2MSAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDEwNjIgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDEwNjMgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogMTA2NCAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogMTA2NSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogMTA2NiAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogMTA2NyAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiAxMDY4ICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAxMDY5ICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogMTA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiAxMDcxICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDEwNzIgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQiCX0sIC8qIDEwNzMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxMDc0ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc2dpZCIJfSwgLyogMTA3NSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc2dpZCIJfSwgLyogMTA3NiAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDEwNzcgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiAxMDc4ICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMDc5ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiAxMDgwICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogMTA4MSAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDEwODIgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiAxMDgzICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogMTA4NCAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDEwODUgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiAxMDg2ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiAxMDg3ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiAxMDg4ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTA4OSAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDEwOTAgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiAxMDkxICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiAxMDkyICovCi0JeyAxLAkwLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogMTA5MyAqLwotCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDEwOTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDEwOTUgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiAxMDk2ICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiAxMDk3ICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogMTA5OCAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDEwOTkgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiAxMTAwICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogMTEwMSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDExMDIgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogMTEwMyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTEwNCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDExMDUgKi8KLQl7IDMsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMTEwNiAqLwotCXsgMywJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDExMDcgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMTEwOCAqLwotCXsgMiwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAxMTA5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDExMTAgKi8KLQl7IDUsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMTExMSAqLwotCXsgMywJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAxMTEyICovCi0JeyAzLAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDExMTMgKi8KLQl7IDMsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAxMTE0ICovCi0JeyAxLAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMTExNSAqLwotCXsgMywJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAxMTE2ICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTExNyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDExMTggKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMTE5ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDExMjAgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMTIxICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMTIyICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTIzICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTEyNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxMTI1ICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogMTEyNiAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTEyNyAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDExMjggKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTEyOSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTEzMCAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMTMxICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDExMzIgKi8KLQl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMTMzICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDExMzQgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTEzNSAqLwotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTEzNiAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMTM3ICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMTM4ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMTM5ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTE0MCAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDExNDEgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTE0MiAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMTQzICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDExNDQgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDExNDUgKi8KLQl7IDUsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDExNDYgKi8KLQl7IDUsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxMTQ3ICovCi0JeyA0LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxMTQ4ICovCi0JeyA0LAkwLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTE0OSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJIl9zeXNjdGwiCX0sIC8qIDExNTAgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAiCQl9LCAvKiAxMTUxICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE1MiAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTE1MyAqLwotCXsgMSwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxMTU0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDExNTUgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxMTU2ICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxMTU3ICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxMTU4ICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxMTU5ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxMTYwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxMTYxICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDExNjIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTE2MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCX0sIC8qIDExNjQgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDExNjUgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDExNjYgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxMTY3ICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDExNjkgKi8KLQl7IDUsCTAsCXN5c19wcmN0bCwJCSJwcmN0bCIJCX0sIC8qIDExNzAgKi8KLQl7IDEsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgl9LCAvKiAxMTcxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDExNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfcmVhZCJ9LCAvKiAxMTczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3dyaXRlIn0sIC8qIDExNzQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJwZXJmbW9uY3RsIgl9LCAvKiAxMTc1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDExNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgl9LCAvKiAxMTc3ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxMTc4ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTE3OSAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTE4MCAqLwotCXsgMCwJVFMsCXN5c19zaWdyZXR1cm4sCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxMTgxICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxMTgyICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxMTgzICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDExODQgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxMTg1ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTE4NyAqLwotCXsgNSwJVE4sCXByaW50YXJncywJCSJnZXRwbXNnIgl9LCAvKiAxMTg4ICovCi0JeyA1LAlUTiwJcHJpbnRhcmdzLAkJInB1dHBtc2ciCX0sIC8qIDExODkgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMTE5MCAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAxMTkxICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMTE5MiAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAxMTkzICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDExOTQgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMTE5NSAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAxMTk2ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMTE5NyAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAxMTk4ICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDExOTkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMTIwMCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMTIwMSAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMTIwMiAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDEyMDMgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAxMjA0ICovCi0JeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMTIwNSAqLwotCXsgMywJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDEyMDYgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDEyMDcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiAxMjA4ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAxMjA5ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEyMTAgKi8KLQl7IDIsCTAsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEyMTEgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMjEyICovCi0JeyA2LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lMiIJfSwgLyogMTIxMyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldGRlbnRzNjQiCX0sIC8qIDEyMTQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJnZXR1bndpbmQiCX0sIC8qIDEyMTUgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAxMjE2ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiAxMjE3ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMTIxOCAqLwotCXsgNSwJMCwJc3lzX3NldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMTIxOSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMTIyMCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDEyMjEgKi8KLQl7IDQsCTAsCXN5c19nZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDEyMjIgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMTIyMyAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMTIyNCAqLwotCXsgMywJMCwJc3lzX2xpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAxMjI1ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDEyMjYgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDEyMjcgKi8KLQl7IDIsCTAsCXN5c19yZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMTIyOCAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMTIyOSAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMTIzMCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkifSwvKiAxMjMxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSJ9LC8qIDEyMzIgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMTIzMyAqLwotCXsgNSwJVEYsCXN5c19mYWR2aXNlNjQsCQkiZmFkdmlzZTY0Igl9LCAvKiAxMjM0ICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDEyMzUgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAxMjM2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMTIzNyAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAxMjM4ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAxMjM5ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMTI0MCAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDEyNDEgKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAxMjQyICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAxMjQzICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogMTI0NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMTI0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiAxMjQ2ICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMTI0NyAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMTI0OCAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAxMjQ5ICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDEyNTAgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxMjUxICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAxMjUyICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDEyNTMgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMTI1NCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMTI1NSAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAxMjU2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiZnN0YXRmczY0Igl9LCAvKiAxMjU3ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic3RhdGZzNjQiCX0sIC8qIDEyNTggKi8KLQl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDEyNTkgKi8KLQl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJfSwgLyogMTI2MCAqLwotCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5Igl9LCAvKiAxMjYxICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAxMjYyICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMTI2MyAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMTI2NCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMTI2NSAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDEyNjYgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMTI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAxMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMTI2OSAqLwotCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMjcwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzEiCX0sIC8qIDEyNzEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3MiIJfSwgLyogMTI3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjczIgl9LCAvKiAxMjczICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzQiCX0sIC8qIDEyNzQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3NSIJfSwgLyogMTI3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc2Igl9LCAvKiAxMjc2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzciCX0sIC8qIDEyNzcgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3OCIJfSwgLyogMTI3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc5Igl9LCAvKiAxMjc5ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODAiCX0sIC8qIDEyODAgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4MSIJfSwgLyogMTI4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjgyIgl9LCAvKiAxMjgyICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODMiCX0sIC8qIDEyODMgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NCIJfSwgLyogMTI4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg1Igl9LCAvKiAxMjg1ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODYiCX0sIC8qIDEyODYgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NyIJfSwgLyogMTI4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg4Igl9LCAvKiAxMjg4ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODkiCX0sIC8qIDEyODkgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MCIJfSwgLyogMTI5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjkxIgl9LCAvKiAxMjkxICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTIiCX0sIC8qIDEyOTIgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MyIJfSwgLyogMTI5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk0Igl9LCAvKiAxMjk0ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTUiCX0sIC8qIDEyOTUgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5NiIJfSwgLyogMTI5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk3Igl9LCAvKiAxMjk3ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTgiCX0sIC8qIDEyOTggKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5OSIJfSwgLyogMTI5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAwIgl9LCAvKiAxMzAwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDEiCX0sIC8qIDEzMDEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTMwMiIJfSwgLyogMTMwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAzIgl9LCAvKiAxMzAzICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDQiCX0sIC8qIDEzMDQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTMwNSIJfSwgLyogMTMwNSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdhMjA3MC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMTIgKzAsMCBAQAotCS8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8KLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUTEFTVFNFQ1QiLAkweDEyNmN9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRVRMQVNUU0VDVCIsCTB4MTI2ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1RJTUVPVVQiLAkweDIyMDF9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9USU1FT1VUIiwJMHgyMjAyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19FTVVMQVRFRF9IT1NUIiwJMHgyMjAzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfVFJBTlNGT1JNIiwJMHgyMjA0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfVFJBTlNGT1JNIiwJMHgyMjA1fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfQ09NTUFORF9RIiwJMHgyMjcwfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfQ09NTUFORF9RIiwJMHgyMjcxfSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1JFU0VSVkVEX1NJWkUiLAkweDIyNzV9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TQ1NJX0lEIiwJMHgyMjc2fSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfRk9SQ0VfTE9XX0RNQSIsCTB4MjI3OX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0xPV19ETUEiLAkweDIyN2F9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwJMHgyMjdifSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUEFDS19JRCIsCTB4MjI3Y30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX05VTV9XQUlUSU5HIiwJMHgyMjdkfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfREVCVUciLAkweDIyN2V9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TR19UQUJMRVNJWkUiLAkweDIyN2Z9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9WRVJTSU9OX05VTSIsCTB4MjI4Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfTkVYVF9DTURfTEVOIiwJMHgyMjgzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TQ1NJX1JFU0VUIiwJMHgyMjg0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19JTyIsCTB4MjI4NX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLAkweDIyODZ9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9LRUVQX09SUEhBTiIsCTB4MjI4N30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg4fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfQUNDRVNTX0NPVU5UIiwJMHgyMjg5fSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT0dSU1RSQVQiLAkweDMyMDF9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1dTVFJBVCIsCTB4MzIwMn0sCi0JeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9TUlNUUkFUIiwJMHgzMjAzfSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NXU1RSQVQiLAkweDMyMDR9LAotCXsiYXNtL3Byb2Nlc3Nvci5oIiwJIk1JQ1JPQ09ERV9JT0NGUkVFIiwJMHgzNjAwfSwKLQl7ImxpbnV4L3JhZGVvbmZiLmgiLAkiRkJJT19SQURFT05fR0VUX01JUlJPUiIsCTB4NDAwM30sCi0JeyJsaW51eC9yYWRlb25mYi5oIiwJIkZCSU9fUkFERU9OX1NFVF9NSVJST1IiLAkweDQwMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dSQUJfQkFDS0xJR0hUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19ERVJFR0RJU0siLAkweDQyMGN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRUdORVdESVNLIiwJMHg0MjBkfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVHTkVXRCIsCTB4NDIwZX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFU0NBTkRJU0siLAkweDQyMTB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRMVU5JTkZPIiwJMHg0MjExfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfQklHX1BBU1NUSFJVIiwJMHg0MjEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSQUIiLAkweDQ1OTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAwfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WU0NSRUVOSU5GTyIsCTB4NDYwMX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRlNDUkVFTklORk8iLAkweDQ2MDJ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUQ01BUCIsCTB4NDYwNH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRDTUFQIiwJMHg0NjA1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BBTl9ESVNQTEFZIiwJMHg0NjA2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GQ1VSU09SSU5GTyIsCTB4NDYwN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkNVUlNPUklORk8iLAkweDQ2MDh9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0NVUlNPUiIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfVkNVUlNPUklORk8iLAkweDQ2MDl9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NVUlNPUlNUQVRFIiwJMHg0NjBhfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DVVJTT1JTVEFURSIsCTB4NDYwYn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJGQklPX1dBSVRGT1JWU1lOQyIsCTB4NDYyMH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZMQUciLAkweDQ4MGV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU0ZMQUciLAkweDQ4MGZ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkRFWCIsCTB4NDgxMH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9JTkZPIiwJMHg0ODEwfSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX0lORk8iLAkweDQ4MTB9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkZPIiwJMHg0ODExfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0NPREVfUE9LRSIsCTB4NDgxMX0sCi0JeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9MT0FEX0NPREUiLAkweDQ4MTF9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfQ09ERV9QRUVLIiwJMHg0ODEyfSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1VOTE9BRF9DT0RFIiwJMHg0ODEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRVMiLAkweDQ4MTN9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfU1RBUlQiLAkweDQ4MTN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFUyIsCTB4NDgxNH0sCi0JeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9TVE9QIiwJMHg0ODE0fSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1BBVVNFIiwJMHg0ODE1fSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1JFU1RBUlQiLAkweDQ4MTZ9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfSU5GTyIsCTB4NDgyMH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9UUkFNX1NFVFVQIiwJMHg0ODIwfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1JFU0VUIiwJMHg0ODIxfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1RSQU1fUE9LRSIsCTB4NDgyMX0sCi0JeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9QTEFZX05PVEUiLAkweDQ4MjJ9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfVFJBTV9QRUVLIiwJMHg0ODIyfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9WT0lDRSIsCTB4NDgyM30sCi0JeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9TRVRfUEFSQU1TIiwJMHg0ODI0fSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9NT0RFIiwJMHg0ODI1fSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9DT05ORUNUSU9OIiwJMHg0ODI2fSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1BDTV9QT0tFIiwJMHg0ODMwfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1BDTV9QRUVLIiwJMHg0ODMxfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9QRUFLX1JNUyIsCTB4NDg0MH0sCi0JeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfQ09ORklHX0lORk8iLAkweDQ4NDF9LAotCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfVVBMT0FEX0ZJUk1XQVJFIiwJMHg0ODQyfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9WRVJTSU9OIiwJMHg0ODQzfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9NSVhFUiIsCTB4NDg0NH0sCi0JeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfOTYzMl9BRUIiLAkweDQ4NDV9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfU1RPUCIsCTB4NDg4MH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9DT05USU5VRSIsCTB4NDg4MX0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9aRVJPX1RSQU1fQ09VTlRFUiIsCTB4NDg4Mn0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9TSU5HTEVfU1RFUCIsCTB4NDg4M30sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9EQkdfUkVBRCIsCTB4NDg4NH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9rZC5oIiwJIktJT0NTT1VORCIsCTB4NGIyZn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUtUT05FIiwJMHg0YjMwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHRVRMRUQiLAkweDRiMzF9LAotCXsibGludXgva2QuaCIsCSJLRFNFVExFRCIsCTB4NGIzMn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCVFlQRSIsCTB4NGIzM30sCi0JeyJsaW51eC9rZC5oIiwJIktEQURESU8iLAkweDRiMzR9LAotCXsibGludXgva2QuaCIsCSJLRERFTElPIiwJMHg0YjM1fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RFTkFCSU8iLAkweDRiMzZ9LAotCXsibGludXgva2QuaCIsCSJLRERJU0FCSU8iLAkweDRiMzd9LAotCXsibGludXgva2QuaCIsCSJLRFNFVE1PREUiLAkweDRiM2F9LAotCXsibGludXgva2QuaCIsCSJLREdFVE1PREUiLAkweDRiM2J9LAotCXsibGludXgva2QuaCIsCSJLRE1BUERJU1AiLAkweDRiM2N9LAotCXsibGludXgva2QuaCIsCSJLRFVOTUFQRElTUCIsCTB4NGIzZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19TQ1JOTUFQIiwJMHg0YjQwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1NDUk5NQVAiLAkweDRiNDF9LAotCXsibGludXgva2QuaCIsCSJLREdLQk1PREUiLAkweDRiNDR9LAotCXsibGludXgva2QuaCIsCSJLRFNLQk1PREUiLAkweDRiNDV9LAotCXsibGludXgva2QuaCIsCSJLREdLQkVOVCIsCTB4NGI0Nn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCRU5UIiwJMHg0YjQ3fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JTRU5UIiwJMHg0YjQ4fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JTRU5UIiwJMHg0YjQ5fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JESUFDUiIsCTB4NGI0YX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCRElBQ1IiLAkweDRiNGJ9LAotCXsibGludXgva2QuaCIsCSJLREdFVEtFWUNPREUiLAkweDRiNGN9LAotCXsibGludXgva2QuaCIsCSJLRFNFVEtFWUNPREUiLAkweDRiNGR9LAotCXsibGludXgva2QuaCIsCSJLRFNJR0FDQ0VQVCIsCTB4NGI0ZX0sCi0JeyJsaW51eC9rZC5oIiwJIktES0JEUkVQIiwJMHg0YjUyfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlQiLAkweDRiNjB9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVCIsCTB4NGI2MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTUVUQSIsCTB4NGI2Mn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTUVUQSIsCTB4NGI2M30sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTEVEIiwJMHg0YjY0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JMRUQiLAkweDRiNjV9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JTUFQIiwJMHg0YjY2fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUCIsCTB4NGI2N30sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVBDTFIiLAkweDRiNjh9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JU0NSTk1BUCIsCTB4NGI2OX0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklTQ1JOTUFQIiwJMHg0YjZhfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlRYIiwJMHg0YjZifSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRYIiwJMHg0YjZjfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRSRVNFVCIsCTB4NGI2ZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19DTUFQIiwJMHg0YjcwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0NNQVAiLAkweDRiNzF9LAotCXsibGludXgva2QuaCIsCSJLREZPTlRPUCIsCTB4NGI3Mn0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfQUREX0VOVFJZIiwJMHg0ZDAwfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19TRVRfRU5UUlkiLAkweDRkMDF9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0RFTF9FTlRSWSIsCTB4NGQwMn0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfR0VUX0VOVFJZIiwJMHg0ZDAzfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19LSUxMX0VOVFJZIiwJMHg0ZDA0fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19BRERfUEFHRV9FTlRSWSIsCTB4NGQwNX0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfU0VUX1BBR0VfRU5UUlkiLAkweDRkMDZ9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0RFTF9QQUdFX0VOVFJZIiwJMHg0ZDA3fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19HRVRfUEFHRV9FTlRSWSIsCTB4NGQwOH0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfS0lMTF9QQUdFX0VOVFJZIiwJMHg0ZDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1RJTUVPVVQiLAkweDRlMjB9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1JFU0VUX0RFVklDRSIsCTB4NGUyMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfUElQRVMiLAkweDRlMjJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsic291bmQvc3NjYXBlX2lvY3RsLmgiLAkiU05EX1NTQ0FQRV9MT0FEX0JPT1RCIiwJMHg1MDY0fSwKLQl7InNvdW5kL3NzY2FwZV9pb2N0bC5oIiwJIlNORF9TU0NBUEVfTE9BRF9NQ09ERSIsCTB4NTA2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUFZFUlNJT04iLAkweDUzMDB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBBVVNFIiwJMHg1MzAxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ0xJRU5UX0lEIiwJMHg1MzAxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNVTUUiLAkweDUzMDJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TWVNURU1fSU5GTyIsCTB4NTMwMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWU1TRiIsCTB4NTMwM30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1JVTk5JTkdfTU9ERSIsCTB4NTMwM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWVRSS0lORCIsCTB4NTMwNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0hEUiIsCTB4NTMwNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0VOVFJZIiwJMHg1MzA2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVE9QIiwJMHg1MzA3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVEFSVCIsCTB4NTMwOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1QiLAkweDUzMDl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTENUUkwiLAkweDUzMGF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNVQkNITkwiLAkweDUzMGJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMiIsCTB4NTMwY30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUxIiwJMHg1MzBkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQVVESU8iLAkweDUzMGV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUX1NXIiwJMHg1MzBmfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01NVUxUSVNFU1NJT04iLAkweDUzMTB9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfQ0xJRU5UX0lORk8iLAkweDUzMTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfTUNOIiwJMHg1MzExfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX0NMSUVOVF9JTkZPIiwJMHg1MzExfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNFVCIsCTB4NTMxMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MUkVBRCIsCTB4NTMxM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFJBVyIsCTB4NTMxNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRENPT0tFRCIsCTB4NTMxNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VFSyIsCTB4NTMxNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWUJMSyIsCTB4NTMxN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFMTCIsCTB4NTMxOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQ0xPU0VUUkFZIiwJMHg1MzE5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01HRVRTUElORE9XTiIsCTB4NTMxZH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VUU1BJTkRPV04iLAkweDUzMWV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRVRfT1BUSU9OUyIsCTB4NTMyMH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0NSRUFURV9QT1JUIiwJMHg1MzIwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0xFQVJfT1BUSU9OUyIsCTB4NTMyMX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0RFTEVURV9QT1JUIiwJMHg1MzIxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX1NQRUVEIiwJMHg1MzIyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1BPUlRfSU5GTyIsCTB4NTMyMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTEVDVF9ESVNDIiwJMHg1MzIzfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1BPUlRfSU5GTyIsCTB4NTMyM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX01FRElBX0NIQU5HRUQiLAkweDUzMjV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9EUklWRV9TVEFUVVMiLAkweDUzMjZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ESVNDX1NUQVRVUyIsCTB4NTMyN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NIQU5HRVJfTlNMT1RTIiwJMHg1MzI4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTE9DS0RPT1IiLAkweDUzMjl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ERUJVRyIsCTB4NTMzMH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NVQlNDUklCRV9QT1JUIiwJMHg1MzMwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX0NBUEFCSUxJVFkiLAkweDUzMzF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9VTlNVQlNDUklCRV9QT1JUIiwJMHg1MzMxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ1JFQVRFX1FVRVVFIiwJMHg1MzMyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfREVMRVRFX1FVRVVFIiwJMHg1MzMzfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX0lORk8iLAkweDUzMzR9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfSU5GTyIsCTB4NTMzNX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9OQU1FRF9RVUVVRSIsCTB4NTMzNn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9TVEFUVVMiLAkweDUzNDB9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfVEVNUE8iLAkweDUzNDF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfVEVNUE8iLAkweDUzNDJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfT1dORVIiLAkweDUzNDN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfT1dORVIiLAkweDUzNDR9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfVElNRVIiLAkweDUzNDV9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfVElNRVIiLAkweDUzNDZ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfQ0xJRU5UIiwJMHg1MzQ5fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX0NMSUVOVCIsCTB4NTM0YX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9DTElFTlRfUE9PTCIsCTB4NTM0Yn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9DTElFTlRfUE9PTCIsCTB4NTM0Y30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1JFTU9WRV9FVkVOVFMiLAkweDUzNGV9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9RVUVSWV9TVUJTIiwJMHg1MzRmfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1NVQlNDUklQVElPTiIsCTB4NTM1MH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1FVRVJZX05FWFRfQ0xJRU5UIiwJMHg1MzUxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUVVFUllfTkVYVF9QT1JUIiwJMHg1MzUyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1NZTkMiLAkweDUzNTN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfU1lOQyIsCTB4NTM1NH0sCi0JeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwJMHg1MzgwfSwKLQl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUlVOTE9DSyIsCTB4NTM4MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQVVESU9CVUZTSVoiLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfSURMVU4iLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRU5BQkxFIiwJMHg1MzgzfSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLAkweDUzODR9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwJMHg1Mzg1fSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0JVU19OVU1CRVIiLAkweDUzODZ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfUENJIiwJMHg1Mzg3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1JFQURfU1RSVUNUIiwJMHg1MzkwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1dSSVRFX1NUUlVDVCIsCTB4NTM5MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9BVVRIIiwJMHg1MzkyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VORF9QQUNLRVQiLAkweDUzOTN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ORVhUX1dSSVRBQkxFIiwJMHg1Mzk0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTEFTVF9XUklUVEVOIiwJMHg1Mzk1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dERVYiLAkweDU0MzJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDU0NjB9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfREVWX0NSRUFURSIsCTB4NTUwMX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9ERVZfREVTVFJPWSIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ09OTkVDVCIsCTB4NTUxNn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUIiwJMHg1NTE3fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9FVkJJVCIsCTB4NTU2NH0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfS0VZQklUIiwJMHg1NTY1fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9SRUxCSVQiLAkweDU1NjZ9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0FCU0JJVCIsCTB4NTU2N30sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfTVNDQklUIiwJMHg1NTY4fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9MRURCSVQiLAkweDU1Njl9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX1NOREJJVCIsCTB4NTU2YX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfRkZCSVQiLAkweDU1NmJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQ0FQIiwJMHg1NjAwfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfT1BFTlFSWSIsCTB4NTYwMH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUkVTRVJWRUQiLAkweDU2MDF9LAotCXsibGludXgvdnQuaCIsCSJWVF9HRVRNT0RFIiwJMHg1NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNX0ZNVCIsCTB4NTYwMn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1NFVE1PREUiLAkweDU2MDJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9HRVRTVEFURSIsCTB4NTYwM30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GTVQiLAkweDU2MDR9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRU5EU0lHIiwJMHg1NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZNVCIsCTB4NTYwNX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1JFTERJU1AiLAkweDU2MDV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ09NUCIsCTB4NTYwNn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0FDVElWQVRFIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NPTVAiLAkweDU2MDd9LAotCXsibGludXgvdnQuaCIsCSJWVF9XQUlUQUNUSVZFIiwJMHg1NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19SRVFCVUZTIiwJMHg1NjA4fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfRElTQUxMT0NBVEUiLAkweDU2MDh9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQlVGIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZCVUYiLAkweDU2MGF9LAotCXsibGludXgvdnQuaCIsCSJWVF9SRVNJWkVYIiwJMHg1NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZCVUYiLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9MT0NLU1dJVENIIiwJMHg1NjBifSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfVU5MT0NLU1dJVENIIiwJMHg1NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19PVkVSTEFZIiwJMHg1NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RQlVGIiwJMHg1NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19EUUJVRiIsCTB4NTYxMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU1RSRUFNT04iLAkweDU2MTJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NUUkVBTU9GRiIsCTB4NTYxM30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19QQVJNIiwJMHg1NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1BBUk0iLAkweDU2MTZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfU1REIiwJMHg1NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1NURCIsCTB4NTYxOH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTVNURCIsCTB4NTYxOX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTUlOUFVUIiwJMHg1NjFhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR19UVk9DVFJMIiwJMHg1NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NUUkwiLAkweDU2MWJ9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TX1RWT0NUUkwiLAkweDU2MWN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ1RSTCIsCTB4NTYxY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19UVU5FUiIsCTB4NTYxZH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19UVU5FUiIsCTB4NTYxZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19BVURJTyIsCTB4NTYyMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19BVURJTyIsCTB4NTYyMn0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1RWT1FVRVJZQ1RSTCIsCTB4NTYyNH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllDVFJMIiwJMHg1NjI0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWU1FTlUiLAkweDU2MjV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfSU5QVVQiLAkweDU2MjZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfSU5QVVQiLAkweDU2Mjd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfT1VUUFVUIiwJMHg1NjJlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX09VVFBVVCIsCTB4NTYyZn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTU9VVFBVVCIsCTB4NTYzMH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19BVURPVVQiLAkweDU2MzF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQVVET1VUIiwJMHg1NjMyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX01PRFVMQVRPUiIsCTB4NTYzNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19NT0RVTEFUT1IiLAkweDU2Mzd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRlJFUVVFTkNZIiwJMHg1NjM4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZSRVFVRU5DWSIsCTB4NTYzOX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfQ1JPUENBUCIsCTB4NTYzYX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DUk9QIiwJMHg1NjNifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NST1AiLAkweDU2M2N9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfSlBFR0NPTVAiLAkweDU2M2R9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfSlBFR0NPTVAiLAkweDU2M2V9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZU1REIiwJMHg1NjNmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19UUllfRk1UIiwJMHg1NjQwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNQVVESU8iLAkweDU2NDF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1BVURPVVQiLAkweDU2NDJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfUFJJT1JJVFkiLAkweDU2NDN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfUFJJT1JJVFkiLAkweDU2NDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX2hlLmgiLAkiSEVfR0VUX1JFRyIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWJyMjY4NC5oIiwJIkJSMjY4NF9TRVRGSUxUIiwJMHg2MTkwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ORVdCQUNLRU5ESUYiLAkweDYxZjN9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCi0JeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19GSUZPX1NUQVRVUyIsCTB4NjcwMX0sCi0JeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19GSUZPX0ZMVVNIIiwJMHg2NzAyfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0NMRUFSX0hBTFQiLAkweDY3MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFQ0VJVkVfTVNHX1RSVU5DIiwJMHg2OTBifSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFQ0VJVkVfTVNHIiwJMHg2OTBjfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFTkRfQ09NTUFORCIsCTB4NjkwZH0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUdJU1RFUl9GT1JfQ01EIiwJMHg2OTBlfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1VOUkVHSVNURVJfRk9SX0NNRCIsCTB4NjkwZn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfR0VUU19FVkVOVFNfQ01EIiwJMHg2OTEwfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9NWV9BRERSRVNTX0NNRCIsCTB4NjkxMX0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9HRVRfTVlfQUREUkVTU19DTUQiLAkweDY5MTJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX01ZX0xVTl9DTUQiLAkweDY5MTN9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfR0VUX01ZX0xVTl9DTUQiLAkweDY5MTR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTSUYiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dJRiIsCTB4NmQwYn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9zaXNmYi5oIiwJIlNJU0ZCX0dFVF9JTkZPIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QTExfR0VUIiwJMHg3MDExfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QTExfU0VUIiwJMHg3MDEyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfREVWSUNFIiwJMHg3MDUwfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19SRUlOVEtNTCIsCTB4NzA1MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX1JDVkQiLAkweDcwNTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9JT0NUTF9VSUQiLAkweDcwNTN9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9LTUxfU0laRSIsCTB4NzA1NH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUFVSR0VfRklMRV9EQVRBIiwJMHg3MDU1fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DT05ORUNUIiwJMHg3MDU2fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HT19GRVRDSF9LTUwiLAkweDcwNTd9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX01BUksiLAkweDcwNTh9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMRUFSX0ZTRVQiLAkweDcwNTl9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMRUFSX0FMTF9GU0VUUyIsCTB4NzA2MH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0ZTRVQiLAkweDcwNjF9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFVk9LRV9QRVJNSVQiLAkweDcwNjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9LTUxTSVpFIiwJMHg3MDYzfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DTElFTlRfTUFLRV9CUkFOQ0giLAkweDcwNjR9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFUlZFUl9NQUtFX0JSQU5DSCIsCTB4NzA2NX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQlJBTkNIX1VORE8iLAkweDcwNjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0JSQU5DSF9SRURPIiwJMHg3MDY3fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfUElEIiwJMHg3MDY4fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfQ0hBTk5FTCIsCTB4NzA2OX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0NIQU5ORUwiLAkweDcwNzB9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9GSUxFSUQiLAkweDcwNzF9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0FESlVTVF9MTUwiLAkweDcwNzJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9GSUxFSUQiLAkweDcwNzN9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFUFNUQVRVUyIsCTB4NzA3NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9ERUxBWSIsCTB4NzBhMH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElTRVJfVElNRU9VVCIsCTB4NzBhMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfREVMQVkiLAkweDcwYTh9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJUEFSX1RJTUVPVVQiLAkweDcwYTl9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVElORk8iLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSUEFHRSIsCTB4NzEwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJGT1VORCIsCTB4NzEwM30sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQQUdFUkVRIiwJMHg3MTA0fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVFNUQVQiLAkweDcxMDV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUUEFHRSIsCTB4NzEwNn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTVE9QREFVIiwJMHg3MTA3fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFBBR0UiLAkweDcxMDh9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VURElTUCIsCTB4NzEwOX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQVVRTVEFUIiwJMHg3MTBhfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkNBQ0hFIiwJMHg3MTBifSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NFVFZJUlQiLAkweDcxMGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVElORk8iLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NSRVNFVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRGUkVRIiwJMHg3MjAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVEZSRVEiLAkweDcyMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DU0VUQ0hBTiIsCTB4NzIwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRDSEFOIiwJMHg3MjA2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIkZJT1NFVE9XTiIsCTB4ODkwMX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NTUEdSUCIsCTB4ODkwMn0sCi0JeyJhc20vc29ja2lvcy5oIiwJIkZJT0dFVE9XTiIsCTB4ODkwM30sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHUEdSUCIsCTB4ODkwNH0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDg5MDV9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1NUQU1QIiwJMHg4OTA2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQUREUlQiLAkweDg5MGJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxSVCIsCTB4ODkwY30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1JUTVNHIiwJMHg4OTBkfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkFNRSIsCTB4ODkxMH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkxJTksiLAkweDg5MTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT05GIiwJMHg4OTEyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRkxBR1MiLAkweDg5MTN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZGTEFHUyIsCTB4ODkxNH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkFERFIiLAkweDg5MTV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZBRERSIiwJMHg4OTE2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRFNUQUREUiIsCTB4ODkxN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRTVEFERFIiLAkweDg5MTh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUkRBRERSIiwJMHg4OTE5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlJEQUREUiIsCTB4ODkxYX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5FVE1BU0siLAkweDg5MWJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZORVRNQVNLIiwJMHg4OTFjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVUUklDIiwJMHg4OTFkfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVUUklDIiwJMHg4OTFlfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVNIiwJMHg4OTFmfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVNIiwJMHg4OTIwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTVRVIiwJMHg4OTIxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTVRVIiwJMHg4OTIyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkFNRSIsCTB4ODkyM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQUREUiIsCTB4ODkyNH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkVOQ0FQIiwJMHg4OTI1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRU5DQVAiLAkweDg5MjZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZIV0FERFIiLAkweDg5Mjd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZTTEFWRSIsCTB4ODkyOX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlNMQVZFIiwJMHg4OTMwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURETVVMVEkiLAkweDg5MzF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxNVUxUSSIsCTB4ODkzMn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRklOREVYIiwJMHg4OTMzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGUEZMQUdTIiwJMHg4OTM0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGUEZMQUdTIiwJMHg4OTM1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRElGQUREUiIsCTB4ODkzNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQlJPQURDQVNUIiwJMHg4OTM3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09VTlQiLAkweDg5Mzh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUiIsCTB4ODk0MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSIiwJMHg4OTQxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVFhRTEVOIiwJMHg4OTQyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVFhRTEVOIiwJMHg4OTQzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRElWRVJUIiwJMHg4OTQ0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRElWRVJUIiwJMHg4OTQ1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRVRIVE9PTCIsCTB4ODk0Nn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlQSFkiLAkweDg5NDd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUkVHIiwJMHg4OTQ4fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU01JSVJFRyIsCTB4ODk0OX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1dBTkRFViIsCTB4ODk0YX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RBUlAiLAkweDg5NTN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHQVJQIiwJMHg4OTU0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0FSUCIsCTB4ODk1NX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RSQVJQIiwJMHg4OTYwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR1JBUlAiLAkweDg5NjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTUkFSUCIsCTB4ODk2Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1BUCIsCTB4ODk3MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1BUCIsCTB4ODk3MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERERMQ0kiLAkweDg5ODB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxETENJIiwJMHg4OTgxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVkxBTiIsCTB4ODk4Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlZMQU4iLAkweDg5ODN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ERU5TTEFWRSIsCTB4ODk5MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRSRUxFQVNFIiwJMHg4OTkxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNFVEhXQUREUiIsCTB4ODk5Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTTEFWRUlORk9RVUVSWSIsCTB4ODk5M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRJTkZPUVVFUlkiLAkweDg5OTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EQ0hBTkdFQUNUSVZFIiwJMHg4OTk1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUFJPVE9QUklWQVRFIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVWUFJJVkFURSIsCTB4ODlmMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdDT01NSVQiLAkweDhiMDB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTkFNRSIsCTB4OGIwMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOV0lEIiwJMHg4YjAyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05XSUQiLAkweDhiMDN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJFUSIsCTB4OGIwNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkVRIiwJMHg4YjA1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV01PREUiLAkweDhiMDZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTU9ERSIsCTB4OGIwN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTRU5TIiwJMHg4YjA4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NFTlMiLAkweDhiMDl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFOR0UiLAkweDhiMGF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFOR0UiLAkweDhiMGJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUFJJViIsCTB4OGIwY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQUklWIiwJMHg4YjBkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NUQVRTIiwJMHg4YjBlfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NUQVRTIiwJMHg4YjBmfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NQWSIsCTB4OGIxMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTUFkiLAkweDhiMTF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVEhSU1BZIiwJMHg4YjEyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RIUlNQWSIsCTB4OGIxM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdBUCIsCTB4OGIxNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUCIsCTB4OGIxNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUExJU1QiLAkweDhiMTd9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU0NBTiIsCTB4OGIxOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTQ0FOIiwJMHg4YjE5fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VTU0lEIiwJMHg4YjFhfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VTU0lEIiwJMHg4YjFifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05JQ0tOIiwJMHg4YjFjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05JQ0tOIiwJMHg4YjFkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JBVEUiLAkweDhiMjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFURSIsCTB4OGIyMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSVFMiLAkweDhiMjJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUlRTIiwJMHg4YjIzfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0ZSQUciLAkweDhiMjR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRlJBRyIsCTB4OGIyNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUWFBPVyIsCTB4OGIyNn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdUWFBPVyIsCTB4OGIyN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSRVRSWSIsCTB4OGIyOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSRVRSWSIsCTB4OGIyOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFTkNPREUiLAkweDhiMmF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRU5DT0RFIiwJMHg4YjJifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1BPV0VSIiwJMHg4YjJjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BPV0VSIiwJMHg4YjJkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXRklSU1RQUklWIiwJMHg4YmUwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXTEFTVFBSSVYiLAkweDhiZmZ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9WRVJTSU9OIiwJMHhmZDAwfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fUkVNT1ZFX0FMTCIsCTB4ZmQwMX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0xJU1RfREVWSUNFUyIsCTB4ZmQwMn0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9DUkVBVEUiLAkweGZkMDN9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfUkVNT1ZFIiwJMHhmZDA0fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1JFTkFNRSIsCTB4ZmQwNX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9TVVNQRU5EIiwJMHhmZDA2fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1NUQVRVUyIsCTB4ZmQwN30sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9XQUlUIiwJMHhmZDA4fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfTE9BRCIsCTB4ZmQwOX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX0NMRUFSIiwJMHhmZDBhfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfREVQUyIsCTB4ZmQwYn0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX1NUQVRVUyIsCTB4ZmQwY30sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0xJU1RfVkVSU0lPTlMiLAkweGZkMGR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZTlhfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pb2N0bGVudC5zaCBiL3N0cmFjZS9saW51eC9pb2N0bGVudC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYzZDc0Yi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaW9jdGxlbnQuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jISAvYmluL3NoCi0jCi0jIENvcHlyaWdodCAoYykgMjAwMSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0jIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xMiAyMDA0LzEwLzA2IDIyOjMxOjM4IHJvbGFuZCBFeHAgJAotIwotCi0jIFZhbGlkYXRlIGFyZyBjb3VudC4KLWNhc2UgJCMgaW4KLTEpCi0JZGlyPSIkMSIKLQlhc209YXNtCi0JOzsKLTIpCi0JZGlyPSIkMSIKLQlhc209IiQyIgotCTs7Ci0qKQotICAgICAgICBlY2hvICJ1c2FnZTogJDAgaW5jbHVkZS1kaXJlY3RvcnkgW2FzbS1zdWJkaXJlY3RvcnldIiA+JjIKLSAgICAgICAgZXhpdCAxCi0JOzsKLWVzYWMKLQotbG9va3VwX2lvY3RscygpCi17Ci0JdHlwZT0iJDEiCi0Jc2hpZnQKLQotCSMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscwotCXJlZ2V4cD0nXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrW0EtWl1bQS1aMC05X10qW1s6c3BhY2U6XV1cKzB4JyIkdHlwZSInLi5cPicKLQkoY2QgIiRkaXIiIDsgZ3JlcCAiJHJlZ2V4cCIgIiRAIiAvZGV2L251bGwgMj4vZGV2L251bGwgKSB8Ci0JCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKLXMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpcKDB4JyIkdHlwZSInLi5cKS4qLwl7ICJcMSIsCSJcMiIsCVwzCX0sL3AnIFwKLQkJPj4gaW9jdGxzLmgKLX0KLQotOiA+IGlvY3Rscy5oCi1sb29rdXBfaW9jdGxzIDIyIHNjc2kvc2cuaAotbG9va3VwX2lvY3RscyA0NiBsaW51eC9mYi5oCi1sb29rdXBfaW9jdGxzIDRCIGxpbnV4L2tkLmgKLWxvb2t1cF9pb2N0bHMgNTMgbGludXgvY2Ryb20uaCBzY3NpL3Njc2kuaCBzY3NpL3Njc2lfaW9jdGwuaAotbG9va3VwX2lvY3RscyA1NCAkYXNtL2lvY3Rscy5oCi1sb29rdXBfaW9jdGxzIDU2IGxpbnV4L3Z0LmgKLWxvb2t1cF9pb2N0bHMgJzdbMTJdJyBsaW51eC92aWRlb3RleHQuaAotbG9va3VwX2lvY3RscyA4OSAkYXNtL3NvY2tpb3MuaCBsaW51eC9zb2NraW9zLmgKLWxvb2t1cF9pb2N0bHMgOEIgbGludXgvd2lyZWxlc3MuaAotCi1maWxlcz0ibGludXgvKiAkYXNtLyogc2NzaS8qIHNvdW5kLyoiCi0KLSMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscwotcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrX1NcP1woSU9cfElPV1x8SU9SXHxJT1dSXClcPicKLShjZCAkZGlyIDsgZ3JlcCAkcmVnZXhwICRmaWxlcyAyPi9kZXYvbnVsbCApIHwgXAotCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKLXMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpfU1w/SS4qKFwoW15bLF0qXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbXiwpXSpcKS4qLwl7ICJcMSIsCSJcMiIsCV9JT0MoX0lPQ19OT05FLFwzLFw0LDApCX0sL3AnIFwKLQk+PiBpb2N0bHMuaAotCi0jIFNvbWUgdXNlIGEgc3BlY2lhbCBiYXNlIHRvIG9mZnNldCB0aGVpciBpb2N0bHMgb24uIEV4dHJhY3QgdGhhdCBhcyB3ZWxsLgotOiA+IGlvY3RsZGVmcy5oCi0KLWJhc2VzPSQoc2VkIC1uZSAncy8uKl9JT0NfTk9ORS4qLFtbOnNwYWNlOl1dKlwoW0EtWl1bQS1aMC05X11cK1wpW1s6c3BhY2U6XSssXS4qL1wxL3AnIGlvY3Rscy5oIHwgdW5pcSB8IHNvcnQpCi1mb3IgYmFzZSBpbiAkYmFzZXMgOyBkbwotCWVjaG8gIkxvb2tpbmcgZm9yICRiYXNlIgotCXJlZ2V4cD0iXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrJGJhc2UiCi0JKGNkICRkaXIgOyBncmVwIC1oICRyZWdleHAgMj4vZGV2L251bGwgJGZpbGVzICkgfCBcCi0JCWdyZXAgLXYgJ1w8X0lPJyA+PiBpb2N0bGRlZnMuaAotZG9uZQpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3Rsc29ydC5jIGIvc3RyYWNlL2xpbnV4L2lvY3Rsc29ydC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTQ0ZDg0Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9pb2N0bHNvcnQuYworKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLQotI2luY2x1ZGUgImlvY3RsZGVmcy5oIgotI2luY2x1ZGUgPGxpbnV4L2F0bWlvYy5oPgotCi1zdHJ1Y3QgaW9jdGxlbnQgewotCWNvbnN0IGNoYXIqCWhlYWRlcjsKLQljb25zdCBjaGFyKgluYW1lOwotCXVuc2lnbmVkIGxvbmcJY29kZTsKLX07Ci0KLXN0cnVjdCBpb2N0bGVudCBpb2N0bHNbXSA9IHsKLSNpbmNsdWRlICJpb2N0bHMuaCIKLX07Ci0KLWludCBuaW9jdGxzID0gc2l6ZW9mKGlvY3RscykgLyBzaXplb2YoaW9jdGxzWzBdKTsKLQotCi1pbnQgY29tcGFyZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKSB7Ci0JdW5zaWduZWQgbG9uZyBjb2RlMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5jb2RlOwotCXVuc2lnbmVkIGxvbmcgY29kZTIgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBiKS0+Y29kZTsKLQljb25zdCBjaGFyICpuYW1lMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5uYW1lOwotCWNvbnN0IGNoYXIgKm5hbWUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPm5hbWU7Ci0JcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IHN0cmNtcCAobmFtZTEsIG5hbWUyKTsKLX0KLQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLQlpbnQgaTsKLQotI2lmZGVmIFBPV0VSUEMJCQkvKiB1bnNwZWFrYWJsZSBrbHVkZ2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQotCQlpb2N0bHNbaV0uY29kZSAmPSB+X0lPQ19ESVJNQVNLOwotI2VuZGlmCi0KLQlxc29ydChpb2N0bHMsIG5pb2N0bHMsIHNpemVvZihpb2N0bHNbMF0pLCBjb21wYXJlKTsKLQlwdXRzICgiXHQvKiBHZW5lcmF0ZWQgYnkgaW9jdGxzb3J0ICovIik7Ci0JZm9yIChpID0gMDsgaSA8IG5pb2N0bHM7IGkrKykKLQkJaWYgKGkgPT0gMCB8fCBpb2N0bHNbaV0uY29kZSAhPSBpb2N0bHNbaS0xXS5jb2RlIHx8Ci0JCSAgICBzdHJjbXAgKGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaS0xXS5uYW1lKSkKLQkJCXByaW50ZigiXHR7XCIlc1wiLFx0XCIlc1wiLFx0JSNseH0sXG4iLAotCQkJCWlvY3Rsc1tpXS5oZWFkZXIsIGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaV0uY29kZSk7Ci0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9taXBzL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjJlZTg3Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9taXBzL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTM1ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRU5PTVNHIiwgLyogMzUgKi8KLQkiRUlEUk0iLCAvKiAzNiAqLwotCSJFQ0hSTkciLCAvKiAzNyAqLwotCSJFTDJOU1lOQyIsIC8qIDM4ICovCi0JIkVMM0hMVCIsIC8qIDM5ICovCi0JIkVMM1JTVCIsIC8qIDQwICovCi0JIkVMTlJORyIsIC8qIDQxICovCi0JIkVVTkFUQ0giLCAvKiA0MiAqLwotCSJFTk9DU0kiLCAvKiA0MyAqLwotCSJFTDJITFQiLCAvKiA0NCAqLwotCSJFREVBRExLIiwgLyogNDUgKi8KLQkiRU5PTENLIiwgLyogNDYgKi8KLQkiRVJSTk9fNDciLCAvKiA0NyAqLwotCSJFUlJOT180OCIsIC8qIDQ4ICovCi0JIkVSUk5PXzQ5IiwgLyogNDkgKi8KLQkiRUJBREUiLCAvKiA1MCAqLwotCSJFQkFEUiIsIC8qIDUxICovCi0JIkVYRlVMTCIsIC8qIDUyICovCi0JIkVOT0FOTyIsIC8qIDUzICovCi0JIkVCQURSUUMiLCAvKiA1NCAqLwotCSJFQkFEU0xUIiwgLyogNTUgKi8KLQkiRURFQURMT0NLIiwgLyogNTYgKi8KLQkiRVJSTk9fNTciLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFUlJOT183MiIsIC8qIDcyICovCi0JIkVET1RET1QiLCAvKiA3MyAqLwotCSJFTVVMVElIT1AiLCAvKiA3NCAqLwotCSJFUlJOT183NSIsIC8qIDc1ICovCi0JIkVSUk5PXzc2IiwgLyogNzYgKi8KLQkiRUJBRE1TRyIsIC8qIDc3ICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDc4ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc5ICovCi0JIkVOT1RVTklRIiwgLyogODAgKi8KLQkiRUJBREZEIiwgLyogODEgKi8KLQkiRVJFTUNIRyIsIC8qIDgyICovCi0JIkVMSUJBQ0MiLCAvKiA4MyAqLwotCSJFTElCQkFEIiwgLyogODQgKi8KLQkiRUxJQlNDTiIsIC8qIDg1ICovCi0JIkVMSUJNQVgiLCAvKiA4NiAqLwotCSJFTElCRVhFQyIsIC8qIDg3ICovCi0JIkVJTFNFUSIsIC8qIDg4ICovCi0JIkVOT1NZUyIsIC8qIDg5ICovCi0JIkVMT09QIiwgLyogOTAgKi8KLQkiRVJFU1RBUlQiLCAvKiA5MSAqLwotCSJFU1RSUElQRSIsIC8qIDkyICovCi0JIkVOT1RFTVBUWSIsIC8qIDkzICovCi0JIkVVU0VSUyIsIC8qIDk0ICovCi0JIkVOT1RTT0NLIiwgLyogOTUgKi8KLQkiRURFU1RBRERSUkVRIiwgLyogOTYgKi8KLQkiRU1TR1NJWkUiLCAvKiA5NyAqLwotCSJFUFJPVE9UWVBFIiwgLyogOTggKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA5OSAqLwotCSJFUlJOT18xMDAiLCAvKiAxMDAgKi8KLQkiRVJSTk9fMTAxIiwgLyogMTAxICovCi0JIkVSUk5PXzEwMiIsIC8qIDEwMiAqLwotCSJFUlJOT18xMDMiLCAvKiAxMDMgKi8KLQkiRVJSTk9fMTA0IiwgLyogMTA0ICovCi0JIkVSUk5PXzEwNSIsIC8qIDEwNSAqLwotCSJFUlJOT18xMDYiLCAvKiAxMDYgKi8KLQkiRVJSTk9fMTA3IiwgLyogMTA3ICovCi0JIkVSUk5PXzEwOCIsIC8qIDEwOCAqLwotCSJFUlJOT18xMDkiLCAvKiAxMDkgKi8KLQkiRVJSTk9fMTEwIiwgLyogMTEwICovCi0JIkVSUk5PXzExMSIsIC8qIDExMSAqLwotCSJFUlJOT18xMTIiLCAvKiAxMTIgKi8KLQkiRVJSTk9fMTEzIiwgLyogMTEzICovCi0JIkVSUk5PXzExNCIsIC8qIDExNCAqLwotCSJFUlJOT18xMTUiLCAvKiAxMTUgKi8KLQkiRVJSTk9fMTE2IiwgLyogMTE2ICovCi0JIkVSUk5PXzExNyIsIC8qIDExNyAqLwotCSJFUlJOT18xMTgiLCAvKiAxMTggKi8KLQkiRVJSTk9fMTE5IiwgLyogMTE5ICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDEyMCAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiAxMjEgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDEyMiAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiAxMjMgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogMTI0ICovCi0JIkVBRERSSU5VU0UiLCAvKiAxMjUgKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDEyNiAqLwotCSJFTkVURE9XTiIsIC8qIDEyNyAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDEyOCAqLwotCSJFTkVUUkVTRVQiLCAvKiAxMjkgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMTMwICovCi0JIkVDT05OUkVTRVQiLCAvKiAxMzEgKi8KLQkiRU5PQlVGUyIsIC8qIDEzMiAqLwotCSJFSVNDT05OIiwgLyogMTMzICovCi0JIkVOT1RDT05OIiwgLyogMTM0ICovCi0JIkVVQ0xFQU4iLCAvKiAxMzUgKi8KLQkiRVJSTk9fMTM2IiwgLyogMTM2ICovCi0JIkVOT1ROQU0iLCAvKiAxMzcgKi8KLQkiRU5BVkFJTCIsIC8qIDEzOCAqLwotCSJFSVNOQU0iLCAvKiAxMzkgKi8KLQkiRVJFTU9URUlPIiwgLyogMTQwICovCi0JIkVJTklUIiwgLyogMTQxICovCi0JIkVSRU1ERVYiLCAvKiAxNDIgKi8KLQkiRVNIVVRET1dOIiwgLyogMTQzICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDE0NCAqLwotCSJFVElNRURPVVQiLCAvKiAxNDUgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogMTQ2ICovCi0JIkVIT1NURE9XTiIsIC8qIDE0NyAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiAxNDggKi8KLQkiRUFMUkVBRFkiLCAvKiAxNDkgKi8KLQkiRUlOUFJPR1JFU1MiLCAvKiAxNTAgKi8KLQkiRVNUQUxFIiwgLyogMTUxICovCi0JIkVSUk5PXzE1MiIsIC8qIDE1MiAqLwotCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KLQkiRVJSTk9fMTU0IiwgLyogMTU0ICovCi0JIkVSUk5PXzE1NSIsIC8qIDE1NSAqLwotCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KLQkiRVJSTk9fMTU3IiwgLyogMTU3ICovCi0JIkVDQU5DRUxFRCIsIC8qIDE1OCAqLwotCSJFTk9NRURJVU0iLCAvKiAxNTkgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxNjAgKi8KLQkiRVJSTk9fMTYxIiwgLyogMTYxICovCi0JIkVSUk5PXzE2MiIsIC8qIDE2MiAqLwotCSJFUlJOT18xNjMiLCAvKiAxNjMgKi8KLQkiRVJSTk9fMTY0IiwgLyogMTY0ICovCi0JIkVSUk5PXzE2NSIsIC8qIDE2NSAqLwotCSJFUlJOT18xNjYiLCAvKiAxNjYgKi8KLQkiRVJSTk9fMTY3IiwgLyogMTY3ICovCi0JIkVSUk5PXzE2OCIsIC8qIDE2OCAqLwotCSJFUlJOT18xNjkiLCAvKiAxNjkgKi8KLQkiRVJSTk9fMTcwIiwgLyogMTcwICovCi0JIkVSUk5PXzE3MSIsIC8qIDE3MSAqLwotCSJFUlJOT18xNzIiLCAvKiAxNzIgKi8KLQkiRVJSTk9fMTczIiwgLyogMTczICovCi0JIkVSUk5PXzE3NCIsIC8qIDE3NCAqLwotCSJFUlJOT18xNzUiLCAvKiAxNzUgKi8KLQkiRVJSTk9fMTc2IiwgLyogMTc2ICovCi0JIkVSUk5PXzE3NyIsIC8qIDE3NyAqLwotCSJFUlJOT18xNzgiLCAvKiAxNzggKi8KLQkiRVJSTk9fMTc5IiwgLyogMTc5ICovCi0JIkVSUk5PXzE4MCIsIC8qIDE4MCAqLwotCSJFUlJOT18xODEiLCAvKiAxODEgKi8KLQkiRVJSTk9fMTgyIiwgLyogMTgyICovCi0JIkVSUk5PXzE4MyIsIC8qIDE4MyAqLwotCSJFUlJOT18xODQiLCAvKiAxODQgKi8KLQkiRVJSTk9fMTg1IiwgLyogMTg1ICovCi0JIkVSUk5PXzE4NiIsIC8qIDE4NiAqLwotCSJFUlJOT18xODciLCAvKiAxODcgKi8KLQkiRVJSTk9fMTg4IiwgLyogMTg4ICovCi0JIkVSUk5PXzE4OSIsIC8qIDE4OSAqLwotCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KLQkiRVJSTk9fMTkxIiwgLyogMTkxICovCi0JIkVSUk5PXzE5MiIsIC8qIDE5MiAqLwotCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KLQkiRVJSTk9fMTk0IiwgLyogMTk0ICovCi0JIkVSUk5PXzE5NSIsIC8qIDE5NSAqLwotCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KLQkiRVJSTk9fMTk3IiwgLyogMTk3ICovCi0JIkVSUk5PXzE5OCIsIC8qIDE5OCAqLwotCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KLQkiRVJSTk9fMjAwIiwgLyogMjAwICovCi0JIkVSUk5PXzIwMSIsIC8qIDIwMSAqLwotCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KLQkiRVJSTk9fMjAzIiwgLyogMjAzICovCi0JIkVSUk5PXzIwNCIsIC8qIDIwNCAqLwotCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KLQkiRVJSTk9fMjA2IiwgLyogMjA2ICovCi0JIkVSUk5PXzIwNyIsIC8qIDIwNyAqLwotCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KLQkiRVJSTk9fMjA5IiwgLyogMjA5ICovCi0JIkVSUk5PXzIxMCIsIC8qIDIxMCAqLwotCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KLQkiRVJSTk9fMjEyIiwgLyogMjEyICovCi0JIkVSUk5PXzIxMyIsIC8qIDIxMyAqLwotCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KLQkiRVJSTk9fMjE1IiwgLyogMjE1ICovCi0JIkVSUk5PXzIxNiIsIC8qIDIxNiAqLwotCSJFUlJOT18yMTciLCAvKiAyMTcgKi8KLQkiRVJSTk9fMjE4IiwgLyogMjE4ICovCi0JIkVSUk5PXzIxOSIsIC8qIDIxOSAqLwotCSJFUlJOT18yMjAiLCAvKiAyMjAgKi8KLQkiRVJSTk9fMjIxIiwgLyogMjIxICovCi0JIkVSUk5PXzIyMiIsIC8qIDIyMiAqLwotCSJFUlJOT18yMjMiLCAvKiAyMjMgKi8KLQkiRVJSTk9fMjI0IiwgLyogMjI0ICovCi0JIkVSUk5PXzIyNSIsIC8qIDIyNSAqLwotCSJFUlJOT18yMjYiLCAvKiAyMjYgKi8KLQkiRVJSTk9fMjI3IiwgLyogMjI3ICovCi0JIkVSUk5PXzIyOCIsIC8qIDIyOCAqLwotCSJFUlJOT18yMjkiLCAvKiAyMjkgKi8KLQkiRVJSTk9fMjMwIiwgLyogMjMwICovCi0JIkVSUk5PXzIzMSIsIC8qIDIzMSAqLwotCSJFUlJOT18yMzIiLCAvKiAyMzIgKi8KLQkiRVJSTk9fMjMzIiwgLyogMjMzICovCi0JIkVSUk5PXzIzNCIsIC8qIDIzNCAqLwotCSJFUlJOT18yMzUiLCAvKiAyMzUgKi8KLQkiRVJSTk9fMjM2IiwgLyogMjM2ICovCi0JIkVSUk5PXzIzNyIsIC8qIDIzNyAqLwotCSJFUlJOT18yMzgiLCAvKiAyMzggKi8KLQkiRVJSTk9fMjM5IiwgLyogMjM5ICovCi0JIkVSUk5PXzI0MCIsIC8qIDI0MCAqLwotCSJFUlJOT18yNDEiLCAvKiAyNDEgKi8KLQkiRVJSTk9fMjQyIiwgLyogMjQyICovCi0JIkVSUk5PXzI0MyIsIC8qIDI0MyAqLwotCSJFUlJOT18yNDQiLCAvKiAyNDQgKi8KLQkiRVJSTk9fMjQ1IiwgLyogMjQ1ICovCi0JIkVSUk5PXzI0NiIsIC8qIDI0NiAqLwotCSJFUlJOT18yNDciLCAvKiAyNDcgKi8KLQkiRVJSTk9fMjQ4IiwgLyogMjQ4ICovCi0JIkVSUk5PXzI0OSIsIC8qIDI0OSAqLwotCSJFUlJOT18yNTAiLCAvKiAyNTAgKi8KLQkiRVJSTk9fMjUxIiwgLyogMjUxICovCi0JIkVSUk5PXzI1MiIsIC8qIDI1MiAqLwotCSJFUlJOT18yNTMiLCAvKiAyNTMgKi8KLQkiRVJSTk9fMjU0IiwgLyogMjU0ICovCi0JIkVSUk5PXzI1NSIsIC8qIDI1NSAqLwotCSJFUlJOT18yNTYiLCAvKiAyNTYgKi8KLQkiRVJSTk9fMjU3IiwgLyogMjU3ICovCi0JIkVSUk5PXzI1OCIsIC8qIDI1OCAqLwotCSJFUlJOT18yNTkiLCAvKiAyNTkgKi8KLQkiRVJSTk9fMjYwIiwgLyogMjYwICovCi0JIkVSUk5PXzI2MSIsIC8qIDI2MSAqLwotCSJFUlJOT18yNjIiLCAvKiAyNjIgKi8KLQkiRVJSTk9fMjYzIiwgLyogMjYzICovCi0JIkVSUk5PXzI2NCIsIC8qIDI2NCAqLwotCSJFUlJOT18yNjUiLCAvKiAyNjUgKi8KLQkiRVJSTk9fMjY2IiwgLyogMjY2ICovCi0JIkVSUk5PXzI2NyIsIC8qIDI2NyAqLwotCSJFUlJOT18yNjgiLCAvKiAyNjggKi8KLQkiRVJSTk9fMjY5IiwgLyogMjY5ICovCi0JIkVSUk5PXzI3MCIsIC8qIDI3MCAqLwotCSJFUlJOT18yNzEiLCAvKiAyNzEgKi8KLQkiRVJSTk9fMjcyIiwgLyogMjcyICovCi0JIkVSUk5PXzI3MyIsIC8qIDI3MyAqLwotCSJFUlJOT18yNzQiLCAvKiAyNzQgKi8KLQkiRVJSTk9fMjc1IiwgLyogMjc1ICovCi0JIkVSUk5PXzI3NiIsIC8qIDI3NiAqLwotCSJFUlJOT18yNzciLCAvKiAyNzcgKi8KLQkiRVJSTk9fMjc4IiwgLyogMjc4ICovCi0JIkVSUk5PXzI3OSIsIC8qIDI3OSAqLwotCSJFUlJOT18yODAiLCAvKiAyODAgKi8KLQkiRVJSTk9fMjgxIiwgLyogMjgxICovCi0JIkVSUk5PXzI4MiIsIC8qIDI4MiAqLwotCSJFUlJOT18yODMiLCAvKiAyODMgKi8KLQkiRVJSTk9fMjg0IiwgLyogMjg0ICovCi0JIkVSUk5PXzI4NSIsIC8qIDI4NSAqLwotCSJFUlJOT18yODYiLCAvKiAyODYgKi8KLQkiRVJSTk9fMjg3IiwgLyogMjg3ICovCi0JIkVSUk5PXzI4OCIsIC8qIDI4OCAqLwotCSJFUlJOT18yODkiLCAvKiAyODkgKi8KLQkiRVJSTk9fMjkwIiwgLyogMjkwICovCi0JIkVSUk5PXzI5MSIsIC8qIDI5MSAqLwotCSJFUlJOT18yOTIiLCAvKiAyOTIgKi8KLQkiRVJSTk9fMjkzIiwgLyogMjkzICovCi0JIkVSUk5PXzI5NCIsIC8qIDI5NCAqLwotCSJFUlJOT18yOTUiLCAvKiAyOTUgKi8KLQkiRVJSTk9fMjk2IiwgLyogMjk2ICovCi0JIkVSUk5PXzI5NyIsIC8qIDI5NyAqLwotCSJFUlJOT18yOTgiLCAvKiAyOTggKi8KLQkiRVJSTk9fMjk5IiwgLyogMjk5ICovCi0JIkVSUk5PXzMwMCIsIC8qIDMwMCAqLwotCSJFUlJOT18zMDEiLCAvKiAzMDEgKi8KLQkiRVJSTk9fMzAyIiwgLyogMzAyICovCi0JIkVSUk5PXzMwMyIsIC8qIDMwMyAqLwotCSJFUlJOT18zMDQiLCAvKiAzMDQgKi8KLQkiRVJSTk9fMzA1IiwgLyogMzA1ICovCi0JIkVSUk5PXzMwNiIsIC8qIDMwNiAqLwotCSJFUlJOT18zMDciLCAvKiAzMDcgKi8KLQkiRVJSTk9fMzA4IiwgLyogMzA4ICovCi0JIkVSUk5PXzMwOSIsIC8qIDMwOSAqLwotCSJFUlJOT18zMTAiLCAvKiAzMTAgKi8KLQkiRVJSTk9fMzExIiwgLyogMzExICovCi0JIkVSUk5PXzMxMiIsIC8qIDMxMiAqLwotCSJFUlJOT18zMTMiLCAvKiAzMTMgKi8KLQkiRVJSTk9fMzE0IiwgLyogMzE0ICovCi0JIkVSUk5PXzMxNSIsIC8qIDMxNSAqLwotCSJFUlJOT18zMTYiLCAvKiAzMTYgKi8KLQkiRVJSTk9fMzE3IiwgLyogMzE3ICovCi0JIkVSUk5PXzMxOCIsIC8qIDMxOCAqLwotCSJFUlJOT18zMTkiLCAvKiAzMTkgKi8KLQkiRVJSTk9fMzIwIiwgLyogMzIwICovCi0JIkVSUk5PXzMyMSIsIC8qIDMyMSAqLwotCSJFUlJOT18zMjIiLCAvKiAzMjIgKi8KLQkiRVJSTk9fMzIzIiwgLyogMzIzICovCi0JIkVSUk5PXzMyNCIsIC8qIDMyNCAqLwotCSJFUlJOT18zMjUiLCAvKiAzMjUgKi8KLQkiRVJSTk9fMzI2IiwgLyogMzI2ICovCi0JIkVSUk5PXzMyNyIsIC8qIDMyNyAqLwotCSJFUlJOT18zMjgiLCAvKiAzMjggKi8KLQkiRVJSTk9fMzI5IiwgLyogMzI5ICovCi0JIkVSUk5PXzMzMCIsIC8qIDMzMCAqLwotCSJFUlJOT18zMzEiLCAvKiAzMzEgKi8KLQkiRVJSTk9fMzMyIiwgLyogMzMyICovCi0JIkVSUk5PXzMzMyIsIC8qIDMzMyAqLwotCSJFUlJOT18zMzQiLCAvKiAzMzQgKi8KLQkiRVJSTk9fMzM1IiwgLyogMzM1ICovCi0JIkVSUk5PXzMzNiIsIC8qIDMzNiAqLwotCSJFUlJOT18zMzciLCAvKiAzMzcgKi8KLQkiRVJSTk9fMzM4IiwgLyogMzM4ICovCi0JIkVSUk5PXzMzOSIsIC8qIDMzOSAqLwotCSJFUlJOT18zNDAiLCAvKiAzNDAgKi8KLQkiRVJSTk9fMzQxIiwgLyogMzQxICovCi0JIkVSUk5PXzM0MiIsIC8qIDM0MiAqLwotCSJFUlJOT18zNDMiLCAvKiAzNDMgKi8KLQkiRVJSTk9fMzQ0IiwgLyogMzQ0ICovCi0JIkVSUk5PXzM0NSIsIC8qIDM0NSAqLwotCSJFUlJOT18zNDYiLCAvKiAzNDYgKi8KLQkiRVJSTk9fMzQ3IiwgLyogMzQ3ICovCi0JIkVSUk5PXzM0OCIsIC8qIDM0OCAqLwotCSJFUlJOT18zNDkiLCAvKiAzNDkgKi8KLQkiRVJSTk9fMzUwIiwgLyogMzUwICovCi0JIkVSUk5PXzM1MSIsIC8qIDM1MSAqLwotCSJFUlJOT18zNTIiLCAvKiAzNTIgKi8KLQkiRVJSTk9fMzUzIiwgLyogMzUzICovCi0JIkVSUk5PXzM1NCIsIC8qIDM1NCAqLwotCSJFUlJOT18zNTUiLCAvKiAzNTUgKi8KLQkiRVJSTk9fMzU2IiwgLyogMzU2ICovCi0JIkVSUk5PXzM1NyIsIC8qIDM1NyAqLwotCSJFUlJOT18zNTgiLCAvKiAzNTggKi8KLQkiRVJSTk9fMzU5IiwgLyogMzU5ICovCi0JIkVSUk5PXzM2MCIsIC8qIDM2MCAqLwotCSJFUlJOT18zNjEiLCAvKiAzNjEgKi8KLQkiRVJSTk9fMzYyIiwgLyogMzYyICovCi0JIkVSUk5PXzM2MyIsIC8qIDM2MyAqLwotCSJFUlJOT18zNjQiLCAvKiAzNjQgKi8KLQkiRVJSTk9fMzY1IiwgLyogMzY1ICovCi0JIkVSUk5PXzM2NiIsIC8qIDM2NiAqLwotCSJFUlJOT18zNjciLCAvKiAzNjcgKi8KLQkiRVJSTk9fMzY4IiwgLyogMzY4ICovCi0JIkVSUk5PXzM2OSIsIC8qIDM2OSAqLwotCSJFUlJOT18zNzAiLCAvKiAzNzAgKi8KLQkiRVJSTk9fMzcxIiwgLyogMzcxICovCi0JIkVSUk5PXzM3MiIsIC8qIDM3MiAqLwotCSJFUlJOT18zNzMiLCAvKiAzNzMgKi8KLQkiRVJSTk9fMzc0IiwgLyogMzc0ICovCi0JIkVSUk5PXzM3NSIsIC8qIDM3NSAqLwotCSJFUlJOT18zNzYiLCAvKiAzNzYgKi8KLQkiRVJSTk9fMzc3IiwgLyogMzc3ICovCi0JIkVSUk5PXzM3OCIsIC8qIDM3OCAqLwotCSJFUlJOT18zNzkiLCAvKiAzNzkgKi8KLQkiRVJSTk9fMzgwIiwgLyogMzgwICovCi0JIkVSUk5PXzM4MSIsIC8qIDM4MSAqLwotCSJFUlJOT18zODIiLCAvKiAzODIgKi8KLQkiRVJSTk9fMzgzIiwgLyogMzgzICovCi0JIkVSUk5PXzM4NCIsIC8qIDM4NCAqLwotCSJFUlJOT18zODUiLCAvKiAzODUgKi8KLQkiRVJSTk9fMzg2IiwgLyogMzg2ICovCi0JIkVSUk5PXzM4NyIsIC8qIDM4NyAqLwotCSJFUlJOT18zODgiLCAvKiAzODggKi8KLQkiRVJSTk9fMzg5IiwgLyogMzg5ICovCi0JIkVSUk5PXzM5MCIsIC8qIDM5MCAqLwotCSJFUlJOT18zOTEiLCAvKiAzOTEgKi8KLQkiRVJSTk9fMzkyIiwgLyogMzkyICovCi0JIkVSUk5PXzM5MyIsIC8qIDM5MyAqLwotCSJFUlJOT18zOTQiLCAvKiAzOTQgKi8KLQkiRVJSTk9fMzk1IiwgLyogMzk1ICovCi0JIkVSUk5PXzM5NiIsIC8qIDM5NiAqLwotCSJFUlJOT18zOTciLCAvKiAzOTcgKi8KLQkiRVJSTk9fMzk4IiwgLyogMzk4ICovCi0JIkVSUk5PXzM5OSIsIC8qIDM5OSAqLwotCSJFUlJOT180MDAiLCAvKiA0MDAgKi8KLQkiRVJSTk9fNDAxIiwgLyogNDAxICovCi0JIkVSUk5PXzQwMiIsIC8qIDQwMiAqLwotCSJFUlJOT180MDMiLCAvKiA0MDMgKi8KLQkiRVJSTk9fNDA0IiwgLyogNDA0ICovCi0JIkVSUk5PXzQwNSIsIC8qIDQwNSAqLwotCSJFUlJOT180MDYiLCAvKiA0MDYgKi8KLQkiRVJSTk9fNDA3IiwgLyogNDA3ICovCi0JIkVSUk5PXzQwOCIsIC8qIDQwOCAqLwotCSJFUlJOT180MDkiLCAvKiA0MDkgKi8KLQkiRVJSTk9fNDEwIiwgLyogNDEwICovCi0JIkVSUk5PXzQxMSIsIC8qIDQxMSAqLwotCSJFUlJOT180MTIiLCAvKiA0MTIgKi8KLQkiRVJSTk9fNDEzIiwgLyogNDEzICovCi0JIkVSUk5PXzQxNCIsIC8qIDQxNCAqLwotCSJFUlJOT180MTUiLCAvKiA0MTUgKi8KLQkiRVJSTk9fNDE2IiwgLyogNDE2ICovCi0JIkVSUk5PXzQxNyIsIC8qIDQxNyAqLwotCSJFUlJOT180MTgiLCAvKiA0MTggKi8KLQkiRVJSTk9fNDE5IiwgLyogNDE5ICovCi0JIkVSUk5PXzQyMCIsIC8qIDQyMCAqLwotCSJFUlJOT180MjEiLCAvKiA0MjEgKi8KLQkiRVJSTk9fNDIyIiwgLyogNDIyICovCi0JIkVSUk5PXzQyMyIsIC8qIDQyMyAqLwotCSJFUlJOT180MjQiLCAvKiA0MjQgKi8KLQkiRVJSTk9fNDI1IiwgLyogNDI1ICovCi0JIkVSUk5PXzQyNiIsIC8qIDQyNiAqLwotCSJFUlJOT180MjciLCAvKiA0MjcgKi8KLQkiRVJSTk9fNDI4IiwgLyogNDI4ICovCi0JIkVSUk5PXzQyOSIsIC8qIDQyOSAqLwotCSJFUlJOT180MzAiLCAvKiA0MzAgKi8KLQkiRVJSTk9fNDMxIiwgLyogNDMxICovCi0JIkVSUk5PXzQzMiIsIC8qIDQzMiAqLwotCSJFUlJOT180MzMiLCAvKiA0MzMgKi8KLQkiRVJSTk9fNDM0IiwgLyogNDM0ICovCi0JIkVSUk5PXzQzNSIsIC8qIDQzNSAqLwotCSJFUlJOT180MzYiLCAvKiA0MzYgKi8KLQkiRVJSTk9fNDM3IiwgLyogNDM3ICovCi0JIkVSUk5PXzQzOCIsIC8qIDQzOCAqLwotCSJFUlJOT180MzkiLCAvKiA0MzkgKi8KLQkiRVJSTk9fNDQwIiwgLyogNDQwICovCi0JIkVSUk5PXzQ0MSIsIC8qIDQ0MSAqLwotCSJFUlJOT180NDIiLCAvKiA0NDIgKi8KLQkiRVJSTk9fNDQzIiwgLyogNDQzICovCi0JIkVSUk5PXzQ0NCIsIC8qIDQ0NCAqLwotCSJFUlJOT180NDUiLCAvKiA0NDUgKi8KLQkiRVJSTk9fNDQ2IiwgLyogNDQ2ICovCi0JIkVSUk5PXzQ0NyIsIC8qIDQ0NyAqLwotCSJFUlJOT180NDgiLCAvKiA0NDggKi8KLQkiRVJSTk9fNDQ5IiwgLyogNDQ5ICovCi0JIkVSUk5PXzQ1MCIsIC8qIDQ1MCAqLwotCSJFUlJOT180NTEiLCAvKiA0NTEgKi8KLQkiRVJSTk9fNDUyIiwgLyogNDUyICovCi0JIkVSUk5PXzQ1MyIsIC8qIDQ1MyAqLwotCSJFUlJOT180NTQiLCAvKiA0NTQgKi8KLQkiRVJSTk9fNDU1IiwgLyogNDU1ICovCi0JIkVSUk5PXzQ1NiIsIC8qIDQ1NiAqLwotCSJFUlJOT180NTciLCAvKiA0NTcgKi8KLQkiRVJSTk9fNDU4IiwgLyogNDU4ICovCi0JIkVSUk5PXzQ1OSIsIC8qIDQ1OSAqLwotCSJFUlJOT180NjAiLCAvKiA0NjAgKi8KLQkiRVJSTk9fNDYxIiwgLyogNDYxICovCi0JIkVSUk5PXzQ2MiIsIC8qIDQ2MiAqLwotCSJFUlJOT180NjMiLCAvKiA0NjMgKi8KLQkiRVJSTk9fNDY0IiwgLyogNDY0ICovCi0JIkVSUk5PXzQ2NSIsIC8qIDQ2NSAqLwotCSJFUlJOT180NjYiLCAvKiA0NjYgKi8KLQkiRVJSTk9fNDY3IiwgLyogNDY3ICovCi0JIkVSUk5PXzQ2OCIsIC8qIDQ2OCAqLwotCSJFUlJOT180NjkiLCAvKiA0NjkgKi8KLQkiRVJSTk9fNDcwIiwgLyogNDcwICovCi0JIkVSUk5PXzQ3MSIsIC8qIDQ3MSAqLwotCSJFUlJOT180NzIiLCAvKiA0NzIgKi8KLQkiRVJSTk9fNDczIiwgLyogNDczICovCi0JIkVSUk5PXzQ3NCIsIC8qIDQ3NCAqLwotCSJFUlJOT180NzUiLCAvKiA0NzUgKi8KLQkiRVJSTk9fNDc2IiwgLyogNDc2ICovCi0JIkVSUk5PXzQ3NyIsIC8qIDQ3NyAqLwotCSJFUlJOT180NzgiLCAvKiA0NzggKi8KLQkiRVJSTk9fNDc5IiwgLyogNDc5ICovCi0JIkVSUk5PXzQ4MCIsIC8qIDQ4MCAqLwotCSJFUlJOT180ODEiLCAvKiA0ODEgKi8KLQkiRVJSTk9fNDgyIiwgLyogNDgyICovCi0JIkVSUk5PXzQ4MyIsIC8qIDQ4MyAqLwotCSJFUlJOT180ODQiLCAvKiA0ODQgKi8KLQkiRVJSTk9fNDg1IiwgLyogNDg1ICovCi0JIkVSUk5PXzQ4NiIsIC8qIDQ4NiAqLwotCSJFUlJOT180ODciLCAvKiA0ODcgKi8KLQkiRVJSTk9fNDg4IiwgLyogNDg4ICovCi0JIkVSUk5PXzQ4OSIsIC8qIDQ4OSAqLwotCSJFUlJOT180OTAiLCAvKiA0OTAgKi8KLQkiRVJSTk9fNDkxIiwgLyogNDkxICovCi0JIkVSUk5PXzQ5MiIsIC8qIDQ5MiAqLwotCSJFUlJOT180OTMiLCAvKiA0OTMgKi8KLQkiRVJSTk9fNDk0IiwgLyogNDk0ICovCi0JIkVSUk5PXzQ5NSIsIC8qIDQ5NSAqLwotCSJFUlJOT180OTYiLCAvKiA0OTYgKi8KLQkiRVJSTk9fNDk3IiwgLyogNDk3ICovCi0JIkVSUk5PXzQ5OCIsIC8qIDQ5OCAqLwotCSJFUlJOT180OTkiLCAvKiA0OTkgKi8KLQkiRVJSTk9fNTAwIiwgLyogNTAwICovCi0JIkVSUk5PXzUwMSIsIC8qIDUwMSAqLwotCSJFUlJOT181MDIiLCAvKiA1MDIgKi8KLQkiRVJSTk9fNTAzIiwgLyogNTAzICovCi0JIkVSUk5PXzUwNCIsIC8qIDUwNCAqLwotCSJFUlJOT181MDUiLCAvKiA1MDUgKi8KLQkiRVJSTk9fNTA2IiwgLyogNTA2ICovCi0JIkVSUk5PXzUwNyIsIC8qIDUwNyAqLwotCSJFUlJOT181MDgiLCAvKiA1MDggKi8KLQkiRVJSTk9fNTA5IiwgLyogNTA5ICovCi0JIkVSUk5PXzUxMCIsIC8qIDUxMCAqLwotCSJFUlJOT181MTEiLCAvKiA1MTEgKi8KLQkiRVJSTk9fNTEyIiwgLyogNTEyICovCi0JIkVSUk5PXzUxMyIsIC8qIDUxMyAqLwotCSJFUlJOT181MTQiLCAvKiA1MTQgKi8KLQkiRVJSTk9fNTE1IiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLwotCSJFUlJOT181MTciLCAvKiA1MTcgKi8KLQkiRVJSTk9fNTE4IiwgLyogNTE4ICovCi0JIkVSUk5PXzUxOSIsIC8qIDUxOSAqLwotCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KLQkiRVJSTk9fNTIxIiwgLyogNTIxICovCi0JIkVSUk5PXzUyMiIsIC8qIDUyMiAqLwotCSJFUlJOT181MjMiLCAvKiA1MjMgKi8KLQkiRVJSTk9fNTI0IiwgLyogNTI0ICovCi0JIkVSUk5PXzUyNSIsIC8qIDUyNSAqLwotCSJFUlJOT181MjYiLCAvKiA1MjYgKi8KLQkiRVJSTk9fNTI3IiwgLyogNTI3ICovCi0JIkVSUk5PXzUyOCIsIC8qIDUyOCAqLwotCSJFUlJOT181MjkiLCAvKiA1MjkgKi8KLQkiRVJSTk9fNTMwIiwgLyogNTMwICovCi0JIkVSUk5PXzUzMSIsIC8qIDUzMSAqLwotCSJFUlJOT181MzIiLCAvKiA1MzIgKi8KLQkiRVJSTk9fNTMzIiwgLyogNTMzICovCi0JIkVSUk5PXzUzNCIsIC8qIDUzNCAqLwotCSJFUlJOT181MzUiLCAvKiA1MzUgKi8KLQkiRVJSTk9fNTM2IiwgLyogNTM2ICovCi0JIkVSUk5PXzUzNyIsIC8qIDUzNyAqLwotCSJFUlJOT181MzgiLCAvKiA1MzggKi8KLQkiRVJSTk9fNTM5IiwgLyogNTM5ICovCi0JIkVSUk5PXzU0MCIsIC8qIDU0MCAqLwotCSJFUlJOT181NDEiLCAvKiA1NDEgKi8KLQkiRVJSTk9fNTQyIiwgLyogNTQyICovCi0JIkVSUk5PXzU0MyIsIC8qIDU0MyAqLwotCSJFUlJOT181NDQiLCAvKiA1NDQgKi8KLQkiRVJSTk9fNTQ1IiwgLyogNTQ1ICovCi0JIkVSUk5PXzU0NiIsIC8qIDU0NiAqLwotCSJFUlJOT181NDciLCAvKiA1NDcgKi8KLQkiRVJSTk9fNTQ4IiwgLyogNTQ4ICovCi0JIkVSUk5PXzU0OSIsIC8qIDU0OSAqLwotCSJFUlJOT181NTAiLCAvKiA1NTAgKi8KLQkiRVJSTk9fNTUxIiwgLyogNTUxICovCi0JIkVSUk5PXzU1MiIsIC8qIDU1MiAqLwotCSJFUlJOT181NTMiLCAvKiA1NTMgKi8KLQkiRVJSTk9fNTU0IiwgLyogNTU0ICovCi0JIkVSUk5PXzU1NSIsIC8qIDU1NSAqLwotCSJFUlJOT181NTYiLCAvKiA1NTYgKi8KLQkiRVJSTk9fNTU3IiwgLyogNTU3ICovCi0JIkVSUk5PXzU1OCIsIC8qIDU1OCAqLwotCSJFUlJOT181NTkiLCAvKiA1NTkgKi8KLQkiRVJSTk9fNTYwIiwgLyogNTYwICovCi0JIkVSUk5PXzU2MSIsIC8qIDU2MSAqLwotCSJFUlJOT181NjIiLCAvKiA1NjIgKi8KLQkiRVJSTk9fNTYzIiwgLyogNTYzICovCi0JIkVSUk5PXzU2NCIsIC8qIDU2NCAqLwotCSJFUlJOT181NjUiLCAvKiA1NjUgKi8KLQkiRVJSTk9fNTY2IiwgLyogNTY2ICovCi0JIkVSUk5PXzU2NyIsIC8qIDU2NyAqLwotCSJFUlJOT181NjgiLCAvKiA1NjggKi8KLQkiRVJSTk9fNTY5IiwgLyogNTY5ICovCi0JIkVSUk5PXzU3MCIsIC8qIDU3MCAqLwotCSJFUlJOT181NzEiLCAvKiA1NzEgKi8KLQkiRVJSTk9fNTcyIiwgLyogNTcyICovCi0JIkVSUk5PXzU3MyIsIC8qIDU3MyAqLwotCSJFUlJOT181NzQiLCAvKiA1NzQgKi8KLQkiRVJSTk9fNTc1IiwgLyogNTc1ICovCi0JIkVSUk5PXzU3NiIsIC8qIDU3NiAqLwotCSJFUlJOT181NzciLCAvKiA1NzcgKi8KLQkiRVJSTk9fNTc4IiwgLyogNTc4ICovCi0JIkVSUk5PXzU3OSIsIC8qIDU3OSAqLwotCSJFUlJOT181ODAiLCAvKiA1ODAgKi8KLQkiRVJSTk9fNTgxIiwgLyogNTgxICovCi0JIkVSUk5PXzU4MiIsIC8qIDU4MiAqLwotCSJFUlJOT181ODMiLCAvKiA1ODMgKi8KLQkiRVJSTk9fNTg0IiwgLyogNTg0ICovCi0JIkVSUk5PXzU4NSIsIC8qIDU4NSAqLwotCSJFUlJOT181ODYiLCAvKiA1ODYgKi8KLQkiRVJSTk9fNTg3IiwgLyogNTg3ICovCi0JIkVSUk5PXzU4OCIsIC8qIDU4OCAqLwotCSJFUlJOT181ODkiLCAvKiA1ODkgKi8KLQkiRVJSTk9fNTkwIiwgLyogNTkwICovCi0JIkVSUk5PXzU5MSIsIC8qIDU5MSAqLwotCSJFUlJOT181OTIiLCAvKiA1OTIgKi8KLQkiRVJSTk9fNTkzIiwgLyogNTkzICovCi0JIkVSUk5PXzU5NCIsIC8qIDU5NCAqLwotCSJFUlJOT181OTUiLCAvKiA1OTUgKi8KLQkiRVJSTk9fNTk2IiwgLyogNTk2ICovCi0JIkVSUk5PXzU5NyIsIC8qIDU5NyAqLwotCSJFUlJOT181OTgiLCAvKiA1OTggKi8KLQkiRVJSTk9fNTk5IiwgLyogNTk5ICovCi0JIkVSUk5PXzYwMCIsIC8qIDYwMCAqLwotCSJFUlJOT182MDEiLCAvKiA2MDEgKi8KLQkiRVJSTk9fNjAyIiwgLyogNjAyICovCi0JIkVSUk5PXzYwMyIsIC8qIDYwMyAqLwotCSJFUlJOT182MDQiLCAvKiA2MDQgKi8KLQkiRVJSTk9fNjA1IiwgLyogNjA1ICovCi0JIkVSUk5PXzYwNiIsIC8qIDYwNiAqLwotCSJFUlJOT182MDciLCAvKiA2MDcgKi8KLQkiRVJSTk9fNjA4IiwgLyogNjA4ICovCi0JIkVSUk5PXzYwOSIsIC8qIDYwOSAqLwotCSJFUlJOT182MTAiLCAvKiA2MTAgKi8KLQkiRVJSTk9fNjExIiwgLyogNjExICovCi0JIkVSUk5PXzYxMiIsIC8qIDYxMiAqLwotCSJFUlJOT182MTMiLCAvKiA2MTMgKi8KLQkiRVJSTk9fNjE0IiwgLyogNjE0ICovCi0JIkVSUk5PXzYxNSIsIC8qIDYxNSAqLwotCSJFUlJOT182MTYiLCAvKiA2MTYgKi8KLQkiRVJSTk9fNjE3IiwgLyogNjE3ICovCi0JIkVSUk5PXzYxOCIsIC8qIDYxOCAqLwotCSJFUlJOT182MTkiLCAvKiA2MTkgKi8KLQkiRVJSTk9fNjIwIiwgLyogNjIwICovCi0JIkVSUk5PXzYyMSIsIC8qIDYyMSAqLwotCSJFUlJOT182MjIiLCAvKiA2MjIgKi8KLQkiRVJSTk9fNjIzIiwgLyogNjIzICovCi0JIkVSUk5PXzYyNCIsIC8qIDYyNCAqLwotCSJFUlJOT182MjUiLCAvKiA2MjUgKi8KLQkiRVJSTk9fNjI2IiwgLyogNjI2ICovCi0JIkVSUk5PXzYyNyIsIC8qIDYyNyAqLwotCSJFUlJOT182MjgiLCAvKiA2MjggKi8KLQkiRVJSTk9fNjI5IiwgLyogNjI5ICovCi0JIkVSUk5PXzYzMCIsIC8qIDYzMCAqLwotCSJFUlJOT182MzEiLCAvKiA2MzEgKi8KLQkiRVJSTk9fNjMyIiwgLyogNjMyICovCi0JIkVSUk5PXzYzMyIsIC8qIDYzMyAqLwotCSJFUlJOT182MzQiLCAvKiA2MzQgKi8KLQkiRVJSTk9fNjM1IiwgLyogNjM1ICovCi0JIkVSUk5PXzYzNiIsIC8qIDYzNiAqLwotCSJFUlJOT182MzciLCAvKiA2MzcgKi8KLQkiRVJSTk9fNjM4IiwgLyogNjM4ICovCi0JIkVSUk5PXzYzOSIsIC8qIDYzOSAqLwotCSJFUlJOT182NDAiLCAvKiA2NDAgKi8KLQkiRVJSTk9fNjQxIiwgLyogNjQxICovCi0JIkVSUk5PXzY0MiIsIC8qIDY0MiAqLwotCSJFUlJOT182NDMiLCAvKiA2NDMgKi8KLQkiRVJSTk9fNjQ0IiwgLyogNjQ0ICovCi0JIkVSUk5PXzY0NSIsIC8qIDY0NSAqLwotCSJFUlJOT182NDYiLCAvKiA2NDYgKi8KLQkiRVJSTk9fNjQ3IiwgLyogNjQ3ICovCi0JIkVSUk5PXzY0OCIsIC8qIDY0OCAqLwotCSJFUlJOT182NDkiLCAvKiA2NDkgKi8KLQkiRVJSTk9fNjUwIiwgLyogNjUwICovCi0JIkVSUk5PXzY1MSIsIC8qIDY1MSAqLwotCSJFUlJOT182NTIiLCAvKiA2NTIgKi8KLQkiRVJSTk9fNjUzIiwgLyogNjUzICovCi0JIkVSUk5PXzY1NCIsIC8qIDY1NCAqLwotCSJFUlJOT182NTUiLCAvKiA2NTUgKi8KLQkiRVJSTk9fNjU2IiwgLyogNjU2ICovCi0JIkVSUk5PXzY1NyIsIC8qIDY1NyAqLwotCSJFUlJOT182NTgiLCAvKiA2NTggKi8KLQkiRVJSTk9fNjU5IiwgLyogNjU5ICovCi0JIkVSUk5PXzY2MCIsIC8qIDY2MCAqLwotCSJFUlJOT182NjEiLCAvKiA2NjEgKi8KLQkiRVJSTk9fNjYyIiwgLyogNjYyICovCi0JIkVSUk5PXzY2MyIsIC8qIDY2MyAqLwotCSJFUlJOT182NjQiLCAvKiA2NjQgKi8KLQkiRVJSTk9fNjY1IiwgLyogNjY1ICovCi0JIkVSUk5PXzY2NiIsIC8qIDY2NiAqLwotCSJFUlJOT182NjciLCAvKiA2NjcgKi8KLQkiRVJSTk9fNjY4IiwgLyogNjY4ICovCi0JIkVSUk5PXzY2OSIsIC8qIDY2OSAqLwotCSJFUlJOT182NzAiLCAvKiA2NzAgKi8KLQkiRVJSTk9fNjcxIiwgLyogNjcxICovCi0JIkVSUk5PXzY3MiIsIC8qIDY3MiAqLwotCSJFUlJOT182NzMiLCAvKiA2NzMgKi8KLQkiRVJSTk9fNjc0IiwgLyogNjc0ICovCi0JIkVSUk5PXzY3NSIsIC8qIDY3NSAqLwotCSJFUlJOT182NzYiLCAvKiA2NzYgKi8KLQkiRVJSTk9fNjc3IiwgLyogNjc3ICovCi0JIkVSUk5PXzY3OCIsIC8qIDY3OCAqLwotCSJFUlJOT182NzkiLCAvKiA2NzkgKi8KLQkiRVJSTk9fNjgwIiwgLyogNjgwICovCi0JIkVSUk5PXzY4MSIsIC8qIDY4MSAqLwotCSJFUlJOT182ODIiLCAvKiA2ODIgKi8KLQkiRVJSTk9fNjgzIiwgLyogNjgzICovCi0JIkVSUk5PXzY4NCIsIC8qIDY4NCAqLwotCSJFUlJOT182ODUiLCAvKiA2ODUgKi8KLQkiRVJSTk9fNjg2IiwgLyogNjg2ICovCi0JIkVSUk5PXzY4NyIsIC8qIDY4NyAqLwotCSJFUlJOT182ODgiLCAvKiA2ODggKi8KLQkiRVJSTk9fNjg5IiwgLyogNjg5ICovCi0JIkVSUk5PXzY5MCIsIC8qIDY5MCAqLwotCSJFUlJOT182OTEiLCAvKiA2OTEgKi8KLQkiRVJSTk9fNjkyIiwgLyogNjkyICovCi0JIkVSUk5PXzY5MyIsIC8qIDY5MyAqLwotCSJFUlJOT182OTQiLCAvKiA2OTQgKi8KLQkiRVJSTk9fNjk1IiwgLyogNjk1ICovCi0JIkVSUk5PXzY5NiIsIC8qIDY5NiAqLwotCSJFUlJOT182OTciLCAvKiA2OTcgKi8KLQkiRVJSTk9fNjk4IiwgLyogNjk4ICovCi0JIkVSUk5PXzY5OSIsIC8qIDY5OSAqLwotCSJFUlJOT183MDAiLCAvKiA3MDAgKi8KLQkiRVJSTk9fNzAxIiwgLyogNzAxICovCi0JIkVSUk5PXzcwMiIsIC8qIDcwMiAqLwotCSJFUlJOT183MDMiLCAvKiA3MDMgKi8KLQkiRVJSTk9fNzA0IiwgLyogNzA0ICovCi0JIkVSUk5PXzcwNSIsIC8qIDcwNSAqLwotCSJFUlJOT183MDYiLCAvKiA3MDYgKi8KLQkiRVJSTk9fNzA3IiwgLyogNzA3ICovCi0JIkVSUk5PXzcwOCIsIC8qIDcwOCAqLwotCSJFUlJOT183MDkiLCAvKiA3MDkgKi8KLQkiRVJSTk9fNzEwIiwgLyogNzEwICovCi0JIkVSUk5PXzcxMSIsIC8qIDcxMSAqLwotCSJFUlJOT183MTIiLCAvKiA3MTIgKi8KLQkiRVJSTk9fNzEzIiwgLyogNzEzICovCi0JIkVSUk5PXzcxNCIsIC8qIDcxNCAqLwotCSJFUlJOT183MTUiLCAvKiA3MTUgKi8KLQkiRVJSTk9fNzE2IiwgLyogNzE2ICovCi0JIkVSUk5PXzcxNyIsIC8qIDcxNyAqLwotCSJFUlJOT183MTgiLCAvKiA3MTggKi8KLQkiRVJSTk9fNzE5IiwgLyogNzE5ICovCi0JIkVSUk5PXzcyMCIsIC8qIDcyMCAqLwotCSJFUlJOT183MjEiLCAvKiA3MjEgKi8KLQkiRVJSTk9fNzIyIiwgLyogNzIyICovCi0JIkVSUk5PXzcyMyIsIC8qIDcyMyAqLwotCSJFUlJOT183MjQiLCAvKiA3MjQgKi8KLQkiRVJSTk9fNzI1IiwgLyogNzI1ICovCi0JIkVSUk5PXzcyNiIsIC8qIDcyNiAqLwotCSJFUlJOT183MjciLCAvKiA3MjcgKi8KLQkiRVJSTk9fNzI4IiwgLyogNzI4ICovCi0JIkVSUk5PXzcyOSIsIC8qIDcyOSAqLwotCSJFUlJOT183MzAiLCAvKiA3MzAgKi8KLQkiRVJSTk9fNzMxIiwgLyogNzMxICovCi0JIkVSUk5PXzczMiIsIC8qIDczMiAqLwotCSJFUlJOT183MzMiLCAvKiA3MzMgKi8KLQkiRVJSTk9fNzM0IiwgLyogNzM0ICovCi0JIkVSUk5PXzczNSIsIC8qIDczNSAqLwotCSJFUlJOT183MzYiLCAvKiA3MzYgKi8KLQkiRVJSTk9fNzM3IiwgLyogNzM3ICovCi0JIkVSUk5PXzczOCIsIC8qIDczOCAqLwotCSJFUlJOT183MzkiLCAvKiA3MzkgKi8KLQkiRVJSTk9fNzQwIiwgLyogNzQwICovCi0JIkVSUk5PXzc0MSIsIC8qIDc0MSAqLwotCSJFUlJOT183NDIiLCAvKiA3NDIgKi8KLQkiRVJSTk9fNzQzIiwgLyogNzQzICovCi0JIkVSUk5PXzc0NCIsIC8qIDc0NCAqLwotCSJFUlJOT183NDUiLCAvKiA3NDUgKi8KLQkiRVJSTk9fNzQ2IiwgLyogNzQ2ICovCi0JIkVSUk5PXzc0NyIsIC8qIDc0NyAqLwotCSJFUlJOT183NDgiLCAvKiA3NDggKi8KLQkiRVJSTk9fNzQ5IiwgLyogNzQ5ICovCi0JIkVSUk5PXzc1MCIsIC8qIDc1MCAqLwotCSJFUlJOT183NTEiLCAvKiA3NTEgKi8KLQkiRVJSTk9fNzUyIiwgLyogNzUyICovCi0JIkVSUk5PXzc1MyIsIC8qIDc1MyAqLwotCSJFUlJOT183NTQiLCAvKiA3NTQgKi8KLQkiRVJSTk9fNzU1IiwgLyogNzU1ICovCi0JIkVSUk5PXzc1NiIsIC8qIDc1NiAqLwotCSJFUlJOT183NTciLCAvKiA3NTcgKi8KLQkiRVJSTk9fNzU4IiwgLyogNzU4ICovCi0JIkVSUk5PXzc1OSIsIC8qIDc1OSAqLwotCSJFUlJOT183NjAiLCAvKiA3NjAgKi8KLQkiRVJSTk9fNzYxIiwgLyogNzYxICovCi0JIkVSUk5PXzc2MiIsIC8qIDc2MiAqLwotCSJFUlJOT183NjMiLCAvKiA3NjMgKi8KLQkiRVJSTk9fNzY0IiwgLyogNzY0ICovCi0JIkVSUk5PXzc2NSIsIC8qIDc2NSAqLwotCSJFUlJOT183NjYiLCAvKiA3NjYgKi8KLQkiRVJSTk9fNzY3IiwgLyogNzY3ICovCi0JIkVSUk5PXzc2OCIsIC8qIDc2OCAqLwotCSJFUlJOT183NjkiLCAvKiA3NjkgKi8KLQkiRVJSTk9fNzcwIiwgLyogNzcwICovCi0JIkVSUk5PXzc3MSIsIC8qIDc3MSAqLwotCSJFUlJOT183NzIiLCAvKiA3NzIgKi8KLQkiRVJSTk9fNzczIiwgLyogNzczICovCi0JIkVSUk5PXzc3NCIsIC8qIDc3NCAqLwotCSJFUlJOT183NzUiLCAvKiA3NzUgKi8KLQkiRVJSTk9fNzc2IiwgLyogNzc2ICovCi0JIkVSUk5PXzc3NyIsIC8qIDc3NyAqLwotCSJFUlJOT183NzgiLCAvKiA3NzggKi8KLQkiRVJSTk9fNzc5IiwgLyogNzc5ICovCi0JIkVSUk5PXzc4MCIsIC8qIDc4MCAqLwotCSJFUlJOT183ODEiLCAvKiA3ODEgKi8KLQkiRVJSTk9fNzgyIiwgLyogNzgyICovCi0JIkVSUk5PXzc4MyIsIC8qIDc4MyAqLwotCSJFUlJOT183ODQiLCAvKiA3ODQgKi8KLQkiRVJSTk9fNzg1IiwgLyogNzg1ICovCi0JIkVSUk5PXzc4NiIsIC8qIDc4NiAqLwotCSJFUlJOT183ODciLCAvKiA3ODcgKi8KLQkiRVJSTk9fNzg4IiwgLyogNzg4ICovCi0JIkVSUk5PXzc4OSIsIC8qIDc4OSAqLwotCSJFUlJOT183OTAiLCAvKiA3OTAgKi8KLQkiRVJSTk9fNzkxIiwgLyogNzkxICovCi0JIkVSUk5PXzc5MiIsIC8qIDc5MiAqLwotCSJFUlJOT183OTMiLCAvKiA3OTMgKi8KLQkiRVJSTk9fNzk0IiwgLyogNzk0ICovCi0JIkVSUk5PXzc5NSIsIC8qIDc5NSAqLwotCSJFUlJOT183OTYiLCAvKiA3OTYgKi8KLQkiRVJSTk9fNzk3IiwgLyogNzk3ICovCi0JIkVSUk5PXzc5OCIsIC8qIDc5OCAqLwotCSJFUlJOT183OTkiLCAvKiA3OTkgKi8KLQkiRVJSTk9fODAwIiwgLyogODAwICovCi0JIkVSUk5PXzgwMSIsIC8qIDgwMSAqLwotCSJFUlJOT184MDIiLCAvKiA4MDIgKi8KLQkiRVJSTk9fODAzIiwgLyogODAzICovCi0JIkVSUk5PXzgwNCIsIC8qIDgwNCAqLwotCSJFUlJOT184MDUiLCAvKiA4MDUgKi8KLQkiRVJSTk9fODA2IiwgLyogODA2ICovCi0JIkVSUk5PXzgwNyIsIC8qIDgwNyAqLwotCSJFUlJOT184MDgiLCAvKiA4MDggKi8KLQkiRVJSTk9fODA5IiwgLyogODA5ICovCi0JIkVSUk5PXzgxMCIsIC8qIDgxMCAqLwotCSJFUlJOT184MTEiLCAvKiA4MTEgKi8KLQkiRVJSTk9fODEyIiwgLyogODEyICovCi0JIkVSUk5PXzgxMyIsIC8qIDgxMyAqLwotCSJFUlJOT184MTQiLCAvKiA4MTQgKi8KLQkiRVJSTk9fODE1IiwgLyogODE1ICovCi0JIkVSUk5PXzgxNiIsIC8qIDgxNiAqLwotCSJFUlJOT184MTciLCAvKiA4MTcgKi8KLQkiRVJSTk9fODE4IiwgLyogODE4ICovCi0JIkVSUk5PXzgxOSIsIC8qIDgxOSAqLwotCSJFUlJOT184MjAiLCAvKiA4MjAgKi8KLQkiRVJSTk9fODIxIiwgLyogODIxICovCi0JIkVSUk5PXzgyMiIsIC8qIDgyMiAqLwotCSJFUlJOT184MjMiLCAvKiA4MjMgKi8KLQkiRVJSTk9fODI0IiwgLyogODI0ICovCi0JIkVSUk5PXzgyNSIsIC8qIDgyNSAqLwotCSJFUlJOT184MjYiLCAvKiA4MjYgKi8KLQkiRVJSTk9fODI3IiwgLyogODI3ICovCi0JIkVSUk5PXzgyOCIsIC8qIDgyOCAqLwotCSJFUlJOT184MjkiLCAvKiA4MjkgKi8KLQkiRVJSTk9fODMwIiwgLyogODMwICovCi0JIkVSUk5PXzgzMSIsIC8qIDgzMSAqLwotCSJFUlJOT184MzIiLCAvKiA4MzIgKi8KLQkiRVJSTk9fODMzIiwgLyogODMzICovCi0JIkVSUk5PXzgzNCIsIC8qIDgzNCAqLwotCSJFUlJOT184MzUiLCAvKiA4MzUgKi8KLQkiRVJSTk9fODM2IiwgLyogODM2ICovCi0JIkVSUk5PXzgzNyIsIC8qIDgzNyAqLwotCSJFUlJOT184MzgiLCAvKiA4MzggKi8KLQkiRVJSTk9fODM5IiwgLyogODM5ICovCi0JIkVSUk5PXzg0MCIsIC8qIDg0MCAqLwotCSJFUlJOT184NDEiLCAvKiA4NDEgKi8KLQkiRVJSTk9fODQyIiwgLyogODQyICovCi0JIkVSUk5PXzg0MyIsIC8qIDg0MyAqLwotCSJFUlJOT184NDQiLCAvKiA4NDQgKi8KLQkiRVJSTk9fODQ1IiwgLyogODQ1ICovCi0JIkVSUk5PXzg0NiIsIC8qIDg0NiAqLwotCSJFUlJOT184NDciLCAvKiA4NDcgKi8KLQkiRVJSTk9fODQ4IiwgLyogODQ4ICovCi0JIkVSUk5PXzg0OSIsIC8qIDg0OSAqLwotCSJFUlJOT184NTAiLCAvKiA4NTAgKi8KLQkiRVJSTk9fODUxIiwgLyogODUxICovCi0JIkVSUk5PXzg1MiIsIC8qIDg1MiAqLwotCSJFUlJOT184NTMiLCAvKiA4NTMgKi8KLQkiRVJSTk9fODU0IiwgLyogODU0ICovCi0JIkVSUk5PXzg1NSIsIC8qIDg1NSAqLwotCSJFUlJOT184NTYiLCAvKiA4NTYgKi8KLQkiRVJSTk9fODU3IiwgLyogODU3ICovCi0JIkVSUk5PXzg1OCIsIC8qIDg1OCAqLwotCSJFUlJOT184NTkiLCAvKiA4NTkgKi8KLQkiRVJSTk9fODYwIiwgLyogODYwICovCi0JIkVSUk5PXzg2MSIsIC8qIDg2MSAqLwotCSJFUlJOT184NjIiLCAvKiA4NjIgKi8KLQkiRVJSTk9fODYzIiwgLyogODYzICovCi0JIkVSUk5PXzg2NCIsIC8qIDg2NCAqLwotCSJFUlJOT184NjUiLCAvKiA4NjUgKi8KLQkiRVJSTk9fODY2IiwgLyogODY2ICovCi0JIkVSUk5PXzg2NyIsIC8qIDg2NyAqLwotCSJFUlJOT184NjgiLCAvKiA4NjggKi8KLQkiRVJSTk9fODY5IiwgLyogODY5ICovCi0JIkVSUk5PXzg3MCIsIC8qIDg3MCAqLwotCSJFUlJOT184NzEiLCAvKiA4NzEgKi8KLQkiRVJSTk9fODcyIiwgLyogODcyICovCi0JIkVSUk5PXzg3MyIsIC8qIDg3MyAqLwotCSJFUlJOT184NzQiLCAvKiA4NzQgKi8KLQkiRVJSTk9fODc1IiwgLyogODc1ICovCi0JIkVSUk5PXzg3NiIsIC8qIDg3NiAqLwotCSJFUlJOT184NzciLCAvKiA4NzcgKi8KLQkiRVJSTk9fODc4IiwgLyogODc4ICovCi0JIkVSUk5PXzg3OSIsIC8qIDg3OSAqLwotCSJFUlJOT184ODAiLCAvKiA4ODAgKi8KLQkiRVJSTk9fODgxIiwgLyogODgxICovCi0JIkVSUk5PXzg4MiIsIC8qIDg4MiAqLwotCSJFUlJOT184ODMiLCAvKiA4ODMgKi8KLQkiRVJSTk9fODg0IiwgLyogODg0ICovCi0JIkVSUk5PXzg4NSIsIC8qIDg4NSAqLwotCSJFUlJOT184ODYiLCAvKiA4ODYgKi8KLQkiRVJSTk9fODg3IiwgLyogODg3ICovCi0JIkVSUk5PXzg4OCIsIC8qIDg4OCAqLwotCSJFUlJOT184ODkiLCAvKiA4ODkgKi8KLQkiRVJSTk9fODkwIiwgLyogODkwICovCi0JIkVSUk5PXzg5MSIsIC8qIDg5MSAqLwotCSJFUlJOT184OTIiLCAvKiA4OTIgKi8KLQkiRVJSTk9fODkzIiwgLyogODkzICovCi0JIkVSUk5PXzg5NCIsIC8qIDg5NCAqLwotCSJFUlJOT184OTUiLCAvKiA4OTUgKi8KLQkiRVJSTk9fODk2IiwgLyogODk2ICovCi0JIkVSUk5PXzg5NyIsIC8qIDg5NyAqLwotCSJFUlJOT184OTgiLCAvKiA4OTggKi8KLQkiRVJSTk9fODk5IiwgLyogODk5ICovCi0JIkVSUk5PXzkwMCIsIC8qIDkwMCAqLwotCSJFUlJOT185MDEiLCAvKiA5MDEgKi8KLQkiRVJSTk9fOTAyIiwgLyogOTAyICovCi0JIkVSUk5PXzkwMyIsIC8qIDkwMyAqLwotCSJFUlJOT185MDQiLCAvKiA5MDQgKi8KLQkiRVJSTk9fOTA1IiwgLyogOTA1ICovCi0JIkVSUk5PXzkwNiIsIC8qIDkwNiAqLwotCSJFUlJOT185MDciLCAvKiA5MDcgKi8KLQkiRVJSTk9fOTA4IiwgLyogOTA4ICovCi0JIkVSUk5PXzkwOSIsIC8qIDkwOSAqLwotCSJFUlJOT185MTAiLCAvKiA5MTAgKi8KLQkiRVJSTk9fOTExIiwgLyogOTExICovCi0JIkVSUk5PXzkxMiIsIC8qIDkxMiAqLwotCSJFUlJOT185MTMiLCAvKiA5MTMgKi8KLQkiRVJSTk9fOTE0IiwgLyogOTE0ICovCi0JIkVSUk5PXzkxNSIsIC8qIDkxNSAqLwotCSJFUlJOT185MTYiLCAvKiA5MTYgKi8KLQkiRVJSTk9fOTE3IiwgLyogOTE3ICovCi0JIkVSUk5PXzkxOCIsIC8qIDkxOCAqLwotCSJFUlJOT185MTkiLCAvKiA5MTkgKi8KLQkiRVJSTk9fOTIwIiwgLyogOTIwICovCi0JIkVSUk5PXzkyMSIsIC8qIDkyMSAqLwotCSJFUlJOT185MjIiLCAvKiA5MjIgKi8KLQkiRVJSTk9fOTIzIiwgLyogOTIzICovCi0JIkVSUk5PXzkyNCIsIC8qIDkyNCAqLwotCSJFUlJOT185MjUiLCAvKiA5MjUgKi8KLQkiRVJSTk9fOTI2IiwgLyogOTI2ICovCi0JIkVSUk5PXzkyNyIsIC8qIDkyNyAqLwotCSJFUlJOT185MjgiLCAvKiA5MjggKi8KLQkiRVJSTk9fOTI5IiwgLyogOTI5ICovCi0JIkVSUk5PXzkzMCIsIC8qIDkzMCAqLwotCSJFUlJOT185MzEiLCAvKiA5MzEgKi8KLQkiRVJSTk9fOTMyIiwgLyogOTMyICovCi0JIkVSUk5PXzkzMyIsIC8qIDkzMyAqLwotCSJFUlJOT185MzQiLCAvKiA5MzQgKi8KLQkiRVJSTk9fOTM1IiwgLyogOTM1ICovCi0JIkVSUk5PXzkzNiIsIC8qIDkzNiAqLwotCSJFUlJOT185MzciLCAvKiA5MzcgKi8KLQkiRVJSTk9fOTM4IiwgLyogOTM4ICovCi0JIkVSUk5PXzkzOSIsIC8qIDkzOSAqLwotCSJFUlJOT185NDAiLCAvKiA5NDAgKi8KLQkiRVJSTk9fOTQxIiwgLyogOTQxICovCi0JIkVSUk5PXzk0MiIsIC8qIDk0MiAqLwotCSJFUlJOT185NDMiLCAvKiA5NDMgKi8KLQkiRVJSTk9fOTQ0IiwgLyogOTQ0ICovCi0JIkVSUk5PXzk0NSIsIC8qIDk0NSAqLwotCSJFUlJOT185NDYiLCAvKiA5NDYgKi8KLQkiRVJSTk9fOTQ3IiwgLyogOTQ3ICovCi0JIkVSUk5PXzk0OCIsIC8qIDk0OCAqLwotCSJFUlJOT185NDkiLCAvKiA5NDkgKi8KLQkiRVJSTk9fOTUwIiwgLyogOTUwICovCi0JIkVSUk5PXzk1MSIsIC8qIDk1MSAqLwotCSJFUlJOT185NTIiLCAvKiA5NTIgKi8KLQkiRVJSTk9fOTUzIiwgLyogOTUzICovCi0JIkVSUk5PXzk1NCIsIC8qIDk1NCAqLwotCSJFUlJOT185NTUiLCAvKiA5NTUgKi8KLQkiRVJSTk9fOTU2IiwgLyogOTU2ICovCi0JIkVSUk5PXzk1NyIsIC8qIDk1NyAqLwotCSJFUlJOT185NTgiLCAvKiA5NTggKi8KLQkiRVJSTk9fOTU5IiwgLyogOTU5ICovCi0JIkVSUk5PXzk2MCIsIC8qIDk2MCAqLwotCSJFUlJOT185NjEiLCAvKiA5NjEgKi8KLQkiRVJSTk9fOTYyIiwgLyogOTYyICovCi0JIkVSUk5PXzk2MyIsIC8qIDk2MyAqLwotCSJFUlJOT185NjQiLCAvKiA5NjQgKi8KLQkiRVJSTk9fOTY1IiwgLyogOTY1ICovCi0JIkVSUk5PXzk2NiIsIC8qIDk2NiAqLwotCSJFUlJOT185NjciLCAvKiA5NjcgKi8KLQkiRVJSTk9fOTY4IiwgLyogOTY4ICovCi0JIkVSUk5PXzk2OSIsIC8qIDk2OSAqLwotCSJFUlJOT185NzAiLCAvKiA5NzAgKi8KLQkiRVJSTk9fOTcxIiwgLyogOTcxICovCi0JIkVSUk5PXzk3MiIsIC8qIDk3MiAqLwotCSJFUlJOT185NzMiLCAvKiA5NzMgKi8KLQkiRVJSTk9fOTc0IiwgLyogOTc0ICovCi0JIkVSUk5PXzk3NSIsIC8qIDk3NSAqLwotCSJFUlJOT185NzYiLCAvKiA5NzYgKi8KLQkiRVJSTk9fOTc3IiwgLyogOTc3ICovCi0JIkVSUk5PXzk3OCIsIC8qIDk3OCAqLwotCSJFUlJOT185NzkiLCAvKiA5NzkgKi8KLQkiRVJSTk9fOTgwIiwgLyogOTgwICovCi0JIkVSUk5PXzk4MSIsIC8qIDk4MSAqLwotCSJFUlJOT185ODIiLCAvKiA5ODIgKi8KLQkiRVJSTk9fOTgzIiwgLyogOTgzICovCi0JIkVSUk5PXzk4NCIsIC8qIDk4NCAqLwotCSJFUlJOT185ODUiLCAvKiA5ODUgKi8KLQkiRVJSTk9fOTg2IiwgLyogOTg2ICovCi0JIkVSUk5PXzk4NyIsIC8qIDk4NyAqLwotCSJFUlJOT185ODgiLCAvKiA5ODggKi8KLQkiRVJSTk9fOTg5IiwgLyogOTg5ICovCi0JIkVSUk5PXzk5MCIsIC8qIDk5MCAqLwotCSJFUlJOT185OTEiLCAvKiA5OTEgKi8KLQkiRVJSTk9fOTkyIiwgLyogOTkyICovCi0JIkVSUk5PXzk5MyIsIC8qIDk5MyAqLwotCSJFUlJOT185OTQiLCAvKiA5OTQgKi8KLQkiRVJSTk9fOTk1IiwgLyogOTk1ICovCi0JIkVSUk5PXzk5NiIsIC8qIDk5NiAqLwotCSJFUlJOT185OTciLCAvKiA5OTcgKi8KLQkiRVJSTk9fOTk4IiwgLyogOTk4ICovCi0JIkVSUk5PXzk5OSIsIC8qIDk5OSAqLwotCSJFQ0FOQ0VMRUQiLCAvKiAxMDAwICovCi0JIkVSUk5PXzEwMDEiLCAvKiAxMDAxICovCi0JIkVSUk5PXzEwMDIiLCAvKiAxMDAyICovCi0JIkVSUk5PXzEwMDMiLCAvKiAxMDAzICovCi0JIkVSUk5PXzEwMDQiLCAvKiAxMDA0ICovCi0JIkVSUk5PXzEwMDUiLCAvKiAxMDA1ICovCi0JIkVSUk5PXzEwMDYiLCAvKiAxMDA2ICovCi0JIkVSUk5PXzEwMDciLCAvKiAxMDA3ICovCi0JIkVSUk5PXzEwMDgiLCAvKiAxMDA4ICovCi0JIkVSUk5PXzEwMDkiLCAvKiAxMDA5ICovCi0JIkVSUk5PXzEwMTAiLCAvKiAxMDEwICovCi0JIkVSUk5PXzEwMTEiLCAvKiAxMDExICovCi0JIkVSUk5PXzEwMTIiLCAvKiAxMDEyICovCi0JIkVSUk5PXzEwMTMiLCAvKiAxMDEzICovCi0JIkVSUk5PXzEwMTQiLCAvKiAxMDE0ICovCi0JIkVSUk5PXzEwMTUiLCAvKiAxMDE1ICovCi0JIkVSUk5PXzEwMTYiLCAvKiAxMDE2ICovCi0JIkVSUk5PXzEwMTciLCAvKiAxMDE3ICovCi0JIkVSUk5PXzEwMTgiLCAvKiAxMDE4ICovCi0JIkVSUk5PXzEwMTkiLCAvKiAxMDE5ICovCi0JIkVSUk5PXzEwMjAiLCAvKiAxMDIwICovCi0JIkVSUk5PXzEwMjEiLCAvKiAxMDIxICovCi0JIkVSUk5PXzEwMjIiLCAvKiAxMDIyICovCi0JIkVSUk5PXzEwMjMiLCAvKiAxMDIzICovCi0JIkVSUk5PXzEwMjQiLCAvKiAxMDI0ICovCi0JIkVSUk5PXzEwMjUiLCAvKiAxMDI1ICovCi0JIkVSUk5PXzEwMjYiLCAvKiAxMDI2ICovCi0JIkVSUk5PXzEwMjciLCAvKiAxMDI3ICovCi0JIkVSUk5PXzEwMjgiLCAvKiAxMDI4ICovCi0JIkVSUk5PXzEwMjkiLCAvKiAxMDI5ICovCi0JIkVSUk5PXzEwMzAiLCAvKiAxMDMwICovCi0JIkVSUk5PXzEwMzEiLCAvKiAxMDMxICovCi0JIkVSUk5PXzEwMzIiLCAvKiAxMDMyICovCi0JIkVSUk5PXzEwMzMiLCAvKiAxMDMzICovCi0JIkVSUk5PXzEwMzQiLCAvKiAxMDM0ICovCi0JIkVSUk5PXzEwMzUiLCAvKiAxMDM1ICovCi0JIkVSUk5PXzEwMzYiLCAvKiAxMDM2ICovCi0JIkVSUk5PXzEwMzciLCAvKiAxMDM3ICovCi0JIkVSUk5PXzEwMzgiLCAvKiAxMDM4ICovCi0JIkVSUk5PXzEwMzkiLCAvKiAxMDM5ICovCi0JIkVSUk5PXzEwNDAiLCAvKiAxMDQwICovCi0JIkVSUk5PXzEwNDEiLCAvKiAxMDQxICovCi0JIkVSUk5PXzEwNDIiLCAvKiAxMDQyICovCi0JIkVSUk5PXzEwNDMiLCAvKiAxMDQzICovCi0JIkVSUk5PXzEwNDQiLCAvKiAxMDQ0ICovCi0JIkVSUk5PXzEwNDUiLCAvKiAxMDQ1ICovCi0JIkVSUk5PXzEwNDYiLCAvKiAxMDQ2ICovCi0JIkVSUk5PXzEwNDciLCAvKiAxMDQ3ICovCi0JIkVSUk5PXzEwNDgiLCAvKiAxMDQ4ICovCi0JIkVSUk5PXzEwNDkiLCAvKiAxMDQ5ICovCi0JIkVSUk5PXzEwNTAiLCAvKiAxMDUwICovCi0JIkVSUk5PXzEwNTEiLCAvKiAxMDUxICovCi0JIkVSUk5PXzEwNTIiLCAvKiAxMDUyICovCi0JIkVSUk5PXzEwNTMiLCAvKiAxMDUzICovCi0JIkVSUk5PXzEwNTQiLCAvKiAxMDU0ICovCi0JIkVSUk5PXzEwNTUiLCAvKiAxMDU1ICovCi0JIkVSUk5PXzEwNTYiLCAvKiAxMDU2ICovCi0JIkVSUk5PXzEwNTciLCAvKiAxMDU3ICovCi0JIkVSUk5PXzEwNTgiLCAvKiAxMDU4ICovCi0JIkVSUk5PXzEwNTkiLCAvKiAxMDU5ICovCi0JIkVSUk5PXzEwNjAiLCAvKiAxMDYwICovCi0JIkVSUk5PXzEwNjEiLCAvKiAxMDYxICovCi0JIkVSUk5PXzEwNjIiLCAvKiAxMDYyICovCi0JIkVSUk5PXzEwNjMiLCAvKiAxMDYzICovCi0JIkVSUk5PXzEwNjQiLCAvKiAxMDY0ICovCi0JIkVSUk5PXzEwNjUiLCAvKiAxMDY1ICovCi0JIkVSUk5PXzEwNjYiLCAvKiAxMDY2ICovCi0JIkVSUk5PXzEwNjciLCAvKiAxMDY3ICovCi0JIkVSUk5PXzEwNjgiLCAvKiAxMDY4ICovCi0JIkVSUk5PXzEwNjkiLCAvKiAxMDY5ICovCi0JIkVSUk5PXzEwNzAiLCAvKiAxMDcwICovCi0JIkVSUk5PXzEwNzEiLCAvKiAxMDcxICovCi0JIkVSUk5PXzEwNzIiLCAvKiAxMDcyICovCi0JIkVSUk5PXzEwNzMiLCAvKiAxMDczICovCi0JIkVSUk5PXzEwNzQiLCAvKiAxMDc0ICovCi0JIkVSUk5PXzEwNzUiLCAvKiAxMDc1ICovCi0JIkVSUk5PXzEwNzYiLCAvKiAxMDc2ICovCi0JIkVSUk5PXzEwNzciLCAvKiAxMDc3ICovCi0JIkVSUk5PXzEwNzgiLCAvKiAxMDc4ICovCi0JIkVSUk5PXzEwNzkiLCAvKiAxMDc5ICovCi0JIkVSUk5PXzEwODAiLCAvKiAxMDgwICovCi0JIkVSUk5PXzEwODEiLCAvKiAxMDgxICovCi0JIkVSUk5PXzEwODIiLCAvKiAxMDgyICovCi0JIkVSUk5PXzEwODMiLCAvKiAxMDgzICovCi0JIkVSUk5PXzEwODQiLCAvKiAxMDg0ICovCi0JIkVSUk5PXzEwODUiLCAvKiAxMDg1ICovCi0JIkVSUk5PXzEwODYiLCAvKiAxMDg2ICovCi0JIkVSUk5PXzEwODciLCAvKiAxMDg3ICovCi0JIkVSUk5PXzEwODgiLCAvKiAxMDg4ICovCi0JIkVSUk5PXzEwODkiLCAvKiAxMDg5ICovCi0JIkVSUk5PXzEwOTAiLCAvKiAxMDkwICovCi0JIkVSUk5PXzEwOTEiLCAvKiAxMDkxICovCi0JIkVSUk5PXzEwOTIiLCAvKiAxMDkyICovCi0JIkVSUk5PXzEwOTMiLCAvKiAxMDkzICovCi0JIkVSUk5PXzEwOTQiLCAvKiAxMDk0ICovCi0JIkVSUk5PXzEwOTUiLCAvKiAxMDk1ICovCi0JIkVSUk5PXzEwOTYiLCAvKiAxMDk2ICovCi0JIkVSUk5PXzEwOTciLCAvKiAxMDk3ICovCi0JIkVSUk5PXzEwOTgiLCAvKiAxMDk4ICovCi0JIkVSUk5PXzEwOTkiLCAvKiAxMDk5ICovCi0JIkVSUk5PXzExMDAiLCAvKiAxMTAwICovCi0JIkVSUk5PXzExMDEiLCAvKiAxMTAxICovCi0JIkVSUk5PXzExMDIiLCAvKiAxMTAyICovCi0JIkVSUk5PXzExMDMiLCAvKiAxMTAzICovCi0JIkVSUk5PXzExMDQiLCAvKiAxMTA0ICovCi0JIkVSUk5PXzExMDUiLCAvKiAxMTA1ICovCi0JIkVSUk5PXzExMDYiLCAvKiAxMTA2ICovCi0JIkVSUk5PXzExMDciLCAvKiAxMTA3ICovCi0JIkVSUk5PXzExMDgiLCAvKiAxMTA4ICovCi0JIkVSUk5PXzExMDkiLCAvKiAxMTA5ICovCi0JIkVSUk5PXzExMTAiLCAvKiAxMTEwICovCi0JIkVSUk5PXzExMTEiLCAvKiAxMTExICovCi0JIkVSUk5PXzExMTIiLCAvKiAxMTEyICovCi0JIkVSUk5PXzExMTMiLCAvKiAxMTEzICovCi0JIkVSUk5PXzExMTQiLCAvKiAxMTE0ICovCi0JIkVSUk5PXzExMTUiLCAvKiAxMTE1ICovCi0JIkVSUk5PXzExMTYiLCAvKiAxMTE2ICovCi0JIkVSUk5PXzExMTciLCAvKiAxMTE3ICovCi0JIkVSUk5PXzExMTgiLCAvKiAxMTE4ICovCi0JIkVSUk5PXzExMTkiLCAvKiAxMTE5ICovCi0JIkVSUk5PXzExMjAiLCAvKiAxMTIwICovCi0JIkVSUk5PXzExMjEiLCAvKiAxMTIxICovCi0JIkVSUk5PXzExMjIiLCAvKiAxMTIyICovCi0JIkVSUk5PXzExMjMiLCAvKiAxMTIzICovCi0JIkVSUk5PXzExMjQiLCAvKiAxMTI0ICovCi0JIkVSUk5PXzExMjUiLCAvKiAxMTI1ICovCi0JIkVSUk5PXzExMjYiLCAvKiAxMTI2ICovCi0JIkVSUk5PXzExMjciLCAvKiAxMTI3ICovCi0JIkVSUk5PXzExMjgiLCAvKiAxMTI4ICovCi0JIkVSUk5PXzExMjkiLCAvKiAxMTI5ICovCi0JIkVSUk5PXzExMzAiLCAvKiAxMTMwICovCi0JIkVSUk5PXzExMzEiLCAvKiAxMTMxICovCi0JIkVSUk5PXzExMzIiLCAvKiAxMTMyICovCi0JIkVEUVVPVCIsIC8qIDExMzMgKi8KLQkiRU1BWEVSUk5PIiwgLyogMTEzNCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuaCBiL3N0cmFjZS9saW51eC9taXBzL2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZDZiOGEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgzOCArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAotCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAotCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAotCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAotCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRNT1VOVCIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUUElEIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTE9TRV9KT1VSTkFMRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVF9GU0VUUk9PVCIsCTB4NzAwN30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0ZTRVRST09UIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVE9QVCIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE9QVCIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfS01MU0laRSIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX1JFQ05PIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRBVFRSIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DUkVBVEUiLAkweDcwMTF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTElOSyIsCTB4NzAxMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19VTkxJTksiLAkweDcwMTN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU1lNTElOSyIsCTB4NzAxNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS0RJUiIsCTB4NzAxNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19STURJUiIsCTB4NzAxNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS05PRCIsCTB4NzAxN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19SRU5BTUUiLAkweDcwMTh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ0xPU0UiLAkweDcwMWF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfSU9QRU4iLAkweDcwMWJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VURVhUQVRUUiIsCTB4NzAxY30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19ERUxFWFRBVFRSIiwJMHg3MDFkfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCi0JeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuc2ggYi9zdHJhY2UvbGludXgvbWlwcy9pb2N0bGVudC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc5ZDJjNy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvbWlwcy9pb2N0bGVudC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLSMhL2Jpbi9zaAotIyBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IE1pY2hhZWwgRWxpemFiZXRoIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0jIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xIDE5OTkvMTEvMDEgMDA6NDY6NDkgd2ljaGVydCBFeHAgJAotCi0jIEZpbGVzIHRvIGZpbmQuCi1maWxlX2ZpbmQ9J2FzbS8qLmggbGludXgvKi5oIHNjc2kvKi5oJwotCi0jIEZpbGVzIHRvIHN0b3AuCi1maWxlX3N0b3A9J2FzbS9ieXRlb3JkZXIuaCBsaW51eC9jb25maWcuaCBsaW51eC9wY2kuaCBsaW51eC94ZC5oJwotCi0jIERlZnMgdG8gZmluZC4KLSMgV29yayBvbiB0aGUga2VybmVsIHNvdXJjZSB0byBjb252ZXJ0IGFsbCB0byBkZl9pb3dyLgotIyBEb24ndCBrbm93IGhvdyB0byBmaW5kIGxvdy1udW1iZXJlZCBpb2N0bHMgaW4gbGludXgvbWMxNDY4MThydGMuaC4KLWRmX25hbWU9J15bCSBdKiNbCSBdKmRlZmluZVsJIF0rW0EtWl9dW0EtWjAtOV9dKlsJIF0rJwotZGZfaW93cj0nX0lPfF9JT1J8X0lPV3xfSU9XUicKLWRmX05OTk49JzBbWHhdKDAzfDA2fDIyfDQ2fDRCfDRDfDUzfDU0fDU2fDg5fDkwKVswLTlBLUZhLWZdWzAtOUEtRmEtZl0nCi1kZl80MzU5PScwW1h4XTQzNTlbMC05QS1GYS1mXVswLTlBLUZhLWZdJwkjIGxpbnV4L2N5Y2xhZGVzLmgKLWRmXzQ3ME49JzQ3MFswLTldJwkJCQkjIGxpbnV4L2ZzLmggICAgICAgIChvbmx5IGluIDEuMi4xMykKLWRmX3NtaXg9J01JWEVSX1JFQUR8TUlYRVJfV1JJVEUnCQkjIGxpbnV4L3NvdW5kY2FyZC5oCi1kZl8xMk5OPScxMlszLTRdWzAtOV0nCQkJCSMgbGludXgvdW1zZG9zX2ZzLmggKG9ubHkgaW4gMS4yLjEzKQotZGZfdGFpbD0nKFsoKQkgXXwkKScKLWRlZl9maW5kPSIkZGZfbmFtZSgkZGZfaW93cnwkZGZfTk5OTnwkZGZfNDM1OXwkZGZfNDcwTnwkZGZfc21peHwkZGZfMTJOTikkZGZfdGFpbCIKLQotIyBEZWZzIHRvIHN0b3AuCi1kc190YWlsPSdfTUFHSUN8X1BBVENIJwotZHNfZmRtcD0nRkQoREVGfEdFVHxTRVQpTUVESUFQUk0nCQkjIGxpbnV4L2ZkLmggYWxpYXNlcyAob25seSBpbiAxLjIuMTMpCi1kc19tdGlvPSdNVElPQyhHRVR8U0VUKUNPTkZJRycJCQkjIGxpbnV4L210aW8uaCBuZWVkcyBjb25maWcgKG9ubHkgaW4gMS4yLjEzKQotZGVmX3N0b3A9IiRkc190YWlsfCRkc19mZG1wfCRkc19tdGlvIgotCi0jIFZhbGlkYXRlIGFyZyBjb3VudC4KLWlmIFsgJCMgLW5lIDEgXQotdGhlbgotCWVjaG8gInVzYWdlOiAkMCBpbmNsdWRlLWRpcmVjdG9yeSIgPiYyCi0JZXhpdCAxCi1maQotCi0jIEdyZXAgdGhyb3VnaCB0aGUgZmlsZXMuCi0oCi0JIyBDb25zdHJ1Y3QgbGlzdDogZmluZCBmaWxlcyBtaW51cyBzdG9wIGZpbGVzLgotCWNkICQxIHx8IGV4aXQKLQlmaWxlX2xpc3Q9YChscyAkZmlsZV9maW5kICRmaWxlX3N0b3AgJGZpbGVfc3RvcCAyPi9kZXYvbnVsbCkgfCBzb3J0IHwgdW5pcSAtdWAKLQotCSMgR3JlcCBtYXRjaGluZyAjZGVmaW5lIGxpbmVzLgotCSMgVHJhbnNmb3JtIHRvIEMgc3RydWN0dXJlIGZvcm0uCi0JIyBGaWx0ZXIgb3V0IHN0b3AgbGlzdC4KLQllZ3JlcCAiJGRlZl9maW5kIiAkZmlsZV9saXN0IHwKLQkJc2VkIC1uIC1lICdzL15cKC4qXCk6I1sJIF0qZGVmaW5lWwkgXSpcKFtBLVpfXVtBLVowLTlfXSpcKS4qJC8JeyAiXDEiLAkiXDIiLAlcMgl9LC9wJyB8Ci0JCWVncmVwIC12ICIkZGVmX3N0b3AiCi0pID4gaW9jdGxlbnQudG1wCi0KLSMgR2VuZXJhdGUgdGhlIG91dHB1dCBmaWxlLgotZWNobyAnLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGlvY3RsZW50LnNoICovJwotZWNobwotZWNobyAnI2luY2x1ZGUgPHN5cy90eXBlcy5oPicKLWVjaG8KLWVjaG8gJy8qIE5lZWRlZCBmb3IgPGxpbnV4L2JheWNvbS5oPiAqLycKLWVjaG8gJyNkZWZpbmUgQkFZQ09NX0RFQlVHJwotZWNobwotZWNobyAnLyogTmVlZGVkIGZvciA8bGludXgvY3ljbGFkZXMuaD4gKi8nCi1lY2hvICcjaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPicKLWVjaG8gJyNpbmNsdWRlIDxsaW51eC90cXVldWUuaD4nCi1lY2hvCi1hd2sgJ3sgcHJpbnQgIiNpbmNsdWRlIDwiIHN1YnN0cigkMiwgMiwgbGVuZ3RoKCQyKSAtIDMpICI+IiB9JyBpb2N0bGVudC50bXAgfCBzb3J0IC11Ci1lY2hvCi1lY2hvICdzdHJ1Y3QgaW9jdGxlbnQgaW9jdGxlbnQgW10gPScKLWVjaG8gJ3snCi1jYXQgaW9jdGxlbnQudG1wCi1lY2hvICd9OycKLQotIyBDbGVhbiB1cC4KLXJtIC1mIGlvY3RsZW50LnRtcApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9zaWduYWxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmNzQ2YS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvbWlwcy9zaWduYWxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0lPVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVU1IxIiwJLyogMTYgKi8KLQkiU0lHVVNSMiIsCS8qIDE3ICovCi0JIlNJR0NITEQiLAkvKiAxOCAqLwotCSJTSUdQV1IiLAkvKiAxOSAqLwotCSJTSUdXSU5DSCIsCS8qIDIwICovCi0JIlNJR1VSRyIsCS8qIDIxICovCi0JIlNJR0lPIiwJLyogMjIgKi8KLQkiU0lHU1RPUCIsCS8qIDIzICovCi0JIlNJR1RTVFAiLAkvKiAyNCAqLwotCSJTSUdDT05UIiwJLyogMjUgKi8KLQkiU0lHVFRJTiIsCS8qIDI2ICovCi0JIlNJR1RUT1UiLAkvKiAyNyAqLwotCSJTSUdWVEFMUk0iLAkvKiAyOCAqLwotCSJTSUdQUk9GIiwJLyogMjkgKi8KLQkiU0lHWENQVSIsCS8qIDMwICovCi0JIlNJR1hGU1oiLAkvKiAzMSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L21pcHMvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWVkYzYyLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9taXBzL3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwMDAgKzAsMCBAQAotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3lzY2FsbCIJfSwgLyogIDAwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXhpdCIJfSwgLyogIDAwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZm9yayIJfSwgLyogIDAwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmVhZCIJfSwgLyogIDAwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfd3JpdGUiCX0sIC8qICAwMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X29wZW4iCX0sIC8qICAwMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2Nsb3NlIgl9LCAvKiAgMDA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF93YWl0Igl9LCAvKiAgMDA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9jcmVhdCIJfSwgLyogIDAwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbGluayIJfSwgLyogIDAwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfdW5saW5rIgl9LCAvKiAgMDEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9leGVjIgl9LCAvKiAgMDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9jaGRpciIJfSwgLyogIDAxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ3RpbWUiCX0sIC8qICAwMTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21rbm9kIgl9LCAvKiAgMDE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9jaG1vZCIJfSwgLyogIDAxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY2hvd24iCX0sIC8qICAwMTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NicmVhayIJfSwgLyogIDAxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3RhdCIJfSwgLyogIDAxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbHNlZWsiCX0sIC8qICAwMTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2dldHBpZCIJfSwgLyogIDAyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbW91bnQiCX0sIC8qICAwMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3Vtb3VudCIJfSwgLyogIDAyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0dWlkIgl9LCAvKiAgMDIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXR1aWQiCX0sIC8qICAwMjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N0aW1lIgl9LCAvKiAgMDI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wdHJhY2UiCX0sIC8qICAwMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FsYXJtIgl9LCAvKiAgMDI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9mc3RhdCIJfSwgLyogIDAyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcGF1c2UiCX0sIC8qICAwMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3V0aW1lIgl9LCAvKiAgMDMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zdHR5Igl9LCAvKiAgMDMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9ndHR5Igl9LCAvKiAgMDMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hY2Nlc3MiCX0sIC8qICAwMzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X25pY2UiCX0sIC8qICAwMzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N0YXRmcyIJfSwgLyogIDAzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3luYyIJfSwgLyogIDAzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfa2lsbCIJfSwgLyogIDAzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZnN0YXRmcyIJfSwgLyogIDAzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0cGdycCIJfSwgLyogIDAzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY3hlbml4Igl9LCAvKiAgMDQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9kdXAiCX0sIC8qICAwNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3BpcGUiCX0sIC8qICAwNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3RpbWVzIgl9LCAvKiAgMDQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wcm9maWwiCX0sIC8qICAwNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3Bsb2NrIgl9LCAvKiAgMDQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zZXRnaWQiCX0sIC8qICAwNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2dldGdpZCIJfSwgLyogIDA0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lnIgl9LCAvKiAgMDQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9tc2dzeXMiCX0sIC8qICAwNDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c21pcHMiCX0sIC8qICAwNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c2FjY3QiCX0sIC8qICAwNTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NobXN5cyIJfSwgLyogIDA1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2Vtc3lzIgl9LCAvKiAgMDUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9pb2N0bCIJfSwgLyogIDA1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfdWFkbWluIgl9LCAvKiAgMDU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9leGNoIgl9LCAvKiAgMDU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF91dHNzeXMiCX0sIC8qICAwNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZzeW5jIgl9LCAvKiAgMDU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9leGVjZSIJfSwgLyogIDA1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfdW1hc2siCX0sIC8qICAwNjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2Nocm9vdCIJfSwgLyogIDA2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZmNudGwiCX0sIC8qICAwNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3VsaW1pdCIJfSwgLyogIDA2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NCIsCX0sIC8qICAwNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUiLAl9LCAvKiAgMDY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2IiwJfSwgLyogIDA2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NyIsCX0sIC8qICAwNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgiLAl9LCAvKiAgMDY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5IiwJfSwgLyogIDA2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYWR2ZnMiCX0sIC8qICAwNzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3VuYWR2ZnMiCX0sIC8qICAwNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzIiLAl9LCAvKiAgMDcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczIiwJfSwgLyogIDA3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmZzdGFydCIJfSwgLyogIDA3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NSIsCX0sIC8qICAwNzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3JkZWJ1ZyIJfSwgLyogIDA3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmZzdG9wIgl9LCAvKiAgMDc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9yZnN5cyIJfSwgLyogIDA3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcm1kaXIiCX0sIC8qICAwNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21rZGlyIgl9LCAvKiAgMDgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRkZW50cyIJfSwgLyogIDA4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbGliYXR0YWNoIgl9LCAvKiAgMDgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9saWJkZXRhY2giCX0sIC8qICAwODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c2ZzIgl9LCAvKiAgMDg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRtc2ciCX0sIC8qICAwODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3B1dG1zZyIJfSwgLyogIDA4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcG9sbCIJfSwgLyogIDA4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbHN0YXQiCX0sIC8qICAwODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5bWxpbmsiCX0sIC8qICAwODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3JlYWRsaW5rIgl9LCAvKiAgMDkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zZXRncm91cHMiCX0sIC8qICAwOTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2dldGdyb3VwcyIJfSwgLyogIDA5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZmNobW9kIgl9LCAvKiAgMDkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9mY2hvd24iCX0sIC8qICAwOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NpZ3Byb2NtYXNrIgl9LCAvKiAgMDk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zaWdzdXNwZW5kIgl9LCAvKiAgMDk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zaWdhbHRzdGFjayIJfSwgLyogIDA5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lnYWN0aW9uIgl9LCAvKiAgMDk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zaWdwZW5kaW5nIgl9LCAvKiAgMDk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zZXRjb250ZXh0Igl9LCAvKiAgMDEwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXZzeXMiCX0sIC8qICAwMTAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9ldnRyYXByZXQiCX0sIC8qICAwMTAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zdGF0dmZzIgl9LCAvKiAgMDEwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZnN0YXR2ZnMiCX0sIC8qICAwMTA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwNSIsCX0sIC8qIDEwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbmZzc3lzIgl9LCAvKiAgMDEwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfd2FpdGlkIgl9LCAvKiAgMDEwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lnc2VuZHNldCIJfSwgLyogIDAxMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2hydHN5cyIJfSwgLyogIDAxMDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FjYW5jZWwiCX0sIC8qICAwMTEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hc3luYyIJfSwgLyogIDAxMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3ByaW9jbnRsc2V0Igl9LCAvKiAgMDExMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcGF0aGNvbmYiCX0sIC8qICAwMTEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9taW5jb3JlIgl9LCAvKiAgMDExNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbW1hcCIJfSwgLyogIDAxMTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21wcm90ZWN0Igl9LCAvKiAgMDExNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbXVubWFwIgl9LCAvKiAgMDExNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZnBhdGhjb25mIgl9LCAvKiAgMDExOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfdmZvcmsiCX0sIC8qICAwMTE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9mY2hkaXIiCX0sIC8qICAwMTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9yZWFkdiIJfSwgLyogIDAxMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3dyaXRldiIJfSwgLyogIDAxMjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3hzdGF0Igl9LCAvKiAgMDEyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbHhzdGF0Igl9LCAvKiAgMDEyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZnhzdGF0Igl9LCAvKiAgMDEyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfeG1rbm9kIgl9LCAvKiAgMDEyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY2xvY2FsIgl9LCAvKiAgMDEyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0cmxpbWl0Igl9LCAvKiAgMDEyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ2V0cmxpbWl0Igl9LCAvKiAgMDEyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbGNob3duIgl9LCAvKiAgMDEzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbWVtY250bCIJfSwgLyogIDAxMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2dldHBtc2ciCX0sIC8qICAwMTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wdXRwbXNnIgl9LCAvKiAgMDEzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmVuYW1lIgl9LCAvKiAgMDEzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbnVuYW1lIgl9LCAvKiAgMDEzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0ZWdpZCIJfSwgLyogIDAxMzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c2NvbmYiCX0sIC8qICAwMTM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hZGp0aW1lIgl9LCAvKiAgMDEzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3lzaW5mbyIJfSwgLyogIDAxMzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwIiwJfSwgLyogMTQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zZXRldWlkIgl9LCAvKiAgMDE0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfUFlSQU1JRF9zdGF0aXMiCX0sIC8qICAwMTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9QWVJBTUlEX3R1bmluZyIJfSwgLyogIDAxNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X1BZUkFNSURfZm9yY2VyciIJfSwgLyogIDAxNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X1BZUkFNSURfbXBjbnRsIgl9LCAvKiAgMDE0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDYiLAl9LCAvKiAxNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3IiwJfSwgLyogMTQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OCIsCX0sIC8qIDE0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkiLAl9LCAvKiAxNDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwIiwJfSwgLyogMTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MSIsCX0sIC8qIDE1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIiLAl9LCAvKiAxNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzIiwJfSwgLyogMTUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NCIsCX0sIC8qIDE1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTUiLAl9LCAvKiAxNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2IiwJfSwgLyogMTU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NyIsCX0sIC8qIDE1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTgiLAl9LCAvKiAxNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5IiwJfSwgLyogMTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MCIsCX0sIC8qIDE2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjEiLAl9LCAvKiAxNjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyIiwJfSwgLyogMTYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MyIsCX0sIC8qIDE2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQiLAl9LCAvKiAxNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1IiwJfSwgLyogMTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIsCX0sIC8qIDE2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjciLAl9LCAvKiAxNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4IiwJfSwgLyogMTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OSIsCX0sIC8qIDE2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzAiLAl9LCAvKiAxNzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxIiwJfSwgLyogMTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MiIsCX0sIC8qIDE3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzMiLAl9LCAvKiAxNzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0IiwJfSwgLyogMTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NSIsCX0sIC8qIDE3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzYiLAl9LCAvKiAxNzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3IiwJfSwgLyogMTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OCIsCX0sIC8qIDE3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzkiLAl9LCAvKiAxNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwIiwJfSwgLyogMTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MSIsCX0sIC8qIDE4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIiLAl9LCAvKiAxODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzIiwJfSwgLyogMTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NCIsCX0sIC8qIDE4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUiLAl9LCAvKiAxODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2IiwJfSwgLyogMTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NyIsCX0sIC8qIDE4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgiLAl9LCAvKiAxODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5IiwJfSwgLyogMTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MCIsCX0sIC8qIDE5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTEiLAl9LCAvKiAxOTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyIiwJfSwgLyogMTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MyIsCX0sIC8qIDE5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQiLAl9LCAvKiAxOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1IiwJfSwgLyogMTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NiIsCX0sIC8qIDE5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTciLAl9LCAvKiAxOTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4IiwJfSwgLyogMTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OSIsCX0sIC8qIDE5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDAiLAl9LCAvKiAyMDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FyZWFkIgl9LCAvKiAgMDIwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYXdyaXRlIgl9LCAvKiAgMDIwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbGlzdGlvIgl9LCAvKiAgMDIwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbWlwc19hY2FuY2VsIgl9LCAvKiAgMDIwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYXN0YXR1cyIJfSwgLyogIDAyMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2F3YWl0Igl9LCAvKiAgMDIwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYXJlYWR2Igl9LCAvKiAgMDIwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYXdyaXRldiIJfSwgLyogIDAyMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjA5IiwJfSwgLyogMjA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMCIsCX0sIC8qIDIxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTEiLAl9LCAvKiAyMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjEyIiwJfSwgLyogMjEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMyIsCX0sIC8qIDIxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTQiLAl9LCAvKiAyMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE1IiwJfSwgLyogMjE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNiIsCX0sIC8qIDIxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTciLAl9LCAvKiAyMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE4IiwJfSwgLyogMjE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOSIsCX0sIC8qIDIxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAiLAl9LCAvKiAyMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIiwJfSwgLyogMjIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIsCX0sIC8qIDIyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiLAl9LCAvKiAyMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0IiwJfSwgLyogMjI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIsCX0sIC8qIDIyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiLAl9LCAvKiAyMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3IiwJfSwgLyogMjI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIsCX0sIC8qIDIyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiLAl9LCAvKiAyMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIiwJfSwgLyogMjMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMSIsCX0sIC8qIDIzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiLAl9LCAvKiAyMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzIiwJfSwgLyogMjMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNCIsCX0sIC8qIDIzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUiLAl9LCAvKiAyMzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2IiwJfSwgLyogMjM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNyIsCX0sIC8qIDIzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgiLAl9LCAvKiAyMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5IiwJfSwgLyogMjM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MCIsCX0sIC8qIDI0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEiCX0sIC8qICAyNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyIgl9LCAvKiAgMjQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MyIJfSwgLyogIDI0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQiCX0sIC8qICAyNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1Igl9LCAvKiAgMjQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NiIJfSwgLyogIDI0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDciCX0sIC8qICAyNDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAgMjQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJfSwgLyogIDI0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAiCX0sIC8qICAyNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAgMjUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MiIJfSwgLyogIDI1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMiCX0sIC8qICAyNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAgMjU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NSIJfSwgLyogIDI1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYiCX0sIC8qICAyNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3Igl9LCAvKiAgMjU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OCIJfSwgLyogIDI1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkiCX0sIC8qICAyNTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwIgl9LCAvKiAgMjYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MSIJfSwgLyogIDI2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIiCX0sIC8qICAyNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAgMjYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJfSwgLyogIDI2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCX0sIC8qICAyNjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAgMjY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJfSwgLyogIDI2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCX0sIC8qICAyNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAgMjY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJfSwgLyogIDI3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCX0sIC8qICAyNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAgMjcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJfSwgLyogIDI3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCX0sIC8qICAyNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAgMjc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJfSwgLyogIDI3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qICAyNzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAgMjc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJfSwgLyogIDI3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCX0sIC8qICAyODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAgMjgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJfSwgLyogIDI4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCX0sIC8qICAyODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAgMjg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogIDI4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qICAyODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAgMjg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogIDI4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qICAyODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAgMjkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogIDI5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qICAyOTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAgMjkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogIDI5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qICAyOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAgMjk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogIDI5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qICAyOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAgMjk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMCIJfSwgLyogIDMwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDEiCX0sIC8qICAzMDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzAyIgl9LCAvKiAgMzAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMyIJfSwgLyogIDMwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDQiCX0sIC8qICAzMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA1Igl9LCAvKiAgMzA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNiIJfSwgLyogIDMwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDciCX0sIC8qICAzMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA4Igl9LCAvKiAgMzA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOSIJfSwgLyogIDMwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTAiCX0sIC8qICAzMTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzExIgl9LCAvKiAgMzExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMiIJfSwgLyogIDMxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTMiCX0sIC8qICAzMTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0Igl9LCAvKiAgMzE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNSIJfSwgLyogIDMxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTYiCX0sIC8qICAzMTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE3Igl9LCAvKiAgMzE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOCIJfSwgLyogIDMxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkiCX0sIC8qICAzMTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzIwIgl9LCAvKiAgMzIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMSIJfSwgLyogIDMyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjIiCX0sIC8qICAzMjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzIzIgl9LCAvKiAgMzIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNCIJfSwgLyogIDMyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUiCX0sIC8qICAzMjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI2Igl9LCAvKiAgMzI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNyIJfSwgLyogIDMyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgiCX0sIC8qICAzMjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5Igl9LCAvKiAgMzI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMCIJfSwgLyogIDMzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzEiCX0sIC8qICAzMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyIgl9LCAvKiAgMzMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMyIJfSwgLyogIDMzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQiCX0sIC8qICAzMzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1Igl9LCAvKiAgMzM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNiIJfSwgLyogIDMzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzciCX0sIC8qICAzMzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4Igl9LCAvKiAgMzM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOSIJfSwgLyogIDMzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDAiCX0sIC8qICAzNDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxIgl9LCAvKiAgMzQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MiIJfSwgLyogIDM0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMiCX0sIC8qICAzNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAgMzQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NSIJfSwgLyogIDM0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYiCX0sIC8qICAzNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAgMzQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OCIJfSwgLyogIDM0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkiCX0sIC8qICAzNDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwIgl9LCAvKiAgMzUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MSIJfSwgLyogIDM1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTIiCX0sIC8qICAzNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzIgl9LCAvKiAgMzUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogIDM1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUiCX0sIC8qICAzNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2Igl9LCAvKiAgMzU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogIDM1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgiCX0sIC8qICAzNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5Igl9LCAvKiAgMzU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MCIJfSwgLyogIDM2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjEiCX0sIC8qICAzNjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyIgl9LCAvKiAgMzYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MyIJfSwgLyogIDM2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qICAzNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1Igl9LCAvKiAgMzY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NiIJfSwgLyogIDM2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qICAzNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4Igl9LCAvKiAgMzY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OSIJfSwgLyogIDM2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAiCX0sIC8qICAzNzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxIgl9LCAvKiAgMzcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MiIJfSwgLyogIDM3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qICAzNzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0Igl9LCAvKiAgMzc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogIDM3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qICAzNzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3Igl9LCAvKiAgMzc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogIDM3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qICAzNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwIgl9LCAvKiAgMzgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MSIJfSwgLyogIDM4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qICAzODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzIgl9LCAvKiAgMzgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogIDM4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qICAzODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2Igl9LCAvKiAgMzg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogIDM4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qICAzODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5Igl9LCAvKiAgMzg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MCIJfSwgLyogIDM5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qICAzOTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyIgl9LCAvKiAgMzkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MyIJfSwgLyogIDM5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qICAzOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1Igl9LCAvKiAgMzk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NiIJfSwgLyogIDM5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qICAzOTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4Igl9LCAvKiAgMzk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OSIJfSwgLyogIDM5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDAiCX0sIC8qICA0MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDAxIgl9LCAvKiAgNDAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwMiIJfSwgLyogIDQwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCX0sIC8qICA0MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDA0Igl9LCAvKiAgNDA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwNSIJfSwgLyogIDQwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDYiCX0sIC8qICA0MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDA3Igl9LCAvKiAgNDA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwOCIJfSwgLyogIDQwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDkiCX0sIC8qICA0MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDEwIgl9LCAvKiAgNDEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxMSIJfSwgLyogIDQxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTIiCX0sIC8qICA0MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDEzIgl9LCAvKiAgNDEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxNCIJfSwgLyogIDQxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTUiCX0sIC8qICA0MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDE2Igl9LCAvKiAgNDE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxNyIJfSwgLyogIDQxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTgiCX0sIC8qICA0MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDE5Igl9LCAvKiAgNDE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMCIJfSwgLyogIDQyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjEiCX0sIC8qICA0MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIyIgl9LCAvKiAgNDIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMyIJfSwgLyogIDQyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjQiCX0sIC8qICA0MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI1Igl9LCAvKiAgNDI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyNiIJfSwgLyogIDQyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjciCX0sIC8qICA0MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI4Igl9LCAvKiAgNDI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOSIJfSwgLyogIDQyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzAiCX0sIC8qICA0MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxIgl9LCAvKiAgNDMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMiIJfSwgLyogIDQzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMiCX0sIC8qICA0MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0Igl9LCAvKiAgNDM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNSIJfSwgLyogIDQzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzYiCX0sIC8qICA0MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3Igl9LCAvKiAgNDM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOCIJfSwgLyogIDQzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzkiCX0sIC8qICA0MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwIgl9LCAvKiAgNDQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MSIJfSwgLyogIDQ0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDIiCX0sIC8qICA0NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzIgl9LCAvKiAgNDQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NCIJfSwgLyogIDQ0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDUiCX0sIC8qICA0NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2Igl9LCAvKiAgNDQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NyIJfSwgLyogIDQ0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDgiCX0sIC8qICA0NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5Igl9LCAvKiAgNDQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MCIJfSwgLyogIDQ1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTEiCX0sIC8qICA0NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyIgl9LCAvKiAgNDUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MyIJfSwgLyogIDQ1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQiCX0sIC8qICA0NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1Igl9LCAvKiAgNDU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NiIJfSwgLyogIDQ1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTciCX0sIC8qICA0NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4Igl9LCAvKiAgNDU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OSIJfSwgLyogIDQ1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjAiCX0sIC8qICA0NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxIgl9LCAvKiAgNDYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MiIJfSwgLyogIDQ2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjMiCX0sIC8qICA0NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0Igl9LCAvKiAgNDY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NSIJfSwgLyogIDQ2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjYiCX0sIC8qICA0NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3Igl9LCAvKiAgNDY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OCIJfSwgLyogIDQ2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjkiCX0sIC8qICA0NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwIgl9LCAvKiAgNDcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MSIJfSwgLyogIDQ3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzIiCX0sIC8qICA0NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczIgl9LCAvKiAgNDczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NCIJfSwgLyogIDQ3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzUiCX0sIC8qICA0NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2Igl9LCAvKiAgNDc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NyIJfSwgLyogIDQ3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzgiCX0sIC8qICA0NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5Igl9LCAvKiAgNDc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MCIJfSwgLyogIDQ4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODEiCX0sIC8qICA0ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyIgl9LCAvKiAgNDgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MyIJfSwgLyogIDQ4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQiCX0sIC8qICA0ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1Igl9LCAvKiAgNDg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NiIJfSwgLyogIDQ4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODciCX0sIC8qICA0ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4Igl9LCAvKiAgNDg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OSIJfSwgLyogIDQ4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTAiCX0sIC8qICA0OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxIgl9LCAvKiAgNDkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MiIJfSwgLyogIDQ5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTMiCX0sIC8qICA0OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0Igl9LCAvKiAgNDk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NSIJfSwgLyogIDQ5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTYiCX0sIC8qICA0OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3Igl9LCAvKiAgNDk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OCIJfSwgLyogIDQ5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTkiCX0sIC8qICA0OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTAwIgl9LCAvKiAgNTAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMSIJfSwgLyogIDUwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDIiCX0sIC8qICA1MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTAzIgl9LCAvKiAgNTAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNCIJfSwgLyogIDUwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDUiCX0sIC8qICA1MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTA2Igl9LCAvKiAgNTA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNyIJfSwgLyogIDUwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDgiCX0sIC8qICA1MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTA5Igl9LCAvKiAgNTA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMCIJfSwgLyogIDUxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTEiCX0sIC8qICA1MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTEyIgl9LCAvKiAgNTEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMyIJfSwgLyogIDUxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTQiCX0sIC8qICA1MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTE1Igl9LCAvKiAgNTE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNiIJfSwgLyogIDUxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTciCX0sIC8qICA1MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTE4Igl9LCAvKiAgNTE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxOSIJfSwgLyogIDUxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjAiCX0sIC8qICA1MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTIxIgl9LCAvKiAgNTIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMiIJfSwgLyogIDUyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjMiCX0sIC8qICA1MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI0Igl9LCAvKiAgNTI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNSIJfSwgLyogIDUyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjYiCX0sIC8qICA1MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI3Igl9LCAvKiAgNTI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyOCIJfSwgLyogIDUyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjkiCX0sIC8qICA1MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMwIgl9LCAvKiAgNTMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMSIJfSwgLyogIDUzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzIiCX0sIC8qICA1MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMzIgl9LCAvKiAgNTMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNCIJfSwgLyogIDUzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzUiCX0sIC8qICA1MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM2Igl9LCAvKiAgNTM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNyIJfSwgLyogIDUzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzgiCX0sIC8qICA1MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM5Igl9LCAvKiAgNTM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MCIJfSwgLyogIDU0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDEiCX0sIC8qICA1NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQyIgl9LCAvKiAgNTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MyIJfSwgLyogIDU0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQiCX0sIC8qICA1NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ1Igl9LCAvKiAgNTQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NiIJfSwgLyogIDU0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDciCX0sIC8qICA1NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ4Igl9LCAvKiAgNTQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OSIJfSwgLyogIDU0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTAiCX0sIC8qICA1NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUxIgl9LCAvKiAgNTUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MiIJfSwgLyogIDU1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTMiCX0sIC8qICA1NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU0Igl9LCAvKiAgNTU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NSIJfSwgLyogIDU1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTYiCX0sIC8qICA1NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU3Igl9LCAvKiAgNTU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OCIJfSwgLyogIDU1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTkiCX0sIC8qICA1NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYwIgl9LCAvKiAgNTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MSIJfSwgLyogIDU2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjIiCX0sIC8qICA1NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYzIgl9LCAvKiAgNTYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NCIJfSwgLyogIDU2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjUiCX0sIC8qICA1NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY2Igl9LCAvKiAgNTY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NyIJfSwgLyogIDU2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjgiCX0sIC8qICA1NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY5Igl9LCAvKiAgNTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MCIJfSwgLyogIDU3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzEiCX0sIC8qICA1NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcyIgl9LCAvKiAgNTcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MyIJfSwgLyogIDU3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQiCX0sIC8qICA1NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc1Igl9LCAvKiAgNTc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NiIJfSwgLyogIDU3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzciCX0sIC8qICA1NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc4Igl9LCAvKiAgNTc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OSIJfSwgLyogIDU3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODAiCX0sIC8qICA1ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgxIgl9LCAvKiAgNTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MiIJfSwgLyogIDU4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODMiCX0sIC8qICA1ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg0Igl9LCAvKiAgNTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NSIJfSwgLyogIDU4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODYiCX0sIC8qICA1ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg3Igl9LCAvKiAgNTg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OCIJfSwgLyogIDU4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODkiCX0sIC8qICA1ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkwIgl9LCAvKiAgNTkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MSIJfSwgLyogIDU5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTIiCX0sIC8qICA1OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkzIgl9LCAvKiAgNTkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NCIJfSwgLyogIDU5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTUiCX0sIC8qICA1OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk2Igl9LCAvKiAgNTk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NyIJfSwgLyogIDU5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTgiCX0sIC8qICA1OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk5Igl9LCAvKiAgNTk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMCIJfSwgLyogIDYwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDEiCX0sIC8qICA2MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjAyIgl9LCAvKiAgNjAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMyIJfSwgLyogIDYwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDQiCX0sIC8qICA2MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjA1Igl9LCAvKiAgNjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNiIJfSwgLyogIDYwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDciCX0sIC8qICA2MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjA4Igl9LCAvKiAgNjA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwOSIJfSwgLyogIDYwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTAiCX0sIC8qICA2MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjExIgl9LCAvKiAgNjExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMiIJfSwgLyogIDYxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTMiCX0sIC8qICA2MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjE0Igl9LCAvKiAgNjE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNSIJfSwgLyogIDYxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTYiCX0sIC8qICA2MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjE3Igl9LCAvKiAgNjE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxOCIJfSwgLyogIDYxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTkiCX0sIC8qICA2MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjIwIgl9LCAvKiAgNjIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMSIJfSwgLyogIDYyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjIiCX0sIC8qICA2MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjIzIgl9LCAvKiAgNjIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNCIJfSwgLyogIDYyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjUiCX0sIC8qICA2MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI2Igl9LCAvKiAgNjI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNyIJfSwgLyogIDYyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjgiCX0sIC8qICA2MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI5Igl9LCAvKiAgNjI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMCIJfSwgLyogIDYzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzEiCX0sIC8qICA2MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMyIgl9LCAvKiAgNjMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMyIJfSwgLyogIDYzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQiCX0sIC8qICA2MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM1Igl9LCAvKiAgNjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNiIJfSwgLyogIDYzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzciCX0sIC8qICA2MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM4Igl9LCAvKiAgNjM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOSIJfSwgLyogIDYzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDAiCX0sIC8qICA2NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQxIgl9LCAvKiAgNjQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MiIJfSwgLyogIDY0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDMiCX0sIC8qICA2NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ0Igl9LCAvKiAgNjQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NSIJfSwgLyogIDY0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDYiCX0sIC8qICA2NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ3Igl9LCAvKiAgNjQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OCIJfSwgLyogIDY0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDkiCX0sIC8qICA2NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUwIgl9LCAvKiAgNjUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MSIJfSwgLyogIDY1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTIiCX0sIC8qICA2NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUzIgl9LCAvKiAgNjUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NCIJfSwgLyogIDY1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTUiCX0sIC8qICA2NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU2Igl9LCAvKiAgNjU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NyIJfSwgLyogIDY1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTgiCX0sIC8qICA2NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU5Igl9LCAvKiAgNjU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MCIJfSwgLyogIDY2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjEiCX0sIC8qICA2NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYyIgl9LCAvKiAgNjYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MyIJfSwgLyogIDY2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQiCX0sIC8qICA2NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY1Igl9LCAvKiAgNjY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NiIJfSwgLyogIDY2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjciCX0sIC8qICA2NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY4Igl9LCAvKiAgNjY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OSIJfSwgLyogIDY2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzAiCX0sIC8qICA2NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcxIgl9LCAvKiAgNjcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MiIJfSwgLyogIDY3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzMiCX0sIC8qICA2NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc0Igl9LCAvKiAgNjc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NSIJfSwgLyogIDY3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzYiCX0sIC8qICA2NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc3Igl9LCAvKiAgNjc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OCIJfSwgLyogIDY3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzkiCX0sIC8qICA2NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgwIgl9LCAvKiAgNjgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MSIJfSwgLyogIDY4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODIiCX0sIC8qICA2ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgzIgl9LCAvKiAgNjgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NCIJfSwgLyogIDY4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODUiCX0sIC8qICA2ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg2Igl9LCAvKiAgNjg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NyIJfSwgLyogIDY4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODgiCX0sIC8qICA2ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg5Igl9LCAvKiAgNjg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MCIJfSwgLyogIDY5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTEiCX0sIC8qICA2OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkyIgl9LCAvKiAgNjkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MyIJfSwgLyogIDY5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQiCX0sIC8qICA2OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk1Igl9LCAvKiAgNjk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NiIJfSwgLyogIDY5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTciCX0sIC8qICA2OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk4Igl9LCAvKiAgNjk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OSIJfSwgLyogIDY5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDAiCX0sIC8qICA3MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzAxIgl9LCAvKiAgNzAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMiIJfSwgLyogIDcwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDMiCX0sIC8qICA3MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzA0Igl9LCAvKiAgNzA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNSIJfSwgLyogIDcwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDYiCX0sIC8qICA3MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzA3Igl9LCAvKiAgNzA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwOCIJfSwgLyogIDcwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDkiCX0sIC8qICA3MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzEwIgl9LCAvKiAgNzEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMSIJfSwgLyogIDcxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTIiCX0sIC8qICA3MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzEzIgl9LCAvKiAgNzEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNCIJfSwgLyogIDcxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTUiCX0sIC8qICA3MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzE2Igl9LCAvKiAgNzE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNyIJfSwgLyogIDcxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTgiCX0sIC8qICA3MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzE5Igl9LCAvKiAgNzE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMCIJfSwgLyogIDcyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjEiCX0sIC8qICA3MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzIyIgl9LCAvKiAgNzIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMyIJfSwgLyogIDcyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjQiCX0sIC8qICA3MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzI1Igl9LCAvKiAgNzI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNiIJfSwgLyogIDcyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjciCX0sIC8qICA3MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzI4Igl9LCAvKiAgNzI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyOSIJfSwgLyogIDcyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzAiCX0sIC8qICA3MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzMxIgl9LCAvKiAgNzMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMiIJfSwgLyogIDczMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzMiCX0sIC8qICA3MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzM0Igl9LCAvKiAgNzM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNSIJfSwgLyogIDczNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzYiCX0sIC8qICA3MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzM3Igl9LCAvKiAgNzM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczOCIJfSwgLyogIDczOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzkiCX0sIC8qICA3MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQwIgl9LCAvKiAgNzQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MSIJfSwgLyogIDc0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDIiCX0sIC8qICA3NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQzIgl9LCAvKiAgNzQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NCIJfSwgLyogIDc0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDUiCX0sIC8qICA3NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQ2Igl9LCAvKiAgNzQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NyIJfSwgLyogIDc0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDgiCX0sIC8qICA3NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQ5Igl9LCAvKiAgNzQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MCIJfSwgLyogIDc1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTEiCX0sIC8qICA3NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzUyIgl9LCAvKiAgNzUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MyIJfSwgLyogIDc1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTQiCX0sIC8qICA3NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzU1Igl9LCAvKiAgNzU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NiIJfSwgLyogIDc1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTciCX0sIC8qICA3NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzU4Igl9LCAvKiAgNzU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1OSIJfSwgLyogIDc1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjAiCX0sIC8qICA3NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzYxIgl9LCAvKiAgNzYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MiIJfSwgLyogIDc2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjMiCX0sIC8qICA3NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzY0Igl9LCAvKiAgNzY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NSIJfSwgLyogIDc2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjYiCX0sIC8qICA3NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzY3Igl9LCAvKiAgNzY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2OCIJfSwgLyogIDc2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjkiCX0sIC8qICA3NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzcwIgl9LCAvKiAgNzcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MSIJfSwgLyogIDc3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzIiCX0sIC8qICA3NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzczIgl9LCAvKiAgNzczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NCIJfSwgLyogIDc3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzUiCX0sIC8qICA3NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzc2Igl9LCAvKiAgNzc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NyIJfSwgLyogIDc3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzgiCX0sIC8qICA3NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzc5Igl9LCAvKiAgNzc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MCIJfSwgLyogIDc4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODEiCX0sIC8qICA3ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzgyIgl9LCAvKiAgNzgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MyIJfSwgLyogIDc4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODQiCX0sIC8qICA3ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzg1Igl9LCAvKiAgNzg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NiIJfSwgLyogIDc4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODciCX0sIC8qICA3ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzg4Igl9LCAvKiAgNzg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4OSIJfSwgLyogIDc4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTAiCX0sIC8qICA3OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzkxIgl9LCAvKiAgNzkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MiIJfSwgLyogIDc5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTMiCX0sIC8qICA3OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzk0Igl9LCAvKiAgNzk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NSIJfSwgLyogIDc5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTYiCX0sIC8qICA3OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzk3Igl9LCAvKiAgNzk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5OCIJfSwgLyogIDc5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTkiCX0sIC8qICA3OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODAwIgl9LCAvKiAgODAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMSIJfSwgLyogIDgwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDIiCX0sIC8qICA4MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODAzIgl9LCAvKiAgODAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNCIJfSwgLyogIDgwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDUiCX0sIC8qICA4MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODA2Igl9LCAvKiAgODA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNyIJfSwgLyogIDgwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDgiCX0sIC8qICA4MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODA5Igl9LCAvKiAgODA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMCIJfSwgLyogIDgxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTEiCX0sIC8qICA4MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODEyIgl9LCAvKiAgODEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMyIJfSwgLyogIDgxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTQiCX0sIC8qICA4MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODE1Igl9LCAvKiAgODE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNiIJfSwgLyogIDgxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTciCX0sIC8qICA4MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODE4Igl9LCAvKiAgODE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxOSIJfSwgLyogIDgxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjAiCX0sIC8qICA4MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODIxIgl9LCAvKiAgODIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMiIJfSwgLyogIDgyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjMiCX0sIC8qICA4MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODI0Igl9LCAvKiAgODI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNSIJfSwgLyogIDgyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjYiCX0sIC8qICA4MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODI3Igl9LCAvKiAgODI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyOCIJfSwgLyogIDgyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjkiCX0sIC8qICA4MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODMwIgl9LCAvKiAgODMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMSIJfSwgLyogIDgzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzIiCX0sIC8qICA4MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODMzIgl9LCAvKiAgODMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNCIJfSwgLyogIDgzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzUiCX0sIC8qICA4MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODM2Igl9LCAvKiAgODM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNyIJfSwgLyogIDgzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzgiCX0sIC8qICA4MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODM5Igl9LCAvKiAgODM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MCIJfSwgLyogIDg0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDEiCX0sIC8qICA4NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQyIgl9LCAvKiAgODQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MyIJfSwgLyogIDg0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDQiCX0sIC8qICA4NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQ1Igl9LCAvKiAgODQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NiIJfSwgLyogIDg0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDciCX0sIC8qICA4NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQ4Igl9LCAvKiAgODQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0OSIJfSwgLyogIDg0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTAiCX0sIC8qICA4NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODUxIgl9LCAvKiAgODUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MiIJfSwgLyogIDg1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTMiCX0sIC8qICA4NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODU0Igl9LCAvKiAgODU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NSIJfSwgLyogIDg1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTYiCX0sIC8qICA4NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODU3Igl9LCAvKiAgODU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1OCIJfSwgLyogIDg1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTkiCX0sIC8qICA4NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODYwIgl9LCAvKiAgODYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MSIJfSwgLyogIDg2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjIiCX0sIC8qICA4NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODYzIgl9LCAvKiAgODYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NCIJfSwgLyogIDg2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjUiCX0sIC8qICA4NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODY2Igl9LCAvKiAgODY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NyIJfSwgLyogIDg2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjgiCX0sIC8qICA4NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODY5Igl9LCAvKiAgODY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MCIJfSwgLyogIDg3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzEiCX0sIC8qICA4NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODcyIgl9LCAvKiAgODcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MyIJfSwgLyogIDg3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzQiCX0sIC8qICA4NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODc1Igl9LCAvKiAgODc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NiIJfSwgLyogIDg3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzciCX0sIC8qICA4NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODc4Igl9LCAvKiAgODc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3OSIJfSwgLyogIDg3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODAiCX0sIC8qICA4ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODgxIgl9LCAvKiAgODgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MiIJfSwgLyogIDg4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODMiCX0sIC8qICA4ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODg0Igl9LCAvKiAgODg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NSIJfSwgLyogIDg4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODYiCX0sIC8qICA4ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODg3Igl9LCAvKiAgODg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4OCIJfSwgLyogIDg4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODkiCX0sIC8qICA4ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODkwIgl9LCAvKiAgODkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MSIJfSwgLyogIDg5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTIiCX0sIC8qICA4OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODkzIgl9LCAvKiAgODkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NCIJfSwgLyogIDg5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTUiCX0sIC8qICA4OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODk2Igl9LCAvKiAgODk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NyIJfSwgLyogIDg5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTgiCX0sIC8qICA4OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODk5Igl9LCAvKiAgODk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMCIJfSwgLyogIDkwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDEiCX0sIC8qICA5MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTAyIgl9LCAvKiAgOTAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMyIJfSwgLyogIDkwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDQiCX0sIC8qICA5MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTA1Igl9LCAvKiAgOTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNiIJfSwgLyogIDkwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDciCX0sIC8qICA5MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTA4Igl9LCAvKiAgOTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwOSIJfSwgLyogIDkwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTAiCX0sIC8qICA5MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTExIgl9LCAvKiAgOTExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMiIJfSwgLyogIDkxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTMiCX0sIC8qICA5MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTE0Igl9LCAvKiAgOTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNSIJfSwgLyogIDkxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTYiCX0sIC8qICA5MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTE3Igl9LCAvKiAgOTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxOCIJfSwgLyogIDkxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTkiCX0sIC8qICA5MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTIwIgl9LCAvKiAgOTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMSIJfSwgLyogIDkyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjIiCX0sIC8qICA5MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTIzIgl9LCAvKiAgOTIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNCIJfSwgLyogIDkyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjUiCX0sIC8qICA5MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTI2Igl9LCAvKiAgOTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNyIJfSwgLyogIDkyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjgiCX0sIC8qICA5MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTI5Igl9LCAvKiAgOTI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMCIJfSwgLyogIDkzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzEiCX0sIC8qICA5MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTMyIgl9LCAvKiAgOTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMyIJfSwgLyogIDkzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzQiCX0sIC8qICA5MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTM1Igl9LCAvKiAgOTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNiIJfSwgLyogIDkzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzciCX0sIC8qICA5MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTM4Igl9LCAvKiAgOTM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzOSIJfSwgLyogIDkzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDAiCX0sIC8qICA5NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQxIgl9LCAvKiAgOTQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MiIJfSwgLyogIDk0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDMiCX0sIC8qICA5NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQ0Igl9LCAvKiAgOTQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NSIJfSwgLyogIDk0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDYiCX0sIC8qICA5NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQ3Igl9LCAvKiAgOTQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0OCIJfSwgLyogIDk0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDkiCX0sIC8qICA5NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTUwIgl9LCAvKiAgOTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MSIJfSwgLyogIDk1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTIiCX0sIC8qICA5NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTUzIgl9LCAvKiAgOTUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NCIJfSwgLyogIDk1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTUiCX0sIC8qICA5NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTU2Igl9LCAvKiAgOTU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NyIJfSwgLyogIDk1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTgiCX0sIC8qICA5NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTU5Igl9LCAvKiAgOTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MCIJfSwgLyogIDk2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjEiCX0sIC8qICA5NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTYyIgl9LCAvKiAgOTYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MyIJfSwgLyogIDk2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjQiCX0sIC8qICA5NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTY1Igl9LCAvKiAgOTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NiIJfSwgLyogIDk2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjciCX0sIC8qICA5NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTY4Igl9LCAvKiAgOTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2OSIJfSwgLyogIDk2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzAiCX0sIC8qICA5NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTcxIgl9LCAvKiAgOTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MiIJfSwgLyogIDk3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzMiCX0sIC8qICA5NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTc0Igl9LCAvKiAgOTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NSIJfSwgLyogIDk3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzYiCX0sIC8qICA5NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTc3Igl9LCAvKiAgOTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3OCIJfSwgLyogIDk3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzkiCX0sIC8qICA5NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTgwIgl9LCAvKiAgOTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MSIJfSwgLyogIDk4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODIiCX0sIC8qICA5ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTgzIgl9LCAvKiAgOTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NCIJfSwgLyogIDk4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODUiCX0sIC8qICA5ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTg2Igl9LCAvKiAgOTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NyIJfSwgLyogIDk4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODgiCX0sIC8qICA5ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTg5Igl9LCAvKiAgOTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MCIJfSwgLyogIDk5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTEiCX0sIC8qICA5OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTkyIgl9LCAvKiAgOTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MyIJfSwgLyogIDk5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTQiCX0sIC8qICA5OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTk1Igl9LCAvKiAgOTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NiIJfSwgLyogIDk5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTciCX0sIC8qICA5OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTk4Igl9LCAvKiAgOTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5OSIJfSwgLyogIDk5OSAqLyAvKiBlbmQgb2YgU1ZSNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3lzY2FsbCIJfSwgLyogMTAwMCAqLyAvKiBzdGFydCBvZiBTWVNWICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9leGl0Igl9LCAvKiAxMDAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mb3JrIgl9LCAvKiAxMDAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9yZWFkIgl9LCAvKiAxMDAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl93cml0ZSIJfSwgLyogMTAwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfb3BlbiIJfSwgLyogMTAwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfY2xvc2UiCX0sIC8qIDEwMDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3dhaXQiCX0sIC8qIDEwMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2NyZWF0Igl9LCAvKiAxMDA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9saW5rIgl9LCAvKiAxMDA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl91bmxpbmsiCX0sIC8qIDEwMTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2V4ZWN2Igl9LCAvKiAxMDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jaGRpciIJfSwgLyogMTAxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdGltZSIJfSwgLyogMTAxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbWtub2QiCX0sIC8qIDEwMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2NobW9kIgl9LCAvKiAxMDE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jaG93biIJfSwgLyogMTAxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYnJrIgl9LCAvKiAxMDE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zdGF0Igl9LCAvKiAxMDE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9sc2VlayIJfSwgLyogMTAxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cGlkIgl9LCAvKiAxMDIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9tb3VudCIJfSwgLyogMTAyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdW1vdW50Igl9LCAvKiAxMDIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXR1aWQiCX0sIC8qIDEwMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHVpZCIJfSwgLyogMTAyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3RpbWUiCX0sIC8qIDEwMjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3B0cmFjZSIJfSwgLyogMTAyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYWxhcm0iCX0sIC8qIDEwMjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZzdGF0Igl9LCAvKiAxMDI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wYXVzZSIJfSwgLyogMTAyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdXRpbWUiCX0sIC8qIDEwMzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N0dHkiCX0sIC8qIDEwMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2d0dHkiCX0sIC8qIDEwMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2FjY2VzcyIJfSwgLyogMTAzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbmljZSIJfSwgLyogMTAzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3RhdGZzIgl9LCAvKiAxMDM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zeW5jIgl9LCAvKiAxMDM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9raWxsIgl9LCAvKiAxMDM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mc3RhdGZzIgl9LCAvKiAxMDM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRwZ3JwIgl9LCAvKiAxMDM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zeXNzZ2kiCX0sIC8qIDEwNDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2R1cCIJfSwgLyogMTA0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcGlwZSIJfSwgLyogMTA0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdGltZXMiCX0sIC8qIDEwNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Byb2ZpbCIJfSwgLyogMTA0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcGxvY2siCX0sIC8qIDEwNDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldGdpZCIJfSwgLyogMTA0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0Z2lkIgl9LCAvKiAxMDQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWciCX0sIC8qIDEwNDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X21zZ3N5cyIJfSwgLyogMTA0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3lzbWlwcyIJfSwgLyogMTA1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYWNjdCIJfSwgLyogMTA1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2htc3lzIgl9LCAvKiAxMDUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZW1zeXMiCX0sIC8qIDEwNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2lvY3RsIgl9LCAvKiAxMDU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl91YWRtaW4iCX0sIC8qIDEwNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N5c21wIgl9LCAvKiAxMDU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl91dHNzeXMiCX0sIC8qIDEwNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA1OCIsCX0sIC8qIDEwNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2V4ZWN2ZSIJfSwgLyogMTA1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdW1hc2siCX0sIC8qIDEwNjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Nocm9vdCIJfSwgLyogMTA2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZmNudGwiCX0sIC8qIDEwNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3VsaW1pdCIJfSwgLyogMTA2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY0IiwJfSwgLyogMTA2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY1IiwJfSwgLyogMTA2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY2IiwJfSwgLyogMTA2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY3IiwJfSwgLyogMTA2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY4IiwJfSwgLyogMTA2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDY5IiwJfSwgLyogMTA2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYWR2ZnMiCX0sIC8qIDEwNzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3VuYWR2ZnMiCX0sIC8qIDEwNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Jtb3VudCIJfSwgLyogMTA3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcnVtb3VudCIJfSwgLyogMTA3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmZzdGFydCIJfSwgLyogMTA3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cmxpbWl0NjQiCX0sIC8qIDEwNzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldHJsaW1pdDY0Igl9LCAvKiAxMDc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9uYW5vc2xlZXAiCX0sIC8qIDEwNzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2xzZWVrNjQiCX0sIC8qIDEwNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JtZGlyIgl9LCAvKiAxMDc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9ta2RpciIJfSwgLyogMTA4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0ZGVudHMiCX0sIC8qIDEwODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NnaW5hcCIJfSwgLyogMTA4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2dpa29wdCIJfSwgLyogMTA4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3lzZnMiCX0sIC8qIDEwODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldG1zZyIJfSwgLyogMTA4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcHV0bXNnIgl9LCAvKiAxMDg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wb2xsIgl9LCAvKiAxMDg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdyZXR1cm4iCX0sIC8qIDEwODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2FjY2VwdCIJfSwgLyogMTA4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYmluZCIJfSwgLyogMTA5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfY29ubmVjdCIJfSwgLyogMTA5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0aG9zdGlkIgl9LCAvKiAxMDkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRwZWVybmFtZSIJfSwgLyogMTA5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0c29ja25hbWUiCX0sIC8qIDEwOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHNvY2tvcHQiCX0sIC8qIDEwOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2xpc3RlbiIJfSwgLyogMTA5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmVjdiIJfSwgLyogMTA5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmVjdmZyb20iCX0sIC8qIDEwOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JlY3Ztc2ciCX0sIC8qIDEwOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NlbGVjdCIJfSwgLyogMTEwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2VuZCIJfSwgLyogMTEwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2VuZG1zZyIJfSwgLyogMTEwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2VuZHRvIgl9LCAvKiAxMTAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRob3N0aWQiCX0sIC8qIDExMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldHNvY2tvcHQiCX0sIC8qIDExMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NodXRkb3duIgl9LCAvKiAxMTA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zb2NrZXQiCX0sIC8qIDExMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGhvc3RuYW1lIgl9LCAvKiAxMTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRob3N0bmFtZSIJfSwgLyogMTEwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMTExMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0ZG9tYWlubmFtZSIJfSwgLyogMTExMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdHJ1bmNhdGUiCX0sIC8qIDExMTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Z0cnVuY2F0ZSIJfSwgLyogMTExMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmVuYW1lIgl9LCAvKiAxMTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zeW1saW5rIgl9LCAvKiAxMTE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9yZWFkbGluayIJfSwgLyogMTExNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbHN0YXQiCX0sIC8qIDExMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X25mc21vdW50Igl9LCAvKiAxMTE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9uZnNzdmMiCX0sIC8qIDExMTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGZoIgl9LCAvKiAxMTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9hc3luY19kYWVtb24iCX0sIC8qIDExMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2V4cG9ydGZzIgl9LCAvKiAxMTIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRyZWdpZCIJfSwgLyogMTEyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0cmV1aWQiCX0sIC8qIDExMjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGl0aW1lciIJfSwgLyogMTEyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0aXRpbWVyIgl9LCAvKiAxMTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9hZGp0aW1lIgl9LCAvKiAxMTI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9CU0RfZ2V0aW1lIgl9LCAvKiAxMTI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zcHJvYyIJfSwgLyogMTEyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcHJjdGwiCX0sIC8qIDExMzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Byb2NibGsiCX0sIC8qIDExMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Nwcm9jc3AiCX0sIC8qIDExMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NnaWdzYyIJfSwgLyogMTEzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbW1hcCIJfSwgLyogMTEzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbXVubWFwIgl9LCAvKiAxMTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9tcHJvdGVjdCIJfSwgLyogMTEzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbXN5bmMiCX0sIC8qIDExMzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X21hZHZpc2UiCX0sIC8qIDExMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3BhZ2Vsb2NrIgl9LCAvKiAxMTM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRwYWdlc2l6ZSIJfSwgLyogMTE0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcXVvdGFjdGwiCX0sIC8qIDExNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2xpYmRldGFjaCIJfSwgLyogMTE0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfQlNEZ2V0cGdycCIJfSwgLyogMTE0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfQlNEc2V0cGdycCIJfSwgLyogMTE0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfdmhhbmd1cCIJfSwgLyogMTE0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZnN5bmMiCX0sIC8qIDExNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZjaGRpciIJfSwgLyogMTE0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cmxpbWl0Igl9LCAvKiAxMTQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRybGltaXQiCX0sIC8qIDExNDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2NhY2hlZmx1c2giCX0sIC8qIDExNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2NhY2hlY3RsIgl9LCAvKiAxMTUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mY2hvd24iCX0sIC8qIDExNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZjaG1vZCIJfSwgLyogMTE1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfd2FpdDMiCX0sIC8qIDExNTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NvY2tldHBhaXIiCX0sIC8qIDExNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N5c2luZm8iCX0sIC8qIDExNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X251bmFtZSIJfSwgLyogMTE1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfeHN0YXQiCX0sIC8qIDExNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2x4c3RhdCIJfSwgLyogMTE1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZnhzdGF0Igl9LCAvKiAxMTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl94bWtub2QiCX0sIC8qIDExNjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2tzaWdhY3Rpb24iCX0sIC8qIDExNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NpZ3BlbmRpbmciCX0sIC8qIDExNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NpZ3Byb2NtYXNrIgl9LCAvKiAxMTY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdzdXNwZW5kIgl9LCAvKiAxMTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdwb2xsIgl9LCAvKiAxMTY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zd2FwY3RsIgl9LCAvKiAxMTY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRjb250ZXh0Igl9LCAvKiAxMTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRjb250ZXh0Igl9LCAvKiAxMTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl93YWl0c3lzIgl9LCAvKiAxMTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdzdGFjayIJfSwgLyogMTE3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lnYWx0c3RhY2siCX0sIC8qIDExNzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NpZ3NlbmRzZXQiCX0sIC8qIDExNzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N0YXR2ZnMiCX0sIC8qIDExNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZzdGF0dmZzIgl9LCAvKiAxMTc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRwbXNnIgl9LCAvKiAxMTc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wdXRwbXNnIgl9LCAvKiAxMTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9sY2hvd24iCX0sIC8qIDExNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3ByaW9jbnRsIgl9LCAvKiAxMTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9rc2lncXVldWUiCX0sIC8qIDExODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JlYWR2Igl9LCAvKiAxMTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl93cml0ZXYiCX0sIC8qIDExODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3RydW5jYXRlNjQiCX0sIC8qIDExODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Z0cnVuY2F0ZTY0Igl9LCAvKiAxMTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9tbWFwNjQiCX0sIC8qIDExODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2RtaSIJfSwgLyogMTE4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcHJlYWQiCX0sIC8qIDExODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3B3cml0ZSIJfSwgLyogMTE4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTg5Igl9LCAvKiAxMTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTAiCX0sIC8qIDExOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5MSIJfSwgLyogMTE5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTkyIgl9LCAvKiAxMTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTMiCX0sIC8qIDExOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5NCIJfSwgLyogMTE5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTk1Igl9LCAvKiAxMTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTYiCX0sIC8qIDExOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5NyIJfSwgLyogMTE5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTk4Igl9LCAvKiAxMTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTkiCX0sIC8qIDExOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwMCIJfSwgLyogMTIwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjAxIgl9LCAvKiAxMjAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDIiCX0sIC8qIDEyMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwMyIJfSwgLyogMTIwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjA0Igl9LCAvKiAxMjA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDUiCX0sIC8qIDEyMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwNiIJfSwgLyogMTIwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjA3Igl9LCAvKiAxMjA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDgiCX0sIC8qIDEyMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwOSIJfSwgLyogMTIwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjEwIgl9LCAvKiAxMjEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTEiCX0sIC8qIDEyMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxMiIJfSwgLyogMTIxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjEzIgl9LCAvKiAxMjEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTQiCX0sIC8qIDEyMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxNSIJfSwgLyogMTIxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjE2Igl9LCAvKiAxMjE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTciCX0sIC8qIDEyMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxOCIJfSwgLyogMTIxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjE5Igl9LCAvKiAxMjE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjAiCX0sIC8qIDEyMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyMSIJfSwgLyogMTIyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjIyIgl9LCAvKiAxMjIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjMiCX0sIC8qIDEyMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyNCIJfSwgLyogMTIyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjI1Igl9LCAvKiAxMjI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjYiCX0sIC8qIDEyMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyNyIJfSwgLyogMTIyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjI4Igl9LCAvKiAxMjI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjkiCX0sIC8qIDEyMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzMCIJfSwgLyogMTIzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMxIgl9LCAvKiAxMjMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzIiCX0sIC8qIDEyMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzMyIJfSwgLyogMTIzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjM0Igl9LCAvKiAxMjM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzUiCX0sIC8qIDEyMzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzNiIJfSwgLyogMTIzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjM3Igl9LCAvKiAxMjM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzgiCX0sIC8qIDEyMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzOSIJfSwgLyogMTIzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQwIgl9LCAvKiAxMjQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDEiCX0sIC8qIDEyNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0MiIJfSwgLyogMTI0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQzIgl9LCAvKiAxMjQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDQiCX0sIC8qIDEyNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0NSIJfSwgLyogMTI0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQ2Igl9LCAvKiAxMjQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDciCX0sIC8qIDEyNDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0OCIJfSwgLyogMTI0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQ5Igl9LCAvKiAxMjQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTAiCX0sIC8qIDEyNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1MSIJfSwgLyogMTI1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjUyIgl9LCAvKiAxMjUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTMiCX0sIC8qIDEyNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1NCIJfSwgLyogMTI1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjU1Igl9LCAvKiAxMjU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTYiCX0sIC8qIDEyNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1NyIJfSwgLyogMTI1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjU4Igl9LCAvKiAxMjU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTkiCX0sIC8qIDEyNTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2MCIJfSwgLyogMTI2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjYxIgl9LCAvKiAxMjYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjIiCX0sIC8qIDEyNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2MyIJfSwgLyogMTI2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjY0Igl9LCAvKiAxMjY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjUiCX0sIC8qIDEyNjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2NiIJfSwgLyogMTI2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjY3Igl9LCAvKiAxMjY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjgiCX0sIC8qIDEyNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2OSIJfSwgLyogMTI2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjcwIgl9LCAvKiAxMjcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzEiCX0sIC8qIDEyNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3MiIJfSwgLyogMTI3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjczIgl9LCAvKiAxMjczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzQiCX0sIC8qIDEyNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3NSIJfSwgLyogMTI3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc2Igl9LCAvKiAxMjc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzciCX0sIC8qIDEyNzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3OCIJfSwgLyogMTI3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc5Igl9LCAvKiAxMjc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODAiCX0sIC8qIDEyODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4MSIJfSwgLyogMTI4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjgyIgl9LCAvKiAxMjgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODMiCX0sIC8qIDEyODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NCIJfSwgLyogMTI4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg1Igl9LCAvKiAxMjg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODYiCX0sIC8qIDEyODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NyIJfSwgLyogMTI4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg4Igl9LCAvKiAxMjg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODkiCX0sIC8qIDEyODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MCIJfSwgLyogMTI5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjkxIgl9LCAvKiAxMjkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTIiCX0sIC8qIDEyOTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MyIJfSwgLyogMTI5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk0Igl9LCAvKiAxMjk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTUiCX0sIC8qIDEyOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5NiIJfSwgLyogMTI5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk3Igl9LCAvKiAxMjk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTgiCX0sIC8qIDEyOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5OSIJfSwgLyogMTI5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAwIgl9LCAvKiAxMzAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDEiCX0sIC8qIDEzMDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwMiIJfSwgLyogMTMwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAzIgl9LCAvKiAxMzAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDQiCX0sIC8qIDEzMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwNSIJfSwgLyogMTMwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzA2Igl9LCAvKiAxMzA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDciCX0sIC8qIDEzMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwOCIJfSwgLyogMTMwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzA5Igl9LCAvKiAxMzA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTAiCX0sIC8qIDEzMTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxMSIJfSwgLyogMTMxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzEyIgl9LCAvKiAxMzEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTMiCX0sIC8qIDEzMTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxNCIJfSwgLyogMTMxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzE1Igl9LCAvKiAxMzE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTYiCX0sIC8qIDEzMTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxNyIJfSwgLyogMTMxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzE4Igl9LCAvKiAxMzE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTkiCX0sIC8qIDEzMTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyMCIJfSwgLyogMTMyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzIxIgl9LCAvKiAxMzIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjIiCX0sIC8qIDEzMjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyMyIJfSwgLyogMTMyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzI0Igl9LCAvKiAxMzI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjUiCX0sIC8qIDEzMjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyNiIJfSwgLyogMTMyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzI3Igl9LCAvKiAxMzI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjgiCX0sIC8qIDEzMjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyOSIJfSwgLyogMTMyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzMwIgl9LCAvKiAxMzMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzEiCX0sIC8qIDEzMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzMiIJfSwgLyogMTMzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzMzIgl9LCAvKiAxMzMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzQiCX0sIC8qIDEzMzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzNSIJfSwgLyogMTMzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzM2Igl9LCAvKiAxMzM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzciCX0sIC8qIDEzMzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzOCIJfSwgLyogMTMzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzM5Igl9LCAvKiAxMzM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDAiCX0sIC8qIDEzNDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0MSIJfSwgLyogMTM0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQyIgl9LCAvKiAxMzQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDMiCX0sIC8qIDEzNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0NCIJfSwgLyogMTM0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQ1Igl9LCAvKiAxMzQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDYiCX0sIC8qIDEzNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0NyIJfSwgLyogMTM0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQ4Igl9LCAvKiAxMzQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDkiCX0sIC8qIDEzNDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1MCIJfSwgLyogMTM1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzUxIgl9LCAvKiAxMzUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTIiCX0sIC8qIDEzNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1MyIJfSwgLyogMTM1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzU0Igl9LCAvKiAxMzU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTUiCX0sIC8qIDEzNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1NiIJfSwgLyogMTM1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzU3Igl9LCAvKiAxMzU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTgiCX0sIC8qIDEzNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1OSIJfSwgLyogMTM1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzYwIgl9LCAvKiAxMzYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjEiCX0sIC8qIDEzNjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2MiIJfSwgLyogMTM2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzYzIgl9LCAvKiAxMzYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjQiCX0sIC8qIDEzNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2NSIJfSwgLyogMTM2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzY2Igl9LCAvKiAxMzY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjciCX0sIC8qIDEzNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2OCIJfSwgLyogMTM2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzY5Igl9LCAvKiAxMzY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzAiCX0sIC8qIDEzNzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3MSIJfSwgLyogMTM3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzcyIgl9LCAvKiAxMzcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzMiCX0sIC8qIDEzNzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3NCIJfSwgLyogMTM3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzc1Igl9LCAvKiAxMzc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzYiCX0sIC8qIDEzNzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3NyIJfSwgLyogMTM3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzc4Igl9LCAvKiAxMzc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzkiCX0sIC8qIDEzNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4MCIJfSwgLyogMTM4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzgxIgl9LCAvKiAxMzgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODIiCX0sIC8qIDEzODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4MyIJfSwgLyogMTM4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzg0Igl9LCAvKiAxMzg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODUiCX0sIC8qIDEzODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4NiIJfSwgLyogMTM4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzg3Igl9LCAvKiAxMzg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODgiCX0sIC8qIDEzODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4OSIJfSwgLyogMTM4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzkwIgl9LCAvKiAxMzkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTEiCX0sIC8qIDEzOTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5MiIJfSwgLyogMTM5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzkzIgl9LCAvKiAxMzkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTQiCX0sIC8qIDEzOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5NSIJfSwgLyogMTM5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzk2Igl9LCAvKiAxMzk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTciCX0sIC8qIDEzOTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5OCIJfSwgLyogMTM5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzk5Igl9LCAvKiAxMzk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDAiCX0sIC8qIDE0MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwMSIJfSwgLyogMTQwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAyIgl9LCAvKiAxNDAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDMiCX0sIC8qIDE0MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwNCIJfSwgLyogMTQwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDA1Igl9LCAvKiAxNDA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDYiCX0sIC8qIDE0MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwNyIJfSwgLyogMTQwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDA4Igl9LCAvKiAxNDA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDkiCX0sIC8qIDE0MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxMCIJfSwgLyogMTQxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDExIgl9LCAvKiAxNDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTIiCX0sIC8qIDE0MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxMyIJfSwgLyogMTQxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDE0Igl9LCAvKiAxNDE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTUiCX0sIC8qIDE0MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxNiIJfSwgLyogMTQxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDE3Igl9LCAvKiAxNDE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTgiCX0sIC8qIDE0MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxOSIJfSwgLyogMTQxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDIwIgl9LCAvKiAxNDIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjEiCX0sIC8qIDE0MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyMiIJfSwgLyogMTQyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDIzIgl9LCAvKiAxNDIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjQiCX0sIC8qIDE0MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyNSIJfSwgLyogMTQyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDI2Igl9LCAvKiAxNDI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjciCX0sIC8qIDE0MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyOCIJfSwgLyogMTQyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDI5Igl9LCAvKiAxNDI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzAiCX0sIC8qIDE0MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzMSIJfSwgLyogMTQzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDMyIgl9LCAvKiAxNDMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzMiCX0sIC8qIDE0MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzNCIJfSwgLyogMTQzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDM1Igl9LCAvKiAxNDM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzYiCX0sIC8qIDE0MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzNyIJfSwgLyogMTQzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDM4Igl9LCAvKiAxNDM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzkiCX0sIC8qIDE0MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0MCIJfSwgLyogMTQ0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQxIgl9LCAvKiAxNDQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDIiCX0sIC8qIDE0NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0MyIJfSwgLyogMTQ0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQ0Igl9LCAvKiAxNDQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDUiCX0sIC8qIDE0NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0NiIJfSwgLyogMTQ0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQ3Igl9LCAvKiAxNDQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDgiCX0sIC8qIDE0NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0OSIJfSwgLyogMTQ0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDUwIgl9LCAvKiAxNDUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTEiCX0sIC8qIDE0NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1MiIJfSwgLyogMTQ1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDUzIgl9LCAvKiAxNDUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTQiCX0sIC8qIDE0NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1NSIJfSwgLyogMTQ1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDU2Igl9LCAvKiAxNDU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTciCX0sIC8qIDE0NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1OCIJfSwgLyogMTQ1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDU5Igl9LCAvKiAxNDU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjAiCX0sIC8qIDE0NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2MSIJfSwgLyogMTQ2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDYyIgl9LCAvKiAxNDYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjMiCX0sIC8qIDE0NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2NCIJfSwgLyogMTQ2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDY1Igl9LCAvKiAxNDY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjYiCX0sIC8qIDE0NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2NyIJfSwgLyogMTQ2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDY4Igl9LCAvKiAxNDY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjkiCX0sIC8qIDE0NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3MCIJfSwgLyogMTQ3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDcxIgl9LCAvKiAxNDcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzIiCX0sIC8qIDE0NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3MyIJfSwgLyogMTQ3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDc0Igl9LCAvKiAxNDc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzUiCX0sIC8qIDE0NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3NiIJfSwgLyogMTQ3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDc3Igl9LCAvKiAxNDc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzgiCX0sIC8qIDE0NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3OSIJfSwgLyogMTQ3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDgwIgl9LCAvKiAxNDgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODEiCX0sIC8qIDE0ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4MiIJfSwgLyogMTQ4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDgzIgl9LCAvKiAxNDgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODQiCX0sIC8qIDE0ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4NSIJfSwgLyogMTQ4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDg2Igl9LCAvKiAxNDg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODciCX0sIC8qIDE0ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4OCIJfSwgLyogMTQ4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDg5Igl9LCAvKiAxNDg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTAiCX0sIC8qIDE0OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5MSIJfSwgLyogMTQ5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkyIgl9LCAvKiAxNDkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTMiCX0sIC8qIDE0OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5NCIJfSwgLyogMTQ5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDk1Igl9LCAvKiAxNDk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTYiCX0sIC8qIDE0OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5NyIJfSwgLyogMTQ5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDk4Igl9LCAvKiAxNDk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTkiCX0sIC8qIDE0OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwMCIJfSwgLyogMTUwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTAxIgl9LCAvKiAxNTAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDIiCX0sIC8qIDE1MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwMyIJfSwgLyogMTUwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTA0Igl9LCAvKiAxNTA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDUiCX0sIC8qIDE1MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwNiIJfSwgLyogMTUwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTA3Igl9LCAvKiAxNTA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDgiCX0sIC8qIDE1MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwOSIJfSwgLyogMTUwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTEwIgl9LCAvKiAxNTEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTEiCX0sIC8qIDE1MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxMiIJfSwgLyogMTUxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTEzIgl9LCAvKiAxNTEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTQiCX0sIC8qIDE1MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxNSIJfSwgLyogMTUxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTE2Igl9LCAvKiAxNTE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTciCX0sIC8qIDE1MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxOCIJfSwgLyogMTUxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTE5Igl9LCAvKiAxNTE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjAiCX0sIC8qIDE1MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyMSIJfSwgLyogMTUyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIyIgl9LCAvKiAxNTIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjMiCX0sIC8qIDE1MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyNCIJfSwgLyogMTUyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTI1Igl9LCAvKiAxNTI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjYiCX0sIC8qIDE1MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyNyIJfSwgLyogMTUyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTI4Igl9LCAvKiAxNTI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjkiCX0sIC8qIDE1MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzMCIJfSwgLyogMTUzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTMxIgl9LCAvKiAxNTMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzIiCX0sIC8qIDE1MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzMyIJfSwgLyogMTUzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTM0Igl9LCAvKiAxNTM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzUiCX0sIC8qIDE1MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzNiIJfSwgLyogMTUzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTM3Igl9LCAvKiAxNTM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzgiCX0sIC8qIDE1MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzOSIJfSwgLyogMTUzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQwIgl9LCAvKiAxNTQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDEiCX0sIC8qIDE1NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0MiIJfSwgLyogMTU0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQzIgl9LCAvKiAxNTQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDQiCX0sIC8qIDE1NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0NSIJfSwgLyogMTU0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQ2Igl9LCAvKiAxNTQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDciCX0sIC8qIDE1NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0OCIJfSwgLyogMTU0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQ5Igl9LCAvKiAxNTQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTAiCX0sIC8qIDE1NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1MSIJfSwgLyogMTU1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTUyIgl9LCAvKiAxNTUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTMiCX0sIC8qIDE1NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1NCIJfSwgLyogMTU1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTU1Igl9LCAvKiAxNTU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTYiCX0sIC8qIDE1NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1NyIJfSwgLyogMTU1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTU4Igl9LCAvKiAxNTU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTkiCX0sIC8qIDE1NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2MCIJfSwgLyogMTU2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTYxIgl9LCAvKiAxNTYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjIiCX0sIC8qIDE1NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2MyIJfSwgLyogMTU2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTY0Igl9LCAvKiAxNTY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjUiCX0sIC8qIDE1NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2NiIJfSwgLyogMTU2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTY3Igl9LCAvKiAxNTY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjgiCX0sIC8qIDE1NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2OSIJfSwgLyogMTU2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTcwIgl9LCAvKiAxNTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzEiCX0sIC8qIDE1NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3MiIJfSwgLyogMTU3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTczIgl9LCAvKiAxNTczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzQiCX0sIC8qIDE1NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3NSIJfSwgLyogMTU3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTc2Igl9LCAvKiAxNTc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzciCX0sIC8qIDE1NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3OCIJfSwgLyogMTU3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTc5Igl9LCAvKiAxNTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODAiCX0sIC8qIDE1ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4MSIJfSwgLyogMTU4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTgyIgl9LCAvKiAxNTgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODMiCX0sIC8qIDE1ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4NCIJfSwgLyogMTU4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTg1Igl9LCAvKiAxNTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODYiCX0sIC8qIDE1ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4NyIJfSwgLyogMTU4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTg4Igl9LCAvKiAxNTg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODkiCX0sIC8qIDE1ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5MCIJfSwgLyogMTU5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTkxIgl9LCAvKiAxNTkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTIiCX0sIC8qIDE1OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5MyIJfSwgLyogMTU5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTk0Igl9LCAvKiAxNTk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTUiCX0sIC8qIDE1OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5NiIJfSwgLyogMTU5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTk3Igl9LCAvKiAxNTk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTgiCX0sIC8qIDE1OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5OSIJfSwgLyogMTU5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjAwIgl9LCAvKiAxNjAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDEiCX0sIC8qIDE2MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwMiIJfSwgLyogMTYwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjAzIgl9LCAvKiAxNjAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDQiCX0sIC8qIDE2MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwNSIJfSwgLyogMTYwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjA2Igl9LCAvKiAxNjA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDciCX0sIC8qIDE2MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwOCIJfSwgLyogMTYwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjA5Igl9LCAvKiAxNjA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTAiCX0sIC8qIDE2MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxMSIJfSwgLyogMTYxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjEyIgl9LCAvKiAxNjEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTMiCX0sIC8qIDE2MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxNCIJfSwgLyogMTYxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjE1Igl9LCAvKiAxNjE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTYiCX0sIC8qIDE2MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxNyIJfSwgLyogMTYxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjE4Igl9LCAvKiAxNjE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTkiCX0sIC8qIDE2MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyMCIJfSwgLyogMTYyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjIxIgl9LCAvKiAxNjIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjIiCX0sIC8qIDE2MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyMyIJfSwgLyogMTYyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjI0Igl9LCAvKiAxNjI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjUiCX0sIC8qIDE2MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyNiIJfSwgLyogMTYyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjI3Igl9LCAvKiAxNjI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjgiCX0sIC8qIDE2MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyOSIJfSwgLyogMTYyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjMwIgl9LCAvKiAxNjMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzEiCX0sIC8qIDE2MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzMiIJfSwgLyogMTYzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjMzIgl9LCAvKiAxNjMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzQiCX0sIC8qIDE2MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzNSIJfSwgLyogMTYzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjM2Igl9LCAvKiAxNjM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzciCX0sIC8qIDE2MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzOCIJfSwgLyogMTYzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjM5Igl9LCAvKiAxNjM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDAiCX0sIC8qIDE2NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0MSIJfSwgLyogMTY0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQyIgl9LCAvKiAxNjQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDMiCX0sIC8qIDE2NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0NCIJfSwgLyogMTY0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQ1Igl9LCAvKiAxNjQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDYiCX0sIC8qIDE2NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0NyIJfSwgLyogMTY0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQ4Igl9LCAvKiAxNjQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDkiCX0sIC8qIDE2NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1MCIJfSwgLyogMTY1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjUxIgl9LCAvKiAxNjUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTIiCX0sIC8qIDE2NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1MyIJfSwgLyogMTY1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjU0Igl9LCAvKiAxNjU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTUiCX0sIC8qIDE2NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1NiIJfSwgLyogMTY1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjU3Igl9LCAvKiAxNjU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTgiCX0sIC8qIDE2NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1OSIJfSwgLyogMTY1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYwIgl9LCAvKiAxNjYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjEiCX0sIC8qIDE2NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2MiIJfSwgLyogMTY2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYzIgl9LCAvKiAxNjYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjQiCX0sIC8qIDE2NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2NSIJfSwgLyogMTY2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjY2Igl9LCAvKiAxNjY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjciCX0sIC8qIDE2NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2OCIJfSwgLyogMTY2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjY5Igl9LCAvKiAxNjY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzAiCX0sIC8qIDE2NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3MSIJfSwgLyogMTY3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjcyIgl9LCAvKiAxNjcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzMiCX0sIC8qIDE2NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3NCIJfSwgLyogMTY3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjc1Igl9LCAvKiAxNjc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzYiCX0sIC8qIDE2NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3NyIJfSwgLyogMTY3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjc4Igl9LCAvKiAxNjc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzkiCX0sIC8qIDE2NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4MCIJfSwgLyogMTY4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjgxIgl9LCAvKiAxNjgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODIiCX0sIC8qIDE2ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4MyIJfSwgLyogMTY4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjg0Igl9LCAvKiAxNjg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODUiCX0sIC8qIDE2ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4NiIJfSwgLyogMTY4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjg3Igl9LCAvKiAxNjg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODgiCX0sIC8qIDE2ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4OSIJfSwgLyogMTY4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjkwIgl9LCAvKiAxNjkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTEiCX0sIC8qIDE2OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5MiIJfSwgLyogMTY5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjkzIgl9LCAvKiAxNjkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTQiCX0sIC8qIDE2OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5NSIJfSwgLyogMTY5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjk2Igl9LCAvKiAxNjk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTciCX0sIC8qIDE2OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5OCIJfSwgLyogMTY5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjk5Igl9LCAvKiAxNjk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDAiCX0sIC8qIDE3MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwMSIJfSwgLyogMTcwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzAyIgl9LCAvKiAxNzAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDMiCX0sIC8qIDE3MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwNCIJfSwgLyogMTcwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzA1Igl9LCAvKiAxNzA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDYiCX0sIC8qIDE3MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwNyIJfSwgLyogMTcwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzA4Igl9LCAvKiAxNzA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDkiCX0sIC8qIDE3MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxMCIJfSwgLyogMTcxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzExIgl9LCAvKiAxNzExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTIiCX0sIC8qIDE3MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxMyIJfSwgLyogMTcxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzE0Igl9LCAvKiAxNzE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTUiCX0sIC8qIDE3MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxNiIJfSwgLyogMTcxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzE3Igl9LCAvKiAxNzE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTgiCX0sIC8qIDE3MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxOSIJfSwgLyogMTcxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzIwIgl9LCAvKiAxNzIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjEiCX0sIC8qIDE3MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyMiIJfSwgLyogMTcyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzIzIgl9LCAvKiAxNzIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjQiCX0sIC8qIDE3MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyNSIJfSwgLyogMTcyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzI2Igl9LCAvKiAxNzI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjciCX0sIC8qIDE3MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyOCIJfSwgLyogMTcyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzI5Igl9LCAvKiAxNzI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzAiCX0sIC8qIDE3MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczMSIJfSwgLyogMTczMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzMyIgl9LCAvKiAxNzMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzMiCX0sIC8qIDE3MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczNCIJfSwgLyogMTczNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzM1Igl9LCAvKiAxNzM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzYiCX0sIC8qIDE3MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczNyIJfSwgLyogMTczNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzM4Igl9LCAvKiAxNzM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzkiCX0sIC8qIDE3MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0MCIJfSwgLyogMTc0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQxIgl9LCAvKiAxNzQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDIiCX0sIC8qIDE3NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0MyIJfSwgLyogMTc0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQ0Igl9LCAvKiAxNzQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDUiCX0sIC8qIDE3NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0NiIJfSwgLyogMTc0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQ3Igl9LCAvKiAxNzQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDgiCX0sIC8qIDE3NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0OSIJfSwgLyogMTc0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzUwIgl9LCAvKiAxNzUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTEiCX0sIC8qIDE3NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1MiIJfSwgLyogMTc1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzUzIgl9LCAvKiAxNzUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTQiCX0sIC8qIDE3NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1NSIJfSwgLyogMTc1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzU2Igl9LCAvKiAxNzU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTciCX0sIC8qIDE3NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1OCIJfSwgLyogMTc1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzU5Igl9LCAvKiAxNzU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjAiCX0sIC8qIDE3NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2MSIJfSwgLyogMTc2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzYyIgl9LCAvKiAxNzYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjMiCX0sIC8qIDE3NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2NCIJfSwgLyogMTc2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzY1Igl9LCAvKiAxNzY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjYiCX0sIC8qIDE3NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2NyIJfSwgLyogMTc2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzY4Igl9LCAvKiAxNzY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjkiCX0sIC8qIDE3NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3MCIJfSwgLyogMTc3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzcxIgl9LCAvKiAxNzcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzIiCX0sIC8qIDE3NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3MyIJfSwgLyogMTc3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzc0Igl9LCAvKiAxNzc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzUiCX0sIC8qIDE3NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3NiIJfSwgLyogMTc3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzc3Igl9LCAvKiAxNzc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzgiCX0sIC8qIDE3NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3OSIJfSwgLyogMTc3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzgwIgl9LCAvKiAxNzgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODEiCX0sIC8qIDE3ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4MiIJfSwgLyogMTc4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzgzIgl9LCAvKiAxNzgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODQiCX0sIC8qIDE3ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4NSIJfSwgLyogMTc4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzg2Igl9LCAvKiAxNzg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODciCX0sIC8qIDE3ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4OCIJfSwgLyogMTc4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzg5Igl9LCAvKiAxNzg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTAiCX0sIC8qIDE3OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5MSIJfSwgLyogMTc5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzkyIgl9LCAvKiAxNzkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTMiCX0sIC8qIDE3OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5NCIJfSwgLyogMTc5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzk1Igl9LCAvKiAxNzk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTYiCX0sIC8qIDE3OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5NyIJfSwgLyogMTc5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzk4Igl9LCAvKiAxNzk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTkiCX0sIC8qIDE3OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwMCIJfSwgLyogMTgwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAxIgl9LCAvKiAxODAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDIiCX0sIC8qIDE4MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwMyIJfSwgLyogMTgwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODA0Igl9LCAvKiAxODA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDUiCX0sIC8qIDE4MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwNiIJfSwgLyogMTgwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODA3Igl9LCAvKiAxODA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDgiCX0sIC8qIDE4MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwOSIJfSwgLyogMTgwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODEwIgl9LCAvKiAxODEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTEiCX0sIC8qIDE4MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxMiIJfSwgLyogMTgxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODEzIgl9LCAvKiAxODEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTQiCX0sIC8qIDE4MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxNSIJfSwgLyogMTgxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODE2Igl9LCAvKiAxODE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTciCX0sIC8qIDE4MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxOCIJfSwgLyogMTgxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODE5Igl9LCAvKiAxODE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjAiCX0sIC8qIDE4MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyMSIJfSwgLyogMTgyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIyIgl9LCAvKiAxODIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjMiCX0sIC8qIDE4MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyNCIJfSwgLyogMTgyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODI1Igl9LCAvKiAxODI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjYiCX0sIC8qIDE4MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyNyIJfSwgLyogMTgyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODI4Igl9LCAvKiAxODI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjkiCX0sIC8qIDE4MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzMCIJfSwgLyogMTgzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODMxIgl9LCAvKiAxODMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzIiCX0sIC8qIDE4MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzMyIJfSwgLyogMTgzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODM0Igl9LCAvKiAxODM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzUiCX0sIC8qIDE4MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzNiIJfSwgLyogMTgzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODM3Igl9LCAvKiAxODM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzgiCX0sIC8qIDE4MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzOSIJfSwgLyogMTgzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQwIgl9LCAvKiAxODQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDEiCX0sIC8qIDE4NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0MiIJfSwgLyogMTg0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQzIgl9LCAvKiAxODQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDQiCX0sIC8qIDE4NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0NSIJfSwgLyogMTg0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQ2Igl9LCAvKiAxODQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDciCX0sIC8qIDE4NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0OCIJfSwgLyogMTg0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQ5Igl9LCAvKiAxODQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTAiCX0sIC8qIDE4NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1MSIJfSwgLyogMTg1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUyIgl9LCAvKiAxODUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTMiCX0sIC8qIDE4NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1NCIJfSwgLyogMTg1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODU1Igl9LCAvKiAxODU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTYiCX0sIC8qIDE4NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1NyIJfSwgLyogMTg1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODU4Igl9LCAvKiAxODU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTkiCX0sIC8qIDE4NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2MCIJfSwgLyogMTg2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODYxIgl9LCAvKiAxODYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjIiCX0sIC8qIDE4NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2MyIJfSwgLyogMTg2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODY0Igl9LCAvKiAxODY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjUiCX0sIC8qIDE4NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2NiIJfSwgLyogMTg2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODY3Igl9LCAvKiAxODY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjgiCX0sIC8qIDE4NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2OSIJfSwgLyogMTg2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODcwIgl9LCAvKiAxODcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzEiCX0sIC8qIDE4NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3MiIJfSwgLyogMTg3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODczIgl9LCAvKiAxODczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzQiCX0sIC8qIDE4NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3NSIJfSwgLyogMTg3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODc2Igl9LCAvKiAxODc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzciCX0sIC8qIDE4NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3OCIJfSwgLyogMTg3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODc5Igl9LCAvKiAxODc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODAiCX0sIC8qIDE4ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4MSIJfSwgLyogMTg4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgyIgl9LCAvKiAxODgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODMiCX0sIC8qIDE4ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4NCIJfSwgLyogMTg4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODg1Igl9LCAvKiAxODg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODYiCX0sIC8qIDE4ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4NyIJfSwgLyogMTg4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODg4Igl9LCAvKiAxODg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODkiCX0sIC8qIDE4ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5MCIJfSwgLyogMTg5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkxIgl9LCAvKiAxODkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTIiCX0sIC8qIDE4OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5MyIJfSwgLyogMTg5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODk0Igl9LCAvKiAxODk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTUiCX0sIC8qIDE4OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5NiIJfSwgLyogMTg5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODk3Igl9LCAvKiAxODk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTgiCX0sIC8qIDE4OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5OSIJfSwgLyogMTg5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTAwIgl9LCAvKiAxOTAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDEiCX0sIC8qIDE5MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwMiIJfSwgLyogMTkwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTAzIgl9LCAvKiAxOTAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDQiCX0sIC8qIDE5MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwNSIJfSwgLyogMTkwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTA2Igl9LCAvKiAxOTA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDciCX0sIC8qIDE5MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwOCIJfSwgLyogMTkwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTA5Igl9LCAvKiAxOTA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTAiCX0sIC8qIDE5MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxMSIJfSwgLyogMTkxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTEyIgl9LCAvKiAxOTEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTMiCX0sIC8qIDE5MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxNCIJfSwgLyogMTkxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTE1Igl9LCAvKiAxOTE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTYiCX0sIC8qIDE5MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxNyIJfSwgLyogMTkxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTE4Igl9LCAvKiAxOTE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTkiCX0sIC8qIDE5MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyMCIJfSwgLyogMTkyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTIxIgl9LCAvKiAxOTIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjIiCX0sIC8qIDE5MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyMyIJfSwgLyogMTkyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTI0Igl9LCAvKiAxOTI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjUiCX0sIC8qIDE5MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyNiIJfSwgLyogMTkyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTI3Igl9LCAvKiAxOTI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjgiCX0sIC8qIDE5MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyOSIJfSwgLyogMTkyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTMwIgl9LCAvKiAxOTMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzEiCX0sIC8qIDE5MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzMiIJfSwgLyogMTkzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTMzIgl9LCAvKiAxOTMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzQiCX0sIC8qIDE5MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzNSIJfSwgLyogMTkzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTM2Igl9LCAvKiAxOTM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzciCX0sIC8qIDE5MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzOCIJfSwgLyogMTkzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTM5Igl9LCAvKiAxOTM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDAiCX0sIC8qIDE5NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0MSIJfSwgLyogMTk0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQyIgl9LCAvKiAxOTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDMiCX0sIC8qIDE5NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0NCIJfSwgLyogMTk0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQ1Igl9LCAvKiAxOTQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDYiCX0sIC8qIDE5NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0NyIJfSwgLyogMTk0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQ4Igl9LCAvKiAxOTQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDkiCX0sIC8qIDE5NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1MCIJfSwgLyogMTk1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTUxIgl9LCAvKiAxOTUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTIiCX0sIC8qIDE5NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1MyIJfSwgLyogMTk1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTU0Igl9LCAvKiAxOTU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTUiCX0sIC8qIDE5NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1NiIJfSwgLyogMTk1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTU3Igl9LCAvKiAxOTU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTgiCX0sIC8qIDE5NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1OSIJfSwgLyogMTk1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTYwIgl9LCAvKiAxOTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjEiCX0sIC8qIDE5NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2MiIJfSwgLyogMTk2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTYzIgl9LCAvKiAxOTYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjQiCX0sIC8qIDE5NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2NSIJfSwgLyogMTk2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTY2Igl9LCAvKiAxOTY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjciCX0sIC8qIDE5NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2OCIJfSwgLyogMTk2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTY5Igl9LCAvKiAxOTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzAiCX0sIC8qIDE5NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3MSIJfSwgLyogMTk3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTcyIgl9LCAvKiAxOTcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzMiCX0sIC8qIDE5NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3NCIJfSwgLyogMTk3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTc1Igl9LCAvKiAxOTc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzYiCX0sIC8qIDE5NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3NyIJfSwgLyogMTk3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTc4Igl9LCAvKiAxOTc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzkiCX0sIC8qIDE5NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4MCIJfSwgLyogMTk4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTgxIgl9LCAvKiAxOTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODIiCX0sIC8qIDE5ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4MyIJfSwgLyogMTk4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTg0Igl9LCAvKiAxOTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODUiCX0sIC8qIDE5ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4NiIJfSwgLyogMTk4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTg3Igl9LCAvKiAxOTg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODgiCX0sIC8qIDE5ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4OSIJfSwgLyogMTk4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTkwIgl9LCAvKiAxOTkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTEiCX0sIC8qIDE5OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5MiIJfSwgLyogMTk5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTkzIgl9LCAvKiAxOTkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTQiCX0sIC8qIDE5OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5NSIJfSwgLyogMTk5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTk2Igl9LCAvKiAxOTk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTciCX0sIC8qIDE5OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5OCIJfSwgLyogMTk5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTk5Igl9LCAvKiAxOTk5ICovIC8qIGVuZCBvZiBTWVNWICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3lzY2FsbCIJfSwgLyogMjAwMCAqLyAvKiBzdGFydCBvZiBCU0QgNC4zICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZXhpdCIJfSwgLyogMjAwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2ZvcmsiCX0sIC8qIDIwMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19yZWFkIgl9LCAvKiAyMDAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfd3JpdGUiCX0sIC8qIDIwMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vcGVuIgl9LCAvKiAyMDA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY2xvc2UiCX0sIC8qIDIwMDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M193YWl0Igl9LCAvKiAyMDA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY3JlYXQiCX0sIC8qIDIwMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19saW5rIgl9LCAvKiAyMDA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdW5saW5rIgl9LCAvKiAyMDEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZXhlYyIJfSwgLyogMjAxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2NoZGlyIgl9LCAvKiAyMDEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdGltZSIJfSwgLyogMjAxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21rbm9kIgl9LCAvKiAyMDE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY2htb2QiCX0sIC8qIDIwMTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jaG93biIJfSwgLyogMjAxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NicmVhayIJfSwgLyogMjAxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZHN0YXQiCX0sIC8qIDIwMTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19sc2VlayIJfSwgLyogMjAxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHBpZCIJfSwgLyogMjAyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZG1vdW50Igl9LCAvKiAyMDIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdW1vdW50Igl9LCAvKiAyMDIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0dWlkIgl9LCAvKiAyMDIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0dWlkIgl9LCAvKiAyMDI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3RpbWUiCX0sIC8qIDIwMjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19wdHJhY2UiCX0sIC8qIDIwMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hbGFybSIJfSwgLyogMjAyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZGZzdGF0Igl9LCAvKiAyMDI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcGF1c2UiCX0sIC8qIDIwMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M191dGltZSIJfSwgLyogMjAzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N0dHkiCX0sIC8qIDIwMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19ndHR5Igl9LCAvKiAyMDMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYWNjZXNzIgl9LCAvKiAyMDMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbmljZSIJfSwgLyogMjAzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2Z0aW1lIgl9LCAvKiAyMDM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3luYyIJfSwgLyogMjAzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2tpbGwiCX0sIC8qIDIwMzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zdGF0Igl9LCAvKiAyMDM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb2xkc2V0cGdycCIJfSwgLyogMjAzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xzdGF0Igl9LCAvKiAyMDQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZHVwIgl9LCAvKiAyMDQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcGlwZSIJfSwgLyogMjA0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3RpbWVzIgl9LCAvKiAyMDQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcHJvZmlsIgl9LCAvKiAyMDQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbXNnc3lzIgl9LCAvKiAyMDQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0Z2lkIgl9LCAvKiAyMDQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0Z2lkIgl9LCAvKiAyMDQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3NpZyIJfSwgLyogMjA0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDQ5Igl9LCAvKiAyMDQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNTAiCX0sIC8qIDIwNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zeXNhY2N0Igl9LCAvKiAyMDUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcGh5cyIJfSwgLyogMjA1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xvY2siCX0sIC8qIDIwNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19pb2N0bCIJfSwgLyogMjA1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3JlYm9vdCIJfSwgLyogMjA1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21weGNoYW4iCX0sIC8qIDIwNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zeW1saW5rIgl9LCAvKiAyMDU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVhZGxpbmsiCX0sIC8qIDIwNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19leGVjdmUiCX0sIC8qIDIwNTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M191bWFzayIJfSwgLyogMjA2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2Nocm9vdCIJfSwgLyogMjA2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2ZzdGF0Igl9LCAvKiAyMDYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNjMiCX0sIC8qIDIwNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRwYWdlc2l6ZSIJfSwgLyogMjA2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21yZW1hcCIJfSwgLyogMjA2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Zmb3JrIgl9LCAvKiAyMDY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdnJlYWQiCX0sIC8qIDIwNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M192d3JpdGUiCX0sIC8qIDIwNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zYnJrIgl9LCAvKiAyMDY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3N0ayIJfSwgLyogMjA3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21tYXAiCX0sIC8qIDIwNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M192YWR2aXNlIgl9LCAvKiAyMDcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbXVubWFwIgl9LCAvKiAyMDczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbXByb3RlY3QiCX0sIC8qIDIwNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19tYWR2aXNlIgl9LCAvKiAyMDc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdmhhbmd1cCIJfSwgLyogMjA3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3ZsaW1pdCIJfSwgLyogMjA3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21pbmNvcmUiCX0sIC8qIDIwNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRncm91cHMiCX0sIC8qIDIwNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRncm91cHMiCX0sIC8qIDIwODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRwZ3JwIgl9LCAvKiAyMDgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0cGdycCIJfSwgLyogMjA4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldGl0aW1lciIJfSwgLyogMjA4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3dhaXQzIgl9LCAvKiAyMDg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3dhcG9uIgl9LCAvKiAyMDg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0aXRpbWVyIgl9LCAvKiAyMDg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0aG9zdG5hbWUiCX0sIC8qIDIwODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRob3N0bmFtZSIJfSwgLyogMjA4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldGR0YWJsZXNpemUiCX0sIC8qIDIwODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19kdXAyIgl9LCAvKiAyMDkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0ZG9wdCIJfSwgLyogMjA5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2ZjbnRsIgl9LCAvKiAyMDkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2VsZWN0Igl9LCAvKiAyMDkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0ZG9wdCIJfSwgLyogMjA5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2ZzeW5jIgl9LCAvKiAyMDk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0cHJpb3JpdHkiCX0sIC8qIDIwOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zb2NrZXQiCX0sIC8qIDIwOTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jb25uZWN0Igl9LCAvKiAyMDk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb2xkYWNjZXB0Igl9LCAvKiAyMDk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cHJpb3JpdHkiCX0sIC8qIDIxMDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZW5kIgl9LCAvKiAyMTAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVjdiIJfSwgLyogMjEwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NpZ3JldHVybiIJfSwgLyogMjEwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2JpbmQiCX0sIC8qIDIxMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRzb2Nrb3B0Igl9LCAvKiAyMTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbGlzdGVuIgl9LCAvKiAyMTA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdnRpbWVzIgl9LCAvKiAyMTA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2lndmVjIgl9LCAvKiAyMTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2lnYmxvY2siCX0sIC8qIDIxMDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zaWdzZXRtYXNrIgl9LCAvKiAyMTEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2lncGF1c2UiCX0sIC8qIDIxMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zaWdzdGFjayIJfSwgLyogMjExMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZHJlY3Ztc2ciCX0sIC8qIDIxMTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRzZW5kbXNnIgl9LCAvKiAyMTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdnRyYWNlIgl9LCAvKiAyMTE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0dGltZW9mZGF5Igl9LCAvKiAyMTE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cnVzYWdlIgl9LCAvKiAyMTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0c29ja29wdCIJfSwgLyogMjExOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTE5Igl9LCAvKiAyMTE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVhZHYiCX0sIC8qIDIxMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M193cml0ZXYiCX0sIC8qIDIxMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXR0aW1lb2ZkYXkiCX0sIC8qIDIxMjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mY2hvd24iCX0sIC8qIDIxMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mY2htb2QiCX0sIC8qIDIxMjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRyZWN2ZnJvbSIJfSwgLyogMjEyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldHJldWlkIgl9LCAvKiAyMTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0cmVnaWQiCX0sIC8qIDIxMjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19yZW5hbWUiCX0sIC8qIDIxMjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M190cnVuY2F0ZSIJfSwgLyogMjEyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2Z0cnVuY2F0ZSIJfSwgLyogMjEzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2Zsb2NrIgl9LCAvKiAyMTMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2Vtc3lzIgl9LCAvKiAyMTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2VuZHRvIgl9LCAvKiAyMTMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2h1dGRvd24iCX0sIC8qIDIxMzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zb2NrZXRwYWlyIgl9LCAvKiAyMTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbWtkaXIiCX0sIC8qIDIxMzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19ybWRpciIJfSwgLyogMjEzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3V0aW1lcyIJfSwgLyogMjEzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NpZ2NsZWFudXAiCX0sIC8qIDIxMzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hZGp0aW1lIgl9LCAvKiAyMTQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb2xkZ2V0cGVlcm5hbWUiCX0sIC8qIDIxNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRob3N0aWQiCX0sIC8qIDIxNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRob3N0aWQiCX0sIC8qIDIxNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRybGltaXQiCX0sIC8qIDIxNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRybGltaXQiCX0sIC8qIDIxNDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19raWxscGciCX0sIC8qIDIxNDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zaG1zeXMiCX0sIC8qIDIxNDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19xdW90YSIJfSwgLyogMjE0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3FxdW90YSIJfSwgLyogMjE0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZGdldHNvY2tuYW1lIgl9LCAvKiAyMTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3lzbWlwcyIJfSwgLyogMjE1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2NhY2hlZmx1c2giCX0sIC8qIDIxNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jYWNoZWN0bCIJfSwgLyogMjE1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2RlYnVnIgl9LCAvKiAyMTU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNTUiCX0sIC8qIDIxNTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE1NiIJfSwgLyogMjE1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX25mc19tb3VudCIJfSwgLyogMjE1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX25mc19zdmMiCX0sIC8qIDIxNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRkaXJlbnRyaWVzIgl9LCAvKiAyMTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3RhdGZzIgl9LCAvKiAyMTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZnN0YXRmcyIJfSwgLyogMjE2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3VubW91bnQiCX0sIC8qIDIxNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hc3luY19kYWVtb24iCX0sIC8qIDIxNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19uZnNfZ2V0ZmgiCX0sIC8qIDIxNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRkb21haW5uYW1lIgl9LCAvKiAyMTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0ZG9tYWlubmFtZSIJfSwgLyogMjE2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3BjZnNfbW91bnQiCX0sIC8qIDIxNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19xdW90YWN0bCIJfSwgLyogMjE2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZGV4cG9ydGZzIgl9LCAvKiAyMTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc21vdW50Igl9LCAvKiAyMTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbWlwc2h3Y29uZiIJfSwgLyogMjE3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2V4cG9ydGZzIgl9LCAvKiAyMTcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbmZzZmhfb3BlbiIJfSwgLyogMjE3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xpYmF0dGFjaCIJfSwgLyogMjE3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xpYmRldGFjaCIJfSwgLyogMjE3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FjY2VwdCIJfSwgLyogMjE3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTc3Igl9LCAvKiAyMTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNzgiCX0sIC8qIDIxNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19yZWN2bXNnIgl9LCAvKiAyMTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVjdmZyb20iCX0sIC8qIDIxODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZW5kbXNnIgl9LCAvKiAyMTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cGVlcm5hbWUiCX0sIC8qIDIxODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRzb2NrbmFtZSIJfSwgLyogMjE4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FyZWFkIgl9LCAvKiAyMTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYXdyaXRlIgl9LCAvKiAyMTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbGlzdGlvIgl9LCAvKiAyMTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYWNhbmNlbCIJfSwgLyogMjE4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FzdGF0dXMiCX0sIC8qIDIxODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hd2FpdCIJfSwgLyogMjE4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FyZWFkdiIJfSwgLyogMjE5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2F3cml0ZXYiCX0sIC8qIDIxOTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5MiIJfSwgLyogMjE5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTkzIgl9LCAvKiAyMTkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOTQiCX0sIC8qIDIxOTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5NSIJfSwgLyogMjE5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTk2Igl9LCAvKiAyMTk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOTciCX0sIC8qIDIxOTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5OCIJfSwgLyogMjE5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTk5Igl9LCAvKiAyMTk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDAiCX0sIC8qIDIyMDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwMSIJfSwgLyogMjIwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAyIgl9LCAvKiAyMjAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDMiCX0sIC8qIDIyMDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwNCIJfSwgLyogMjIwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjA1Igl9LCAvKiAyMjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDYiCX0sIC8qIDIyMDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwNyIJfSwgLyogMjIwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjA4Igl9LCAvKiAyMjA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDkiCX0sIC8qIDIyMDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxMCIJfSwgLyogMjIxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjExIgl9LCAvKiAyMjExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTIiCX0sIC8qIDIyMTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxMyIJfSwgLyogMjIxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjE0Igl9LCAvKiAyMjE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTUiCX0sIC8qIDIyMTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxNiIJfSwgLyogMjIxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjE3Igl9LCAvKiAyMjE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTgiCX0sIC8qIDIyMTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxOSIJfSwgLyogMjIxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIwIgl9LCAvKiAyMjIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjEiCX0sIC8qIDIyMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyMiIJfSwgLyogMjIyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIzIgl9LCAvKiAyMjIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjQiCX0sIC8qIDIyMjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyNSIJfSwgLyogMjIyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjI2Igl9LCAvKiAyMjI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjciCX0sIC8qIDIyMjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyOCIJfSwgLyogMjIyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjI5Igl9LCAvKiAyMjI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzAiCX0sIC8qIDIyMzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzMSIJfSwgLyogMjIzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMyIgl9LCAvKiAyMjMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzMiCX0sIC8qIDIyMzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzNCIJfSwgLyogMjIzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjM1Igl9LCAvKiAyMjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzYiCX0sIC8qIDIyMzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzNyIJfSwgLyogMjIzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjM4Igl9LCAvKiAyMjM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzkiCX0sIC8qIDIyMzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0MCIJfSwgLyogMjI0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQxIgl9LCAvKiAyMjQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDIiCX0sIC8qIDIyNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0MyIJfSwgLyogMjI0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQ0Igl9LCAvKiAyMjQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDUiCX0sIC8qIDIyNDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0NiIJfSwgLyogMjI0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQ3Igl9LCAvKiAyMjQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDgiCX0sIC8qIDIyNDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0OSIJfSwgLyogMjI0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUwIgl9LCAvKiAyMjUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTEiCX0sIC8qIDIyNTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1MiIJfSwgLyogMjI1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUzIgl9LCAvKiAyMjUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTQiCX0sIC8qIDIyNTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1NSIJfSwgLyogMjI1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjU2Igl9LCAvKiAyMjU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTciCX0sIC8qIDIyNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1OCIJfSwgLyogMjI1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjU5Igl9LCAvKiAyMjU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjAiCX0sIC8qIDIyNjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2MSIJfSwgLyogMjI2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYyIgl9LCAvKiAyMjYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjMiCX0sIC8qIDIyNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2NCIJfSwgLyogMjI2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjY1Igl9LCAvKiAyMjY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjYiCX0sIC8qIDIyNjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2NyIJfSwgLyogMjI2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjY4Igl9LCAvKiAyMjY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjkiCX0sIC8qIDIyNjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3MCIJfSwgLyogMjI3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjcxIgl9LCAvKiAyMjcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzIiCX0sIC8qIDIyNzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3MyIJfSwgLyogMjI3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjc0Igl9LCAvKiAyMjc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzUiCX0sIC8qIDIyNzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3NiIJfSwgLyogMjI3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjc3Igl9LCAvKiAyMjc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzgiCX0sIC8qIDIyNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3OSIJfSwgLyogMjI3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgwIgl9LCAvKiAyMjgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODEiCX0sIC8qIDIyODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4MiIJfSwgLyogMjI4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgzIgl9LCAvKiAyMjgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODQiCX0sIC8qIDIyODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4NSIJfSwgLyogMjI4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjg2Igl9LCAvKiAyMjg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODciCX0sIC8qIDIyODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4OCIJfSwgLyogMjI4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjg5Igl9LCAvKiAyMjg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTAiCX0sIC8qIDIyOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5MSIJfSwgLyogMjI5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkyIgl9LCAvKiAyMjkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTMiCX0sIC8qIDIyOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5NCIJfSwgLyogMjI5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjk1Igl9LCAvKiAyMjk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTYiCX0sIC8qIDIyOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5NyIJfSwgLyogMjI5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjk4Igl9LCAvKiAyMjk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTkiCX0sIC8qIDIyOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwMCIJfSwgLyogMjMwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzAxIgl9LCAvKiAyMzAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDIiCX0sIC8qIDIzMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwMyIJfSwgLyogMjMwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzA0Igl9LCAvKiAyMzA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDUiCX0sIC8qIDIzMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwNiIJfSwgLyogMjMwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzA3Igl9LCAvKiAyMzA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDgiCX0sIC8qIDIzMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwOSIJfSwgLyogMjMwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzEwIgl9LCAvKiAyMzEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTEiCX0sIC8qIDIzMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxMiIJfSwgLyogMjMxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzEzIgl9LCAvKiAyMzEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTQiCX0sIC8qIDIzMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxNSIJfSwgLyogMjMxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzE2Igl9LCAvKiAyMzE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTciCX0sIC8qIDIzMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxOCIJfSwgLyogMjMxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzE5Igl9LCAvKiAyMzE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjAiCX0sIC8qIDIzMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyMSIJfSwgLyogMjMyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIyIgl9LCAvKiAyMzIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjMiCX0sIC8qIDIzMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyNCIJfSwgLyogMjMyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzI1Igl9LCAvKiAyMzI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjYiCX0sIC8qIDIzMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyNyIJfSwgLyogMjMyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzI4Igl9LCAvKiAyMzI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjkiCX0sIC8qIDIzMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzMCIJfSwgLyogMjMzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzMxIgl9LCAvKiAyMzMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzIiCX0sIC8qIDIzMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzMyIJfSwgLyogMjMzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzM0Igl9LCAvKiAyMzM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzUiCX0sIC8qIDIzMzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzNiIJfSwgLyogMjMzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzM3Igl9LCAvKiAyMzM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzgiCX0sIC8qIDIzMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzOSIJfSwgLyogMjMzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQwIgl9LCAvKiAyMzQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDEiCX0sIC8qIDIzNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0MiIJfSwgLyogMjM0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQzIgl9LCAvKiAyMzQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDQiCX0sIC8qIDIzNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0NSIJfSwgLyogMjM0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQ2Igl9LCAvKiAyMzQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDciCX0sIC8qIDIzNDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0OCIJfSwgLyogMjM0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQ5Igl9LCAvKiAyMzQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTAiCX0sIC8qIDIzNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1MSIJfSwgLyogMjM1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUyIgl9LCAvKiAyMzUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTMiCX0sIC8qIDIzNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1NCIJfSwgLyogMjM1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzU1Igl9LCAvKiAyMzU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTYiCX0sIC8qIDIzNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1NyIJfSwgLyogMjM1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzU4Igl9LCAvKiAyMzU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTkiCX0sIC8qIDIzNTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2MCIJfSwgLyogMjM2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzYxIgl9LCAvKiAyMzYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjIiCX0sIC8qIDIzNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2MyIJfSwgLyogMjM2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzY0Igl9LCAvKiAyMzY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjUiCX0sIC8qIDIzNjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2NiIJfSwgLyogMjM2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzY3Igl9LCAvKiAyMzY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjgiCX0sIC8qIDIzNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2OSIJfSwgLyogMjM2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzcwIgl9LCAvKiAyMzcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzEiCX0sIC8qIDIzNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3MiIJfSwgLyogMjM3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzczIgl9LCAvKiAyMzczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzQiCX0sIC8qIDIzNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3NSIJfSwgLyogMjM3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzc2Igl9LCAvKiAyMzc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzciCX0sIC8qIDIzNzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3OCIJfSwgLyogMjM3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzc5Igl9LCAvKiAyMzc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODAiCX0sIC8qIDIzODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4MSIJfSwgLyogMjM4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgyIgl9LCAvKiAyMzgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODMiCX0sIC8qIDIzODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4NCIJfSwgLyogMjM4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzg1Igl9LCAvKiAyMzg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODYiCX0sIC8qIDIzODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4NyIJfSwgLyogMjM4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzg4Igl9LCAvKiAyMzg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODkiCX0sIC8qIDIzODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5MCIJfSwgLyogMjM5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzkxIgl9LCAvKiAyMzkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTIiCX0sIC8qIDIzOTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5MyIJfSwgLyogMjM5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzk0Igl9LCAvKiAyMzk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTUiCX0sIC8qIDIzOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5NiIJfSwgLyogMjM5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzk3Igl9LCAvKiAyMzk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTgiCX0sIC8qIDIzOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5OSIJfSwgLyogMjM5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAwIgl9LCAvKiAyNDAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDEiCX0sIC8qIDI0MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwMiIJfSwgLyogMjQwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAzIgl9LCAvKiAyNDAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDQiCX0sIC8qIDI0MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwNSIJfSwgLyogMjQwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDA2Igl9LCAvKiAyNDA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDciCX0sIC8qIDI0MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwOCIJfSwgLyogMjQwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDA5Igl9LCAvKiAyNDA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTAiCX0sIC8qIDI0MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxMSIJfSwgLyogMjQxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEyIgl9LCAvKiAyNDEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTMiCX0sIC8qIDI0MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxNCIJfSwgLyogMjQxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDE1Igl9LCAvKiAyNDE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTYiCX0sIC8qIDI0MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxNyIJfSwgLyogMjQxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDE4Igl9LCAvKiAyNDE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTkiCX0sIC8qIDI0MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyMCIJfSwgLyogMjQyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDIxIgl9LCAvKiAyNDIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjIiCX0sIC8qIDI0MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyMyIJfSwgLyogMjQyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDI0Igl9LCAvKiAyNDI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjUiCX0sIC8qIDI0MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyNiIJfSwgLyogMjQyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDI3Igl9LCAvKiAyNDI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjgiCX0sIC8qIDI0MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyOSIJfSwgLyogMjQyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMwIgl9LCAvKiAyNDMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzEiCX0sIC8qIDI0MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzMiIJfSwgLyogMjQzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMzIgl9LCAvKiAyNDMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzQiCX0sIC8qIDI0MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzNSIJfSwgLyogMjQzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDM2Igl9LCAvKiAyNDM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzciCX0sIC8qIDI0MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzOCIJfSwgLyogMjQzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDM5Igl9LCAvKiAyNDM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDAiCX0sIC8qIDI0NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0MSIJfSwgLyogMjQ0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQyIgl9LCAvKiAyNDQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDMiCX0sIC8qIDI0NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0NCIJfSwgLyogMjQ0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQ1Igl9LCAvKiAyNDQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDYiCX0sIC8qIDI0NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0NyIJfSwgLyogMjQ0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQ4Igl9LCAvKiAyNDQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDkiCX0sIC8qIDI0NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1MCIJfSwgLyogMjQ1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDUxIgl9LCAvKiAyNDUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTIiCX0sIC8qIDI0NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1MyIJfSwgLyogMjQ1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDU0Igl9LCAvKiAyNDU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTUiCX0sIC8qIDI0NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1NiIJfSwgLyogMjQ1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDU3Igl9LCAvKiAyNDU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTgiCX0sIC8qIDI0NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1OSIJfSwgLyogMjQ1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYwIgl9LCAvKiAyNDYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjEiCX0sIC8qIDI0NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2MiIJfSwgLyogMjQ2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYzIgl9LCAvKiAyNDYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjQiCX0sIC8qIDI0NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2NSIJfSwgLyogMjQ2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDY2Igl9LCAvKiAyNDY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjciCX0sIC8qIDI0NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2OCIJfSwgLyogMjQ2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDY5Igl9LCAvKiAyNDY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzAiCX0sIC8qIDI0NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3MSIJfSwgLyogMjQ3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDcyIgl9LCAvKiAyNDcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzMiCX0sIC8qIDI0NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3NCIJfSwgLyogMjQ3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDc1Igl9LCAvKiAyNDc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzYiCX0sIC8qIDI0NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3NyIJfSwgLyogMjQ3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDc4Igl9LCAvKiAyNDc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzkiCX0sIC8qIDI0NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4MCIJfSwgLyogMjQ4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgxIgl9LCAvKiAyNDgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODIiCX0sIC8qIDI0ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4MyIJfSwgLyogMjQ4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDg0Igl9LCAvKiAyNDg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODUiCX0sIC8qIDI0ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4NiIJfSwgLyogMjQ4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDg3Igl9LCAvKiAyNDg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODgiCX0sIC8qIDI0ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4OSIJfSwgLyogMjQ4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkwIgl9LCAvKiAyNDkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTEiCX0sIC8qIDI0OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5MiIJfSwgLyogMjQ5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkzIgl9LCAvKiAyNDkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTQiCX0sIC8qIDI0OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5NSIJfSwgLyogMjQ5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDk2Igl9LCAvKiAyNDk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTciCX0sIC8qIDI0OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5OCIJfSwgLyogMjQ5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDk5Igl9LCAvKiAyNDk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDAiCX0sIC8qIDI1MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwMSIJfSwgLyogMjUwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAyIgl9LCAvKiAyNTAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDMiCX0sIC8qIDI1MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwNCIJfSwgLyogMjUwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTA1Igl9LCAvKiAyNTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDYiCX0sIC8qIDI1MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwNyIJfSwgLyogMjUwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTA4Igl9LCAvKiAyNTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDkiCX0sIC8qIDI1MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxMCIJfSwgLyogMjUxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTExIgl9LCAvKiAyNTExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTIiCX0sIC8qIDI1MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxMyIJfSwgLyogMjUxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTE0Igl9LCAvKiAyNTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTUiCX0sIC8qIDI1MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxNiIJfSwgLyogMjUxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTE3Igl9LCAvKiAyNTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTgiCX0sIC8qIDI1MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxOSIJfSwgLyogMjUxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIwIgl9LCAvKiAyNTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjEiCX0sIC8qIDI1MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyMiIJfSwgLyogMjUyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIzIgl9LCAvKiAyNTIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjQiCX0sIC8qIDI1MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyNSIJfSwgLyogMjUyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTI2Igl9LCAvKiAyNTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjciCX0sIC8qIDI1MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyOCIJfSwgLyogMjUyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTI5Igl9LCAvKiAyNTI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzAiCX0sIC8qIDI1MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzMSIJfSwgLyogMjUzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMyIgl9LCAvKiAyNTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzMiCX0sIC8qIDI1MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzNCIJfSwgLyogMjUzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTM1Igl9LCAvKiAyNTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzYiCX0sIC8qIDI1MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzNyIJfSwgLyogMjUzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTM4Igl9LCAvKiAyNTM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzkiCX0sIC8qIDI1MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0MCIJfSwgLyogMjU0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQxIgl9LCAvKiAyNTQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDIiCX0sIC8qIDI1NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0MyIJfSwgLyogMjU0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQ0Igl9LCAvKiAyNTQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDUiCX0sIC8qIDI1NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0NiIJfSwgLyogMjU0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQ3Igl9LCAvKiAyNTQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDgiCX0sIC8qIDI1NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0OSIJfSwgLyogMjU0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUwIgl9LCAvKiAyNTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTEiCX0sIC8qIDI1NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1MiIJfSwgLyogMjU1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUzIgl9LCAvKiAyNTUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTQiCX0sIC8qIDI1NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1NSIJfSwgLyogMjU1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTU2Igl9LCAvKiAyNTU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTciCX0sIC8qIDI1NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1OCIJfSwgLyogMjU1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTU5Igl9LCAvKiAyNTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjAiCX0sIC8qIDI1NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2MSIJfSwgLyogMjU2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYyIgl9LCAvKiAyNTYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjMiCX0sIC8qIDI1NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2NCIJfSwgLyogMjU2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTY1Igl9LCAvKiAyNTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjYiCX0sIC8qIDI1NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2NyIJfSwgLyogMjU2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTY4Igl9LCAvKiAyNTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjkiCX0sIC8qIDI1NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3MCIJfSwgLyogMjU3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTcxIgl9LCAvKiAyNTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzIiCX0sIC8qIDI1NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3MyIJfSwgLyogMjU3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTc0Igl9LCAvKiAyNTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzUiCX0sIC8qIDI1NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3NiIJfSwgLyogMjU3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTc3Igl9LCAvKiAyNTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzgiCX0sIC8qIDI1NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3OSIJfSwgLyogMjU3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgwIgl9LCAvKiAyNTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODEiCX0sIC8qIDI1ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4MiIJfSwgLyogMjU4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgzIgl9LCAvKiAyNTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODQiCX0sIC8qIDI1ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4NSIJfSwgLyogMjU4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTg2Igl9LCAvKiAyNTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODciCX0sIC8qIDI1ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4OCIJfSwgLyogMjU4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTg5Igl9LCAvKiAyNTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTAiCX0sIC8qIDI1OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5MSIJfSwgLyogMjU5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkyIgl9LCAvKiAyNTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTMiCX0sIC8qIDI1OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5NCIJfSwgLyogMjU5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTk1Igl9LCAvKiAyNTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTYiCX0sIC8qIDI1OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5NyIJfSwgLyogMjU5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTk4Igl9LCAvKiAyNTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTkiCX0sIC8qIDI1OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwMCIJfSwgLyogMjYwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjAxIgl9LCAvKiAyNjAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDIiCX0sIC8qIDI2MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwMyIJfSwgLyogMjYwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjA0Igl9LCAvKiAyNjA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDUiCX0sIC8qIDI2MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwNiIJfSwgLyogMjYwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjA3Igl9LCAvKiAyNjA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDgiCX0sIC8qIDI2MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwOSIJfSwgLyogMjYwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEwIgl9LCAvKiAyNjEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTEiCX0sIC8qIDI2MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxMiIJfSwgLyogMjYxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEzIgl9LCAvKiAyNjEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTQiCX0sIC8qIDI2MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxNSIJfSwgLyogMjYxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjE2Igl9LCAvKiAyNjE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTciCX0sIC8qIDI2MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxOCIJfSwgLyogMjYxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjE5Igl9LCAvKiAyNjE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjAiCX0sIC8qIDI2MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyMSIJfSwgLyogMjYyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIyIgl9LCAvKiAyNjIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjMiCX0sIC8qIDI2MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyNCIJfSwgLyogMjYyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjI1Igl9LCAvKiAyNjI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjYiCX0sIC8qIDI2MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyNyIJfSwgLyogMjYyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjI4Igl9LCAvKiAyNjI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjkiCX0sIC8qIDI2MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzMCIJfSwgLyogMjYzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMxIgl9LCAvKiAyNjMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzIiCX0sIC8qIDI2MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzMyIJfSwgLyogMjYzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjM0Igl9LCAvKiAyNjM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzUiCX0sIC8qIDI2MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzNiIJfSwgLyogMjYzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjM3Igl9LCAvKiAyNjM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzgiCX0sIC8qIDI2MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzOSIJfSwgLyogMjYzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQwIgl9LCAvKiAyNjQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDEiCX0sIC8qIDI2NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0MiIJfSwgLyogMjY0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQzIgl9LCAvKiAyNjQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDQiCX0sIC8qIDI2NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0NSIJfSwgLyogMjY0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQ2Igl9LCAvKiAyNjQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDciCX0sIC8qIDI2NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0OCIJfSwgLyogMjY0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQ5Igl9LCAvKiAyNjQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTAiCX0sIC8qIDI2NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1MSIJfSwgLyogMjY1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUyIgl9LCAvKiAyNjUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTMiCX0sIC8qIDI2NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1NCIJfSwgLyogMjY1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjU1Igl9LCAvKiAyNjU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTYiCX0sIC8qIDI2NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1NyIJfSwgLyogMjY1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjU4Igl9LCAvKiAyNjU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTkiCX0sIC8qIDI2NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2MCIJfSwgLyogMjY2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYxIgl9LCAvKiAyNjYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjIiCX0sIC8qIDI2NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2MyIJfSwgLyogMjY2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjY0Igl9LCAvKiAyNjY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjUiCX0sIC8qIDI2NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2NiIJfSwgLyogMjY2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjY3Igl9LCAvKiAyNjY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjgiCX0sIC8qIDI2NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2OSIJfSwgLyogMjY2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjcwIgl9LCAvKiAyNjcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzEiCX0sIC8qIDI2NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3MiIJfSwgLyogMjY3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjczIgl9LCAvKiAyNjczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzQiCX0sIC8qIDI2NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3NSIJfSwgLyogMjY3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjc2Igl9LCAvKiAyNjc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzciCX0sIC8qIDI2NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3OCIJfSwgLyogMjY3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjc5Igl9LCAvKiAyNjc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODAiCX0sIC8qIDI2ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4MSIJfSwgLyogMjY4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgyIgl9LCAvKiAyNjgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODMiCX0sIC8qIDI2ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4NCIJfSwgLyogMjY4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjg1Igl9LCAvKiAyNjg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODYiCX0sIC8qIDI2ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4NyIJfSwgLyogMjY4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjg4Igl9LCAvKiAyNjg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODkiCX0sIC8qIDI2ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5MCIJfSwgLyogMjY5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkxIgl9LCAvKiAyNjkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTIiCX0sIC8qIDI2OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5MyIJfSwgLyogMjY5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjk0Igl9LCAvKiAyNjk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTUiCX0sIC8qIDI2OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5NiIJfSwgLyogMjY5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjk3Igl9LCAvKiAyNjk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTgiCX0sIC8qIDI2OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5OSIJfSwgLyogMjY5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAwIgl9LCAvKiAyNzAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDEiCX0sIC8qIDI3MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwMiIJfSwgLyogMjcwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAzIgl9LCAvKiAyNzAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDQiCX0sIC8qIDI3MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwNSIJfSwgLyogMjcwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzA2Igl9LCAvKiAyNzA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDciCX0sIC8qIDI3MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwOCIJfSwgLyogMjcwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzA5Igl9LCAvKiAyNzA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTAiCX0sIC8qIDI3MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxMSIJfSwgLyogMjcxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEyIgl9LCAvKiAyNzEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTMiCX0sIC8qIDI3MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxNCIJfSwgLyogMjcxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzE1Igl9LCAvKiAyNzE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTYiCX0sIC8qIDI3MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxNyIJfSwgLyogMjcxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzE4Igl9LCAvKiAyNzE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTkiCX0sIC8qIDI3MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyMCIJfSwgLyogMjcyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIxIgl9LCAvKiAyNzIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjIiCX0sIC8qIDI3MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyMyIJfSwgLyogMjcyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzI0Igl9LCAvKiAyNzI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjUiCX0sIC8qIDI3MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyNiIJfSwgLyogMjcyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzI3Igl9LCAvKiAyNzI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjgiCX0sIC8qIDI3MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyOSIJfSwgLyogMjcyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMwIgl9LCAvKiAyNzMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzEiCX0sIC8qIDI3MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczMiIJfSwgLyogMjczMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMzIgl9LCAvKiAyNzMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzQiCX0sIC8qIDI3MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczNSIJfSwgLyogMjczNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzM2Igl9LCAvKiAyNzM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzciCX0sIC8qIDI3MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczOCIJfSwgLyogMjczOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzM5Igl9LCAvKiAyNzM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDAiCX0sIC8qIDI3NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0MSIJfSwgLyogMjc0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQyIgl9LCAvKiAyNzQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDMiCX0sIC8qIDI3NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0NCIJfSwgLyogMjc0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQ1Igl9LCAvKiAyNzQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDYiCX0sIC8qIDI3NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0NyIJfSwgLyogMjc0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQ4Igl9LCAvKiAyNzQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDkiCX0sIC8qIDI3NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1MCIJfSwgLyogMjc1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUxIgl9LCAvKiAyNzUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTIiCX0sIC8qIDI3NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1MyIJfSwgLyogMjc1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzU0Igl9LCAvKiAyNzU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTUiCX0sIC8qIDI3NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1NiIJfSwgLyogMjc1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzU3Igl9LCAvKiAyNzU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTgiCX0sIC8qIDI3NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1OSIJfSwgLyogMjc1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYwIgl9LCAvKiAyNzYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjEiCX0sIC8qIDI3NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2MiIJfSwgLyogMjc2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYzIgl9LCAvKiAyNzYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjQiCX0sIC8qIDI3NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2NSIJfSwgLyogMjc2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzY2Igl9LCAvKiAyNzY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjciCX0sIC8qIDI3NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2OCIJfSwgLyogMjc2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzY5Igl9LCAvKiAyNzY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzAiCX0sIC8qIDI3NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3MSIJfSwgLyogMjc3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzcyIgl9LCAvKiAyNzcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzMiCX0sIC8qIDI3NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3NCIJfSwgLyogMjc3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzc1Igl9LCAvKiAyNzc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzYiCX0sIC8qIDI3NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3NyIJfSwgLyogMjc3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzc4Igl9LCAvKiAyNzc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzkiCX0sIC8qIDI3NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4MCIJfSwgLyogMjc4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgxIgl9LCAvKiAyNzgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODIiCX0sIC8qIDI3ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4MyIJfSwgLyogMjc4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzg0Igl9LCAvKiAyNzg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODUiCX0sIC8qIDI3ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4NiIJfSwgLyogMjc4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzg3Igl9LCAvKiAyNzg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODgiCX0sIC8qIDI3ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4OSIJfSwgLyogMjc4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkwIgl9LCAvKiAyNzkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTEiCX0sIC8qIDI3OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5MiIJfSwgLyogMjc5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkzIgl9LCAvKiAyNzkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTQiCX0sIC8qIDI3OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5NSIJfSwgLyogMjc5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzk2Igl9LCAvKiAyNzk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTciCX0sIC8qIDI3OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5OCIJfSwgLyogMjc5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzk5Igl9LCAvKiAyNzk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDAiCX0sIC8qIDI4MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwMSIJfSwgLyogMjgwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAyIgl9LCAvKiAyODAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDMiCX0sIC8qIDI4MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwNCIJfSwgLyogMjgwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODA1Igl9LCAvKiAyODA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDYiCX0sIC8qIDI4MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwNyIJfSwgLyogMjgwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODA4Igl9LCAvKiAyODA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDkiCX0sIC8qIDI4MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxMCIJfSwgLyogMjgxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODExIgl9LCAvKiAyODExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTIiCX0sIC8qIDI4MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxMyIJfSwgLyogMjgxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODE0Igl9LCAvKiAyODE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTUiCX0sIC8qIDI4MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxNiIJfSwgLyogMjgxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODE3Igl9LCAvKiAyODE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTgiCX0sIC8qIDI4MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxOSIJfSwgLyogMjgxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIwIgl9LCAvKiAyODIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjEiCX0sIC8qIDI4MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyMiIJfSwgLyogMjgyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIzIgl9LCAvKiAyODIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjQiCX0sIC8qIDI4MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyNSIJfSwgLyogMjgyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODI2Igl9LCAvKiAyODI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjciCX0sIC8qIDI4MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyOCIJfSwgLyogMjgyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODI5Igl9LCAvKiAyODI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzAiCX0sIC8qIDI4MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzMSIJfSwgLyogMjgzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMyIgl9LCAvKiAyODMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzMiCX0sIC8qIDI4MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzNCIJfSwgLyogMjgzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODM1Igl9LCAvKiAyODM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzYiCX0sIC8qIDI4MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzNyIJfSwgLyogMjgzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODM4Igl9LCAvKiAyODM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzkiCX0sIC8qIDI4MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0MCIJfSwgLyogMjg0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQxIgl9LCAvKiAyODQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDIiCX0sIC8qIDI4NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0MyIJfSwgLyogMjg0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQ0Igl9LCAvKiAyODQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDUiCX0sIC8qIDI4NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0NiIJfSwgLyogMjg0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQ3Igl9LCAvKiAyODQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDgiCX0sIC8qIDI4NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0OSIJfSwgLyogMjg0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUwIgl9LCAvKiAyODUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTEiCX0sIC8qIDI4NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1MiIJfSwgLyogMjg1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUzIgl9LCAvKiAyODUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTQiCX0sIC8qIDI4NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1NSIJfSwgLyogMjg1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODU2Igl9LCAvKiAyODU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTciCX0sIC8qIDI4NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1OCIJfSwgLyogMjg1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODU5Igl9LCAvKiAyODU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjAiCX0sIC8qIDI4NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2MSIJfSwgLyogMjg2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYyIgl9LCAvKiAyODYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjMiCX0sIC8qIDI4NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2NCIJfSwgLyogMjg2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODY1Igl9LCAvKiAyODY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjYiCX0sIC8qIDI4NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2NyIJfSwgLyogMjg2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODY4Igl9LCAvKiAyODY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjkiCX0sIC8qIDI4NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3MCIJfSwgLyogMjg3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODcxIgl9LCAvKiAyODcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzIiCX0sIC8qIDI4NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3MyIJfSwgLyogMjg3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODc0Igl9LCAvKiAyODc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzUiCX0sIC8qIDI4NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3NiIJfSwgLyogMjg3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODc3Igl9LCAvKiAyODc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzgiCX0sIC8qIDI4NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3OSIJfSwgLyogMjg3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgwIgl9LCAvKiAyODgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODEiCX0sIC8qIDI4ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4MiIJfSwgLyogMjg4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgzIgl9LCAvKiAyODgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODQiCX0sIC8qIDI4ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4NSIJfSwgLyogMjg4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODg2Igl9LCAvKiAyODg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODciCX0sIC8qIDI4ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4OCIJfSwgLyogMjg4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODg5Igl9LCAvKiAyODg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTAiCX0sIC8qIDI4OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5MSIJfSwgLyogMjg5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkyIgl9LCAvKiAyODkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTMiCX0sIC8qIDI4OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5NCIJfSwgLyogMjg5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODk1Igl9LCAvKiAyODk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTYiCX0sIC8qIDI4OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5NyIJfSwgLyogMjg5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODk4Igl9LCAvKiAyODk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTkiCX0sIC8qIDI4OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwMCIJfSwgLyogMjkwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAxIgl9LCAvKiAyOTAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDIiCX0sIC8qIDI5MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwMyIJfSwgLyogMjkwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTA0Igl9LCAvKiAyOTA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDUiCX0sIC8qIDI5MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwNiIJfSwgLyogMjkwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTA3Igl9LCAvKiAyOTA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDgiCX0sIC8qIDI5MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwOSIJfSwgLyogMjkwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEwIgl9LCAvKiAyOTEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTEiCX0sIC8qIDI5MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxMiIJfSwgLyogMjkxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEzIgl9LCAvKiAyOTEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTQiCX0sIC8qIDI5MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxNSIJfSwgLyogMjkxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTE2Igl9LCAvKiAyOTE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTciCX0sIC8qIDI5MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxOCIJfSwgLyogMjkxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTE5Igl9LCAvKiAyOTE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjAiCX0sIC8qIDI5MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyMSIJfSwgLyogMjkyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIyIgl9LCAvKiAyOTIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjMiCX0sIC8qIDI5MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyNCIJfSwgLyogMjkyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTI1Igl9LCAvKiAyOTI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjYiCX0sIC8qIDI5MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyNyIJfSwgLyogMjkyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTI4Igl9LCAvKiAyOTI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjkiCX0sIC8qIDI5MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzMCIJfSwgLyogMjkzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMxIgl9LCAvKiAyOTMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzIiCX0sIC8qIDI5MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzMyIJfSwgLyogMjkzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTM0Igl9LCAvKiAyOTM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzUiCX0sIC8qIDI5MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzNiIJfSwgLyogMjkzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTM3Igl9LCAvKiAyOTM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzgiCX0sIC8qIDI5MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzOSIJfSwgLyogMjkzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQwIgl9LCAvKiAyOTQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDEiCX0sIC8qIDI5NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0MiIJfSwgLyogMjk0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQzIgl9LCAvKiAyOTQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDQiCX0sIC8qIDI5NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0NSIJfSwgLyogMjk0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQ2Igl9LCAvKiAyOTQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDciCX0sIC8qIDI5NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0OCIJfSwgLyogMjk0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQ5Igl9LCAvKiAyOTQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTAiCX0sIC8qIDI5NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1MSIJfSwgLyogMjk1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUyIgl9LCAvKiAyOTUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTMiCX0sIC8qIDI5NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1NCIJfSwgLyogMjk1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTU1Igl9LCAvKiAyOTU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTYiCX0sIC8qIDI5NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1NyIJfSwgLyogMjk1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTU4Igl9LCAvKiAyOTU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTkiCX0sIC8qIDI5NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2MCIJfSwgLyogMjk2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYxIgl9LCAvKiAyOTYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjIiCX0sIC8qIDI5NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2MyIJfSwgLyogMjk2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTY0Igl9LCAvKiAyOTY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjUiCX0sIC8qIDI5NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2NiIJfSwgLyogMjk2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTY3Igl9LCAvKiAyOTY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjgiCX0sIC8qIDI5NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2OSIJfSwgLyogMjk2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTcwIgl9LCAvKiAyOTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzEiCX0sIC8qIDI5NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3MiIJfSwgLyogMjk3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTczIgl9LCAvKiAyOTczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzQiCX0sIC8qIDI5NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3NSIJfSwgLyogMjk3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTc2Igl9LCAvKiAyOTc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzciCX0sIC8qIDI5NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3OCIJfSwgLyogMjk3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTc5Igl9LCAvKiAyOTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODAiCX0sIC8qIDI5ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4MSIJfSwgLyogMjk4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgyIgl9LCAvKiAyOTgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODMiCX0sIC8qIDI5ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4NCIJfSwgLyogMjk4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTg1Igl9LCAvKiAyOTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODYiCX0sIC8qIDI5ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4NyIJfSwgLyogMjk4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTg4Igl9LCAvKiAyOTg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODkiCX0sIC8qIDI5ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5MCIJfSwgLyogMjk5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkxIgl9LCAvKiAyOTkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTIiCX0sIC8qIDI5OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5MyIJfSwgLyogMjk5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTk0Igl9LCAvKiAyOTk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTUiCX0sIC8qIDI5OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5NiIJfSwgLyogMjk5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTk3Igl9LCAvKiAyOTk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTgiCX0sIC8qIDI5OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5OSIJfSwgLyogMjk5OSAqLyAvKiBlbmQgb2YgQlNEIDQuMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5c2NhbGwiCX0sIC8qIDMwMDAgKi8gLyogc3RhcnQgb2YgUE9TSVggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9leGl0Igl9LCAvKiAzMDAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZm9yayIJfSwgLyogMzAwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JlYWQiCX0sIC8qIDMwMDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF93cml0ZSIJfSwgLyogMzAwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X29wZW4iCX0sIC8qIDMwMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jbG9zZSIJfSwgLyogMzAwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3dhaXQiCX0sIC8qIDMwMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jcmVhdCIJfSwgLyogMzAwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2xpbmsiCX0sIC8qIDMwMDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91bmxpbmsiCX0sIC8qIDMwMTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9leGVjIgl9LCAvKiAzMDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2hkaXIiCX0sIC8qIDMwMTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ndGltZSIJfSwgLyogMzAxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X21rbm9kIgl9LCAvKiAzMDE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2htb2QiCX0sIC8qIDMwMTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jaG93biIJfSwgLyogMzAxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NicmVhayIJfSwgLyogMzAxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N0YXQiCX0sIC8qIDMwMTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9sc2VlayIJfSwgLyogMzAxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHBpZCIJfSwgLyogMzAyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X21vdW50Igl9LCAvKiAzMDIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdW1vdW50Igl9LCAvKiAzMDIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0dWlkIgl9LCAvKiAzMDIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0dWlkIgl9LCAvKiAzMDI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc3RpbWUiCX0sIC8qIDMwMjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9wdHJhY2UiCX0sIC8qIDMwMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9hbGFybSIJfSwgLyogMzAyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZzdGF0Igl9LCAvKiAzMDI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcGF1c2UiCX0sIC8qIDMwMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91dGltZSIJfSwgLyogMzAzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N0dHkiCX0sIC8qIDMwMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ndHR5Igl9LCAvKiAzMDMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfYWNjZXNzIgl9LCAvKiAzMDMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbmljZSIJfSwgLyogMzAzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N0YXRmcyIJfSwgLyogMzAzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5bmMiCX0sIC8qIDMwMzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9raWxsIgl9LCAvKiAzMDM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZnN0YXRmcyIJfSwgLyogMzAzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHBncnAiCX0sIC8qIDMwMzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeXNzZ2kiCX0sIC8qIDMwNDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9kdXAiCX0sIC8qIDMwNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9waXBlIgl9LCAvKiAzMDQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdGltZXMiCX0sIC8qIDMwNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9wcm9maWwiCX0sIC8qIDMwNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9sb2NrIgl9LCAvKiAzMDQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0Z2lkIgl9LCAvKiAzMDQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0Z2lkIgl9LCAvKiAzMDQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2lnIgl9LCAvKiAzMDQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbXNnc3lzIgl9LCAvKiAzMDQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc3lzbWlwcyIJfSwgLyogMzA1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5c2FjY3QiCX0sIC8qIDMwNTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zaG1zeXMiCX0sIC8qIDMwNTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZW1zeXMiCX0sIC8qIDMwNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9pb2N0bCIJfSwgLyogMzA1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3VhZG1pbiIJfSwgLyogMzA1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2V4Y2giCX0sIC8qIDMwNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91dHNzeXMiCX0sIC8qIDMwNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA1OCIsCX0sIC8qIDMwNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9leGVjZSIJfSwgLyogMzA1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3VtYXNrIgl9LCAvKiAzMDYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2hyb290Igl9LCAvKiAzMDYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZmNudGwiCX0sIC8qIDMwNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91bGltaXQiCX0sIC8qIDMwNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2NCIsCX0sIC8qIDMwNjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2NSIsCX0sIC8qIDMwNjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2NiIsCX0sIC8qIDMwNjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2NyIsCX0sIC8qIDMwNjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2OCIsCX0sIC8qIDMwNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA2OSIsCX0sIC8qIDMwNjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9hZHZmcyIJfSwgLyogMzA3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3VuYWR2ZnMiCX0sIC8qIDMwNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ybW91bnQiCX0sIC8qIDMwNzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ydW1vdW50Igl9LCAvKiAzMDczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcmZzdGFydCIJfSwgLyogMzA3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDc1IiwJfSwgLyogMzA3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JkZWJ1ZyIJfSwgLyogMzA3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3Jmc3RvcCIJfSwgLyogMzA3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3Jmc3lzIgl9LCAvKiAzMDc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcm1kaXIiCX0sIC8qIDMwNzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ta2RpciIJfSwgLyogMzA4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGRlbnRzIgl9LCAvKiAzMDgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2dpbmFwIgl9LCAvKiAzMDgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2dpa29wdCIJfSwgLyogMzA4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5c2ZzIgl9LCAvKiAzMDg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0bXNnIgl9LCAvKiAzMDg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcHV0bXNnIgl9LCAvKiAzMDg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcG9sbCIJfSwgLyogMzA4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZ3JldHVybiIJfSwgLyogMzA4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2FjY2VwdCIJfSwgLyogMzA4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2JpbmQiCX0sIC8qIDMwOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jb25uZWN0Igl9LCAvKiAzMDkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0aG9zdGlkIgl9LCAvKiAzMDkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0cGVlcm5hbWUiCX0sIC8qIDMwOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRzb2NrbmFtZSIJfSwgLyogMzA5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHNvY2tvcHQiCX0sIC8qIDMwOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9saXN0ZW4iCX0sIC8qIDMwOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZWN2Igl9LCAvKiAzMDk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcmVjdmZyb20iCX0sIC8qIDMwOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZWN2bXNnIgl9LCAvKiAzMDk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2VsZWN0Igl9LCAvKiAzMTAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2VuZCIJfSwgLyogMzEwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NlbmRtc2ciCX0sIC8qIDMxMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZW5kdG8iCX0sIC8qIDMxMDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRob3N0aWQiCX0sIC8qIDMxMDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRzb2Nrb3B0Igl9LCAvKiAzMTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2h1dGRvd24iCX0sIC8qIDMxMDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zb2NrZXQiCX0sIC8qIDMxMDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRob3N0bmFtZSIJfSwgLyogMzEwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldGhvc3RuYW1lIgl9LCAvKiAzMTA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMzExMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldGRvbWFpbm5hbWUiCX0sIC8qIDMxMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF90cnVuY2F0ZSIJfSwgLyogMzExMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2Z0cnVuY2F0ZSIJfSwgLyogMzExMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JlbmFtZSIJfSwgLyogMzExNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5bWxpbmsiCX0sIC8qIDMxMTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZWFkbGluayIJfSwgLyogMzExNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2xzdGF0Igl9LCAvKiAzMTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbmZzX21vdW50Igl9LCAvKiAzMTE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbmZzX3N2YyIJfSwgLyogMzExOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25mc19nZXRmaCIJfSwgLyogMzEyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2FzeW5jX2RhZW1vbiIJfSwgLyogMzEyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2V4cG9ydGZzIgl9LCAvKiAzMTIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3NldHJlZ2lkIgl9LCAvKiAzMTIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3NldHJldWlkIgl9LCAvKiAzMTI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0aXRpbWVyIgl9LCAvKiAzMTI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0aXRpbWVyIgl9LCAvKiAzMTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfYWRqdGltZSIJfSwgLyogMzEyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9ic2RnZXR0aW1lIgl9LCAvKiAzMTI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3Nwcm9jIgl9LCAvKiAzMTI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3ByY3RsIgl9LCAvKiAzMTMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX2Jsa3Byb2MiCX0sIC8qIDMxMzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzEzMiIsCX0sIC8qIDMxMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfc2dpZ3NjIgl9LCAvKiAzMTMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX21tYXAiCX0sIC8qIDMxMzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfbXVubWFwIgl9LCAvKiAzMTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX21wcm90ZWN0Igl9LCAvKiAzMTM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX21zeW5jIgl9LCAvKiAzMTM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX21hZHZpc2UiCX0sIC8qIDMxMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfbXBpbiIJfSwgLyogMzEzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9nZXRwYWdlc2l6ZSIJfSwgLyogMzE0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9saWJhdHRhY2giCX0sIC8qIDMxNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfbGliZGV0YWNoIgl9LCAvKiAzMTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX2dldHBncnAiCX0sIC8qIDMxNDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfc2V0cGdycCIJfSwgLyogMzE0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTQ1IiwJfSwgLyogMzE0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTQ2IiwJfSwgLyogMzE0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTQ3IiwJfSwgLyogMzE0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTQ4IiwJfSwgLyogMzE0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTQ5IiwJfSwgLyogMzE0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2NhY2hlZmx1c2giCX0sIC8qIDMxNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jYWNoZWN0bCIJfSwgLyogMzE1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZjaG93biIJfSwgLyogMzE1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZjaG1vZCIJfSwgLyogMzE1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3dhaXQzIgl9LCAvKiAzMTU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbW1hcCIJfSwgLyogMzE1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X211bm1hcCIJfSwgLyogMzE1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X21hZHZpc2UiCX0sIC8qIDMxNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9CU0RfZ2V0cGFnZXNpemUiCX0sIC8qIDMxNTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRyZXVpZCIJfSwgLyogMzE1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldHJlZ2lkIgl9LCAvKiAzMTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0cGdpZCIJfSwgLyogMzE2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGdyb3VwcyIJfSwgLyogMzE2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldGdyb3VwcyIJfSwgLyogMzE2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHRpbWVvZmRheSIJfSwgLyogMzE2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHJ1c2FnZSIJfSwgLyogMzE2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHJsaW1pdCIJfSwgLyogMzE2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldHJsaW1pdCIJfSwgLyogMzE2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3dhaXRwaWQiCX0sIC8qIDMxNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9kdXAyIgl9LCAvKiAzMTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzAiLAl9LCAvKiAzMTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzEiLAl9LCAvKiAzMTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzIiLAl9LCAvKiAzMTcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzMiLAl9LCAvKiAzMTczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzQiLAl9LCAvKiAzMTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzUiLAl9LCAvKiAzMTc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzYiLAl9LCAvKiAzMTc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzciLAl9LCAvKiAzMTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzgiLAl9LCAvKiAzMTc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNzkiLAl9LCAvKiAzMTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODAiLAl9LCAvKiAzMTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODEiLAl9LCAvKiAzMTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODIiLAl9LCAvKiAzMTgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODMiLAl9LCAvKiAzMTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODQiLAl9LCAvKiAzMTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODUiLAl9LCAvKiAzMTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODYiLAl9LCAvKiAzMTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODciLAl9LCAvKiAzMTg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODgiLAl9LCAvKiAzMTg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxODkiLAl9LCAvKiAzMTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTAiLAl9LCAvKiAzMTkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTEiLAl9LCAvKiAzMTkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTIiLAl9LCAvKiAzMTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTMiLAl9LCAvKiAzMTkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTQiLAl9LCAvKiAzMTk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTUiLAl9LCAvKiAzMTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTYiLAl9LCAvKiAzMTk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTciLAl9LCAvKiAzMTk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTgiLAl9LCAvKiAzMTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOTkiLAl9LCAvKiAzMTk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDAiLAl9LCAvKiAzMjAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDEiLAl9LCAvKiAzMjAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDIiLAl9LCAvKiAzMjAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDMiLAl9LCAvKiAzMjAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDQiLAl9LCAvKiAzMjA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDUiLAl9LCAvKiAzMjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDYiLAl9LCAvKiAzMjA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDciLAl9LCAvKiAzMjA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDgiLAl9LCAvKiAzMjA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMDkiLAl9LCAvKiAzMjA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTAiLAl9LCAvKiAzMjEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTEiLAl9LCAvKiAzMjExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTIiLAl9LCAvKiAzMjEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTMiLAl9LCAvKiAzMjEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTQiLAl9LCAvKiAzMjE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTUiLAl9LCAvKiAzMjE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTYiLAl9LCAvKiAzMjE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTciLAl9LCAvKiAzMjE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTgiLAl9LCAvKiAzMjE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMTkiLAl9LCAvKiAzMjE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjAiLAl9LCAvKiAzMjIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjEiLAl9LCAvKiAzMjIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjIiLAl9LCAvKiAzMjIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjMiLAl9LCAvKiAzMjIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjQiLAl9LCAvKiAzMjI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjUiLAl9LCAvKiAzMjI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjYiLAl9LCAvKiAzMjI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjciLAl9LCAvKiAzMjI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjgiLAl9LCAvKiAzMjI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMjkiLAl9LCAvKiAzMjI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzAiLAl9LCAvKiAzMjMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzEiLAl9LCAvKiAzMjMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzIiLAl9LCAvKiAzMjMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzMiLAl9LCAvKiAzMjMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzQiLAl9LCAvKiAzMjM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzUiLAl9LCAvKiAzMjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzYiLAl9LCAvKiAzMjM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzciLAl9LCAvKiAzMjM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzgiLAl9LCAvKiAzMjM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMzkiLAl9LCAvKiAzMjM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDAiLAl9LCAvKiAzMjQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDEiLAl9LCAvKiAzMjQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDIiLAl9LCAvKiAzMjQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDMiLAl9LCAvKiAzMjQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDQiLAl9LCAvKiAzMjQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDUiLAl9LCAvKiAzMjQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDYiLAl9LCAvKiAzMjQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDciLAl9LCAvKiAzMjQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDgiLAl9LCAvKiAzMjQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNDkiLAl9LCAvKiAzMjQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTAiLAl9LCAvKiAzMjUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTEiLAl9LCAvKiAzMjUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTIiLAl9LCAvKiAzMjUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTMiLAl9LCAvKiAzMjUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTQiLAl9LCAvKiAzMjU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTUiLAl9LCAvKiAzMjU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTYiLAl9LCAvKiAzMjU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTciLAl9LCAvKiAzMjU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTgiLAl9LCAvKiAzMjU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNTkiLAl9LCAvKiAzMjU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbmV0Ym9vdCIJfSwgLyogMzI2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25ldHVuYm9vdCIJfSwgLyogMzI2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JkdW1wIgl9LCAvKiAzMjYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0c2lkIgl9LCAvKiAzMjYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0bWF4c2lnIgl9LCAvKiAzMjY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2lncGVuZGluZyIJfSwgLyogMzI2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZ3Byb2NtYXNrIgl9LCAvKiAzMjY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2lnc3VzcGVuZCIJfSwgLyogMzI2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZ2FjdGlvbiIJfSwgLyogMzI2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjY5IiwJfSwgLyogMzI2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjcwIiwJfSwgLyogMzI3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjcxIiwJfSwgLyogMzI3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjcyIiwJfSwgLyogMzI3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjczIiwJfSwgLyogMzI3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc0IiwJfSwgLyogMzI3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc1IiwJfSwgLyogMzI3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc2IiwJfSwgLyogMzI3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc3IiwJfSwgLyogMzI3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc4IiwJfSwgLyogMzI3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjc5IiwJfSwgLyogMzI3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgwIiwJfSwgLyogMzI4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgxIiwJfSwgLyogMzI4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgyIiwJfSwgLyogMzI4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgzIiwJfSwgLyogMzI4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg0IiwJfSwgLyogMzI4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg1IiwJfSwgLyogMzI4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg2IiwJfSwgLyogMzI4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg3IiwJfSwgLyogMzI4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg4IiwJfSwgLyogMzI4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjg5IiwJfSwgLyogMzI4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkwIiwJfSwgLyogMzI5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkxIiwJfSwgLyogMzI5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkyIiwJfSwgLyogMzI5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkzIiwJfSwgLyogMzI5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk0IiwJfSwgLyogMzI5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk1IiwJfSwgLyogMzI5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk2IiwJfSwgLyogMzI5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk3IiwJfSwgLyogMzI5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk4IiwJfSwgLyogMzI5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjk5IiwJfSwgLyogMzI5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzAwIiwJfSwgLyogMzMwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzAxIiwJfSwgLyogMzMwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzAyIiwJfSwgLyogMzMwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzAzIiwJfSwgLyogMzMwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA0IiwJfSwgLyogMzMwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA1IiwJfSwgLyogMzMwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA2IiwJfSwgLyogMzMwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA3IiwJfSwgLyogMzMwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA4IiwJfSwgLyogMzMwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzA5IiwJfSwgLyogMzMwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzEwIiwJfSwgLyogMzMxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzExIiwJfSwgLyogMzMxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzEyIiwJfSwgLyogMzMxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzEzIiwJfSwgLyogMzMxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE0IiwJfSwgLyogMzMxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE1IiwJfSwgLyogMzMxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE2IiwJfSwgLyogMzMxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE3IiwJfSwgLyogMzMxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE4IiwJfSwgLyogMzMxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzE5IiwJfSwgLyogMzMxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzIwIgl9LCAvKiAzMzIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjEiCX0sIC8qIDMzMjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyMiIJfSwgLyogMzMyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzIzIgl9LCAvKiAzMzIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjQiCX0sIC8qIDMzMjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyNSIJfSwgLyogMzMyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzI2Igl9LCAvKiAzMzI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjciCX0sIC8qIDMzMjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyOCIJfSwgLyogMzMyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzI5Igl9LCAvKiAzMzI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzAiCX0sIC8qIDMzMzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzMSIJfSwgLyogMzMzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzMyIgl9LCAvKiAzMzMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzMiCX0sIC8qIDMzMzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzNCIJfSwgLyogMzMzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzM1Igl9LCAvKiAzMzM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzYiCX0sIC8qIDMzMzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzNyIJfSwgLyogMzMzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzM4Igl9LCAvKiAzMzM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzkiCX0sIC8qIDMzMzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0MCIJfSwgLyogMzM0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQxIgl9LCAvKiAzMzQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDIiCX0sIC8qIDMzNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0MyIJfSwgLyogMzM0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQ0Igl9LCAvKiAzMzQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDUiCX0sIC8qIDMzNDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0NiIJfSwgLyogMzM0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQ3Igl9LCAvKiAzMzQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDgiCX0sIC8qIDMzNDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0OSIJfSwgLyogMzM0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUwIgl9LCAvKiAzMzUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTEiCX0sIC8qIDMzNTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1MiIJfSwgLyogMzM1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUzIgl9LCAvKiAzMzUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTQiCX0sIC8qIDMzNTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1NSIJfSwgLyogMzM1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzU2Igl9LCAvKiAzMzU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTciCX0sIC8qIDMzNTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1OCIJfSwgLyogMzM1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzU5Igl9LCAvKiAzMzU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjAiCX0sIC8qIDMzNjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2MSIJfSwgLyogMzM2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYyIgl9LCAvKiAzMzYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjMiCX0sIC8qIDMzNjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2NCIJfSwgLyogMzM2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzY1Igl9LCAvKiAzMzY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjYiCX0sIC8qIDMzNjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2NyIJfSwgLyogMzM2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzY4Igl9LCAvKiAzMzY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjkiCX0sIC8qIDMzNjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3MCIJfSwgLyogMzM3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzcxIgl9LCAvKiAzMzcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzIiCX0sIC8qIDMzNzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3MyIJfSwgLyogMzM3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzc0Igl9LCAvKiAzMzc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzUiCX0sIC8qIDMzNzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3NiIJfSwgLyogMzM3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzc3Igl9LCAvKiAzMzc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzgiCX0sIC8qIDMzNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3OSIJfSwgLyogMzM3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgwIgl9LCAvKiAzMzgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODEiCX0sIC8qIDMzODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4MiIJfSwgLyogMzM4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgzIgl9LCAvKiAzMzgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODQiCX0sIC8qIDMzODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4NSIJfSwgLyogMzM4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzg2Igl9LCAvKiAzMzg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODciCX0sIC8qIDMzODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4OCIJfSwgLyogMzM4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzg5Igl9LCAvKiAzMzg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTAiCX0sIC8qIDMzOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5MSIJfSwgLyogMzM5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkyIgl9LCAvKiAzMzkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTMiCX0sIC8qIDMzOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5NCIJfSwgLyogMzM5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzk1Igl9LCAvKiAzMzk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTYiCX0sIC8qIDMzOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5NyIJfSwgLyogMzM5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzk4Igl9LCAvKiAzMzk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTkiCX0sIC8qIDMzOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwMCIJfSwgLyogMzQwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDAxIgl9LCAvKiAzNDAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDIiCX0sIC8qIDM0MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwMyIJfSwgLyogMzQwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDA0Igl9LCAvKiAzNDA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDUiCX0sIC8qIDM0MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwNiIJfSwgLyogMzQwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDA3Igl9LCAvKiAzNDA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDgiCX0sIC8qIDM0MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwOSIJfSwgLyogMzQwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDEwIgl9LCAvKiAzNDEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTEiCX0sIC8qIDM0MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxMiIJfSwgLyogMzQxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDEzIgl9LCAvKiAzNDEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTQiCX0sIC8qIDM0MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxNSIJfSwgLyogMzQxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDE2Igl9LCAvKiAzNDE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTciCX0sIC8qIDM0MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxOCIJfSwgLyogMzQxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDE5Igl9LCAvKiAzNDE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjAiCX0sIC8qIDM0MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyMSIJfSwgLyogMzQyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDIyIgl9LCAvKiAzNDIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjMiCX0sIC8qIDM0MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyNCIJfSwgLyogMzQyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDI1Igl9LCAvKiAzNDI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjYiCX0sIC8qIDM0MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyNyIJfSwgLyogMzQyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDI4Igl9LCAvKiAzNDI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjkiCX0sIC8qIDM0MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzMCIJfSwgLyogMzQzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMxIgl9LCAvKiAzNDMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzIiCX0sIC8qIDM0MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzMyIJfSwgLyogMzQzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDM0Igl9LCAvKiAzNDM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzUiCX0sIC8qIDM0MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzNiIJfSwgLyogMzQzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDM3Igl9LCAvKiAzNDM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzgiCX0sIC8qIDM0MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzOSIJfSwgLyogMzQzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQwIgl9LCAvKiAzNDQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDEiCX0sIC8qIDM0NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0MiIJfSwgLyogMzQ0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQzIgl9LCAvKiAzNDQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDQiCX0sIC8qIDM0NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0NSIJfSwgLyogMzQ0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQ2Igl9LCAvKiAzNDQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDciCX0sIC8qIDM0NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0OCIJfSwgLyogMzQ0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQ5Igl9LCAvKiAzNDQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTAiCX0sIC8qIDM0NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1MSIJfSwgLyogMzQ1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUyIgl9LCAvKiAzNDUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTMiCX0sIC8qIDM0NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1NCIJfSwgLyogMzQ1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDU1Igl9LCAvKiAzNDU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTYiCX0sIC8qIDM0NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1NyIJfSwgLyogMzQ1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDU4Igl9LCAvKiAzNDU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTkiCX0sIC8qIDM0NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2MCIJfSwgLyogMzQ2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYxIgl9LCAvKiAzNDYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjIiCX0sIC8qIDM0NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2MyIJfSwgLyogMzQ2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDY0Igl9LCAvKiAzNDY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjUiCX0sIC8qIDM0NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2NiIJfSwgLyogMzQ2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDY3Igl9LCAvKiAzNDY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjgiCX0sIC8qIDM0NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2OSIJfSwgLyogMzQ2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDcwIgl9LCAvKiAzNDcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzEiCX0sIC8qIDM0NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3MiIJfSwgLyogMzQ3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDczIgl9LCAvKiAzNDczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzQiCX0sIC8qIDM0NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3NSIJfSwgLyogMzQ3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDc2Igl9LCAvKiAzNDc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzciCX0sIC8qIDM0NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3OCIJfSwgLyogMzQ3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDc5Igl9LCAvKiAzNDc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODAiCX0sIC8qIDM0ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4MSIJfSwgLyogMzQ4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgyIgl9LCAvKiAzNDgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODMiCX0sIC8qIDM0ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4NCIJfSwgLyogMzQ4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDg1Igl9LCAvKiAzNDg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODYiCX0sIC8qIDM0ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4NyIJfSwgLyogMzQ4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDg4Igl9LCAvKiAzNDg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODkiCX0sIC8qIDM0ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5MCIJfSwgLyogMzQ5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkxIgl9LCAvKiAzNDkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTIiCX0sIC8qIDM0OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5MyIJfSwgLyogMzQ5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDk0Igl9LCAvKiAzNDk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTUiCX0sIC8qIDM0OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5NiIJfSwgLyogMzQ5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDk3Igl9LCAvKiAzNDk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTgiCX0sIC8qIDM0OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5OSIJfSwgLyogMzQ5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTAwIgl9LCAvKiAzNTAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDEiCX0sIC8qIDM1MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwMiIJfSwgLyogMzUwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTAzIgl9LCAvKiAzNTAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDQiCX0sIC8qIDM1MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwNSIJfSwgLyogMzUwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTA2Igl9LCAvKiAzNTA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDciCX0sIC8qIDM1MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwOCIJfSwgLyogMzUwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTA5Igl9LCAvKiAzNTA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTAiCX0sIC8qIDM1MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxMSIJfSwgLyogMzUxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEyIgl9LCAvKiAzNTEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTMiCX0sIC8qIDM1MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxNCIJfSwgLyogMzUxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTE1Igl9LCAvKiAzNTE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTYiCX0sIC8qIDM1MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxNyIJfSwgLyogMzUxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTE4Igl9LCAvKiAzNTE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTkiCX0sIC8qIDM1MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyMCIJfSwgLyogMzUyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTIxIgl9LCAvKiAzNTIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjIiCX0sIC8qIDM1MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyMyIJfSwgLyogMzUyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTI0Igl9LCAvKiAzNTI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjUiCX0sIC8qIDM1MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyNiIJfSwgLyogMzUyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTI3Igl9LCAvKiAzNTI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjgiCX0sIC8qIDM1MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyOSIJfSwgLyogMzUyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTMwIgl9LCAvKiAzNTMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzEiCX0sIC8qIDM1MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzMiIJfSwgLyogMzUzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTMzIgl9LCAvKiAzNTMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzQiCX0sIC8qIDM1MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzNSIJfSwgLyogMzUzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTM2Igl9LCAvKiAzNTM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzciCX0sIC8qIDM1MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzOCIJfSwgLyogMzUzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTM5Igl9LCAvKiAzNTM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDAiCX0sIC8qIDM1NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0MSIJfSwgLyogMzU0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQyIgl9LCAvKiAzNTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDMiCX0sIC8qIDM1NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0NCIJfSwgLyogMzU0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQ1Igl9LCAvKiAzNTQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDYiCX0sIC8qIDM1NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0NyIJfSwgLyogMzU0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQ4Igl9LCAvKiAzNTQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDkiCX0sIC8qIDM1NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1MCIJfSwgLyogMzU1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUxIgl9LCAvKiAzNTUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTIiCX0sIC8qIDM1NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1MyIJfSwgLyogMzU1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTU0Igl9LCAvKiAzNTU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTUiCX0sIC8qIDM1NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1NiIJfSwgLyogMzU1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTU3Igl9LCAvKiAzNTU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTgiCX0sIC8qIDM1NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1OSIJfSwgLyogMzU1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYwIgl9LCAvKiAzNTYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjEiCX0sIC8qIDM1NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2MiIJfSwgLyogMzU2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYzIgl9LCAvKiAzNTYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjQiCX0sIC8qIDM1NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2NSIJfSwgLyogMzU2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTY2Igl9LCAvKiAzNTY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjciCX0sIC8qIDM1NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2OCIJfSwgLyogMzU2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTY5Igl9LCAvKiAzNTY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzAiCX0sIC8qIDM1NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3MSIJfSwgLyogMzU3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTcyIgl9LCAvKiAzNTcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzMiCX0sIC8qIDM1NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3NCIJfSwgLyogMzU3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTc1Igl9LCAvKiAzNTc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzYiCX0sIC8qIDM1NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3NyIJfSwgLyogMzU3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTc4Igl9LCAvKiAzNTc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzkiCX0sIC8qIDM1NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4MCIJfSwgLyogMzU4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgxIgl9LCAvKiAzNTgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODIiCX0sIC8qIDM1ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4MyIJfSwgLyogMzU4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTg0Igl9LCAvKiAzNTg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODUiCX0sIC8qIDM1ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4NiIJfSwgLyogMzU4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTg3Igl9LCAvKiAzNTg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODgiCX0sIC8qIDM1ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4OSIJfSwgLyogMzU4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkwIgl9LCAvKiAzNTkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTEiCX0sIC8qIDM1OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5MiIJfSwgLyogMzU5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkzIgl9LCAvKiAzNTkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTQiCX0sIC8qIDM1OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5NSIJfSwgLyogMzU5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTk2Igl9LCAvKiAzNTk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTciCX0sIC8qIDM1OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5OCIJfSwgLyogMzU5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTk5Igl9LCAvKiAzNTk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDAiCX0sIC8qIDM2MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwMSIJfSwgLyogMzYwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAyIgl9LCAvKiAzNjAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDMiCX0sIC8qIDM2MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwNCIJfSwgLyogMzYwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjA1Igl9LCAvKiAzNjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDYiCX0sIC8qIDM2MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwNyIJfSwgLyogMzYwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjA4Igl9LCAvKiAzNjA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDkiCX0sIC8qIDM2MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxMCIJfSwgLyogMzYxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjExIgl9LCAvKiAzNjExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTIiCX0sIC8qIDM2MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxMyIJfSwgLyogMzYxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjE0Igl9LCAvKiAzNjE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTUiCX0sIC8qIDM2MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxNiIJfSwgLyogMzYxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjE3Igl9LCAvKiAzNjE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTgiCX0sIC8qIDM2MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxOSIJfSwgLyogMzYxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIwIgl9LCAvKiAzNjIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjEiCX0sIC8qIDM2MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyMiIJfSwgLyogMzYyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIzIgl9LCAvKiAzNjIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjQiCX0sIC8qIDM2MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyNSIJfSwgLyogMzYyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjI2Igl9LCAvKiAzNjI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjciCX0sIC8qIDM2MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyOCIJfSwgLyogMzYyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjI5Igl9LCAvKiAzNjI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzAiCX0sIC8qIDM2MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzMSIJfSwgLyogMzYzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMyIgl9LCAvKiAzNjMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzMiCX0sIC8qIDM2MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzNCIJfSwgLyogMzYzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjM1Igl9LCAvKiAzNjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzYiCX0sIC8qIDM2MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzNyIJfSwgLyogMzYzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjM4Igl9LCAvKiAzNjM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzkiCX0sIC8qIDM2MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0MCIJfSwgLyogMzY0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQxIgl9LCAvKiAzNjQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDIiCX0sIC8qIDM2NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0MyIJfSwgLyogMzY0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQ0Igl9LCAvKiAzNjQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDUiCX0sIC8qIDM2NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0NiIJfSwgLyogMzY0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQ3Igl9LCAvKiAzNjQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDgiCX0sIC8qIDM2NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0OSIJfSwgLyogMzY0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUwIgl9LCAvKiAzNjUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTEiCX0sIC8qIDM2NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1MiIJfSwgLyogMzY1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUzIgl9LCAvKiAzNjUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTQiCX0sIC8qIDM2NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1NSIJfSwgLyogMzY1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjU2Igl9LCAvKiAzNjU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTciCX0sIC8qIDM2NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1OCIJfSwgLyogMzY1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjU5Igl9LCAvKiAzNjU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjAiCX0sIC8qIDM2NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2MSIJfSwgLyogMzY2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYyIgl9LCAvKiAzNjYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjMiCX0sIC8qIDM2NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2NCIJfSwgLyogMzY2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjY1Igl9LCAvKiAzNjY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjYiCX0sIC8qIDM2NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2NyIJfSwgLyogMzY2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjY4Igl9LCAvKiAzNjY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjkiCX0sIC8qIDM2NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3MCIJfSwgLyogMzY3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjcxIgl9LCAvKiAzNjcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzIiCX0sIC8qIDM2NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3MyIJfSwgLyogMzY3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjc0Igl9LCAvKiAzNjc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzUiCX0sIC8qIDM2NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3NiIJfSwgLyogMzY3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjc3Igl9LCAvKiAzNjc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzgiCX0sIC8qIDM2NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3OSIJfSwgLyogMzY3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgwIgl9LCAvKiAzNjgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODEiCX0sIC8qIDM2ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4MiIJfSwgLyogMzY4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgzIgl9LCAvKiAzNjgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODQiCX0sIC8qIDM2ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4NSIJfSwgLyogMzY4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjg2Igl9LCAvKiAzNjg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODciCX0sIC8qIDM2ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4OCIJfSwgLyogMzY4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjg5Igl9LCAvKiAzNjg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTAiCX0sIC8qIDM2OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5MSIJfSwgLyogMzY5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkyIgl9LCAvKiAzNjkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTMiCX0sIC8qIDM2OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5NCIJfSwgLyogMzY5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjk1Igl9LCAvKiAzNjk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTYiCX0sIC8qIDM2OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5NyIJfSwgLyogMzY5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjk4Igl9LCAvKiAzNjk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTkiCX0sIC8qIDM2OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwMCIJfSwgLyogMzcwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAxIgl9LCAvKiAzNzAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDIiCX0sIC8qIDM3MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwMyIJfSwgLyogMzcwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzA0Igl9LCAvKiAzNzA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDUiCX0sIC8qIDM3MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwNiIJfSwgLyogMzcwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzA3Igl9LCAvKiAzNzA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDgiCX0sIC8qIDM3MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwOSIJfSwgLyogMzcwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEwIgl9LCAvKiAzNzEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTEiCX0sIC8qIDM3MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxMiIJfSwgLyogMzcxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEzIgl9LCAvKiAzNzEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTQiCX0sIC8qIDM3MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxNSIJfSwgLyogMzcxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzE2Igl9LCAvKiAzNzE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTciCX0sIC8qIDM3MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxOCIJfSwgLyogMzcxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzE5Igl9LCAvKiAzNzE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjAiCX0sIC8qIDM3MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyMSIJfSwgLyogMzcyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIyIgl9LCAvKiAzNzIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjMiCX0sIC8qIDM3MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyNCIJfSwgLyogMzcyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzI1Igl9LCAvKiAzNzI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjYiCX0sIC8qIDM3MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyNyIJfSwgLyogMzcyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzI4Igl9LCAvKiAzNzI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjkiCX0sIC8qIDM3MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczMCIJfSwgLyogMzczMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMxIgl9LCAvKiAzNzMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzIiCX0sIC8qIDM3MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczMyIJfSwgLyogMzczMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzM0Igl9LCAvKiAzNzM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzUiCX0sIC8qIDM3MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczNiIJfSwgLyogMzczNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzM3Igl9LCAvKiAzNzM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzgiCX0sIC8qIDM3MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczOSIJfSwgLyogMzczOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQwIgl9LCAvKiAzNzQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDEiCX0sIC8qIDM3NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0MiIJfSwgLyogMzc0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQzIgl9LCAvKiAzNzQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDQiCX0sIC8qIDM3NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0NSIJfSwgLyogMzc0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQ2Igl9LCAvKiAzNzQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDciCX0sIC8qIDM3NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0OCIJfSwgLyogMzc0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQ5Igl9LCAvKiAzNzQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTAiCX0sIC8qIDM3NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1MSIJfSwgLyogMzc1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUyIgl9LCAvKiAzNzUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTMiCX0sIC8qIDM3NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1NCIJfSwgLyogMzc1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzU1Igl9LCAvKiAzNzU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTYiCX0sIC8qIDM3NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1NyIJfSwgLyogMzc1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzU4Igl9LCAvKiAzNzU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTkiCX0sIC8qIDM3NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2MCIJfSwgLyogMzc2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYxIgl9LCAvKiAzNzYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjIiCX0sIC8qIDM3NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2MyIJfSwgLyogMzc2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzY0Igl9LCAvKiAzNzY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjUiCX0sIC8qIDM3NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2NiIJfSwgLyogMzc2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzY3Igl9LCAvKiAzNzY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjgiCX0sIC8qIDM3NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2OSIJfSwgLyogMzc2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzcwIgl9LCAvKiAzNzcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzEiCX0sIC8qIDM3NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3MiIJfSwgLyogMzc3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzczIgl9LCAvKiAzNzczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzQiCX0sIC8qIDM3NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3NSIJfSwgLyogMzc3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzc2Igl9LCAvKiAzNzc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzciCX0sIC8qIDM3NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3OCIJfSwgLyogMzc3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzc5Igl9LCAvKiAzNzc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODAiCX0sIC8qIDM3ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4MSIJfSwgLyogMzc4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgyIgl9LCAvKiAzNzgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODMiCX0sIC8qIDM3ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4NCIJfSwgLyogMzc4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzg1Igl9LCAvKiAzNzg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODYiCX0sIC8qIDM3ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4NyIJfSwgLyogMzc4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzg4Igl9LCAvKiAzNzg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODkiCX0sIC8qIDM3ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5MCIJfSwgLyogMzc5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkxIgl9LCAvKiAzNzkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTIiCX0sIC8qIDM3OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5MyIJfSwgLyogMzc5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzk0Igl9LCAvKiAzNzk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTUiCX0sIC8qIDM3OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5NiIJfSwgLyogMzc5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzk3Igl9LCAvKiAzNzk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTgiCX0sIC8qIDM3OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5OSIJfSwgLyogMzc5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAwIgl9LCAvKiAzODAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDEiCX0sIC8qIDM4MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwMiIJfSwgLyogMzgwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAzIgl9LCAvKiAzODAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDQiCX0sIC8qIDM4MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwNSIJfSwgLyogMzgwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODA2Igl9LCAvKiAzODA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDciCX0sIC8qIDM4MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwOCIJfSwgLyogMzgwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODA5Igl9LCAvKiAzODA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTAiCX0sIC8qIDM4MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxMSIJfSwgLyogMzgxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEyIgl9LCAvKiAzODEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTMiCX0sIC8qIDM4MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxNCIJfSwgLyogMzgxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODE1Igl9LCAvKiAzODE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTYiCX0sIC8qIDM4MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxNyIJfSwgLyogMzgxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODE4Igl9LCAvKiAzODE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTkiCX0sIC8qIDM4MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyMCIJfSwgLyogMzgyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIxIgl9LCAvKiAzODIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjIiCX0sIC8qIDM4MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyMyIJfSwgLyogMzgyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODI0Igl9LCAvKiAzODI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjUiCX0sIC8qIDM4MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyNiIJfSwgLyogMzgyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODI3Igl9LCAvKiAzODI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjgiCX0sIC8qIDM4MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyOSIJfSwgLyogMzgyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMwIgl9LCAvKiAzODMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzEiCX0sIC8qIDM4MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzMiIJfSwgLyogMzgzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMzIgl9LCAvKiAzODMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzQiCX0sIC8qIDM4MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzNSIJfSwgLyogMzgzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODM2Igl9LCAvKiAzODM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzciCX0sIC8qIDM4MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzOCIJfSwgLyogMzgzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODM5Igl9LCAvKiAzODM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDAiCX0sIC8qIDM4NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0MSIJfSwgLyogMzg0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQyIgl9LCAvKiAzODQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDMiCX0sIC8qIDM4NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0NCIJfSwgLyogMzg0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQ1Igl9LCAvKiAzODQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDYiCX0sIC8qIDM4NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0NyIJfSwgLyogMzg0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQ4Igl9LCAvKiAzODQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDkiCX0sIC8qIDM4NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1MCIJfSwgLyogMzg1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUxIgl9LCAvKiAzODUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTIiCX0sIC8qIDM4NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1MyIJfSwgLyogMzg1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODU0Igl9LCAvKiAzODU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTUiCX0sIC8qIDM4NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1NiIJfSwgLyogMzg1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODU3Igl9LCAvKiAzODU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTgiCX0sIC8qIDM4NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1OSIJfSwgLyogMzg1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYwIgl9LCAvKiAzODYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjEiCX0sIC8qIDM4NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2MiIJfSwgLyogMzg2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYzIgl9LCAvKiAzODYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjQiCX0sIC8qIDM4NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2NSIJfSwgLyogMzg2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODY2Igl9LCAvKiAzODY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjciCX0sIC8qIDM4NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2OCIJfSwgLyogMzg2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODY5Igl9LCAvKiAzODY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzAiCX0sIC8qIDM4NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3MSIJfSwgLyogMzg3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODcyIgl9LCAvKiAzODcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzMiCX0sIC8qIDM4NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3NCIJfSwgLyogMzg3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODc1Igl9LCAvKiAzODc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzYiCX0sIC8qIDM4NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3NyIJfSwgLyogMzg3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODc4Igl9LCAvKiAzODc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzkiCX0sIC8qIDM4NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4MCIJfSwgLyogMzg4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgxIgl9LCAvKiAzODgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODIiCX0sIC8qIDM4ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4MyIJfSwgLyogMzg4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODg0Igl9LCAvKiAzODg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODUiCX0sIC8qIDM4ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4NiIJfSwgLyogMzg4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODg3Igl9LCAvKiAzODg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODgiCX0sIC8qIDM4ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4OSIJfSwgLyogMzg4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkwIgl9LCAvKiAzODkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTEiCX0sIC8qIDM4OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5MiIJfSwgLyogMzg5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkzIgl9LCAvKiAzODkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTQiCX0sIC8qIDM4OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5NSIJfSwgLyogMzg5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODk2Igl9LCAvKiAzODk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTciCX0sIC8qIDM4OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5OCIJfSwgLyogMzg5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODk5Igl9LCAvKiAzODk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDAiCX0sIC8qIDM5MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwMSIJfSwgLyogMzkwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAyIgl9LCAvKiAzOTAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDMiCX0sIC8qIDM5MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwNCIJfSwgLyogMzkwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTA1Igl9LCAvKiAzOTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDYiCX0sIC8qIDM5MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwNyIJfSwgLyogMzkwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTA4Igl9LCAvKiAzOTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDkiCX0sIC8qIDM5MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxMCIJfSwgLyogMzkxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTExIgl9LCAvKiAzOTExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTIiCX0sIC8qIDM5MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxMyIJfSwgLyogMzkxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTE0Igl9LCAvKiAzOTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTUiCX0sIC8qIDM5MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxNiIJfSwgLyogMzkxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTE3Igl9LCAvKiAzOTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTgiCX0sIC8qIDM5MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxOSIJfSwgLyogMzkxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIwIgl9LCAvKiAzOTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjEiCX0sIC8qIDM5MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyMiIJfSwgLyogMzkyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIzIgl9LCAvKiAzOTIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjQiCX0sIC8qIDM5MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyNSIJfSwgLyogMzkyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTI2Igl9LCAvKiAzOTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjciCX0sIC8qIDM5MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyOCIJfSwgLyogMzkyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTI5Igl9LCAvKiAzOTI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzAiCX0sIC8qIDM5MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzMSIJfSwgLyogMzkzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMyIgl9LCAvKiAzOTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzMiCX0sIC8qIDM5MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzNCIJfSwgLyogMzkzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTM1Igl9LCAvKiAzOTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzYiCX0sIC8qIDM5MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzNyIJfSwgLyogMzkzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTM4Igl9LCAvKiAzOTM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzkiCX0sIC8qIDM5MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0MCIJfSwgLyogMzk0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQxIgl9LCAvKiAzOTQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDIiCX0sIC8qIDM5NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0MyIJfSwgLyogMzk0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQ0Igl9LCAvKiAzOTQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDUiCX0sIC8qIDM5NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0NiIJfSwgLyogMzk0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQ3Igl9LCAvKiAzOTQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDgiCX0sIC8qIDM5NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0OSIJfSwgLyogMzk0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUwIgl9LCAvKiAzOTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTEiCX0sIC8qIDM5NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1MiIJfSwgLyogMzk1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUzIgl9LCAvKiAzOTUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTQiCX0sIC8qIDM5NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1NSIJfSwgLyogMzk1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTU2Igl9LCAvKiAzOTU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTciCX0sIC8qIDM5NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1OCIJfSwgLyogMzk1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTU5Igl9LCAvKiAzOTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjAiCX0sIC8qIDM5NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2MSIJfSwgLyogMzk2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYyIgl9LCAvKiAzOTYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjMiCX0sIC8qIDM5NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2NCIJfSwgLyogMzk2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTY1Igl9LCAvKiAzOTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjYiCX0sIC8qIDM5NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2NyIJfSwgLyogMzk2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTY4Igl9LCAvKiAzOTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjkiCX0sIC8qIDM5NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3MCIJfSwgLyogMzk3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTcxIgl9LCAvKiAzOTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzIiCX0sIC8qIDM5NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3MyIJfSwgLyogMzk3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTc0Igl9LCAvKiAzOTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzUiCX0sIC8qIDM5NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3NiIJfSwgLyogMzk3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTc3Igl9LCAvKiAzOTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzgiCX0sIC8qIDM5NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3OSIJfSwgLyogMzk3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgwIgl9LCAvKiAzOTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODEiCX0sIC8qIDM5ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4MiIJfSwgLyogMzk4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgzIgl9LCAvKiAzOTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODQiCX0sIC8qIDM5ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4NSIJfSwgLyogMzk4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTg2Igl9LCAvKiAzOTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODciCX0sIC8qIDM5ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4OCIJfSwgLyogMzk4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTg5Igl9LCAvKiAzOTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTAiCX0sIC8qIDM5OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5MSIJfSwgLyogMzk5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkyIgl9LCAvKiAzOTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTMiCX0sIC8qIDM5OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5NCIJfSwgLyogMzk5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTk1Igl9LCAvKiAzOTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTYiCX0sIC8qIDM5OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5NyIJfSwgLyogMzk5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTk4Igl9LCAvKiAzOTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTkiCX0sIC8qIDM5OTkgKi8gLyogZW5kIG9mIFBPU0lYICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic3lzY2FsbCIJfSwgLyogNDAwMCAqLyAvKiBzdGFydCBvZiBMaW51eCBvMzIgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJfSwgLyogNDAwMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQl9LCAvKiA0MDAyICovCi0JeyAzLAlURiwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDQwMDMgKi8KLQl7IDMsCVRGLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0MDA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDQwMDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDQwMDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgl9LCAvKiA0MDA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogNDAwOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA0MDA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDQwMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogNDAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDQwMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiA0MDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogNDAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDQwMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiA0MDE2ICovCi0JeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiA0MDE3ICovCi0JeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJfSwgLyogNDAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogNDAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDQwMjAgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiA0MDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDQwMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiA0MDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogNDAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogNDAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDQwMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDQwMjcgKi8KLQl7IDIsCVRGLAlzeXNfb2xkZnN0YXQsCQkib2xkZnN0YXQiCX0sIC8qIDQwMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiA0MDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogNDAzMCAqLwotCXsgMCwJMCwJc3lzX3N0dHksCQkic3R0eSIJCX0sIC8qIDQwMzEgKi8KLQl7IDAsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiA0MDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDQwMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiA0MDM0ICovCi0JeyAxLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiA0MDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogNDAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiA0MDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDQwMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiA0MDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDA0MyAqLwotCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQwNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDA0NSAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQwNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0MDQ3ICovCi0JeyAxLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQwNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDQwNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDQwNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNDA1MSAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNDA1MiAqLwotCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDQwNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDQwNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDQwNTUgKi8KLQl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNDA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNDA1NyAqLwotCXsgMCwJMCwJc3lzX3VsaW1pdCwJCSJ1bGltaXQiCX0sIC8qIDQwNTggKi8KLQl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA0MDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA0MDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDQwNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDQwNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA0MDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA0MDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA0MDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNDA2NiAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA0MDY3ICovCi0JeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNDA2OCAqLwotCXsgMSwJVFMsCXN5c19zaWdzZXRtYXNrLAkJInNpZ3NldG1hc2siCX0sIC8qIDQwNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNDA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA0MDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNDA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDQwNzMgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA0MDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNDA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDQwNzYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA0MDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiA0MDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA0MDc5ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogNDA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDQwODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJyZXNlcnZlZDgyIgl9LCAvKiA0MDgyICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogNDA4MyAqLwotCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogNDA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogNDA4NSAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA0MDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDQwODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA0MDg4ICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA0MDg5ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJvbGRfbW1hcCIJfSwgLyogNDA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDQwOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDQwOTIgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA0MDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogNDA5NCAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDQwOTUgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA0MDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogNDA5NyAqLwotCXsgMCwJMCwJc3lzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDQwOTggKi8KLQl7IDMsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogNDA5OSAqLwotCXsgMywJVEYsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDQxMDAgKi8KLQl7IDAsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiA0MTAxICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiA0MTAyICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogNDEwMyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDQxMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiA0MTA1ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDQxMDYgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiA0MTA3ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogNDEwOCAqLwotCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiA0MTA5ICovCi0JeyAwLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgLyogNDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogNDExMSAqLwotCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDQxMTIgKi8KLQl7IDUsCTAsCXN5c192bTg2b2xkLAkJInZtODYiCQl9LCAvKiA0MTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogNDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogNDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogNDExNiAqLwotCXsgNiwJMCwJc3lzX2lwYywJCSJpcGMiCQl9LCAvKiA0MTE3ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiA0MTE4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDQxMTkgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAvKiA0MTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDQxMjEgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDQxMjIgKi8KLQl7IDAsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDQxMjMgKi8KLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogNDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiA0MTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDQxMjYgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogNDEyNyAqLwotCXsgMywJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDQxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogNDEyOSAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiA0MTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDQxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDQxMzIgKi8KLQl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogNDEzMyAqLwotCXsgMiwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogNDEzNCAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogNDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDQxMzYgKi8KLQl7IDAsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiA0MTM3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDQxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogNDEzOSAqLwotCXsgNSwJVEYsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogNDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiA0MTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJIl9uZXdzZWxlY3QiCX0sIC8qIDQxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDQxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDQxNDQgKi8KLQl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDQxNDUgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiA0MTQ2ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiY2FjaGVmbHVzaCIJfSwgLyogNDE0NyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImNhY2hlY3RsIgl9LCAvKiA0MTQ4ICovCi0JeyA0LAkwLAlzeXNfc3lzbWlwcywJCSJzeXNtaXBzIgl9LCAvKiA0MTQ5ICovCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiA0MTUwICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogNDE1MSAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDQxNTIgKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogNDE1MyAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogNDE1NCAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogNDE1NSAqLwotCXsgMSwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiA0MTU2ICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiA0MTU3ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiA0MTU4ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiA0MTU5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDQxNjAgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogNDE2MSAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCX0sIC8qIDQxNjIgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4IgkJCQkJCQkJfSwgLyogNDE2MyAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4iCQkJCQkJCQl9LCAvKiA0MTY0ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogNDE2NSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDQxNjYgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiA0MTY3ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDQxNjggKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogNDE2OSAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDQxNzAgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNDE3MSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiA0MTcyICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNDE3MyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA0MTc0ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDQxNzUgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDQxNzYgKi8KLQl7IDMsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiA0MTc3ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDQxNzggKi8KLQl7IDMsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiA0MTc5ICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDQxODAgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiA0MTgxICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiA0MTgyICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDQxODMgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiA0MTg0ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogNDE4NSAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDQxODYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDQxODcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiA0MTg4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogNDE4OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDQxOTAgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiA0MTkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiA0MTkyICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogNDE5MyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCX0sIC8qIDQxOTQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiA0MTk1ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiA0MTk2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LC8qIDQxOTcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sLyogNDE5OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogNDE5OSAqLwotCXsgNiwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDQyMDAgKi8KLQl7IDYsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogNDIwMSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDQyMDIgKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogNDIwMyAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDQyMDQgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiA0MjA1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhdGNrIgl9LCAvKiA0MjA2ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiA0MjA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMDgiCX0sIC8qIDQyMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIwOSIJfSwgLyogNDIwOSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCX0sIC8qIDQyMTAgKi8KLQl7IDQsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiA0MjExICovCi0JeyA0LAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDQyMTIgKi8KLQl7IDIsCVRGLAlwcmludGFyZ3MsCQkic3RhdDY0Igl9LCAvKiA0MjEzICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogNDIxNCAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDQyMTUgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDQyMTYgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiA0MjE3ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiA0MjE4ICovCi0JeyAzLAlURiwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogNDIxOSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDQyMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIyMSIJfSwgLyogNDIyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldHRpZCIJfSwgLyogNDIyMiAqLwotCXsgNSwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDQyMjMgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDQyMjQgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgl9LCAvKiA0MjI1ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogNDIyNiAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogNDIyNyAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDQyMjggKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiA0MjI5ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDQyMzAgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDQyMzEgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDQyMzIgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogNDIzMyAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJfSwgLyogNDIzNCAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogNDIzNSAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogNDIzNiAqLwotCXsgNSwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDQyMzcgKi8KLQl7IDYsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDQyMzggKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5In0sIC8qIDQyMzkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5In0sIC8qIDQyNDAgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogNDI0MSAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogNDI0MiAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCX0sIC8qIDQyNDMgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiA0MjQ0ICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogNDI0NSAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDQyNDYgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiA0MjQ3ICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiA0MjQ4ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogNDI0OSAqLwotCXsgMywJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogNDI1MCAqLwotCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIn0sIC8qIDQyNTEgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogNDI1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiA0MjUzICovCi0JeyA3LAlURiwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogNDI1NCAqLwotCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJCSJzdGF0ZnM2NCIJfSwgLyogNDI1NSAqLwotCXsgMiwJVEYsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0Igl9LCAvKiA0MjU2ICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiA0MjU3ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDQyNTggKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJfSwgLyogNDI1OSAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDQyNjAgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDQyNjEgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogNDI2MiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiA0MjYzICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiA0MjY0ICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIn0sIC8qIDQyNjUgKi8KLQl7IDMsCVRTLAlzeXNfdGdraWxsLAkJInRna2lsbCIJfSwgLyogNDI2NiAqLwotCXsgMiwJVEYsCXN5c191dGltZXMsCQkidXRpbWVzIgl9LCAvKiA0MjY3ICovCi0JeyA0LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiA0MjY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyNjkiCX0sIC8qIDQyNjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI3MCIJfSwgLyogNDI3MCAqLwotCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogNDI3MSAqLwotCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDQyNzIgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCX0sIC8qIDQyNzMgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUifSwgLyogNDI3NCAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDQyNzUgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogNDI3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjc3Igl9LCAvKiA0Mjc3ICovCi0JeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDQyNzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI3OSIJfSwgLyogNDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFkZF9rZXkiCX0sIC8qIDQyODAgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJfSwgLyogNDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJfSwgLyogNDI4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjgzIgl9LCAvKiA0MjgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyODQiCX0sIC8qIDQyODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI4NSIJfSwgLyogNDI4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjg2Igl9LCAvKiA0Mjg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyODciCX0sIC8qIDQyODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI4OCIJfSwgLyogNDI4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjg5Igl9LCAvKiA0Mjg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTAiCX0sIC8qIDQyOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5MSIJfSwgLyogNDI5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjkyIgl9LCAvKiA0MjkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTMiCX0sIC8qIDQyOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5NCIJfSwgLyogNDI5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjk1Igl9LCAvKiA0Mjk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTYiCX0sIC8qIDQyOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5NyIJfSwgLyogNDI5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjk4Igl9LCAvKiA0Mjk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTkiCX0sIC8qIDQyOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwMCIJfSwgLyogNDMwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzAxIgl9LCAvKiA0MzAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDIiCX0sIC8qIDQzMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwMyIJfSwgLyogNDMwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzA0Igl9LCAvKiA0MzA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDUiCX0sIC8qIDQzMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwNiIJfSwgLyogNDMwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzA3Igl9LCAvKiA0MzA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDgiCX0sIC8qIDQzMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwOSIJfSwgLyogNDMwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEwIgl9LCAvKiA0MzEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTEiCX0sIC8qIDQzMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxMiIJfSwgLyogNDMxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEzIgl9LCAvKiA0MzEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTQiCX0sIC8qIDQzMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxNSIJfSwgLyogNDMxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE2Igl9LCAvKiA0MzE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTciCX0sIC8qIDQzMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxOCIJfSwgLyogNDMxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE5Igl9LCAvKiA0MzE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjAiCX0sIC8qIDQzMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyMSIJfSwgLyogNDMyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIyIgl9LCAvKiA0MzIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjMiCX0sIC8qIDQzMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyNCIJfSwgLyogNDMyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI1Igl9LCAvKiA0MzI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjYiCX0sIC8qIDQzMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyNyIJfSwgLyogNDMyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI4Igl9LCAvKiA0MzI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjkiCX0sIC8qIDQzMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzMCIJfSwgLyogNDMzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMxIgl9LCAvKiA0MzMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzIiCX0sIC8qIDQzMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzMyIJfSwgLyogNDMzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM0Igl9LCAvKiA0MzM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzUiCX0sIC8qIDQzMzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzNiIJfSwgLyogNDMzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM3Igl9LCAvKiA0MzM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzgiCX0sIC8qIDQzMzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzOSIJfSwgLyogNDMzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQwIgl9LCAvKiA0MzQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDEiCX0sIC8qIDQzNDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0MiIJfSwgLyogNDM0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQzIgl9LCAvKiA0MzQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDQiCX0sIC8qIDQzNDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0NSIJfSwgLyogNDM0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQ2Igl9LCAvKiA0MzQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDciCX0sIC8qIDQzNDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0OCIJfSwgLyogNDM0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQ5Igl9LCAvKiA0MzQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTAiCX0sIC8qIDQzNTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1MSIJfSwgLyogNDM1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUyIgl9LCAvKiA0MzUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTMiCX0sIC8qIDQzNTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1NCIJfSwgLyogNDM1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzU1Igl9LCAvKiA0MzU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTYiCX0sIC8qIDQzNTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1NyIJfSwgLyogNDM1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzU4Igl9LCAvKiA0MzU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTkiCX0sIC8qIDQzNTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2MCIJfSwgLyogNDM2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzYxIgl9LCAvKiA0MzYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjIiCX0sIC8qIDQzNjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2MyIJfSwgLyogNDM2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzY0Igl9LCAvKiA0MzY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjUiCX0sIC8qIDQzNjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2NiIJfSwgLyogNDM2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzY3Igl9LCAvKiA0MzY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjgiCX0sIC8qIDQzNjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2OSIJfSwgLyogNDM2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzcwIgl9LCAvKiA0MzcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzEiCX0sIC8qIDQzNzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3MiIJfSwgLyogNDM3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzczIgl9LCAvKiA0MzczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzQiCX0sIC8qIDQzNzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3NSIJfSwgLyogNDM3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzc2Igl9LCAvKiA0Mzc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzciCX0sIC8qIDQzNzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3OCIJfSwgLyogNDM3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzc5Igl9LCAvKiA0Mzc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODAiCX0sIC8qIDQzODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4MSIJfSwgLyogNDM4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgyIgl9LCAvKiA0MzgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODMiCX0sIC8qIDQzODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4NCIJfSwgLyogNDM4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzg1Igl9LCAvKiA0Mzg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODYiCX0sIC8qIDQzODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4NyIJfSwgLyogNDM4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzg4Igl9LCAvKiA0Mzg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODkiCX0sIC8qIDQzODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5MCIJfSwgLyogNDM5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzkxIgl9LCAvKiA0MzkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTIiCX0sIC8qIDQzOTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5MyIJfSwgLyogNDM5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzk0Igl9LCAvKiA0Mzk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTUiCX0sIC8qIDQzOTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5NiIJfSwgLyogNDM5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzk3Igl9LCAvKiA0Mzk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTgiCX0sIC8qIDQzOTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5OSIJfSwgLyogNDM5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDAwIgl9LCAvKiA0NDAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDEiCX0sIC8qIDQ0MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwMiIJfSwgLyogNDQwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDAzIgl9LCAvKiA0NDAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDQiCX0sIC8qIDQ0MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwNSIJfSwgLyogNDQwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDA2Igl9LCAvKiA0NDA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDciCX0sIC8qIDQ0MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwOCIJfSwgLyogNDQwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDA5Igl9LCAvKiA0NDA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTAiCX0sIC8qIDQ0MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxMSIJfSwgLyogNDQxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEyIgl9LCAvKiA0NDEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTMiCX0sIC8qIDQ0MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxNCIJfSwgLyogNDQxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDE1Igl9LCAvKiA0NDE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTYiCX0sIC8qIDQ0MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxNyIJfSwgLyogNDQxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDE4Igl9LCAvKiA0NDE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTkiCX0sIC8qIDQ0MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyMCIJfSwgLyogNDQyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDIxIgl9LCAvKiA0NDIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjIiCX0sIC8qIDQ0MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyMyIJfSwgLyogNDQyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDI0Igl9LCAvKiA0NDI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjUiCX0sIC8qIDQ0MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyNiIJfSwgLyogNDQyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDI3Igl9LCAvKiA0NDI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjgiCX0sIC8qIDQ0MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyOSIJfSwgLyogNDQyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDMwIgl9LCAvKiA0NDMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzEiCX0sIC8qIDQ0MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzMiIJfSwgLyogNDQzMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDMzIgl9LCAvKiA0NDMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzQiCX0sIC8qIDQ0MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzNSIJfSwgLyogNDQzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDM2Igl9LCAvKiA0NDM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzciCX0sIC8qIDQ0MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzOCIJfSwgLyogNDQzOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDM5Igl9LCAvKiA0NDM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDAiCX0sIC8qIDQ0NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0MSIJfSwgLyogNDQ0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQyIgl9LCAvKiA0NDQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDMiCX0sIC8qIDQ0NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0NCIJfSwgLyogNDQ0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQ1Igl9LCAvKiA0NDQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDYiCX0sIC8qIDQ0NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0NyIJfSwgLyogNDQ0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQ4Igl9LCAvKiA0NDQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDkiCX0sIC8qIDQ0NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1MCIJfSwgLyogNDQ1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDUxIgl9LCAvKiA0NDUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTIiCX0sIC8qIDQ0NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1MyIJfSwgLyogNDQ1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDU0Igl9LCAvKiA0NDU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTUiCX0sIC8qIDQ0NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1NiIJfSwgLyogNDQ1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDU3Igl9LCAvKiA0NDU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTgiCX0sIC8qIDQ0NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1OSIJfSwgLyogNDQ1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDYwIgl9LCAvKiA0NDYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjEiCX0sIC8qIDQ0NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2MiIJfSwgLyogNDQ2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDYzIgl9LCAvKiA0NDYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjQiCX0sIC8qIDQ0NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2NSIJfSwgLyogNDQ2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDY2Igl9LCAvKiA0NDY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjciCX0sIC8qIDQ0NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2OCIJfSwgLyogNDQ2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDY5Igl9LCAvKiA0NDY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzAiCX0sIC8qIDQ0NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3MSIJfSwgLyogNDQ3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDcyIgl9LCAvKiA0NDcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzMiCX0sIC8qIDQ0NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3NCIJfSwgLyogNDQ3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDc1Igl9LCAvKiA0NDc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzYiCX0sIC8qIDQ0NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3NyIJfSwgLyogNDQ3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDc4Igl9LCAvKiA0NDc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzkiCX0sIC8qIDQ0NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4MCIJfSwgLyogNDQ4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDgxIgl9LCAvKiA0NDgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODIiCX0sIC8qIDQ0ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4MyIJfSwgLyogNDQ4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDg0Igl9LCAvKiA0NDg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODUiCX0sIC8qIDQ0ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4NiIJfSwgLyogNDQ4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDg3Igl9LCAvKiA0NDg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODgiCX0sIC8qIDQ0ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4OSIJfSwgLyogNDQ4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDkwIgl9LCAvKiA0NDkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTEiCX0sIC8qIDQ0OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5MiIJfSwgLyogNDQ5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDkzIgl9LCAvKiA0NDkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTQiCX0sIC8qIDQ0OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5NSIJfSwgLyogNDQ5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDk2Igl9LCAvKiA0NDk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTciCX0sIC8qIDQ0OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5OCIJfSwgLyogNDQ5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDk5Igl9LCAvKiA0NDk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDAiCX0sIC8qIDQ1MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwMSIJfSwgLyogNDUwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAyIgl9LCAvKiA0NTAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDMiCX0sIC8qIDQ1MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwNCIJfSwgLyogNDUwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTA1Igl9LCAvKiA0NTA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDYiCX0sIC8qIDQ1MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwNyIJfSwgLyogNDUwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTA4Igl9LCAvKiA0NTA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDkiCX0sIC8qIDQ1MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxMCIJfSwgLyogNDUxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTExIgl9LCAvKiA0NTExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTIiCX0sIC8qIDQ1MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxMyIJfSwgLyogNDUxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTE0Igl9LCAvKiA0NTE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTUiCX0sIC8qIDQ1MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxNiIJfSwgLyogNDUxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTE3Igl9LCAvKiA0NTE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTgiCX0sIC8qIDQ1MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxOSIJfSwgLyogNDUxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTIwIgl9LCAvKiA0NTIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjEiCX0sIC8qIDQ1MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyMiIJfSwgLyogNDUyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTIzIgl9LCAvKiA0NTIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjQiCX0sIC8qIDQ1MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyNSIJfSwgLyogNDUyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTI2Igl9LCAvKiA0NTI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjciCX0sIC8qIDQ1MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyOCIJfSwgLyogNDUyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTI5Igl9LCAvKiA0NTI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzAiCX0sIC8qIDQ1MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzMSIJfSwgLyogNDUzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMyIgl9LCAvKiA0NTMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzMiCX0sIC8qIDQ1MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzNCIJfSwgLyogNDUzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTM1Igl9LCAvKiA0NTM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzYiCX0sIC8qIDQ1MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzNyIJfSwgLyogNDUzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTM4Igl9LCAvKiA0NTM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzkiCX0sIC8qIDQ1MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0MCIJfSwgLyogNDU0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQxIgl9LCAvKiA0NTQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDIiCX0sIC8qIDQ1NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0MyIJfSwgLyogNDU0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQ0Igl9LCAvKiA0NTQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDUiCX0sIC8qIDQ1NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0NiIJfSwgLyogNDU0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQ3Igl9LCAvKiA0NTQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDgiCX0sIC8qIDQ1NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0OSIJfSwgLyogNDU0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTUwIgl9LCAvKiA0NTUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTEiCX0sIC8qIDQ1NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1MiIJfSwgLyogNDU1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTUzIgl9LCAvKiA0NTUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTQiCX0sIC8qIDQ1NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1NSIJfSwgLyogNDU1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTU2Igl9LCAvKiA0NTU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTciCX0sIC8qIDQ1NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1OCIJfSwgLyogNDU1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTU5Igl9LCAvKiA0NTU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjAiCX0sIC8qIDQ1NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2MSIJfSwgLyogNDU2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYyIgl9LCAvKiA0NTYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjMiCX0sIC8qIDQ1NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2NCIJfSwgLyogNDU2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTY1Igl9LCAvKiA0NTY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjYiCX0sIC8qIDQ1NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2NyIJfSwgLyogNDU2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTY4Igl9LCAvKiA0NTY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjkiCX0sIC8qIDQ1NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3MCIJfSwgLyogNDU3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTcxIgl9LCAvKiA0NTcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzIiCX0sIC8qIDQ1NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3MyIJfSwgLyogNDU3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTc0Igl9LCAvKiA0NTc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzUiCX0sIC8qIDQ1NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3NiIJfSwgLyogNDU3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTc3Igl9LCAvKiA0NTc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzgiCX0sIC8qIDQ1NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3OSIJfSwgLyogNDU3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTgwIgl9LCAvKiA0NTgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODEiCX0sIC8qIDQ1ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4MiIJfSwgLyogNDU4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTgzIgl9LCAvKiA0NTgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODQiCX0sIC8qIDQ1ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4NSIJfSwgLyogNDU4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTg2Igl9LCAvKiA0NTg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODciCX0sIC8qIDQ1ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4OCIJfSwgLyogNDU4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTg5Igl9LCAvKiA0NTg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTAiCX0sIC8qIDQ1OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5MSIJfSwgLyogNDU5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkyIgl9LCAvKiA0NTkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTMiCX0sIC8qIDQ1OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5NCIJfSwgLyogNDU5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTk1Igl9LCAvKiA0NTk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTYiCX0sIC8qIDQ1OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5NyIJfSwgLyogNDU5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTk4Igl9LCAvKiA0NTk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTkiCX0sIC8qIDQ1OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwMCIJfSwgLyogNDYwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjAxIgl9LCAvKiA0NjAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDIiCX0sIC8qIDQ2MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwMyIJfSwgLyogNDYwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjA0Igl9LCAvKiA0NjA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDUiCX0sIC8qIDQ2MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwNiIJfSwgLyogNDYwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjA3Igl9LCAvKiA0NjA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDgiCX0sIC8qIDQ2MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwOSIJfSwgLyogNDYwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjEwIgl9LCAvKiA0NjEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTEiCX0sIC8qIDQ2MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxMiIJfSwgLyogNDYxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjEzIgl9LCAvKiA0NjEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTQiCX0sIC8qIDQ2MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxNSIJfSwgLyogNDYxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjE2Igl9LCAvKiA0NjE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTciCX0sIC8qIDQ2MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxOCIJfSwgLyogNDYxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjE5Igl9LCAvKiA0NjE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjAiCX0sIC8qIDQ2MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyMSIJfSwgLyogNDYyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIyIgl9LCAvKiA0NjIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjMiCX0sIC8qIDQ2MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyNCIJfSwgLyogNDYyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjI1Igl9LCAvKiA0NjI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjYiCX0sIC8qIDQ2MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyNyIJfSwgLyogNDYyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjI4Igl9LCAvKiA0NjI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjkiCX0sIC8qIDQ2MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzMCIJfSwgLyogNDYzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjMxIgl9LCAvKiA0NjMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzIiCX0sIC8qIDQ2MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzMyIJfSwgLyogNDYzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjM0Igl9LCAvKiA0NjM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzUiCX0sIC8qIDQ2MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzNiIJfSwgLyogNDYzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjM3Igl9LCAvKiA0NjM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzgiCX0sIC8qIDQ2MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzOSIJfSwgLyogNDYzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQwIgl9LCAvKiA0NjQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDEiCX0sIC8qIDQ2NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0MiIJfSwgLyogNDY0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQzIgl9LCAvKiA0NjQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDQiCX0sIC8qIDQ2NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0NSIJfSwgLyogNDY0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQ2Igl9LCAvKiA0NjQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDciCX0sIC8qIDQ2NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0OCIJfSwgLyogNDY0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQ5Igl9LCAvKiA0NjQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTAiCX0sIC8qIDQ2NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1MSIJfSwgLyogNDY1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUyIgl9LCAvKiA0NjUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTMiCX0sIC8qIDQ2NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1NCIJfSwgLyogNDY1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjU1Igl9LCAvKiA0NjU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTYiCX0sIC8qIDQ2NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1NyIJfSwgLyogNDY1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjU4Igl9LCAvKiA0NjU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTkiCX0sIC8qIDQ2NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2MCIJfSwgLyogNDY2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjYxIgl9LCAvKiA0NjYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjIiCX0sIC8qIDQ2NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2MyIJfSwgLyogNDY2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjY0Igl9LCAvKiA0NjY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjUiCX0sIC8qIDQ2NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2NiIJfSwgLyogNDY2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjY3Igl9LCAvKiA0NjY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjgiCX0sIC8qIDQ2NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2OSIJfSwgLyogNDY2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjcwIgl9LCAvKiA0NjcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzEiCX0sIC8qIDQ2NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3MiIJfSwgLyogNDY3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjczIgl9LCAvKiA0NjczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzQiCX0sIC8qIDQ2NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3NSIJfSwgLyogNDY3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njc2Igl9LCAvKiA0Njc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzciCX0sIC8qIDQ2NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3OCIJfSwgLyogNDY3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njc5Igl9LCAvKiA0Njc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODAiCX0sIC8qIDQ2ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4MSIJfSwgLyogNDY4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgyIgl9LCAvKiA0NjgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODMiCX0sIC8qIDQ2ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4NCIJfSwgLyogNDY4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njg1Igl9LCAvKiA0Njg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODYiCX0sIC8qIDQ2ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4NyIJfSwgLyogNDY4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njg4Igl9LCAvKiA0Njg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODkiCX0sIC8qIDQ2ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5MCIJfSwgLyogNDY5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjkxIgl9LCAvKiA0NjkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTIiCX0sIC8qIDQ2OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5MyIJfSwgLyogNDY5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njk0Igl9LCAvKiA0Njk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTUiCX0sIC8qIDQ2OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5NiIJfSwgLyogNDY5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njk3Igl9LCAvKiA0Njk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTgiCX0sIC8qIDQ2OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5OSIJfSwgLyogNDY5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzAwIgl9LCAvKiA0NzAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDEiCX0sIC8qIDQ3MDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwMiIJfSwgLyogNDcwMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzAzIgl9LCAvKiA0NzAzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDQiCX0sIC8qIDQ3MDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwNSIJfSwgLyogNDcwNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzA2Igl9LCAvKiA0NzA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDciCX0sIC8qIDQ3MDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwOCIJfSwgLyogNDcwOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzA5Igl9LCAvKiA0NzA5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTAiCX0sIC8qIDQ3MTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxMSIJfSwgLyogNDcxMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEyIgl9LCAvKiA0NzEyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTMiCX0sIC8qIDQ3MTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxNCIJfSwgLyogNDcxNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzE1Igl9LCAvKiA0NzE1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTYiCX0sIC8qIDQ3MTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxNyIJfSwgLyogNDcxNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzE4Igl9LCAvKiA0NzE4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTkiCX0sIC8qIDQ3MTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyMCIJfSwgLyogNDcyMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzIxIgl9LCAvKiA0NzIxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjIiCX0sIC8qIDQ3MjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyMyIJfSwgLyogNDcyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzI0Igl9LCAvKiA0NzI0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjUiCX0sIC8qIDQ3MjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyNiIJfSwgLyogNDcyNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzI3Igl9LCAvKiA0NzI3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjgiCX0sIC8qIDQ3MjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyOSIJfSwgLyogNDcyOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzMwIgl9LCAvKiA0NzMwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzEiCX0sIC8qIDQ3MzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczMiIJfSwgLyogNDczMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzMzIgl9LCAvKiA0NzMzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzQiCX0sIC8qIDQ3MzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczNSIJfSwgLyogNDczNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzM2Igl9LCAvKiA0NzM2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzciCX0sIC8qIDQ3MzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczOCIJfSwgLyogNDczOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzM5Igl9LCAvKiA0NzM5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDAiCX0sIC8qIDQ3NDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0MSIJfSwgLyogNDc0MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQyIgl9LCAvKiA0NzQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDMiCX0sIC8qIDQ3NDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0NCIJfSwgLyogNDc0NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQ1Igl9LCAvKiA0NzQ1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDYiCX0sIC8qIDQ3NDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0NyIJfSwgLyogNDc0NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQ4Igl9LCAvKiA0NzQ4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDkiCX0sIC8qIDQ3NDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1MCIJfSwgLyogNDc1MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzUxIgl9LCAvKiA0NzUxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTIiCX0sIC8qIDQ3NTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1MyIJfSwgLyogNDc1MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzU0Igl9LCAvKiA0NzU0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTUiCX0sIC8qIDQ3NTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1NiIJfSwgLyogNDc1NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzU3Igl9LCAvKiA0NzU3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTgiCX0sIC8qIDQ3NTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1OSIJfSwgLyogNDc1OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzYwIgl9LCAvKiA0NzYwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjEiCX0sIC8qIDQ3NjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2MiIJfSwgLyogNDc2MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzYzIgl9LCAvKiA0NzYzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjQiCX0sIC8qIDQ3NjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2NSIJfSwgLyogNDc2NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzY2Igl9LCAvKiA0NzY2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjciCX0sIC8qIDQ3NjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2OCIJfSwgLyogNDc2OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzY5Igl9LCAvKiA0NzY5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzAiCX0sIC8qIDQ3NzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3MSIJfSwgLyogNDc3MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzcyIgl9LCAvKiA0NzcyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzMiCX0sIC8qIDQ3NzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3NCIJfSwgLyogNDc3NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzc1Igl9LCAvKiA0Nzc1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzYiCX0sIC8qIDQ3NzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3NyIJfSwgLyogNDc3NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzc4Igl9LCAvKiA0Nzc4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzkiCX0sIC8qIDQ3NzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4MCIJfSwgLyogNDc4MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzgxIgl9LCAvKiA0NzgxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODIiCX0sIC8qIDQ3ODIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4MyIJfSwgLyogNDc4MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzg0Igl9LCAvKiA0Nzg0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODUiCX0sIC8qIDQ3ODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4NiIJfSwgLyogNDc4NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzg3Igl9LCAvKiA0Nzg3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODgiCX0sIC8qIDQ3ODggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4OSIJfSwgLyogNDc4OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzkwIgl9LCAvKiA0NzkwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTEiCX0sIC8qIDQ3OTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5MiIJfSwgLyogNDc5MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzkzIgl9LCAvKiA0NzkzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTQiCX0sIC8qIDQ3OTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5NSIJfSwgLyogNDc5NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzk2Igl9LCAvKiA0Nzk2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTciCX0sIC8qIDQ3OTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5OCIJfSwgLyogNDc5OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzk5Igl9LCAvKiA0Nzk5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDAiCX0sIC8qIDQ4MDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwMSIJfSwgLyogNDgwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAyIgl9LCAvKiA0ODAyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDMiCX0sIC8qIDQ4MDMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwNCIJfSwgLyogNDgwNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODA1Igl9LCAvKiA0ODA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDYiCX0sIC8qIDQ4MDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwNyIJfSwgLyogNDgwNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODA4Igl9LCAvKiA0ODA4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDkiCX0sIC8qIDQ4MDkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxMCIJfSwgLyogNDgxMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODExIgl9LCAvKiA0ODExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTIiCX0sIC8qIDQ4MTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxMyIJfSwgLyogNDgxMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODE0Igl9LCAvKiA0ODE0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTUiCX0sIC8qIDQ4MTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxNiIJfSwgLyogNDgxNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODE3Igl9LCAvKiA0ODE3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTgiCX0sIC8qIDQ4MTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxOSIJfSwgLyogNDgxOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODIwIgl9LCAvKiA0ODIwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjEiCX0sIC8qIDQ4MjEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyMiIJfSwgLyogNDgyMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODIzIgl9LCAvKiA0ODIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjQiCX0sIC8qIDQ4MjQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyNSIJfSwgLyogNDgyNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODI2Igl9LCAvKiA0ODI2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjciCX0sIC8qIDQ4MjcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyOCIJfSwgLyogNDgyOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODI5Igl9LCAvKiA0ODI5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzAiCX0sIC8qIDQ4MzAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzMSIJfSwgLyogNDgzMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMyIgl9LCAvKiA0ODMyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzMiCX0sIC8qIDQ4MzMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzNCIJfSwgLyogNDgzNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODM1Igl9LCAvKiA0ODM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzYiCX0sIC8qIDQ4MzYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzNyIJfSwgLyogNDgzNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODM4Igl9LCAvKiA0ODM4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzkiCX0sIC8qIDQ4MzkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0MCIJfSwgLyogNDg0MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQxIgl9LCAvKiA0ODQxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDIiCX0sIC8qIDQ4NDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0MyIJfSwgLyogNDg0MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQ0Igl9LCAvKiA0ODQ0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDUiCX0sIC8qIDQ4NDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0NiIJfSwgLyogNDg0NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQ3Igl9LCAvKiA0ODQ3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDgiCX0sIC8qIDQ4NDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0OSIJfSwgLyogNDg0OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODUwIgl9LCAvKiA0ODUwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTEiCX0sIC8qIDQ4NTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1MiIJfSwgLyogNDg1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODUzIgl9LCAvKiA0ODUzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTQiCX0sIC8qIDQ4NTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1NSIJfSwgLyogNDg1NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODU2Igl9LCAvKiA0ODU2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTciCX0sIC8qIDQ4NTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1OCIJfSwgLyogNDg1OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODU5Igl9LCAvKiA0ODU5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjAiCX0sIC8qIDQ4NjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2MSIJfSwgLyogNDg2MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYyIgl9LCAvKiA0ODYyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjMiCX0sIC8qIDQ4NjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2NCIJfSwgLyogNDg2NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODY1Igl9LCAvKiA0ODY1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjYiCX0sIC8qIDQ4NjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2NyIJfSwgLyogNDg2NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODY4Igl9LCAvKiA0ODY4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjkiCX0sIC8qIDQ4NjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3MCIJfSwgLyogNDg3MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODcxIgl9LCAvKiA0ODcxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzIiCX0sIC8qIDQ4NzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3MyIJfSwgLyogNDg3MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODc0Igl9LCAvKiA0ODc0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzUiCX0sIC8qIDQ4NzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3NiIJfSwgLyogNDg3NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODc3Igl9LCAvKiA0ODc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzgiCX0sIC8qIDQ4NzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3OSIJfSwgLyogNDg3OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODgwIgl9LCAvKiA0ODgwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODEiCX0sIC8qIDQ4ODEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4MiIJfSwgLyogNDg4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODgzIgl9LCAvKiA0ODgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODQiCX0sIC8qIDQ4ODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4NSIJfSwgLyogNDg4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODg2Igl9LCAvKiA0ODg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODciCX0sIC8qIDQ4ODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4OCIJfSwgLyogNDg4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODg5Igl9LCAvKiA0ODg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTAiCX0sIC8qIDQ4OTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5MSIJfSwgLyogNDg5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkyIgl9LCAvKiA0ODkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTMiCX0sIC8qIDQ4OTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5NCIJfSwgLyogNDg5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODk1Igl9LCAvKiA0ODk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTYiCX0sIC8qIDQ4OTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5NyIJfSwgLyogNDg5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODk4Igl9LCAvKiA0ODk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTkiCX0sIC8qIDQ4OTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwMCIJfSwgLyogNDkwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTAxIgl9LCAvKiA0OTAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDIiCX0sIC8qIDQ5MDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwMyIJfSwgLyogNDkwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTA0Igl9LCAvKiA0OTA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDUiCX0sIC8qIDQ5MDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwNiIJfSwgLyogNDkwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTA3Igl9LCAvKiA0OTA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDgiCX0sIC8qIDQ5MDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwOSIJfSwgLyogNDkwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTEwIgl9LCAvKiA0OTEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTEiCX0sIC8qIDQ5MTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxMiIJfSwgLyogNDkxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTEzIgl9LCAvKiA0OTEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTQiCX0sIC8qIDQ5MTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxNSIJfSwgLyogNDkxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTE2Igl9LCAvKiA0OTE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTciCX0sIC8qIDQ5MTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxOCIJfSwgLyogNDkxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTE5Igl9LCAvKiA0OTE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjAiCX0sIC8qIDQ5MjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyMSIJfSwgLyogNDkyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIyIgl9LCAvKiA0OTIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjMiCX0sIC8qIDQ5MjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyNCIJfSwgLyogNDkyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTI1Igl9LCAvKiA0OTI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjYiCX0sIC8qIDQ5MjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyNyIJfSwgLyogNDkyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTI4Igl9LCAvKiA0OTI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjkiCX0sIC8qIDQ5MjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzMCIJfSwgLyogNDkzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTMxIgl9LCAvKiA0OTMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzIiCX0sIC8qIDQ5MzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzMyIJfSwgLyogNDkzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTM0Igl9LCAvKiA0OTM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzUiCX0sIC8qIDQ5MzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzNiIJfSwgLyogNDkzNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTM3Igl9LCAvKiA0OTM3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzgiCX0sIC8qIDQ5MzggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzOSIJfSwgLyogNDkzOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQwIgl9LCAvKiA0OTQwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDEiCX0sIC8qIDQ5NDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0MiIJfSwgLyogNDk0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQzIgl9LCAvKiA0OTQzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDQiCX0sIC8qIDQ5NDQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0NSIJfSwgLyogNDk0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQ2Igl9LCAvKiA0OTQ2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDciCX0sIC8qIDQ5NDcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0OCIJfSwgLyogNDk0OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQ5Igl9LCAvKiA0OTQ5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTAiCX0sIC8qIDQ5NTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1MSIJfSwgLyogNDk1MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUyIgl9LCAvKiA0OTUyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTMiCX0sIC8qIDQ5NTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1NCIJfSwgLyogNDk1NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTU1Igl9LCAvKiA0OTU1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTYiCX0sIC8qIDQ5NTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1NyIJfSwgLyogNDk1NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTU4Igl9LCAvKiA0OTU4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTkiCX0sIC8qIDQ5NTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2MCIJfSwgLyogNDk2MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTYxIgl9LCAvKiA0OTYxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjIiCX0sIC8qIDQ5NjIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2MyIJfSwgLyogNDk2MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTY0Igl9LCAvKiA0OTY0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjUiCX0sIC8qIDQ5NjUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2NiIJfSwgLyogNDk2NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTY3Igl9LCAvKiA0OTY3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjgiCX0sIC8qIDQ5NjggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2OSIJfSwgLyogNDk2OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTcwIgl9LCAvKiA0OTcwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzEiCX0sIC8qIDQ5NzEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3MiIJfSwgLyogNDk3MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTczIgl9LCAvKiA0OTczICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzQiCX0sIC8qIDQ5NzQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3NSIJfSwgLyogNDk3NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTc2Igl9LCAvKiA0OTc2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzciCX0sIC8qIDQ5NzcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3OCIJfSwgLyogNDk3OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTc5Igl9LCAvKiA0OTc5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODAiCX0sIC8qIDQ5ODAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4MSIJfSwgLyogNDk4MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgyIgl9LCAvKiA0OTgyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODMiCX0sIC8qIDQ5ODMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4NCIJfSwgLyogNDk4NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTg1Igl9LCAvKiA0OTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODYiCX0sIC8qIDQ5ODYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4NyIJfSwgLyogNDk4NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTg4Igl9LCAvKiA0OTg4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODkiCX0sIC8qIDQ5ODkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5MCIJfSwgLyogNDk5MCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTkxIgl9LCAvKiA0OTkxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTIiCX0sIC8qIDQ5OTIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5MyIJfSwgLyogNDk5MyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTk0Igl9LCAvKiA0OTk0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTUiCX0sIC8qIDQ5OTUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5NiIJfSwgLyogNDk5NiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTk3Igl9LCAvKiA0OTk3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTgiCX0sIC8qIDQ5OTggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5OSIJfSwgLyogNDk5OSAqLyAvKiBlbmQgb2YgTGludXggbzMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvcG93ZXJwYy9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3Bvd2VycGMvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI2NTlhNC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvcG93ZXJwYy9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTI5ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRURFQURMSyIsIC8qIDM1ICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCi0JIkVOT0xDSyIsIC8qIDM3ICovCi0JIkVOT1NZUyIsIC8qIDM4ICovCi0JIkVOT1RFTVBUWSIsIC8qIDM5ICovCi0JIkVMT09QIiwgLyogNDAgKi8KLQkiRVJSTk9fNDEiLCAvKiA0MSAqLwotCSJFTk9NU0ciLCAvKiA0MiAqLwotCSJFSURSTSIsIC8qIDQzICovCi0JIkVDSFJORyIsIC8qIDQ0ICovCi0JIkVMMk5TWU5DIiwgLyogNDUgKi8KLQkiRUwzSExUIiwgLyogNDYgKi8KLQkiRUwzUlNUIiwgLyogNDcgKi8KLQkiRUxOUk5HIiwgLyogNDggKi8KLQkiRVVOQVRDSCIsIC8qIDQ5ICovCi0JIkVOT0NTSSIsIC8qIDUwICovCi0JIkVMMkhMVCIsIC8qIDUxICovCi0JIkVCQURFIiwgLyogNTIgKi8KLQkiRUJBRFIiLCAvKiA1MyAqLwotCSJFWEZVTEwiLCAvKiA1NCAqLwotCSJFTk9BTk8iLCAvKiA1NSAqLwotCSJFQkFEUlFDIiwgLyogNTYgKi8KLQkiRUJBRFNMVCIsIC8qIDU3ICovCi0JIkVERUFETE9DSyIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCi0JIkVSUk5PXzEyNSIsIC8qIDEyNSAqLwotCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KLQkiRVJSTk9fMTI3IiwgLyogMTI3ICovCi0JIkVSUk5PXzEyOCIsIC8qIDEyOCAqLwotCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KLQkiRVJSTk9fMTMwIiwgLyogMTMwICovCi0JIkVSUk5PXzEzMSIsIC8qIDEzMSAqLwotCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KLQkiRVJSTk9fMTMzIiwgLyogMTMzICovCi0JIkVSUk5PXzEzNCIsIC8qIDEzNCAqLwotCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KLQkiRVJSTk9fMTM2IiwgLyogMTM2ICovCi0JIkVSUk5PXzEzNyIsIC8qIDEzNyAqLwotCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KLQkiRVJSTk9fMTM5IiwgLyogMTM5ICovCi0JIkVSUk5PXzE0MCIsIC8qIDE0MCAqLwotCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KLQkiRVJSTk9fMTQyIiwgLyogMTQyICovCi0JIkVSUk5PXzE0MyIsIC8qIDE0MyAqLwotCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KLQkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCi0JIkVSUk5PXzE0NiIsIC8qIDE0NiAqLwotCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KLQkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCi0JIkVSUk5PXzE0OSIsIC8qIDE0OSAqLwotCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KLQkiRVJSTk9fMTUxIiwgLyogMTUxICovCi0JIkVSUk5PXzE1MiIsIC8qIDE1MiAqLwotCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KLQkiRVJSTk9fMTU0IiwgLyogMTU0ICovCi0JIkVSUk5PXzE1NSIsIC8qIDE1NSAqLwotCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KLQkiRVJSTk9fMTU3IiwgLyogMTU3ICovCi0JIkVSUk5PXzE1OCIsIC8qIDE1OCAqLwotCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KLQkiRVJSTk9fMTYwIiwgLyogMTYwICovCi0JIkVSUk5PXzE2MSIsIC8qIDE2MSAqLwotCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KLQkiRVJSTk9fMTYzIiwgLyogMTYzICovCi0JIkVSUk5PXzE2NCIsIC8qIDE2NCAqLwotCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KLQkiRVJSTk9fMTY2IiwgLyogMTY2ICovCi0JIkVSUk5PXzE2NyIsIC8qIDE2NyAqLwotCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KLQkiRVJSTk9fMTY5IiwgLyogMTY5ICovCi0JIkVSUk5PXzE3MCIsIC8qIDE3MCAqLwotCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KLQkiRVJSTk9fMTcyIiwgLyogMTcyICovCi0JIkVSUk5PXzE3MyIsIC8qIDE3MyAqLwotCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KLQkiRVJSTk9fMTc1IiwgLyogMTc1ICovCi0JIkVSUk5PXzE3NiIsIC8qIDE3NiAqLwotCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KLQkiRVJSTk9fMTc4IiwgLyogMTc4ICovCi0JIkVSUk5PXzE3OSIsIC8qIDE3OSAqLwotCSJFUlJOT18xODAiLCAvKiAxODAgKi8KLQkiRVJSTk9fMTgxIiwgLyogMTgxICovCi0JIkVSUk5PXzE4MiIsIC8qIDE4MiAqLwotCSJFUlJOT18xODMiLCAvKiAxODMgKi8KLQkiRVJSTk9fMTg0IiwgLyogMTg0ICovCi0JIkVSUk5PXzE4NSIsIC8qIDE4NSAqLwotCSJFUlJOT18xODYiLCAvKiAxODYgKi8KLQkiRVJSTk9fMTg3IiwgLyogMTg3ICovCi0JIkVSUk5PXzE4OCIsIC8qIDE4OCAqLwotCSJFUlJOT18xODkiLCAvKiAxODkgKi8KLQkiRVJSTk9fMTkwIiwgLyogMTkwICovCi0JIkVSUk5PXzE5MSIsIC8qIDE5MSAqLwotCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KLQkiRVJSTk9fMTkzIiwgLyogMTkzICovCi0JIkVSUk5PXzE5NCIsIC8qIDE5NCAqLwotCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KLQkiRVJSTk9fMTk2IiwgLyogMTk2ICovCi0JIkVSUk5PXzE5NyIsIC8qIDE5NyAqLwotCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KLQkiRVJSTk9fMTk5IiwgLyogMTk5ICovCi0JIkVSUk5PXzIwMCIsIC8qIDIwMCAqLwotCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KLQkiRVJSTk9fMjAyIiwgLyogMjAyICovCi0JIkVSUk5PXzIwMyIsIC8qIDIwMyAqLwotCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KLQkiRVJSTk9fMjA1IiwgLyogMjA1ICovCi0JIkVSUk5PXzIwNiIsIC8qIDIwNiAqLwotCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KLQkiRVJSTk9fMjA4IiwgLyogMjA4ICovCi0JIkVSUk5PXzIwOSIsIC8qIDIwOSAqLwotCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KLQkiRVJSTk9fMjExIiwgLyogMjExICovCi0JIkVSUk5PXzIxMiIsIC8qIDIxMiAqLwotCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KLQkiRVJSTk9fMjE0IiwgLyogMjE0ICovCi0JIkVSUk5PXzIxNSIsIC8qIDIxNSAqLwotCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KLQkiRVJSTk9fMjE3IiwgLyogMjE3ICovCi0JIkVSUk5PXzIxOCIsIC8qIDIxOCAqLwotCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KLQkiRVJSTk9fMjIwIiwgLyogMjIwICovCi0JIkVSUk5PXzIyMSIsIC8qIDIyMSAqLwotCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KLQkiRVJSTk9fMjIzIiwgLyogMjIzICovCi0JIkVSUk5PXzIyNCIsIC8qIDIyNCAqLwotCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KLQkiRVJSTk9fMjI2IiwgLyogMjI2ICovCi0JIkVSUk5PXzIyNyIsIC8qIDIyNyAqLwotCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KLQkiRVJSTk9fMjI5IiwgLyogMjI5ICovCi0JIkVSUk5PXzIzMCIsIC8qIDIzMCAqLwotCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KLQkiRVJSTk9fMjMyIiwgLyogMjMyICovCi0JIkVSUk5PXzIzMyIsIC8qIDIzMyAqLwotCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KLQkiRVJSTk9fMjM1IiwgLyogMjM1ICovCi0JIkVSUk5PXzIzNiIsIC8qIDIzNiAqLwotCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KLQkiRVJSTk9fMjM4IiwgLyogMjM4ICovCi0JIkVSUk5PXzIzOSIsIC8qIDIzOSAqLwotCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KLQkiRVJSTk9fMjQxIiwgLyogMjQxICovCi0JIkVSUk5PXzI0MiIsIC8qIDI0MiAqLwotCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KLQkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCi0JIkVSUk5PXzI0NSIsIC8qIDI0NSAqLwotCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KLQkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCi0JIkVSUk5PXzI0OCIsIC8qIDI0OCAqLwotCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KLQkiRVJSTk9fMjUwIiwgLyogMjUwICovCi0JIkVSUk5PXzI1MSIsIC8qIDI1MSAqLwotCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KLQkiRVJSTk9fMjUzIiwgLyogMjUzICovCi0JIkVSUk5PXzI1NCIsIC8qIDI1NCAqLwotCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KLQkiRVJSTk9fMjU2IiwgLyogMjU2ICovCi0JIkVSUk5PXzI1NyIsIC8qIDI1NyAqLwotCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KLQkiRVJSTk9fMjU5IiwgLyogMjU5ICovCi0JIkVSUk5PXzI2MCIsIC8qIDI2MCAqLwotCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KLQkiRVJSTk9fMjYyIiwgLyogMjYyICovCi0JIkVSUk5PXzI2MyIsIC8qIDI2MyAqLwotCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KLQkiRVJSTk9fMjY1IiwgLyogMjY1ICovCi0JIkVSUk5PXzI2NiIsIC8qIDI2NiAqLwotCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KLQkiRVJSTk9fMjY4IiwgLyogMjY4ICovCi0JIkVSUk5PXzI2OSIsIC8qIDI2OSAqLwotCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KLQkiRVJSTk9fMjcxIiwgLyogMjcxICovCi0JIkVSUk5PXzI3MiIsIC8qIDI3MiAqLwotCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KLQkiRVJSTk9fMjc0IiwgLyogMjc0ICovCi0JIkVSUk5PXzI3NSIsIC8qIDI3NSAqLwotCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KLQkiRVJSTk9fMjc3IiwgLyogMjc3ICovCi0JIkVSUk5PXzI3OCIsIC8qIDI3OCAqLwotCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KLQkiRVJSTk9fMjgwIiwgLyogMjgwICovCi0JIkVSUk5PXzI4MSIsIC8qIDI4MSAqLwotCSJFUlJOT18yODIiLCAvKiAyODIgKi8KLQkiRVJSTk9fMjgzIiwgLyogMjgzICovCi0JIkVSUk5PXzI4NCIsIC8qIDI4NCAqLwotCSJFUlJOT18yODUiLCAvKiAyODUgKi8KLQkiRVJSTk9fMjg2IiwgLyogMjg2ICovCi0JIkVSUk5PXzI4NyIsIC8qIDI4NyAqLwotCSJFUlJOT18yODgiLCAvKiAyODggKi8KLQkiRVJSTk9fMjg5IiwgLyogMjg5ICovCi0JIkVSUk5PXzI5MCIsIC8qIDI5MCAqLwotCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KLQkiRVJSTk9fMjkyIiwgLyogMjkyICovCi0JIkVSUk5PXzI5MyIsIC8qIDI5MyAqLwotCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KLQkiRVJSTk9fMjk1IiwgLyogMjk1ICovCi0JIkVSUk5PXzI5NiIsIC8qIDI5NiAqLwotCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KLQkiRVJSTk9fMjk4IiwgLyogMjk4ICovCi0JIkVSUk5PXzI5OSIsIC8qIDI5OSAqLwotCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KLQkiRVJSTk9fMzAxIiwgLyogMzAxICovCi0JIkVSUk5PXzMwMiIsIC8qIDMwMiAqLwotCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KLQkiRVJSTk9fMzA0IiwgLyogMzA0ICovCi0JIkVSUk5PXzMwNSIsIC8qIDMwNSAqLwotCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KLQkiRVJSTk9fMzA3IiwgLyogMzA3ICovCi0JIkVSUk5PXzMwOCIsIC8qIDMwOCAqLwotCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KLQkiRVJSTk9fMzEwIiwgLyogMzEwICovCi0JIkVSUk5PXzMxMSIsIC8qIDMxMSAqLwotCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KLQkiRVJSTk9fMzEzIiwgLyogMzEzICovCi0JIkVSUk5PXzMxNCIsIC8qIDMxNCAqLwotCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KLQkiRVJSTk9fMzE2IiwgLyogMzE2ICovCi0JIkVSUk5PXzMxNyIsIC8qIDMxNyAqLwotCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KLQkiRVJSTk9fMzE5IiwgLyogMzE5ICovCi0JIkVSUk5PXzMyMCIsIC8qIDMyMCAqLwotCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KLQkiRVJSTk9fMzIyIiwgLyogMzIyICovCi0JIkVSUk5PXzMyMyIsIC8qIDMyMyAqLwotCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KLQkiRVJSTk9fMzI1IiwgLyogMzI1ICovCi0JIkVSUk5PXzMyNiIsIC8qIDMyNiAqLwotCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KLQkiRVJSTk9fMzI4IiwgLyogMzI4ICovCi0JIkVSUk5PXzMyOSIsIC8qIDMyOSAqLwotCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KLQkiRVJSTk9fMzMxIiwgLyogMzMxICovCi0JIkVSUk5PXzMzMiIsIC8qIDMzMiAqLwotCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KLQkiRVJSTk9fMzM0IiwgLyogMzM0ICovCi0JIkVSUk5PXzMzNSIsIC8qIDMzNSAqLwotCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KLQkiRVJSTk9fMzM3IiwgLyogMzM3ICovCi0JIkVSUk5PXzMzOCIsIC8qIDMzOCAqLwotCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KLQkiRVJSTk9fMzQwIiwgLyogMzQwICovCi0JIkVSUk5PXzM0MSIsIC8qIDM0MSAqLwotCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KLQkiRVJSTk9fMzQzIiwgLyogMzQzICovCi0JIkVSUk5PXzM0NCIsIC8qIDM0NCAqLwotCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KLQkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCi0JIkVSUk5PXzM0NyIsIC8qIDM0NyAqLwotCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KLQkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCi0JIkVSUk5PXzM1MCIsIC8qIDM1MCAqLwotCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KLQkiRVJSTk9fMzUyIiwgLyogMzUyICovCi0JIkVSUk5PXzM1MyIsIC8qIDM1MyAqLwotCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KLQkiRVJSTk9fMzU1IiwgLyogMzU1ICovCi0JIkVSUk5PXzM1NiIsIC8qIDM1NiAqLwotCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KLQkiRVJSTk9fMzU4IiwgLyogMzU4ICovCi0JIkVSUk5PXzM1OSIsIC8qIDM1OSAqLwotCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KLQkiRVJSTk9fMzYxIiwgLyogMzYxICovCi0JIkVSUk5PXzM2MiIsIC8qIDM2MiAqLwotCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KLQkiRVJSTk9fMzY0IiwgLyogMzY0ICovCi0JIkVSUk5PXzM2NSIsIC8qIDM2NSAqLwotCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KLQkiRVJSTk9fMzY3IiwgLyogMzY3ICovCi0JIkVSUk5PXzM2OCIsIC8qIDM2OCAqLwotCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KLQkiRVJSTk9fMzcwIiwgLyogMzcwICovCi0JIkVSUk5PXzM3MSIsIC8qIDM3MSAqLwotCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KLQkiRVJSTk9fMzczIiwgLyogMzczICovCi0JIkVSUk5PXzM3NCIsIC8qIDM3NCAqLwotCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KLQkiRVJSTk9fMzc2IiwgLyogMzc2ICovCi0JIkVSUk5PXzM3NyIsIC8qIDM3NyAqLwotCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KLQkiRVJSTk9fMzc5IiwgLyogMzc5ICovCi0JIkVSUk5PXzM4MCIsIC8qIDM4MCAqLwotCSJFUlJOT18zODEiLCAvKiAzODEgKi8KLQkiRVJSTk9fMzgyIiwgLyogMzgyICovCi0JIkVSUk5PXzM4MyIsIC8qIDM4MyAqLwotCSJFUlJOT18zODQiLCAvKiAzODQgKi8KLQkiRVJSTk9fMzg1IiwgLyogMzg1ICovCi0JIkVSUk5PXzM4NiIsIC8qIDM4NiAqLwotCSJFUlJOT18zODciLCAvKiAzODcgKi8KLQkiRVJSTk9fMzg4IiwgLyogMzg4ICovCi0JIkVSUk5PXzM4OSIsIC8qIDM4OSAqLwotCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KLQkiRVJSTk9fMzkxIiwgLyogMzkxICovCi0JIkVSUk5PXzM5MiIsIC8qIDM5MiAqLwotCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KLQkiRVJSTk9fMzk0IiwgLyogMzk0ICovCi0JIkVSUk5PXzM5NSIsIC8qIDM5NSAqLwotCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KLQkiRVJSTk9fMzk3IiwgLyogMzk3ICovCi0JIkVSUk5PXzM5OCIsIC8qIDM5OCAqLwotCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KLQkiRVJSTk9fNDAwIiwgLyogNDAwICovCi0JIkVSUk5PXzQwMSIsIC8qIDQwMSAqLwotCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KLQkiRVJSTk9fNDAzIiwgLyogNDAzICovCi0JIkVSUk5PXzQwNCIsIC8qIDQwNCAqLwotCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KLQkiRVJSTk9fNDA2IiwgLyogNDA2ICovCi0JIkVSUk5PXzQwNyIsIC8qIDQwNyAqLwotCSJFUlJOT180MDgiLCAvKiA0MDggKi8KLQkiRVJSTk9fNDA5IiwgLyogNDA5ICovCi0JIkVSUk5PXzQxMCIsIC8qIDQxMCAqLwotCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KLQkiRVJSTk9fNDEyIiwgLyogNDEyICovCi0JIkVSUk5PXzQxMyIsIC8qIDQxMyAqLwotCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KLQkiRVJSTk9fNDE1IiwgLyogNDE1ICovCi0JIkVSUk5PXzQxNiIsIC8qIDQxNiAqLwotCSJFUlJOT180MTciLCAvKiA0MTcgKi8KLQkiRVJSTk9fNDE4IiwgLyogNDE4ICovCi0JIkVSUk5PXzQxOSIsIC8qIDQxOSAqLwotCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KLQkiRVJSTk9fNDIxIiwgLyogNDIxICovCi0JIkVSUk5PXzQyMiIsIC8qIDQyMiAqLwotCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KLQkiRVJSTk9fNDI0IiwgLyogNDI0ICovCi0JIkVSUk5PXzQyNSIsIC8qIDQyNSAqLwotCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KLQkiRVJSTk9fNDI3IiwgLyogNDI3ICovCi0JIkVSUk5PXzQyOCIsIC8qIDQyOCAqLwotCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KLQkiRVJSTk9fNDMwIiwgLyogNDMwICovCi0JIkVSUk5PXzQzMSIsIC8qIDQzMSAqLwotCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KLQkiRVJSTk9fNDMzIiwgLyogNDMzICovCi0JIkVSUk5PXzQzNCIsIC8qIDQzNCAqLwotCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KLQkiRVJSTk9fNDM2IiwgLyogNDM2ICovCi0JIkVSUk5PXzQzNyIsIC8qIDQzNyAqLwotCSJFUlJOT180MzgiLCAvKiA0MzggKi8KLQkiRVJSTk9fNDM5IiwgLyogNDM5ICovCi0JIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLwotCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KLQkiRVJSTk9fNDQyIiwgLyogNDQyICovCi0JIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLwotCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KLQkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCi0JIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLwotCSJFUlJOT180NDciLCAvKiA0NDcgKi8KLQkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCi0JIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLwotCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KLQkiRVJSTk9fNDUxIiwgLyogNDUxICovCi0JIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLwotCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KLQkiRVJSTk9fNDU0IiwgLyogNDU0ICovCi0JIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLwotCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KLQkiRVJSTk9fNDU3IiwgLyogNDU3ICovCi0JIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLwotCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KLQkiRVJSTk9fNDYwIiwgLyogNDYwICovCi0JIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLwotCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KLQkiRVJSTk9fNDYzIiwgLyogNDYzICovCi0JIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLwotCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KLQkiRVJSTk9fNDY2IiwgLyogNDY2ICovCi0JIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLwotCSJFUlJOT180NjgiLCAvKiA0NjggKi8KLQkiRVJSTk9fNDY5IiwgLyogNDY5ICovCi0JIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLwotCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KLQkiRVJSTk9fNDcyIiwgLyogNDcyICovCi0JIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLwotCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KLQkiRVJSTk9fNDc1IiwgLyogNDc1ICovCi0JIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLwotCSJFUlJOT180NzciLCAvKiA0NzcgKi8KLQkiRVJSTk9fNDc4IiwgLyogNDc4ICovCi0JIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLwotCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KLQkiRVJSTk9fNDgxIiwgLyogNDgxICovCi0JIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLwotCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KLQkiRVJSTk9fNDg0IiwgLyogNDg0ICovCi0JIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLwotCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KLQkiRVJSTk9fNDg3IiwgLyogNDg3ICovCi0JIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLwotCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KLQkiRVJSTk9fNDkwIiwgLyogNDkwICovCi0JIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLwotCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KLQkiRVJSTk9fNDkzIiwgLyogNDkzICovCi0JIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLwotCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KLQkiRVJSTk9fNDk2IiwgLyogNDk2ICovCi0JIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLwotCSJFUlJOT180OTgiLCAvKiA0OTggKi8KLQkiRVJSTk9fNDk5IiwgLyogNDk5ICovCi0JIkVSUk5PXzUwMCIsIC8qIDUwMCAqLwotCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KLQkiRVJSTk9fNTAyIiwgLyogNTAyICovCi0JIkVSUk5PXzUwMyIsIC8qIDUwMyAqLwotCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KLQkiRVJSTk9fNTA1IiwgLyogNTA1ICovCi0JIkVSUk5PXzUwNiIsIC8qIDUwNiAqLwotCSJFUlJOT181MDciLCAvKiA1MDcgKi8KLQkiRVJSTk9fNTA4IiwgLyogNTA4ICovCi0JIkVSUk5PXzUwOSIsIC8qIDUwOSAqLwotCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KLQkiRVJSTk9fNTExIiwgLyogNTExICovCi0JIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCi0JIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCi0JIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCi0JIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLwotCSJFUlJOT181MTciLCAvKiA1MTcgKi8KLQkiRVJSTk9fNTE4IiwgLyogNTE4ICovCi0JIkVSUk5PXzUxOSIsIC8qIDUxOSAqLwotCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KLQkiRUJBREhBTkRMRSIsIC8qIDUyMSAqLwotCSJFTk9UU1lOQyIsIC8qIDUyMiAqLwotCSJFQkFEQ09PS0lFIiwgLyogNTIzICovCi0JIkVOT1RTVVBQIiwgLyogNTI0ICovCi0JIkVUT09TTUFMTCIsIC8qIDUyNSAqLwotCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KLQkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KLQkiRUpVS0VCT1giLCAvKiA1MjggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvcG93ZXJwYy9pb2N0bGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjAxMGRhLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9wb3dlcnBjL2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTgxICswLDAgQEAKLQkvKiBHZW5lcmF0ZWQgYnkgaW9jdGxzb3J0ICovCi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1RJTUVPVVQiLAkweDIyMDF9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9USU1FT1VUIiwJMHgyMjAyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19FTVVMQVRFRF9IT1NUIiwJMHgyMjAzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfVFJBTlNGT1JNIiwJMHgyMjA0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfVFJBTlNGT1JNIiwJMHgyMjA1fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfQ09NTUFORF9RIiwJMHgyMjcwfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfQ09NTUFORF9RIiwJMHgyMjcxfSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1JFU0VSVkVEX1NJWkUiLAkweDIyNzV9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TQ1NJX0lEIiwJMHgyMjc2fSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfRk9SQ0VfTE9XX0RNQSIsCTB4MjI3OX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0xPV19ETUEiLAkweDIyN2F9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwJMHgyMjdifSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUEFDS19JRCIsCTB4MjI3Y30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX05VTV9XQUlUSU5HIiwJMHgyMjdkfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfREVCVUciLAkweDIyN2V9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TR19UQUJMRVNJWkUiLAkweDIyN2Z9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9WRVJTSU9OX05VTSIsCTB4MjI4Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfTkVYVF9DTURfTEVOIiwJMHgyMjgzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TQ1NJX1JFU0VUIiwJMHgyMjg0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19JTyIsCTB4MjI4NX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLAkweDIyODZ9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9LRUVQX09SUEhBTiIsCTB4MjI4N30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg4fSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT0dSU1RSQVQiLAkweDMyMDF9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1dTVFJBVCIsCTB4MzIwMn0sCi0JeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9TUlNUUkFUIiwJMHgzMjAzfSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NXU1RSQVQiLAkweDMyMDR9LAotCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9HRVRfTUlSUk9SIiwJMHg0MDAzfSwKLQl7ImxpbnV4L3JhZGVvbmZiLmgiLAkiRkJJT19SQURFT05fU0VUX01JUlJPUiIsCTB4NDAwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR1JBQl9CQUNLTElHSFQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0RFUkVHRElTSyIsCTB4NDIwY30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0RJU0siLAkweDQyMGR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRUdORVdEIiwJMHg0MjBlfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTFVOSU5GTyIsCTB4NDIxMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0JJR19QQVNTVEhSVSIsCTB4NDIxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSQUIiLAkweDQ1OTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAwfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WU0NSRUVOSU5GTyIsCTB4NDYwMX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRlNDUkVFTklORk8iLAkweDQ2MDJ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUQ01BUCIsCTB4NDYwNH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRDTUFQIiwJMHg0NjA1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BBTl9ESVNQTEFZIiwJMHg0NjA2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT19DVVJTT1IiLAkweDQ2MDh9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NPTjJGQk1BUCIsCTB4NDYwZn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfQ09OMkZCTUFQIiwJMHg0NjEwfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0JMQU5LIiwJMHg0NjExfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0FMTE9DIiwJMHg0NjEzfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT19GUkVFIiwJMHg0NjE0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9HTFlQSCIsCTB4NDYxNX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfSFdDSU5GTyIsCTB4NDYxNn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfTU9ERUlORk8iLAkweDQ2MTd9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0RJU1BJTkZPIiwJMHg0NjE4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiRkJJT19XQUlURk9SVlNZTkMiLAkweDQ2MjB9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGTEFHIiwJMHg0ODBlfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NGTEFHIiwJMHg0ODBmfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dDT0xMRUNUSU9OSU5ERVgiLAkweDQ4MTB9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkZPIiwJMHg0ODExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0lPQ1NPVU5EIiwJMHg0YjJmfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RNS1RPTkUiLAkweDRiMzB9LAotCXsibGludXgva2QuaCIsCSJLREdFVExFRCIsCTB4NGIzMX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTEVEIiwJMHg0YjMyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JUWVBFIiwJMHg0YjMzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RBRERJTyIsCTB4NGIzNH0sCi0JeyJsaW51eC9rZC5oIiwJIktEREVMSU8iLAkweDRiMzV9LAotCXsibGludXgva2QuaCIsCSJLREVOQUJJTyIsCTB4NGIzNn0sCi0JeyJsaW51eC9rZC5oIiwJIktERElTQUJJTyIsCTB4NGIzN30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTU9ERSIsCTB4NGIzYX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUTU9ERSIsCTB4NGIzYn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUFQRElTUCIsCTB4NGIzY30sCi0JeyJsaW51eC9rZC5oIiwJIktEVU5NQVBESVNQIiwJMHg0YjNkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1NDUk5NQVAiLAkweDRiNDB9LAotCXsibGludXgva2QuaCIsCSJQSU9fU0NSTk1BUCIsCTB4NGI0MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTU9ERSIsCTB4NGI0NH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTU9ERSIsCTB4NGI0NX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCRU5UIiwJMHg0YjQ2fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JFTlQiLAkweDRiNDd9LAotCXsibGludXgva2QuaCIsCSJLREdLQlNFTlQiLAkweDRiNDh9LAotCXsibGludXgva2QuaCIsCSJLRFNLQlNFTlQiLAkweDRiNDl9LAotCXsibGludXgva2QuaCIsCSJLREdLQkRJQUNSIiwJMHg0YjRhfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JESUFDUiIsCTB4NGI0Yn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUS0VZQ09ERSIsCTB4NGI0Y30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUS0VZQ09ERSIsCTB4NGI0ZH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0lHQUNDRVBUIiwJMHg0YjRlfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RLQkRSRVAiLAkweDRiNTJ9LAotCXsibGludXgva2QuaCIsCSJHSU9fRk9OVCIsCTB4NGI2MH0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19GT05UIiwJMHg0YjYxfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNRVRBIiwJMHg0YjYyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNRVRBIiwJMHg0YjYzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JMRUQiLAkweDRiNjR9LAotCXsibGludXgva2QuaCIsCSJLRFNLQkxFRCIsCTB4NGI2NX0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19VTklNQVAiLAkweDRiNjZ9LAotCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQIiwJMHg0YjY3fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUENMUiIsCTB4NGI2OH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19VTklTQ1JOTUFQIiwJMHg0YjY5fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSVNDUk5NQVAiLAkweDRiNmF9LAotCXsibGludXgva2QuaCIsCSJHSU9fRk9OVFgiLAkweDRiNmJ9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFgiLAkweDRiNmN9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFJFU0VUIiwJMHg0YjZkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0NNQVAiLAkweDRiNzB9LAotCXsibGludXgva2QuaCIsCSJQSU9fQ01BUCIsCTB4NGI3MX0sCi0JeyJsaW51eC9rZC5oIiwJIktERk9OVE9QIiwJMHg0YjcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1RJTUVPVVQiLAkweDRlMjB9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1JFU0VUX0RFVklDRSIsCTB4NGUyMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfUElQRVMiLAkweDRlMjJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QQVVTRSIsCTB4NTMwMX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTVU1FIiwJMHg1MzAyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZTVNGIiwJMHg1MzAzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZVFJLSU5EIiwJMHg1MzA0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DSERSIiwJMHg1MzA1fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DRU5UUlkiLAkweDUzMDZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUT1AiLAkweDUzMDd9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUQVJUIiwJMHg1MzA4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVCIsCTB4NTMwOX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MQ1RSTCIsCTB4NTMwYX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1VCQ0hOTCIsCTB4NTMwYn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUyIiwJMHg1MzBjfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTEiLAkweDUzMGR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBVURJTyIsCTB4NTMwZX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1RfU1ciLAkweDUzMGZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTU1VTFRJU0VTU0lPTiIsCTB4NTMxMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9NQ04iLAkweDUzMTF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU0VUIiwJMHg1MzEyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xSRUFEIiwJMHg1MzEzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEUkFXIiwJMHg1MzE0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQ09PS0VEIiwJMHg1MzE1fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRUVLIiwJMHg1MzE2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZQkxLIiwJMHg1MzE3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQUxMIiwJMHg1MzE4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01DTE9TRVRSQVkiLAkweDUzMTl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUdFVFNQSU5ET1dOIiwJMHg1MzFkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRVRTUElORE9XTiIsCTB4NTMxZX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFVF9PUFRJT05TIiwJMHg1MzIwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0xFQVJfT1BUSU9OUyIsCTB4NTMyMX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTEVDVF9TUEVFRCIsCTB4NTMyMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTEVDVF9ESVNDIiwJMHg1MzIzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTUVESUFfQ0hBTkdFRCIsCTB4NTMyNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RSSVZFX1NUQVRVUyIsCTB4NTMyNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RJU0NfU1RBVFVTIiwJMHg1MzI3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0hBTkdFUl9OU0xPVFMiLAkweDUzMjh9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MT0NLRE9PUiIsCTB4NTMyOX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RFQlVHIiwJMHg1MzMwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX0NBUEFCSUxJVFkiLAkweDUzMzF9LAotCXsic2NzaS9zY3NpX2lvY3RsLmgiLAkiU0NTSV9JT0NUTF9ET09STE9DSyIsCTB4NTM4MH0sCi0JeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLAkweDUzODF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUFVRElPQlVGU0laIiwJMHg1MzgyfSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0lETFVOIiwJMHg1MzgyfSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsCTB4NTM4M30sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1RBR0dFRF9ESVNBQkxFIiwJMHg1Mzg0fSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfUFJPQkVfSE9TVCIsCTB4NTM4NX0sCi0JeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwJMHg1Mzg2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1JFQURfU1RSVUNUIiwJMHg1MzkwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1dSSVRFX1NUUlVDVCIsCTB4NTM5MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9BVVRIIiwJMHg1MzkyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VORF9QQUNLRVQiLAkweDUzOTN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ORVhUX1dSSVRBQkxFIiwJMHg1Mzk0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTEFTVF9XUklUVEVOIiwJMHg1Mzk1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9ERVZfQ1JFQVRFIiwJMHg1NTAxfSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9ERVNUUk9ZIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDT05ORUNUIiwJMHg1NTE2fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1QiLAkweDU1MTd9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0VWQklUIiwJMHg1NTY0fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9LRVlCSVQiLAkweDU1NjV9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX1JFTEJJVCIsCTB4NTU2Nn0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfQUJTQklUIiwJMHg1NTY3fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9NU0NCSVQiLAkweDU1Njh9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0xFREJJVCIsCTB4NTU2OX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfU05EQklUIiwJMHg1NTZhfSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9GRkJJVCIsCTB4NTU2Yn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllDQVAiLAkweDU2MDB9LAotCXsibGludXgvdnQuaCIsCSJWVF9PUEVOUVJZIiwJMHg1NjAwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19SRVNFUlZFRCIsCTB4NTYwMX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVE1PREUiLAkweDU2MDF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1fRk1UIiwJMHg1NjAyfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VUTU9ERSIsCTB4NTYwMn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVFNUQVRFIiwJMHg1NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZNVCIsCTB4NTYwNH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1NFTkRTSUciLAkweDU2MDR9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRk1UIiwJMHg1NjA1fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVMRElTUCIsCTB4NTYwNX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DT01QIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfQUNUSVZBVEUiLAkweDU2MDZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ09NUCIsCTB4NTYwN30sCi0JeyJsaW51eC92dC5oIiwJIlZUX1dBSVRBQ1RJVkUiLAkweDU2MDd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFUUJVRlMiLAkweDU2MDh9LAotCXsibGludXgvdnQuaCIsCSJWVF9ESVNBTExPQ0FURSIsCTB4NTYwOH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllCVUYiLAkweDU2MDl9LAotCXsibGludXgvdnQuaCIsCSJWVF9SRVNJWkUiLAkweDU2MDl9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRkJVRiIsCTB4NTYwYX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRVgiLAkweDU2MGF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRkJVRiIsCTB4NTYwYn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0xPQ0tTV0lUQ0giLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9VTkxPQ0tTV0lUQ0giLAkweDU2MGN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX09WRVJMQVkiLAkweDU2MGV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FCVUYiLAkweDU2MGZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0RRQlVGIiwJMHg1NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PTiIsCTB4NTYxMn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU1RSRUFNT0ZGIiwJMHg1NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1BBUk0iLAkweDU2MTV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfUEFSTSIsCTB4NTYxNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19TVEQiLAkweDU2MTd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfU1REIiwJMHg1NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNU1REIiwJMHg1NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNSU5QVVQiLAkweDU2MWF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1RSTCIsCTB4NTYxYn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DVFJMIiwJMHg1NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1RVTkVSIiwJMHg1NjFkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1RVTkVSIiwJMHg1NjFlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRElPIiwJMHg1NjIxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRElPIiwJMHg1NjIyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNUUkwiLAkweDU2MjR9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZTUVOVSIsCTB4NTYyNX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19JTlBVVCIsCTB4NTYyNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19JTlBVVCIsCTB4NTYyN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19PVVRQVVQiLAkweDU2MmV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfT1VUUFVUIiwJMHg1NjJmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNT1VUUFVUIiwJMHg1NjMwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRE9VVCIsCTB4NTYzMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19BVURPVVQiLAkweDU2MzJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfTU9EVUxBVE9SIiwJMHg1NjM2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX01PRFVMQVRPUiIsCTB4NTYzN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GUkVRVUVOQ1kiLAkweDU2Mzh9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRlJFUVVFTkNZIiwJMHg1NjM5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19DUk9QQ0FQIiwJMHg1NjNhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NST1AiLAkweDU2M2J9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ1JPUCIsCTB4NTYzY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19KUEVHQ09NUCIsCTB4NTYzZH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19KUEVHQ09NUCIsCTB4NTYzZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllTVEQiLAkweDU2M2Z9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1RSWV9GTVQiLAkweDU2NDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX2hlLmgiLAkiSEVfR0VUX1JFRyIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtYnIyNjg0LmgiLAkiQlIyNjg0X1NFVEZJTFQiLAkweDYxOTB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX05FV0JBQ0tFTkRJRiIsCTB4NjFmM30sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg2NjdifSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg2NjdjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NjY3ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NjY3ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDY2N2Z9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT1FTSVpFIiwJMHg2NjgwfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fU1RBVFVTIiwJMHg2NzAxfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fRkxVU0giLAkweDY3MDJ9LAotCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfQ0xFQVJfSEFMVCIsCTB4NjcwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0dfVFJVTkMiLAkweDY5MGJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0ciLAkweDY5MGN9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VORF9DT01NQU5EIiwJMHg2OTBkfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGV9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfVU5SRUdJU1RFUl9GT1JfQ01EIiwJMHg2OTBmfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9HRVRTX0VWRU5UU19DTUQiLAkweDY5MTB9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTExfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9BRERSRVNTX0NNRCIsCTB4NjkxMn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfTFVOX0NNRCIsCTB4NjkxM30sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9HRVRfTVlfTFVOX0NNRCIsCTB4NjkxNH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NJRiIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR0lGIiwJMHg2ZDBifSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9HRVQiLAkweDcwMTF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9TRVQiLAkweDcwMTJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImFzbS9udnJhbS5oIiwJIlBNQUNfTlZSQU1fR0VUX09GRlNFVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9ERUxBWSIsCTB4NzBhMH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElTRVJfVElNRU9VVCIsCTB4NzBhMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfREVMQVkiLAkweDcwYTh9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJUEFSX1RJTUVPVVQiLAkweDcwYTl9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVElORk8iLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSUEFHRSIsCTB4NzEwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJGT1VORCIsCTB4NzEwM30sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQQUdFUkVRIiwJMHg3MTA0fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVFNUQVQiLAkweDcxMDV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUUEFHRSIsCTB4NzEwNn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTVE9QREFVIiwJMHg3MTA3fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFBBR0UiLAkweDcxMDh9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VURElTUCIsCTB4NzEwOX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQVVRTVEFUIiwJMHg3MTBhfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkNBQ0hFIiwJMHg3MTBifSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NFVFZJUlQiLAkweDcxMGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVElORk8iLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NSRVNFVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRGUkVRIiwJMHg3MjAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVEZSRVEiLAkweDcyMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DU0VUQ0hBTiIsCTB4NzIwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRDSEFOIiwJMHg3MjA2fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4NzMwN30sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NTUEdSUCIsCTB4NzMwOH0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHUEdSUCIsCTB4NzMwOX0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VUUCIsCTB4NzQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVFAiLAkweDc0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVROIiwJMHg3NDBhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUQyIsCTB4NzQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEMiLAkweDc0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NzQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg3NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg3NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg3NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDc0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NzQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NzQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NzQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg3NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDc0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NzQxZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDc0Njd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDc0Njh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEFSVCIsCTB4NzQ2ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUT1AiLAkweDc0NmZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg3NDczfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xUQyIsCTB4NzQ3NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMVEMiLAkweDc0NzV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NzQ3Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg3NDc3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg4OTAxfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg4OTAyfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg4OTAzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg4OTA0fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4ODkwNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDg5MDZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERSVCIsCTB4ODkwYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTFJUIiwJMHg4OTBjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUlRNU0ciLAkweDg5MGR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZOQU1FIiwJMHg4OTEwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTElOSyIsCTB4ODkxMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPTkYiLAkweDg5MTJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZGTEFHUyIsCTB4ODkxM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkZMQUdTIiwJMHg4OTE0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQUREUiIsCTB4ODkxNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkFERFIiLAkweDg5MTZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZEU1RBRERSIiwJMHg4OTE3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRFNUQUREUiIsCTB4ODkxOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSREFERFIiLAkweDg5MTl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUkRBRERSIiwJMHg4OTFhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkVUTUFTSyIsCTB4ODkxYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5FVE1BU0siLAkweDg5MWN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRVRSSUMiLAkweDg5MWR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRVRSSUMiLAkweDg5MWV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRU0iLAkweDg5MWZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRU0iLAkweDg5MjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNVFUiLAkweDg5MjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNVFUiLAkweDg5MjJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZOQU1FIiwJMHg4OTIzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdBRERSIiwJMHg4OTI0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRU5DQVAiLAkweDg5MjV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZFTkNBUCIsCTB4ODkyNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkhXQUREUiIsCTB4ODkyN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlNMQVZFIiwJMHg4OTI5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGU0xBVkUiLAkweDg5MzB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERNVUxUSSIsCTB4ODkzMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTE1VTFRJIiwJMHg4OTMyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSU5ERVgiLAkweDg5MzN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZQRkxBR1MiLAkweDg5MzR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZQRkxBR1MiLAkweDg5MzV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NESUZBRERSIiwJMHg4OTM2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdCUk9BRENBU1QiLAkweDg5Mzd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT1VOVCIsCTB4ODkzOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSIiwJMHg4OTQwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlIiLAkweDg5NDF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZUWFFMRU4iLAkweDg5NDJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZUWFFMRU4iLAkweDg5NDN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZESVZFUlQiLAkweDg5NDR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZESVZFUlQiLAkweDg5NDV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NFVEhUT09MIiwJMHg4OTQ2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVBIWSIsCTB4ODk0N30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlSRUciLAkweDg5NDh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTTUlJUkVHIiwJMHg4OTQ5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DV0FOREVWIiwJMHg4OTRhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREFSUCIsCTB4ODk1M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dBUlAiLAkweDg5NTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTQVJQIiwJMHg4OTU1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRFJBUlAiLAkweDg5NjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHUkFSUCIsCTB4ODk2MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NSQVJQIiwJMHg4OTYyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUFQIiwJMHg4OTcwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUFQIiwJMHg4OTcxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURERExDSSIsCTB4ODk4MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTERMQ0kiLAkweDg5ODF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZWTEFOIiwJMHg4OTgyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVkxBTiIsCTB4ODk4M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRFTlNMQVZFIiwJMHg4OTkwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFJFTEVBU0UiLAkweDg5OTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0VUSFdBRERSIiwJMHg4OTkyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNMQVZFSU5GT1FVRVJZIiwJMHg4OTkzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORElORk9RVUVSWSIsCTB4ODk5NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRDSEFOR0VBQ1RJVkUiLAkweDg5OTV9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUFJPVE9QUklWQVRFIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFVlBSSVZBVEUiLAkweDg5ZjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVCIsCTB4OGIwMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdDT01NSVQiLAkweDhiMDB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTkFNRSIsCTB4OGIwMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOV0lEIiwJMHg4YjAyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05XSUQiLAkweDhiMDN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJFUSIsCTB4OGIwNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkVRIiwJMHg4YjA1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV01PREUiLAkweDhiMDZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTU9ERSIsCTB4OGIwN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTRU5TIiwJMHg4YjA4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NFTlMiLAkweDhiMDl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFOR0UiLAkweDhiMGF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFOR0UiLAkweDhiMGJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUFJJViIsCTB4OGIwY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQUklWIiwJMHg4YjBkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NUQVRTIiwJMHg4YjBlfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NUQVRTIiwJMHg4YjBmfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NQWSIsCTB4OGIxMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTUFkiLAkweDhiMTF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVEhSU1BZIiwJMHg4YjEyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RIUlNQWSIsCTB4OGIxM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdBUCIsCTB4OGIxNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUCIsCTB4OGIxNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUExJU1QiLAkweDhiMTd9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU0NBTiIsCTB4OGIxOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTQ0FOIiwJMHg4YjE5fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VTU0lEIiwJMHg4YjFhfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VTU0lEIiwJMHg4YjFifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05JQ0tOIiwJMHg4YjFjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05JQ0tOIiwJMHg4YjFkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JBVEUiLAkweDhiMjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFURSIsCTB4OGIyMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSVFMiLAkweDhiMjJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUlRTIiwJMHg4YjIzfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0ZSQUciLAkweDhiMjR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRlJBRyIsCTB4OGIyNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUWFBPVyIsCTB4OGIyNn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdUWFBPVyIsCTB4OGIyN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSRVRSWSIsCTB4OGIyOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSRVRSWSIsCTB4OGIyOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFTkNPREUiLAkweDhiMmF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRU5DT0RFIiwJMHg4YjJifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1BPV0VSIiwJMHg4YjJjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BPV0VSIiwJMHg4YjJkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXRklSU1RQUklWIiwJMHg4YmUwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXTEFTVFBSSVYiLAkweDhiZmZ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9WRVJTSU9OIiwJMHhmZDAwfSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fUkVNT1ZFX0FMTCIsCTB4ZmQwMX0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0xJU1RfREVWSUNFUyIsCTB4ZmQwMn0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0RFVl9DUkVBVEUiLAkweGZkMDN9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9ERVZfUkVNT1ZFIiwJMHhmZDA0fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1JFTkFNRSIsCTB4ZmQwNX0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0RFVl9TVVNQRU5EIiwJMHhmZDA2fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1NUQVRVUyIsCTB4ZmQwN30sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0RFVl9XQUlUIiwJMHhmZDA4fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfTE9BRCIsCTB4ZmQwOX0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX1RBQkxFX0NMRUFSIiwJMHhmZDBhfSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfREVQUyIsCTB4ZmQwYn0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX1RBQkxFX1NUQVRVUyIsCTB4ZmQwY30sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9wb3dlcnBjL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGIwMGIxLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9wb3dlcnBjL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdVTlVTRUQiLAkvKiAzMSAqLwotCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0OTIyMjcuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMTkgMjAwNS8wNS8wOSAwODowMjowNSByb2xhbmQgRXhwICQKLSAqLwotCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzAiCQkJfSwgLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXQiCQkJfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQkJfSwgLyogMiAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQkJfSwgLyogMyAqLwotCXsgMywJVEYsCXN5c193cml0ZSwJCSJ3cml0ZSIJCQl9LCAvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCQl9LCAvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQkJfSwgLyogNiAqLwotCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiCQl9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJCX0sIC8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCQl9LCAvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCQl9LCAvKiAxMiAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCQl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCQl9LCAvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCQl9LCAvKiAxNSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCQl9LCAvKiAxNiAqLwotCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJCX0sIC8qIDE3ICovCi0JeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJCX0sIC8qIDE4ICovCi0JeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCQl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCQl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJCX0sIC8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJCX0sIC8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJCX0sIC8qIDMwICovCi0JeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJCX0sIC8qIDMxICovCi0JeyAyLAkwLAlzeXNfZ3R0eSwJCSJndHR5IgkJCX0sIC8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCQl9LCAvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCQl9LCAvKiAzNCAqLwotCXsgMCwJMCwJc3lzX2Z0aW1lLAkJImZ0aW1lIgkJCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJCX0sIC8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCQl9LCAvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgkJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQkJfSwgLyogMzkgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQkJfSwgLyogNDAgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJCX0sIC8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQkJfSwgLyogNDMgKi8KLQl7IDAsCTAsCXN5c19wcm9mLAkJInByb2YiCQkJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJCX0sIC8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJCX0sIC8qIDQ2ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCQl9LCAvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJCX0sIC8qIDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgkJfSwgLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50IgkJfSwgLyogNTIgKi8KLQl7IDAsCTAsCXN5c19sb2NrLAkJImxvY2siCQkJfSwgLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJCX0sIC8qIDU1ICovCi0JeyAwLAkwLAlzeXNfbXB4LAkJInN5c19tcHgiCQl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJCX0sIC8qIDU3ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJCX0sIC8qIDU4ICovCi0JeyAxLAkwLAlzeXNfb2xkb2xkdW5hbWUsCSJvbGRvbGR1bmFtZSIJCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQkJfSwgLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJCX0sIC8qIDYxICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCQl9LCAvKiA2NCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJCX0sIC8qIDY2ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCQl9LCAvKiA2NyAqLwotCXsgMSwJVFMsCXByaW50YXJncywJCSJzZ2V0bWFzayIJCX0sIC8qIDY4ICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInNzZXRtYXNrIgkJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiA3MSAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCQl9LCAvKiA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCQl9LCAvKiA3MyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCQl9LCAvKiA3NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCQl9LCAvKiA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJvbGRnZXRybGltaXQiCQl9LCAvKiA3NiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCQl9LCAvKiA3NyAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5IgkJfSwgLyogNzkgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgkJfSwgLyogODAgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgkJfSwgLyogODEgKi8KLQl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0IgkJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgkJfSwgLyogODMgKi8KLQl7IDIsCVRGLAlzeXNfb2xkbHN0YXQsCQkib2xkbHN0YXQiCQl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCQl9LCAvKiA4NiAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgkJfSwgLyogODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290IgkJfSwgLyogODggKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCQl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJCX0sIC8qIDk3ICovCi0JeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCQl9LCAvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJCX0sIC8qIDEwMCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCQl9LCAvKiAxMDEgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCQl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgkJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCQl9LCAvKiAxMDUgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJCX0sIC8qIDEwNiAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCQl9LCAvKiAxMDcgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQkJfSwgLyogMTA4ICovCi0JeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCQl9LCAvKiAxMDkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTEwIgkJfSwgLyogMTEwICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgkJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJCX0sIC8qIDExMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTMiCQl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQkJfSwgLyogMTE0ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgkJfSwgLyogMTE1ICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgkJfSwgLyogMTE2ICovCi0JeyA2LAkwLAlzeXNfaXBjLAkJImlwYyIJCQl9LCAvKiAxMTcgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCQl9LCAvKiAxMTggKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCQl9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJCX0sIC8qIDEyMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMiCQl9LCAvKiAxMjMgKi8KLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJCX0sIC8qIDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0IgkJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCQl9LCAvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJCX0sIC8qIDEyNyAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCQl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJCX0sIC8qIDEyOSAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyIJfSwgLyogMTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCQl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCQl9LCAvKiAxMzIgKi8KLQl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJCX0sIC8qIDEzNCAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJCX0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCQl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgkJfSwgLyogMTM3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCQl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJCX0sIC8qIDEzOSAqLwotCXsgNSwJVEYsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgkJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJCX0sIC8qIDE0MiAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJCX0sIC8qIDE0NSAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCQl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJCX0sIC8qIDE0OCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgkJfSwgLyogMTQ5ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgkJfSwgLyogMTUxICovCi0JeyAxLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCQl9LCAvKiAxNTIgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCQl9LCAvKiAxNTMgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAvKiAxNTQgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIgl9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIiCX0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgLyogMTU3ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJCX0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgkJfSwgLyogMTYyICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMTY1ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgkJfSwgLyogMTY2ICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCQl9LCAvKiAxNjggKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgkJfSwgLyogMTY5ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJCX0sIC8qIDE3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJCX0sIC8qIDE3MSAqLwotCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCQl9LCAvKiAxNzIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgkJfSwgLyogMTczICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2siCX0sIC8qIDE3NCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJCX0sIC8qIDE3NSAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDE3NiAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8iCX0sIC8qIDE3NyAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJCX0sIC8qIDE3OCAqLwotCXsgNiwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZDY0IgkJfSwgLyogMTc5ICovCi0JeyA2LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGU2NCIJCX0sIC8qIDE4MCAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCQl9LCAvKiAxODEgKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJCX0sIC8qIDE4MiAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCQl9LCAvKiAxODMgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0IgkJfSwgLyogMTg0ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCQl9LCAvKiAxODUgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCQl9LCAvKiAxODYgKi8KLQl7IDUsCTAsCXN5c19nZXRwbXNnLAkJImdldHBtc2ciCQl9LCAvKiAxODcgKi8KLQl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCQl9LCAvKiAxODggKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiCQkJfSwgLyogMTg5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDE5MCAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCQl9LCAvKiAxOTAgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAyIgkJCX0sIC8qIDE5MiAqLwotCXsgNCwJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCQl9LCAvKiAxOTMgKi8KLQl7IDQsCVRGLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJCX0sIC8qIDE5NCAqLwotCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCQl9LCAvKiAxOTUgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJCSJsc3RhdDY0IgkJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJCX0sIC8qIDE5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ19yZWFkIgl9LCAvKiAxOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfd3JpdGUiCX0sIC8qIDE5OSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ19pb2Jhc2UiCX0sIC8qIDIwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIk1PTCIJCQl9LCAvKiAyMDEgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCQl9LCAvKiAyMDIgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCQl9LCAvKiAyMDMgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0IgkJfSwgLyogMjA0ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgkJfSwgLyogMjA1ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJCSJtaW5jb3JlIgkJfSwgLyogMjA2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMjA3ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQkJfSwgLyogMjA4ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgkJfSwgLyogMjA5ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJCX0sIC8qIDIxMCAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCQl9LCAvKiAyMTEgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCQl9LCAvKiAyMTIgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgkJfSwgLyogMjEzICovCi0JeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJCX0sIC8qIDIxNCAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgkJfSwgLyogMjE1ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgkJfSwgLyogMjE2ICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgkJfSwgLyogMjE3ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCQl9LCAvKiAyMTggKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCQl9LCAvKiAyMTkgKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCQl9LCAvKiAyMjAgKi8KLQl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCQl9LCAvKiAyMjEgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5Igl9LCAvKiAyMjIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5Igl9LCAvKiAyMjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI0IgkJfSwgLyogMjI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidHV4IgkJCX0sIC8qIDIyNSAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCQl9LCAvKiAyMjYgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJCX0sIC8qIDIyNyAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCQl9LCAvKiAyMjkgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0IgkJfSwgLyogMjMwICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJCX0sIC8qIDIzMSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyIJfSwgLyogMjMyICovCi0JeyA2LAlURiwJc3lzX2ZhZHZpc2U2NCwJCSJmYWR2aXNlNjQiCQl9LCAvKiAyMzMgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgkJfSwgLyogMjM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUiCX0sIC8qIDIzNSAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJCX0sIC8qIDIzNiAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCQl9LCAvKiAyMzcgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCQl9LCAvKiAyMzggKi8KLQl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyIJfSwgLyogMjM5ICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgkJfSwgLyogMjQwICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCQl9LCAvKiAyNDEgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJCX0sIC8qIDI0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIgl9LCAvKiAyNDMgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCQl9LCAvKiAyNDQgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJCX0sIC8qIDI0NSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgkJfSwgLyogMjQ2ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgkJfSwgLyogMjQ3ICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIgl9LCAvKiAyNDggKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJzd2FwY29udGV4dCIJCX0sIC8qIDI0OSAqLwotCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgkJfSwgLyogMjUwICovCi0JeyAyLAlURiwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCQl9LCAvKiAyNTEgKi8KLQl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCQkic3RhdGZzNjQiCQl9LCAvKiAyNTIgKi8KLQl7IDMsCVRGLAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJCX0sIC8qIDI1MyAqLwotCXsgNiwJVEYsCXN5c19mYWR2aXNlNjRfNjQsCSJmYWR2aXNlNjRfNjQiCQl9LCAvKiAyNTQgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJydGFzIgkJCX0sIC8qIDI1NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImRlYnVnX3NldGNvbnRleHQiCX0sIC8qIDI1NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZzZXJ2ZXIiCQl9LCAvKiAyNTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU4IgkJfSwgLyogMjU4ICovCi0JeyA2LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQkJfSwgLyogMjU5ICovCi0JeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCQl9LCAvKiAyNjAgKi8KLQl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJCX0sIC8qIDI2MSAqLwotCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJCX0sIC8qIDI2MiAqLwotCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCQl9LCAvKiAyNjMgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCQl9LCAvKiAyNjQgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiCX0sIC8qIDI2NSAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCQl9LCAvKiAyNjYgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJCX0sIC8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIgl9LCAvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJhZGRfa2V5IgkJfSwgLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCQl9LCAvKiAyNzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJrZXljdGwiCQl9LCAvKiAyNzEgKi8KLQl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIJCX0sIC8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCQl9LCAvKiAyNzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc0IgkJfSwgLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJCX0sIC8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCQl9LCAvKiAyNzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc3IgkJfSwgLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJCX0sIC8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCQl9LCAvKiAyNzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgkJfSwgLyogMjgwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MSIJCX0sIC8qIDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCQl9LCAvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgkJfSwgLyogMjgzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NCIJCX0sIC8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCQl9LCAvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg2IgkJfSwgLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJCX0sIC8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCQl9LCAvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg5IgkJfSwgLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJCX0sIC8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCQl9LCAvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgkJfSwgLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJCX0sIC8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCQl9LCAvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk1IgkJfSwgLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJCX0sIC8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCQl9LCAvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4IgkJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJCX0sIC8qIDI5OSAqLwotCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMzAwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDMwMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAzMDIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAzMDMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMzA0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDMwNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAzMDYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMzA3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMzA4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDMwOSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAzMTAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMzExICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAzMTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDMxMyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDMxNCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDMxNSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDMxNiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDMxNyAqLwotCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMxOCAqLwotCXsgNCwJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDMxOSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzIxICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMzIyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI4ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyOSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMzAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzMxICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMzMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzOCAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzOSAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDM0MCAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzNDEgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzQyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MyIJfSwgLyogMzQzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NCIJfSwgLyogMzQ0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NSIJfSwgLyogMzQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NiIJfSwgLyogMzQ2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NyIJfSwgLyogMzQ3ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MC9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTAvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgwYjUwNi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvczM5MC9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRURFQURMSyIsIC8qIDM1ICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCi0JIkVOT0xDSyIsIC8qIDM3ICovCi0JIkVOT1NZUyIsIC8qIDM4ICovCi0JIkVOT1RFTVBUWSIsIC8qIDM5ICovCi0JIkVMT09QIiwgLyogNDAgKi8KLQkiRVJSTk9fNDEiLCAvKiA0MSAqLwotCSJFTk9NU0ciLCAvKiA0MiAqLwotCSJFSURSTSIsIC8qIDQzICovCi0JIkVDSFJORyIsIC8qIDQ0ICovCi0JIkVMMk5TWU5DIiwgLyogNDUgKi8KLQkiRUwzSExUIiwgLyogNDYgKi8KLQkiRUwzUlNUIiwgLyogNDcgKi8KLQkiRUxOUk5HIiwgLyogNDggKi8KLQkiRVVOQVRDSCIsIC8qIDQ5ICovCi0JIkVOT0NTSSIsIC8qIDUwICovCi0JIkVMMkhMVCIsIC8qIDUxICovCi0JIkVCQURFIiwgLyogNTIgKi8KLQkiRUJBRFIiLCAvKiA1MyAqLwotCSJFWEZVTEwiLCAvKiA1NCAqLwotCSJFTk9BTk8iLCAvKiA1NSAqLwotCSJFQkFEUlFDIiwgLyogNTYgKi8KLQkiRUJBRFNMVCIsIC8qIDU3ICovCi0JIkVSUk5PXzU4IiwgLyogNTggKi8KLQkiRUJGT05UIiwgLyogNTkgKi8KLQkiRU5PU1RSIiwgLyogNjAgKi8KLQkiRU5PREFUQSIsIC8qIDYxICovCi0JIkVUSU1FIiwgLyogNjIgKi8KLQkiRU5PU1IiLCAvKiA2MyAqLwotCSJFTk9ORVQiLCAvKiA2NCAqLwotCSJFTk9QS0ciLCAvKiA2NSAqLwotCSJFUkVNT1RFIiwgLyogNjYgKi8KLQkiRU5PTElOSyIsIC8qIDY3ICovCi0JIkVBRFYiLCAvKiA2OCAqLwotCSJFU1JNTlQiLCAvKiA2OSAqLwotCSJFQ09NTSIsIC8qIDcwICovCi0JIkVQUk9UTyIsIC8qIDcxICovCi0JIkVNVUxUSUhPUCIsIC8qIDcyICovCi0JIkVET1RET1QiLCAvKiA3MyAqLwotCSJFQkFETVNHIiwgLyogNzQgKi8KLQkiRU9WRVJGTE9XIiwgLyogNzUgKi8KLQkiRU5PVFVOSVEiLCAvKiA3NiAqLwotCSJFQkFERkQiLCAvKiA3NyAqLwotCSJFUkVNQ0hHIiwgLyogNzggKi8KLQkiRUxJQkFDQyIsIC8qIDc5ICovCi0JIkVMSUJCQUQiLCAvKiA4MCAqLwotCSJFTElCU0NOIiwgLyogODEgKi8KLQkiRUxJQk1BWCIsIC8qIDgyICovCi0JIkVMSUJFWEVDIiwgLyogODMgKi8KLQkiRUlMU0VRIiwgLyogODQgKi8KLQkiRVJFU1RBUlQiLCAvKiA4NSAqLwotCSJFU1RSUElQRSIsIC8qIDg2ICovCi0JIkVVU0VSUyIsIC8qIDg3ICovCi0JIkVOT1RTT0NLIiwgLyogODggKi8KLQkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KLQkiRU1TR1NJWkUiLCAvKiA5MCAqLwotCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLwotCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLwotCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KLQkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KLQkiRUFERFJJTlVTRSIsIC8qIDk4ICovCi0JIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLwotCSJFTkVURE9XTiIsIC8qIDEwMCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLwotCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCi0JIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KLQkiRU5PQlVGUyIsIC8qIDEwNSAqLwotCSJFSVNDT05OIiwgLyogMTA2ICovCi0JIkVOT1RDT05OIiwgLyogMTA3ICovCi0JIkVTSFVURE9XTiIsIC8qIDEwOCAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KLQkiRVRJTUVET1VUIiwgLyogMTEwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLwotCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCi0JIkVBTFJFQURZIiwgLyogMTE0ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCi0JIkVTVEFMRSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVEUVVPVCIsIC8qIDEyMiAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvczM5MC9pb2N0bGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTRmYmViLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zMzkwL2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NDEgKzAsMCBAQAoteyJsaW51eC9mcy5oIiwgIkZJQk1BUCIsIDB4MX0sCi17ImxpbnV4L2ZzLmgiLCAiRklHRVRCU1oiLCAweDJ9LAoteyJsaW51eC9mZC5oIiwgIkZEQ0xSUFJNIiwgMHgyNDF9LAoteyJsaW51eC9mZC5oIiwgIkZETVNHT04iLCAweDI0NX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRNU0dPRkYiLCAweDI0Nn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRCRUciLCAweDI0N30sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRFTkQiLCAweDI0OX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRFTVNHVFJFU0giLCAweDI0YX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTFVTSCIsIDB4MjRifSwKLXsibGludXgvZmQuaCIsICJGRFJFU0VUIiwgMHgyNTR9LAoteyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SQ0xSIiwgMHgyNTZ9LAoteyJsaW51eC9mZC5oIiwgIkZEUkFXQ01EIiwgMHgyNTh9LAoteyJsaW51eC9mZC5oIiwgIkZEVFdBRERMRSIsIDB4MjU5fSwKLXsibGludXgvZmQuaCIsICJGREVKRUNUIiwgMHgyNWF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPIiwgMHgzMDF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX1VOTUFTS0lOVFIiLCAweDMwMn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTVVMVENPVU5UIiwgMHgzMDR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fT0JTT0xFVEVfSURFTlRJVFkiLCAweDMwN30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfS0VFUFNFVFRJTkdTIiwgMHgzMDh9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUXzMyQklUIiwgMHgzMDl9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX05PV0VSUiIsIDB4MzBhfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9ETUEiLCAweDMwYn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTklDRSIsIDB4MzBjfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9JREVOVElUWSIsIDB4MzBkfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX1JFU0VUIiwgMHgzMWN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVFJJU1RBVEVfSFdJRiIsIDB4MzFkfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX1RBU0siLCAweDMxZX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19EUklWRV9DTUQiLCAweDMxZn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTVVMVENPVU5UIiwgMHgzMjF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX1VOTUFTS0lOVFIiLCAweDMyMn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfS0VFUFNFVFRJTkdTIiwgMHgzMjN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUXzMyQklUIiwgMHgzMjR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX05PV0VSUiIsIDB4MzI1fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9ETUEiLCAweDMyNn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfUElPX01PREUiLCAweDMyN30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TQ0FOX0hXSUYiLCAweDMyOH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTklDRSIsIDB4MzI5fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1VOUkVHSVNURVJfSFdJRiIsIDB4MzJhfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUciLCAweDMzMH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU9fQklHX1JBVyIsIDB4MzMxfSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JFQURESVJfRE9TIiwgMHg0ZDJ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfVU5MSU5LX0RPUyIsIDB4NGQzfSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JNRElSX0RPUyIsIDB4NGQ0fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1NUQVRfRE9TIiwgMHg0ZDV9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfQ1JFQVRfRU1EIiwgMHg0ZDZ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfVU5MSU5LX0VNRCIsIDB4NGQ3fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JFQURESVJfRU1EIiwgMHg0ZDh9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfR0VUVkVSU0lPTiIsIDB4NGQ5fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX0lOSVRfRU1EIiwgMHg0ZGF9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfRE9TX1NFVFVQIiwgMHg0ZGJ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVOQU1FX0RPUyIsIDB4NGRjfSwKLXsibGludXgvbHAuaCIsICJMUENIQVIiLCAweDYwMX0sCi17ImxpbnV4L2xwLmgiLCAiTFBUSU1FIiwgMHg2MDJ9LAoteyJsaW51eC9scC5oIiwgIkxQQUJPUlQiLCAweDYwNH0sCi17ImxpbnV4L2xwLmgiLCAiTFBTRVRJUlEiLCAweDYwNX0sCi17ImxpbnV4L2FjOTdfY29kZWMuaCIsICJBQzk3X1JFQ01VWF9NT05PX01JWCIsIDB4NjA2fSwKLXsibGludXgvbHAuaCIsICJMUEdFVElSUSIsIDB4NjA2fSwKLXsibGludXgvbHAuaCIsICJMUFdBSVQiLCAweDYwOH0sCi17ImxpbnV4L2xwLmgiLCAiTFBDQVJFRlVMIiwgMHg2MDl9LAoteyJsaW51eC9scC5oIiwgIkxQQUJPUlRPUEVOIiwgMHg2MGF9LAoteyJsaW51eC9scC5oIiwgIkxQR0VUU1RBVFVTIiwgMHg2MGJ9LAoteyJsaW51eC9scC5oIiwgIkxQUkVTRVQiLCAweDYwY30sCi17ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUUyIsIDB4NjBkfSwKLXsibGludXgvbHAuaCIsICJMUEdFVEZMQUdTIiwgMHg2MGV9LAoteyJsaW51eC9scC5oIiwgIkxQU0VUVElNRU9VVCIsIDB4NjBmfSwKLXsibGludXgvZnMuaCIsICJCTEtST1NFVCIsIDB4MTI1ZH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUk9HRVQiLCAweDEyNWV9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JSUEFSVCIsIDB4MTI1Zn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLR0VUU0laRSIsIDB4MTI2MH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRkxTQlVGIiwgMHgxMjYxfSwKLXsibGludXgvZnMuaCIsICJCTEtSQVNFVCIsIDB4MTI2Mn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUkFHRVQiLCAweDEyNjN9LAoteyJsaW51eC9mcy5oIiwgIkJMS0ZSQVNFVCIsIDB4MTI2NH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRlJBR0VUIiwgMHgxMjY1fSwKLXsibGludXgvZnMuaCIsICJCTEtTRUNUU0VUIiwgMHgxMjY2fSwKLXsibGludXgvZnMuaCIsICJCTEtTRUNUR0VUIiwgMHgxMjY3fSwKLXsibGludXgvZnMuaCIsICJCTEtTU1pHRVQiLCAweDEyNjh9LAoteyJsaW51eC9mcy5oIiwgIkJMS1BHIiwgMHgxMjY5fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9USU1FT1VUIiwgMHgyMjAxfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9USU1FT1VUIiwgMHgyMjAyfSwKLXsic2NzaS9zZy5oIiwgIlNHX0VNVUxBVEVEX0hPU1QiLCAweDIyMDN9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RSQU5TRk9STSIsIDB4MjIwNH0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfVFJBTlNGT1JNIiwgMHgyMjA1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9DT01NQU5EX1EiLCAweDIyNzB9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0NPTU1BTkRfUSIsIDB4MjI3MX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfUkVTRVJWRURfU0laRSIsIDB4MjI3Mn0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfUkVTRVJWRURfU0laRSIsIDB4MjI3NX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfU0NTSV9JRCIsIDB4MjI3Nn0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfRk9SQ0VfTE9XX0RNQSIsIDB4MjI3OX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfTE9XX0RNQSIsIDB4MjI3YX0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfRk9SQ0VfUEFDS19JRCIsIDB4MjI3Yn0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfUEFDS19JRCIsIDB4MjI3Y30sCi17InNjc2kvc2cuaCIsICJTR19HRVRfTlVNX1dBSVRJTkciLCAweDIyN2R9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0RFQlVHIiwgMHgyMjdlfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9TR19UQUJMRVNJWkUiLCAweDIyN2Z9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1ZFUlNJT05fTlVNIiwgMHgyMjgyfSwKLXsic2NzaS9zZy5oIiwgIlNHX05FWFRfQ01EX0xFTiIsIDB4MjI4M30sCi17InNjc2kvc2cuaCIsICJTR19TQ1NJX1JFU0VUIiwgMHgyMjg0fSwKLXsic2NzaS9zZy5oIiwgIlNHX0lPIiwgMHgyMjg1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVFVRVNUX1RBQkxFIiwgMHgyMjg2fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9LRUVQX09SUEhBTiIsIDB4MjI4N30sCi17InNjc2kvc2cuaCIsICJTR19HRVRfS0VFUF9PUlBIQU4iLCAweDIyODh9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0FDUVVJUkUiLCAweDQxMDF9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFTEVBU0UiLCAweDQxMDJ9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NMRUVQIiwgMHg0MjAwfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERElTQUJMRSIsIDB4NDQwMH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTREVOQUJMRSIsIDB4NDQwMX0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJTUlYiLCAweDQ0MDJ9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RSTFNFIiwgMHg0NDAzfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEU0xDSyIsIDB4NDQwNH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFBSUlNUIiwgMHg0NDA1fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUVVJRVNDRSIsIDB4NDQwNn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJFU1VNRSIsIDB4NDQwN30sCi17ImFzbS9jbWIuaCIsICJCSU9EQVNEQ01GRU5BQkxFIiwgMHg0NDIwfSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZESVNBQkxFIiwgMHg0NDIxfSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRVNFVENNQiIsIDB4NDQyMn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WU0NSRUVOSU5GTyIsIDB4NDYwMH0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BVVF9WU0NSRUVOSU5GTyIsIDB4NDYwMX0sCi17ImxpbnV4L3BzMmVzZGkuaCIsICJDTURfUkVBRCIsIDB4NDYwMX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9GU0NSRUVOSU5GTyIsIDB4NDYwMn0sCi17ImxpbnV4L3BzMmVzZGkuaCIsICJDTURfV1JJVEUiLCAweDQ2MDJ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRDTUFQIiwgMHg0NjA0fSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUQ01BUCIsIDB4NDYwNX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BBTl9ESVNQTEFZIiwgMHg0NjA2fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0ZDVVJTT1JJTkZPIiwgMHg0NjA3fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX1ZDVVJTT1JJTkZPIiwgMHg0NjA4fSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX1ZDVVJTT1JJTkZPIiwgMHg0NjA5fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0NVUlNPUlNUQVRFIiwgMHg0NjBhfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX0NVUlNPUlNUQVRFIiwgMHg0NjBifSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0NPTjJGQk1BUCIsIDB4NDYwZn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BVVF9DT04yRkJNQVAiLCAweDQ2MTB9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9CTEFOSyIsIDB4NDYxMX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT19BTExPQyIsIDB4NDYxM30sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT19GUkVFIiwgMHg0NjE0fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0dMWVBIIiwgMHg0NjE1fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0hXQ0lORk8iLCAweDQ2MTZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFJRiIsIDB4NDkwMX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURElGIiwgMHg0OTAyfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRTQ0YiLCAweDQ5MDN9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdDRiIsIDB4NDkwNH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQU5NIiwgMHg0OTA1fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRETk0iLCAweDQ5MDZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdOTSIsIDB4NDkwN30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VUU0VUIiwgMHg0OTA4fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRTRVQiLCAweDQ5MDl9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFZFUiIsIDB4NDkwYX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUSFVQIiwgMHg0OTBifSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRHU1QiLCAweDQ5MGN9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEJSSiIsIDB4NDkwZH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0lHUFJGIiwgMHg0OTBlfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRQUkYiLCAweDQ5MGZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFBSRiIsIDB4NDkxMH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VUTUFQIiwgMHg0OTExfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRNQVAiLCAweDQ5MTJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFTTCIsIDB4NDkxM30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURElMIiwgMHg0OTE0fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRDUFMiLCAweDQ5MTV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVERWUiIsIDB4NDkxNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUTENSIiwgMHg0OTE3fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVREV1JTRVQiLCAweDQ5MTh9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFMTiIsIDB4NDkyMH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURExOIiwgMHg0OTIxfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRHUE4iLCAweDQ5MjJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0RCR1ZBUiIsIDB4NDk3Zn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DRFJWQ1RMIiwgMHg0OTgwfSwKLXsibGludXgva2QuaCIsICJLSU9DU09VTkQiLCAweDRiMmZ9LAoteyJsaW51eC9rZC5oIiwgIktETUtUT05FIiwgMHg0YjMwfSwKLXsibGludXgva2QuaCIsICJLREdFVExFRCIsIDB4NGIzMX0sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRMRUQiLCAweDRiMzJ9LAoteyJsaW51eC9rZC5oIiwgIktER0tCVFlQRSIsIDB4NGIzM30sCi17ImxpbnV4L2tkLmgiLCAiS0RBRERJTyIsIDB4NGIzNH0sCi17ImxpbnV4L2tkLmgiLCAiS0RERUxJTyIsIDB4NGIzNX0sCi17ImxpbnV4L2tkLmgiLCAiS0RFTkFCSU8iLCAweDRiMzZ9LAoteyJsaW51eC9rZC5oIiwgIktERElTQUJJTyIsIDB4NGIzN30sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRNT0RFIiwgMHg0YjNhfSwKLXsibGludXgva2QuaCIsICJLREdFVE1PREUiLCAweDRiM2J9LAoteyJsaW51eC9rZC5oIiwgIktETUFQRElTUCIsIDB4NGIzY30sCi17ImxpbnV4L2tkLmgiLCAiS0RVTk1BUERJU1AiLCAweDRiM2R9LAoteyJsaW51eC9rZC5oIiwgIkdJT19TQ1JOTUFQIiwgMHg0YjQwfSwKLXsibGludXgva2QuaCIsICJQSU9fU0NSTk1BUCIsIDB4NGI0MX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JNT0RFIiwgMHg0YjQ0fSwKLXsibGludXgva2QuaCIsICJLRFNLQk1PREUiLCAweDRiNDV9LAoteyJsaW51eC9rZC5oIiwgIktER0tCRU5UIiwgMHg0YjQ2fSwKLXsibGludXgva2QuaCIsICJLRFNLQkVOVCIsIDB4NGI0N30sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JTRU5UIiwgMHg0YjQ4fSwKLXsibGludXgva2QuaCIsICJLRFNLQlNFTlQiLCAweDRiNDl9LAoteyJsaW51eC9rZC5oIiwgIktER0tCRElBQ1IiLCAweDRiNGF9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCRElBQ1IiLCAweDRiNGJ9LAoteyJsaW51eC9rZC5oIiwgIktER0VUS0VZQ09ERSIsIDB4NGI0Y30sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRLRVlDT0RFIiwgMHg0YjRkfSwKLXsibGludXgva2QuaCIsICJLRFNJR0FDQ0VQVCIsIDB4NGI0ZX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHSFdDTEsiLCAweDRiNTB9LAoteyJsaW51eC9rZC5oIiwgIktEU0hXQ0xLIiwgMHg0YjUxfSwKLXsibGludXgva2QuaCIsICJLREtCRFJFUCIsIDB4NGI1Mn0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlQiLCAweDRiNjB9LAoteyJsaW51eC9rZC5oIiwgIlBJT19GT05UIiwgMHg0YjYxfSwKLXsibGludXgva2QuaCIsICJLREdLQk1FVEEiLCAweDRiNjJ9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTUVUQSIsIDB4NGI2M30sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JMRUQiLCAweDRiNjR9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTEVEIiwgMHg0YjY1fSwKLXsibGludXgva2QuaCIsICJHSU9fVU5JTUFQIiwgMHg0YjY2fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JTUFQIiwgMHg0YjY3fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JTUFQQ0xSIiwgMHg0YjY4fSwKLXsibGludXgva2QuaCIsICJHSU9fVU5JU0NSTk1BUCIsIDB4NGI2OX0sCi17ImxpbnV4L2tkLmgiLCAiUElPX1VOSVNDUk5NQVAiLCAweDRiNmF9LAoteyJsaW51eC9rZC5oIiwgIkdJT19GT05UWCIsIDB4NGI2Yn0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlRYIiwgMHg0YjZjfSwKLXsibGludXgva2QuaCIsICJQSU9fRk9OVFJFU0VUIiwgMHg0YjZkfSwKLXsibGludXgva2QuaCIsICJHSU9fQ01BUCIsIDB4NGI3MH0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0NNQVAiLCAweDRiNzF9LAoteyJsaW51eC9rZC5oIiwgIktERk9OVE9QIiwgMHg0YjcyfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfU0VUX0ZEIiwgMHg0YzAwfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfQ0xSX0ZEIiwgMHg0YzAxfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfU0VUX1NUQVRVUyIsIDB4NGMwMn0sCi17ImxpbnV4L2xvb3AuaCIsICJMT09QX0dFVF9TVEFUVVMiLCAweDRjMDN9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRaQVBFTlRDTlQiLCAweDUyMDR9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRDTEVBUlBPT0wiLCAweDUyMDZ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUEFVU0UiLCAweDUzMDF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVTVU1FIiwgMHg1MzAyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlNU0YiLCAweDUzMDN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWVRSS0lORCIsIDB4NTMwNH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFEVE9DSERSIiwgMHg1MzA1fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NFTlRSWSIsIDB4NTMwNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVE9QIiwgMHg1MzA3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNUQVJUIiwgMHg1MzA4fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUIiwgMHg1MzA5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVZPTENUUkwiLCAweDUzMGF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1VCQ0hOTCIsIDB4NTMwYn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTIiLCAweDUzMGN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRE1PREUxIiwgMHg1MzBkfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURBVURJTyIsIDB4NTMwZX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01FSkVDVF9TVyIsIDB4NTMwZn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01NVUxUSVNFU1NJT04iLCAweDUzMTB9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0dFVF9NQ04iLCAweDUzMTF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVTRVQiLCAweDUzMTJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MUkVBRCIsIDB4NTMxM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFEUkFXIiwgMHg1MzE0fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURDT09LRUQiLCAweDUzMTV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VFSyIsIDB4NTMxNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZQkxLIiwgMHg1MzE3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURBTEwiLCAweDUzMTh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NQ0xPU0VUUkFZIiwgMHg1MzE5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUdFVFNQSU5ET1dOIiwgMHg1MzFkfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNFVFNQSU5ET1dOIiwgMHg1MzFlfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRVRfT1BUSU9OUyIsIDB4NTMyMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fQ0xFQVJfT1BUSU9OUyIsIDB4NTMyMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fU0VMRUNUX1NQRUVEIiwgMHg1MzIyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfRElTQyIsIDB4NTMyM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTUVESUFfQ0hBTkdFRCIsIDB4NTMyNX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fRFJJVkVfU1RBVFVTIiwgMHg1MzI2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9ESVNDX1NUQVRVUyIsIDB4NTMyN30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fQ0hBTkdFUl9OU0xPVFMiLCAweDUzMjh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0xPQ0tET09SIiwgMHg1MzI5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9ERUJVRyIsIDB4NTMzMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX0NBUEFCSUxJVFkiLCAweDUzMzF9LAoteyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwgMHg1MzgwfSwKLXsic2NzaS9zY3NpX2lvY3RsLmgiLCAiU0NTSV9JT0NUTF9ET09SVU5MT0NLIiwgMHg1MzgxfSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9HRVRfSURMVU4iLCAweDUzODJ9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1RBR0dFRF9FTkFCTEUiLCAweDUzODN9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1RBR0dFRF9ESVNBQkxFIiwgMHg1Mzg0fSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwgMHg1Mzg1fSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9HRVRfQlVTX05VTUJFUiIsIDB4NTM4Nn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiRFZEX1JFQURfU1RSVUNUIiwgMHg1MzkwfSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfV1JJVEVfU1RSVUNUIiwgMHg1MzkxfSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfQVVUSCIsIDB4NTM5Mn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fU0VORF9QQUNLRVQiLCAweDUzOTN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX05FWFRfV1JJVEFCTEUiLCAweDUzOTR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0xBU1RfV1JJVFRFTiIsIDB4NTM5NX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ0dFVFMiLCAweDU0MDF9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTIiwgMHg1NDAyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0VUU1ciLCAweDU0MDN9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTRiIsIDB4NTQwNH0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ0dFVEEiLCAweDU0MDV9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBIiwgMHg1NDA2fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0VUQVciLCAweDU0MDd9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBRiIsIDB4NTQwOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NCUksiLCAweDU0MDl9LAoteyJhc20vaW9jdGxzLmgiLCAiVENYT05DIiwgMHg1NDBhfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDRkxTSCIsIDB4NTQwYn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DRVhDTCIsIDB4NTQwY30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTlhDTCIsIDB4NTQwZH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0NUVFkiLCAweDU0MGV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQR1JQIiwgMHg1NDBmfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTUEdSUCIsIDB4NTQxMH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DT1VUUSIsIDB4NTQxMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1RJIiwgMHg1NDEyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHV0lOU1oiLCAweDU0MTN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NXSU5TWiIsIDB4NTQxNH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUdFVCIsIDB4NTQxNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUJJUyIsIDB4NTQxNn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUJJQyIsIDB4NTQxN30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTVNFVCIsIDB4NTQxOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NPRlRDQVIiLCAweDU0MTl9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NTT0ZUQ0FSIiwgMHg1NDFhfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT05SRUFEIiwgMHg1NDFifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NMSU5VWCIsIDB4NTQxY30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DQ09OUyIsIDB4NTQxZH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NFUklBTCIsIDB4NTQxZX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NFUklBTCIsIDB4NTQxZn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DUEtUIiwgMHg1NDIwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT05CSU8iLCAweDU0MjF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ05PVFRZIiwgMHg1NDIyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVREIiwgMHg1NDIzfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHRVREIiwgMHg1NDI0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0JSS1AiLCAweDU0MjV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1RUWUdTVFJVQ1QiLCAweDU0MjZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NCUksiLCAweDU0Mjd9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0NCUksiLCAweDU0Mjh9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dTSUQiLCAweDU0Mjl9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTkNMRVgiLCAweDU0NTB9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPQ0xFWCIsIDB4NTQ1MX0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9BU1lOQyIsIDB4NTQ1Mn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSQ09ORklHIiwgMHg1NDUzfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHV0lMRCIsIDB4NTQ1NH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU1dJTEQiLCAweDU0NTV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dMQ0tUUk1JT1MiLCAweDU0NTZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NMQ0tUUk1JT1MiLCAweDU0NTd9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdTVFJVQ1QiLCAweDU0NTh9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdFVExTUiIsIDB4NTQ1OX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTVVMVEkiLCAweDU0NWF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUlNFVE1VTFRJIiwgMHg1NDVifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNSVdBSVQiLCAweDU0NWN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dJQ09VTlQiLCAweDU0NWR9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPUVNJWkUiLCAweDU0NWV9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDQVJEVVJCIiwgMHg1NTBifSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVQiLCAweDU1MTR9LAoteyJsaW51eC92dC5oIiwgIlZUX09QRU5RUlkiLCAweDU2MDB9LAoteyJsaW51eC92dC5oIiwgIlZUX0dFVE1PREUiLCAweDU2MDF9LAoteyJsaW51eC92dC5oIiwgIlZUX1NFVE1PREUiLCAweDU2MDJ9LAoteyJsaW51eC92dC5oIiwgIlZUX0dFVFNUQVRFIiwgMHg1NjAzfSwKLXsibGludXgvdnQuaCIsICJWVF9TRU5EU0lHIiwgMHg1NjA0fSwKLXsibGludXgvdnQuaCIsICJWVF9SRUxESVNQIiwgMHg1NjA1fSwKLXsibGludXgvdnQuaCIsICJWVF9BQ1RJVkFURSIsIDB4NTYwNn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfV0FJVEFDVElWRSIsIDB4NTYwN30sCi17ImxpbnV4L3Z0LmgiLCAiVlRfRElTQUxMT0NBVEUiLCAweDU2MDh9LAoteyJsaW51eC92dC5oIiwgIlZUX1JFU0laRSIsIDB4NTYwOX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFWCIsIDB4NTYwYX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfTE9DS1NXSVRDSCIsIDB4NTYwYn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfVU5MT0NLU1dJVENIIiwgMHg1NjBjfSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRGUkFNSU5HIiwgMHg2MTE1fSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19BREpCVUZMRVYiLCAweDYxNjN9LAoteyJsaW51eC9hdG1fdGNwLmgiLCAiU0lPQ1NJRkFUTVRDUCIsIDB4NjE4MH0sCi17ImxpbnV4L2F0bV90Y3AuaCIsICJBVE1UQ1BfQ1JFQVRFIiwgMHg2MThlfSwKLXsibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9SRU1PVkUiLCAweDYxOGZ9LAoteyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfQ1RSTCIsIDB4NjFkMH0sCi17ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19EQVRBIiwgMHg2MWQxfSwKLXsibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX01DQVNUIiwgMHg2MWQyfSwKLXsibGludXgvYXRtbXBjLmgiLCAiQVRNTVBDX0NUUkwiLCAweDYxZDh9LAoteyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfREFUQSIsIDB4NjFkOX0sCi17ImxpbnV4L2F0bWNsaXAuaCIsICJTSU9DTUtDTElQIiwgMHg2MWUwfSwKLXsibGludXgvYXRtYXJwLmgiLCAiQVRNQVJQRF9DVFJMIiwgMHg2MWUxfSwKLXsibGludXgvYXRtYXJwLmgiLCAiQVRNQVJQX01LSVAiLCAweDYxZTJ9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfU0VURU5UUlkiLCAweDYxZTN9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfRU5DQVAiLCAweDYxZTV9LAoteyJsaW51eC9hdG1zdmMuaCIsICJBVE1TSUdEX0NUUkwiLCAweDYxZjB9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9HRVRQT1JUU1RBVFMiLCAweDYzMWV9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9DTFJQT1JUU1RBVFMiLCAweDYzMWZ9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9HRVRCUkRTVEFUUyIsIDB4NjMyMH0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX1JFQURQT1JUIiwgMHg2MzI4fSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBREJPQVJEIiwgMHg2MzI5fSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBBTkVMIiwgMHg2MzJhfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfRFVNUCIsIDB4NjRjMH0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NTVFhJRExFIiwgMHg2ZDAyfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dUWElETEUiLCAweDZkMDN9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DVFhFTkFCTEUiLCAweDZkMDR9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DUlhFTkFCTEUiLCAweDZkMDV9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DVFhBQk9SVCIsIDB4NmQwNn0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NHU1RBVFMiLCAweDZkMDd9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DTE9PUFRYRE9ORSIsIDB4NmQwOX0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NDTFJNT0RDT1VOVCIsIDB4NmQwZn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLCAweDZlMDN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09OIiwgMHg3MDAxfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0FJRV9PRkYiLCAweDcwMDJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09OIiwgMHg3MDAzfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1VJRV9PRkYiLCAweDcwMDR9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUElFX09OIiwgMHg3MDA1fSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1BJRV9PRkYiLCAweDcwMDZ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09OIiwgMHg3MDBmfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1dJRV9PRkYiLCAweDcwMTB9LAoteyJsaW51eC9udnJhbS5oIiwgIk5WUkFNX0lOSVQiLCAweDcwNDB9LAoteyJsaW51eC9udnJhbS5oIiwgIk5WUkFNX1NFVENLUyIsIDB4NzA0MX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBDTEFJTSIsIDB4NzA4Yn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSRUxFQVNFIiwgMHg3MDhjfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFlJRUxEIiwgMHg3MDhkfSwKLXsibGludXgvcHBkZXYuaCIsICJQUEVYQ0wiLCAweDcwOGZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVMiLCAweDcxODB9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HIiwgMHg3MTgzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfSE9PS1NUQVRFIiwgMHg3MTg0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVEFSVCIsIDB4NzE4N30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdfU1RPUCIsIDB4NzE4OH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19TVEFSVCIsIDB4NzE4YX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19TVE9QIiwgMHg3MThifSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0xFVkVMIiwgMHg3MThmfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVEFSVCIsIDB4NzE5MX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfU1RPUCIsIDB4NzE5Mn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfTEVWRUwiLCAweDcxOTV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwgMHg3MTllfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLCAweDcxOWZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9TVEFURSIsIDB4NzFhMH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0JVU1kiLCAweDcxYTF9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HQkFDSyIsIDB4NzFhMn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RJQUxUT05FIiwgMHg3MWEzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQ1BUX1NUT1AiLCAweDcxYTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QU1ROX0dFVF9TVEFURSIsIDB4NzFhNX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fTElORVRFU1QiLCAweDcxYTh9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9SRVNFVCIsIDB4NzFjMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX0lETEUiLCAweDcxYzV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1RFU1RSQU0iLCAweDcxYzZ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19TVE9QIiwgMHg3MWNjfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwgMHg3MWNkfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9QU1ROX0xJTkVURVNUIiwgMHg3MWQzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLCAweDcxZTd9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQklOVFIiLCAweDczMTR9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlNUQVJUIiwgMHg3MzE1fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0JTVE9QIiwgMHg3MzE2fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0JSRVNFVCIsIDB4NzMxN30sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9HRVRQRkxBRyIsIDB4NzM1MH0sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9TRVRQRkxBRyIsIDB4NzM1MX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0RJU0NPTk4iLCAweDc0Mzl9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NYRkVSVU5JVCIsIDB4NzQ0ZX0sCi17ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX0hBU0giLCAweDc0NWF9LAoteyJsaW51eC9qZmZzLmgiLCAiSkZGU19QUklOVF9UUkVFIiwgMHg3NDVifSwKLXsibGludXgvamZmcy5oIiwgIkpGRlNfR0VUX1NUQVRVUyIsIDB4NzQ1Y30sCi17ImFzbS9zb2NraW9zLmgiLCAiRklPU0VUT1dOIiwgMHg4OTAxfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DU1BHUlAiLCAweDg5MDJ9LAoteyJhc20vc29ja2lvcy5oIiwgIkZJT0dFVE9XTiIsIDB4ODkwM30sCi17ImFzbS9zb2NraW9zLmgiLCAiU0lPQ0dQR1JQIiwgMHg4OTA0fSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DQVRNQVJLIiwgMHg4OTA1fSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DR1NUQU1QIiwgMHg4OTA2fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERSVCIsIDB4ODkwYn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMUlQiLCAweDg5MGN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1JUTVNHIiwgMHg4OTBkfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZOQU1FIiwgMHg4OTEwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZMSU5LIiwgMHg4OTExfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZDT05GIiwgMHg4OTEyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZGTEFHUyIsIDB4ODkxM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRkxBR1MiLCAweDg5MTR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkFERFIiLCAweDg5MTV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkFERFIiLCAweDg5MTZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkRTVEFERFIiLCAweDg5MTd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkRTVEFERFIiLCAweDg5MTh9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkJSREFERFIiLCAweDg5MTl9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkJSREFERFIiLCAweDg5MWF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5FVE1BU0siLCAweDg5MWJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk5FVE1BU0siLCAweDg5MWN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FVFJJQyIsIDB4ODkxZH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVUUklDIiwgMHg4OTFlfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNRU0iLCAweDg5MWZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1FTSIsIDB4ODkyMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTVRVIiwgMHg4OTIxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNVFUiLCAweDg5MjJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk5BTUUiLCAweDg5MjN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkhXQUREUiIsIDB4ODkyNH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRU5DQVAiLCAweDg5MjV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkVOQ0FQIiwgMHg4OTI2fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZIV0FERFIiLCAweDg5Mjd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlNMQVZFIiwgMHg4OTI5fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZTTEFWRSIsIDB4ODkzMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURETVVMVEkiLCAweDg5MzF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RFTE1VTFRJIiwgMHg4OTMyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZJTkRFWCIsIDB4ODkzM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGUEZMQUdTIiwgMHg4OTM0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZQRkxBR1MiLCAweDg5MzV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RJRkFERFIiLCAweDg5MzZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkhXQlJPQURDQVNUIiwgMHg4OTM3fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZDT1VOVCIsIDB4ODkzOH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlIiLCAweDg5NDB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkJSIiwgMHg4OTQxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZUWFFMRU4iLCAweDg5NDJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlRYUUxFTiIsIDB4ODk0M30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREFSUCIsIDB4ODk1M30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0FSUCIsIDB4ODk1NH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0FSUCIsIDB4ODk1NX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRFJBUlAiLCAweDg5NjB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dSQVJQIiwgMHg4OTYxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTUkFSUCIsIDB4ODk2Mn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUFQIiwgMHg4OTcwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNQVAiLCAweDg5NzF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERERMQ0kiLCAweDg5ODB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RFTERMQ0kiLCAweDg5ODF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1BST1RPUFJJVkFURSIsIDB4ODllMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVWUFJJVkFURSIsIDB4ODlmMH0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX1JFQURZIiwgMHg5MzYwfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfRkFJTCIsIDB4OTM2MX0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0NBVEFUT05JQyIsIDB4OTM2Mn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU09DSyIsIDB4YWIwMH0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfQkxLU0laRSIsIDB4YWIwMX0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU0laRSIsIDB4YWIwMn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9ET19JVCIsIDB4YWIwM30sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9DTEVBUl9TT0NLIiwgMHhhYjA0fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1FVRSIsIDB4YWIwNX0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9QUklOVF9ERUJVRyIsIDB4YWIwNn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU0laRV9CTE9DS1MiLCAweGFiMDd9LAoteyJsaW51eC9uYmQuaCIsICJOQkRfRElTQ09OTkVDVCIsIDB4YWIwOH0sCi17ImxpbnV4L3Jhdy5oIiwgIlJBV19TRVRCSU5EIiwgMHhhYzAwfSwKLXsibGludXgvcmF3LmgiLCAiUkFXX0dFVEJJTkQiLCAweGFjMDF9LAoteyJsaW51eC9pZl9wcHBveC5oIiwgIlBQUE9FSU9DREZXRCIsIDB4YjEwMX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0FDVElWQVRFIiwgMHhmZTIyfSwKLXsibGludXgvbHZtLmgiLCAiTFZfREVBQ1RJVkFURSIsIDB4ZmUyM30sCi17ImxpbnV4L2x2bS5oIiwgIkxWTV9SRVNFVCIsIDB4ZmU5OX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWTV9MT0NLX0xWTSIsIDB4ZmYwMH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRNT04iLCAweDQzNTkwMX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRUSFJFU0giLCAweDQzNTkwMn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSFJFU0giLCAweDQzNTkwM30sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRERUZUSFJFU0giLCAweDQzNTkwNH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRERUZUSFJFU0giLCAweDQzNTkwNX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRUSU1FT1VUIiwgMHg0MzU5MDZ9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUVElNRU9VVCIsIDB4NDM1OTA3fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRJTUVPVVQiLCAweDQzNTkwOH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRERUZUSU1FT1VUIiwgMHg0MzU5MDl9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUkZMT1ciLCAweDQzNTkwYX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRSRkxPVyIsIDB4NDM1OTBifSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFJUU0RUUl9JTlYiLCAweDQzNTkwY30sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRSVFNEVFJfSU5WIiwgMHg0MzU5MGR9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWlNFVFBPTExDWUNMRSIsIDB4NDM1OTBlfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVpHRVRQT0xMQ1lDTEUiLCAweDQzNTkwZn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRDRDE0MDBWRVIiLCAweDQzNTkxMH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRDQVJESU5GTyIsIDB4NDM1OTExfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFdBSVQiLCAweDQzNTkxMn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRXQUlUIiwgMHg0MzU5MTN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1ZPTFVNRSIsIDB4MjAwNDRkMDB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0JBU1MiLCAweDIwMDQ0ZDAxfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9UUkVCTEUiLCAweDIwMDQ0ZDAyfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9TWU5USCIsIDB4MjAwNDRkMDN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1BDTSIsIDB4MjAwNDRkMDR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NQRUFLRVIiLCAweDIwMDQ0ZDA1fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FIiwgMHgyMDA0NGQwNn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTUlDIiwgMHgyMDA0NGQwN30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQ0QiLCAweDIwMDQ0ZDA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JTUlYIiwgMHgyMDA0NGQwOX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQUxUUENNIiwgMHgyMDA0NGQwYX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUkVDTEVWIiwgMHgyMDA0NGQwYn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfSUdBSU4iLCAweDIwMDQ0ZDBjfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9PR0FJTiIsIDB4MjAwNDRkMGR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUxIiwgMHgyMDA0NGQwZX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTIiLCAweDIwMDQ0ZDBmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMyIsIDB4MjAwNDRkMTB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX01VVEUiLCAweDIwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9FTkhBTkNFIiwgMHgyMDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTE9VRCIsIDB4MjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NURVJFT0RFVlMiLCAweDIwMDQ0ZGZifSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DQVBTIiwgMHgyMDA0NGRmY30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUkVDTUFTSyIsIDB4MjAwNDRkZmR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0RFVk1BU0siLCAweDIwMDQ0ZGZlfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNTUkMiLCAweDIwMDQ0ZGZmfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFdDT05UUk9MIiwgMHg0MDAxNzA4NH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBXREFUQSIsIDB4NDAwMTcwODZ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQV0NUTE9OSVJRIiwgMHg0MDAxNzA5Mn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX01BWFJJTkdTIiwgMHg0MDAxNzE4NX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfVE9ORSIsIDB4NDAwMTcxOWJ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQRkNPTlRST0wiLCAweDQwMDI3MDhlfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19DQURFTkNFIiwgMHg0MDAyNzE4Nn0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfREVBTExPQ0FURSIsIDB4NDAwNDQxMDd9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRBRERUT0VOVENOVCIsIDB4NDAwNDUyMDF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQVExDSyIsIDB4NDAwNDU0MzF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VUU0MiLCAweDQwMDQ2MWYxfSwKLXsibGludXgvZGV2ZnNfZnMuaCIsICJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLCAweDQwMDQ2NDAyfSwKLXsibGludXgvZGV2ZnNfZnMuaCIsICJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsIDB4NDAwNDY0MDN9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfTk9STSIsIDB4NDAwNDY0MDN9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsIDB4NDAwNDY0MDR9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfSU5QVVQiLCAweDQwMDQ2NDA0fSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX09VVFBVVCIsIDB4NDAwNDY0MDV9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwgMHg0MDA0NjQwNn0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjUwMn0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY1MDN9LAoteyJsaW51eC92aWRlb19lbmNvZGVyLmgiLCAiRU5DT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjUwNH0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NTA1fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRCIsIDB4NDAwNDZlMDJ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsIDB4NDAwNDZlMDZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsIDB4NDAwNDZlMGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQU0VUTU9ERSIsIDB4NDAwNDcwODB9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQREFUQURJUiIsIDB4NDAwNDcwOTB9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQTkVHT1QiLCAweDQwMDQ3MDkxfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFNFVFBIQVNFIiwgMHg0MDA0NzA5NH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19DT0RFQyIsIDB4NDAwNDcxODl9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfREVQVEgiLCAweDQwMDQ3MThjfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRlJBTUUiLCAweDQwMDQ3MThkfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1ZPTFVNRSIsIDB4NDAwNDcxOGV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX0NPREVDIiwgMHg0MDA0NzE5MH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfREVQVEgiLCAweDQwMDQ3MTkzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9WT0xVTUUiLCAweDQwMDQ3MTk0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRFRNRl9PT0IiLCAweDQwMDQ3MTk5fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsIDB4NDAwNDcxOWN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsIDB4NDAwNDcxOWR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QU1ROX1NFVF9TVEFURSIsIDB4NDAwNDcxYTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9XSU5LX0RVUkFUSU9OIiwgMHg0MDA0NzFhNn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwgMHg0MDA0NzFjOH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUQVJUIiwgMHg0MDA0NzFjYn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfU0VUX0xFRCIsIDB4NDAwNDcxY2V9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX01JWEVSIiwgMHg0MDA0NzFjZn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfREFBX0NPRUZGX1NFVCIsIDB4NDAwNDcxZDB9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPUlQiLCAweDQwMDQ3MWQxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQUdBSU4iLCAweDQwMDQ3MWQyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9QT1RTX1BTVE4iLCAweDQwMDQ3MWQ1fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9IWiIsIDB4NDAwNDcxZTB9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1JBVEUiLCAweDQwMDQ3MWUxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsIDB4NDAwNDcxZmR9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLCAweDQwMDQ3MWZlfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DQVRUQ0hBTiIsIDB4NDAwNDc0Mzh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NDT05ORUNUIiwgMHg0MDA0NzQzYX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NNUlJVIiwgMHg0MDA0NzQzYn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0RFVEFDSCIsIDB4NDAwNDc0M2N9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRBQ0giLCAweDQwMDQ3NDNkfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0RFQlVHIiwgMHg0MDA0NzQ0MH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NNQVhDSUQiLCAweDQwMDQ3NDUxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SVSIsIDB4NDAwNDc0NTJ9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTUkFTWU5DTUFQIiwgMHg0MDA0NzQ1NH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NBU1lOQ01BUCIsIDB4NDAwNDc0NTd9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTRkxBR1MiLCAweDQwMDQ3NDU5fSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NCVU5ETEUiLCAweDQwMDQ3NDgxfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NTTVBGTEFHUyIsIDB4NDAwNDc0ODN9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUE1UVSIsIDB4NDAwNDc0ODR9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUE1SVSIsIDB4NDAwNDc0ODV9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NDT01QUkVTU09SIiwgMHg0MDA0NzQ4N30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DQ0FQVFVSRSIsIDB4NDAwNDc2MDh9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NZTkMiLCAweDQwMDQ3NjEyfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTV1JJVEVNT0RFIiwgMHg0MDA0NzYxOX0sCi17ImxpbnV4L2RuLmgiLCAiU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCi17ImxpbnV4L2RuLmgiLCAiT1NJT0NTTkVUQUREUiIsIDB4NDAwNDg5ZTB9LAoteyJsaW51eC9hdXRvX2ZzNC5oIiwgIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwgMHg0MDA0OTM2Nn0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX0NSRUFURSIsIDB4NDAwNGZlMDB9LAoteyJsaW51eC9sdm0uaCIsICJWR19SRU1PVkUiLCAweDQwMDRmZTAxfSwKLXsibGludXgvbHZtLmgiLCAiVkdfRVhURU5EIiwgMHg0MDA0ZmUwM30sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1JFRFVDRSIsIDB4NDAwNGZlMDR9LAoteyJsaW51eC9sdm0uaCIsICJWR19TRVRfRVhURU5EQUJMRSIsIDB4NDAwNGZlMDh9LAoteyJsaW51eC9sdm0uaCIsICJMVl9DUkVBVEUiLCAweDQwMDRmZTIwfSwKLXsibGludXgvbHZtLmgiLCAiTFZfUkVNT1ZFIiwgMHg0MDA0ZmUyMX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0VYVEVORCIsIDB4NDAwNGZlMjR9LAoteyJsaW51eC9sdm0uaCIsICJMVl9SRURVQ0UiLCAweDQwMDRmZTI1fSwKLXsibGludXgvbHZtLmgiLCAiTFZfU0VUX0FDQ0VTUyIsIDB4NDAwNGZlMjh9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUxMT0NBVElPTiIsIDB4NDAwNGZlMjl9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfU1RBVFVTIiwgMHg0MDA0ZmUyYX0sCi17ImxpbnV4L2x2bS5oIiwgIkxFX1JFTUFQIiwgMHg0MDA0ZmUyYn0sCi17ImxpbnV4L2x2bS5oIiwgIlBWX0ZMVVNIIiwgMHg0MDA0ZmU0Mn0sCi17ImxpbnV4L2x2bS5oIiwgIlBFX0xPQ0tfVU5MT0NLIiwgMHg0MDA0ZmU1MH0sCi17ImxpbnV4L2VsZXZhdG9yLmgiLCAiQkxLRUxWU0VUIiwgMHg0MDA4MTI2Yn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRUxWU0VUIiwgMHg0MDA4MTI2Yn0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfU0VUVVAiLCAweDQwMDg0MTAzfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19SRVNFUlZFIiwgMHg0MDA4NDEwNH0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUFJPVEVDVCIsIDB4NDAwODQxMDV9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0JJTkQiLCAweDQwMDg0MTA4fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19VTkJJTkQiLCAweDQwMDg0MTA5fSwKLXsibGludXgvcG11LmgiLCAiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwgMHg0MDA4NDIwMn0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NTUkVQIiwgMHg0MDA4NDUwM30sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NTS0VZQ09ERSIsIDB4NDAwODQ1MDR9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRBRERFTlRST1BZIiwgMHg0MDA4NTIwM30sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFQVBVUkIiLCAweDQwMDg1NTBjfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsIDB4NDAwODU1MGR9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DT05ORUNUSU5GTyIsIDB4NDAwODU1MTF9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VURkxBR1MiLCAweDQwMDg2NjAyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DVE9QIiwgMHg0MDA4NmQwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwgMHg0MDA4NmUwMn0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwgMHg0MDA4NmVmOH0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwgMHg0MDA4NmVmYX0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19JUlFQX1NFVCIsIDB4NDAwODcwMGN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfU0VUIiwgMHg0MDA4NzAwZX0sCi17ImxpbnV4L3NlcmlvLmgiLCAiU1BJT0NTVFlQRSIsIDB4NDAwODcxMDF9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLCAweDQwMDg3MTgyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfRklMVEVSIiwgMHg0MDA4NzFjN30sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5JVF9UT05FIiwgMHg0MDA4NzFjOX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVE9ORV9DQURFTkNFIiwgMHg0MDA4NzFjYX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NOUE1PREUiLCAweDQwMDg3NDRifSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX1NFVFZFUlNJT04iLCAweDQwMDg3NjAyfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTRlJFUSIsIDB4NDAwODc2MGZ9LAoteyJsaW51eC9pZl9wcHBveC5oIiwgIlBQUE9FSU9DU0ZXRCIsIDB4NDAwOGIxMDB9LAoteyJsaW51eC9mZC5oIiwgIkZERk1UVFJLIiwgMHg0MDBjMDI0OH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX1JFR0lTVEVSIiwgMHg0MDBjNDMwMX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRSRUciLCAweDQwMGM2OTBhfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRST09UIiwgMHg0MDBjNmUwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1BMQVlNT0RFIiwgMHg0MDBjNzYxOH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9QSUNUVVJFIiwgMHg0MDBlNjQwN30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1BJQ1QiLCAweDQwMGU3NjA3fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERk1UIiwgMHg0MDEwNDQwMX0sCi17ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwgIklEVDc3MTA1X0dFVFNUQVQiLCAweDQwMTA2MTMyfSwKLXsibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVFoiLCAweDQwMTA2MTMzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFNUQVQiLCAweDQwMTA2MTUwfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFNUQVRaIiwgMHg0MDEwNjE1MX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRMT09QIiwgMHg0MDEwNjE1Mn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRMT09QIiwgMHg0MDEwNjE1M30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9RVUVSWUxPT1AiLCAweDQwMTA2MTU0fSwKLXsibGludXgvYXRtX2VuaS5oIiwgIkVOSV9NRU1EVU1QIiwgMHg0MDEwNjE2MH0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRQT09MIiwgMHg0MDEwNjE2MX0sCi17ImxpbnV4L2F0bV9uaWNzdGFyLmgiLCAiTlNfU0VUQlVGTEVWIiwgMHg0MDEwNjE2Mn0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRQT09MWiIsIDB4NDAxMDYxNjJ9LAoteyJsaW51eC9hdG1femF0bS5oIiwgIlpBVE1fU0VUUE9PTCIsIDB4NDAxMDYxNjN9LAoteyJsaW51eC9hdG1femF0bS5oIiwgIlpBVE1fR0VUVEhJU1QiLCAweDQwMTA2MTY0fSwKLXsibGludXgvYXRtX2VuaS5oIiwgIkVOSV9TRVRNVUxUIiwgMHg0MDEwNjE2N30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRMSU5LUkFURSIsIDB4NDAxMDYxODF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUTkFNRVMiLCAweDQwMTA2MTgzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFRZUEUiLCAweDQwMTA2MTg0fSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVEVTSSIsIDB4NDAxMDYxODV9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUQUREUiIsIDB4NDAxMDYxODZ9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fUlNUQUREUiIsIDB4NDAxMDYxODd9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fQUREQUREUiIsIDB4NDAxMDYxODh9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fREVMQUREUiIsIDB4NDAxMDYxODl9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUQ0lSQU5HRSIsIDB4NDAxMDYxOGF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VUQ0lSQU5HRSIsIDB4NDAxMDYxOGJ9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VURVNJIiwgMHg0MDEwNjE4Y30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0lGIiwgMHg0MDEwNjE4ZH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRUSU1FIiwgMHg0MDEwNzA5Nn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NDT01QUkVTUyIsIDB4NDAxMDc0NGR9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ01DQVBUVVJFIiwgMHg0MDEwNzYxM30sCi17ImFzbS90YXBlMzkwLmgiLCAiVEFQRTM5MF9ESVNQTEFZIiwgMHg0MDExNjQwMX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRNQVhFUlJTIiwgMHg0MDE0MDI0Y30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU0NBUFRVUkUiLCAweDQwMTQ3NjE3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTRkJVRiIsIDB4NDAxODc2MGN9LAoteyJsaW51eC9mZC5oIiwgIkZEU0VUUFJNIiwgMHg0MDIwMDI0Mn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRERUZQUk0iLCAweDQwMjAwMjQzfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEU0FUVFIiLCAweDQwMjA0NDAyfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU1hBU1lOQ01BUCIsIDB4NDAyMDc0NGZ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NNSUNST0NPREUiLCAweDQwMjA3NjFifSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTVkJJRk1UIiwgMHg0MDIwNzYxZH0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NTQ09SUiIsIDB4NDAyNDZhMjF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUxNX1NFVCIsIDB4NDAyNDcwMDd9LAoteyJsaW51eC9ydGMuaCIsICJSVENfU0VUX1RJTUUiLCAweDQwMjQ3MDBhfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1dLQUxNX1NFVCIsIDB4NDAyODcwMGZ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXSU4iLCAweDQwMjg3NjBhfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQVVESU8iLCAweDQwMjg3NjExfSwKLXsibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19ORVdDT05OIiwgMHg0MDJjNzUwMn0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NTUEFSQU1TIiwgMHg0MDMwNmQwMH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU0NIQU4iLCAweDQwMzA3NjAzfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTVFVORVIiLCAweDQwNDA3NjA1fSwKLXsibGludXgvZmQuaCIsICJGRFNFVERSVlBSTSIsIDB4NDA4MDAyOTB9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19HRVREUklWRVIiLCAweDQxMDQ1NTA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfVk9MVU1FIiwgMHg2MDA0NGQwMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0JBU1MiLCAweDYwMDQ0ZDAxfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfVFJFQkxFIiwgMHg2MDA0NGQwMn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NZTlRIIiwgMHg2MDA0NGQwM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1BDTSIsIDB4NjAwNDRkMDR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9TUEVBS0VSIiwgMHg2MDA0NGQwNX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUiLCAweDYwMDQ0ZDA2fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTUlDIiwgMHg2MDA0NGQwN30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0NEIiwgMHg2MDA0NGQwOH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lNSVgiLCAweDYwMDQ0ZDA5fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQUxUUENNIiwgMHg2MDA0NGQwYX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ0xFViIsIDB4NjAwNDRkMGJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9JR0FJTiIsIDB4NjAwNDRkMGN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9PR0FJTiIsIDB4NjAwNDRkMGR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMSIsIDB4NjAwNDRkMGV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMiIsIDB4NjAwNDRkMGZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMyIsIDB4NjAwNDRkMTB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NVVRFIiwgMHg2MDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0VOSEFOQ0UiLCAweDYwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTE9VRCIsIDB4NjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9SRUNTUkMiLCAweDYwMDQ0ZGZmfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dBWEVTIiwgMHg4MDAxNmExMX0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHQlVUVE9OUyIsIDB4ODAwMTZhMTJ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUlNUQVRVUyIsIDB4ODAwMTcwODF9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUkNPTlRST0wiLCAweDgwMDE3MDgzfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFJEQVRBIiwgMHg4MDAxNzA4NX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9FUlJDT0RFIiwgMHg4MDAyNDMyMX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0lOU1RBTExFRCIsIDB4ODAwMjQzMjJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfRkxBR1MiLCAweDgwMDQ0MzIzfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfU0VUX0ZMQUdTIiwgMHg4MDA0NDMyNH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0NMUl9GTEFHUyIsIDB4ODAwNDQzMjV9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsIDB4ODAwNDQzMjZ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9OQ0NJX0dFVFVOSVQiLCAweDgwMDQ0MzI3fSwKLXsiYXNtL2Rhc2QuaCIsICJEQVNEQVBJVkVSIiwgMHg4MDA0NDQwMH0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHVkVSU0lPTiIsIDB4ODAwNDQ1MDF9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRFTlRDTlQiLCAweDgwMDQ1MjAwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHUFROIiwgMHg4MDA0NTQzMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFU0VURVAiLCAweDgwMDQ1NTAzfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsIDB4ODAwNDU1MDV9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsIDB4ODAwNDU1MGZ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwgMHg4MDA0NTUxMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMRUFSX0hBTFQiLCAweDgwMDQ1NTE1fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRTVEFUVVMiLCAweDgwMDQ1NzAxfSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRCT09UU1RBVFVTIiwgMHg4MDA0NTcwMn0sCi17ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfR0VUVEVNUCIsIDB4ODAwNDU3MDN9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX1NFVE9QVElPTlMiLCAweDgwMDQ1NzA0fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19LRUVQQUxJVkUiLCAweDgwMDQ1NzA1fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRESUFHIiwgMHg4MDA0NjExNH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJBTUlORyIsIDB4ODAwNDYxMTZ9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwgMHg4MDA0NjQwMH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0dFVF9TVEFUVVMiLCAweDgwMDQ2NDAyfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1ZBTElEQVRFIiwgMHg4MDA0NjkwOH0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHVkVSU0lPTiIsIDB4ODAwNDZhMDF9LAoteyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRFQVNJWkUiLCAweDgwMDQ2YzQwfSwKLXsibGludXgvemZ0YXBlLmgiLCAiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwgMHg4MDA0NmQ2OH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0lHTl9XQU5URUQiLCAweDgwMDQ2ZTA2fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRERU5UUllUVEwiLCAweDgwMDQ2ZTBjfSwKLXsibGludXgvcHBkZXYuaCIsICJQUENMUklSUSIsIDB4ODAwNDcwOTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX1JFQURZIiwgMHg4MDA0NzE5Nn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9EVE1GIiwgMHg4MDA0NzE5N30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwgMHg4MDA0NzE5OH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0VYQ0VQVElPTiIsIDB4ODAwNDcxOWF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NBUkRUWVBFIiwgMHg4MDA0NzFjMX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfU0VSSUFMIiwgMHg4MDA0NzFjMn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1RZUEUiLCAweDgwMDQ3MWMzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVkVSU0lPTiIsIDB4ODAwNDcxYzR9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHQ0hBTiIsIDB4ODAwNDc0Mzd9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHREVCVUciLCAweDgwMDQ3NDQxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR01SVSIsIDB4ODAwNDc0NTN9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHUkFTWU5DTUFQIiwgMHg4MDA0NzQ1NX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dVTklUIiwgMHg4MDA0NzQ1Nn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dBU1lOQ01BUCIsIDB4ODAwNDc0NTh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHRkxBR1MiLCAweDgwMDQ3NDVhfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHTVBGTEFHUyIsIDB4ODAwNDc0ODJ9LAoteyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX0dFVE1PVU5UVUlEIiwgMHg4MDA0NzUwMX0sCi17ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsIDB4ODAwNDc1MDN9LAoteyJsaW51eC9kbi5oIiwgIlNJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoteyJsaW51eC9kbi5oIiwgIk9TSU9DR05FVEFERFIiLCAweDgwMDQ4OWUxfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUFJPVE9WRVIiLCAweDgwMDQ5MzYzfSwKLXsibGludXgvbHZtLmgiLCAiTFZNX0dFVF9JT1BfVkVSU0lPTiIsIDB4ODAwNGZlOTh9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVEZSU0VOU0UiLCAweDgwMDY2MTE3fSwKLXsibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZHRVQiLCAweDgwMDgxMjZhfSwKLXsibGludXgvZnMuaCIsICJCTEtFTFZHRVQiLCAweDgwMDgxMjZhfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19JTkZPIiwgMHg4MDA4NDEwMH0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsIDB4ODAwODQyMDF9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX0dFVF9NT0RFTCIsIDB4ODAwODQyMDN9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX0hBU19BREIiLCAweDgwMDg0MjA0fSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dJRCIsIDB4ODAwODQ1MDJ9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR1JFUCIsIDB4ODAwODQ1MDN9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWUNPREUiLCAweDgwMDg0NTA0fSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dLRVkiLCAweDgwMDg0NTA1fSwKLXsibGludXgvcmFuZG9tLmgiLCAiUk5ER0VUUE9PTCIsIDB4ODAwODUyMDJ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLCAweDgwMDg1NTA0fSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVEZMQUdTIiwgMHg4MDA4NjYwMX0sCi17ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBQkxPQ0siLCAweDgwMDg2YzQxfSwKLXsibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VUVk9MSURFTlQiLCAweDgwMDg2YzQyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DUE9TIiwgMHg4MDA4NmQwM30sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwgMHg4MDA4NmVmOH0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwgMHg4MDA4NmVmOX0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwgMHg4MDA4NmVmYn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19JUlFQX1JFQUQiLCAweDgwMDg3MDBifSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0VQT0NIX1JFQUQiLCAweDgwMDg3MDBkfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLCAweDgwMDg3MTgxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9DSUQiLCAweDgwMDg3MWQ0fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9GUkFNRVNfUkVBRCIsIDB4ODAwODcxZTJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwgMHg4MDA4NzFlM30sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkVBRF9XQUlUIiwgMHg4MDA4NzFlNH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfV1JJVEVfV0FJVCIsIDB4ODAwODcxZTV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwgMHg4MDA4NzFlNn0sCi17ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19HRVRWRVJTSU9OIiwgMHg4MDA4NzYwMX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0ZSRVEiLCAweDgwMDg3NjBlfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsIDB4ODAwYzY0MDF9LAoteyJsaW51eC92aWRlb19lbmNvZGVyLmgiLCAiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjUwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUk9PVCIsIDB4ODAwYzZlMDh9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0tFWSIsIDB4ODAwYzc2MGR9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQSUNUIiwgMHg4MDBlNzYwNn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZUWVAiLCAweDgwMTAwMjBmfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfRElTQ1NJR05BTCIsIDB4ODAxMDU1MGV9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVRTSVpFIiwgMHg4MDEwNmQwOX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfTkNQUkVRVUVTVCIsIDB4ODAxMDZlMDF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwgMHg4MDEwNmUwYX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBHRVRUSU1FIiwgMHg4MDEwNzA5NX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dJRExFIiwgMHg4MDEwNzQzZn0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DR0lGTkFNRSIsIDB4ODAxMDc0ODh9LAoteyJsaW51eC9mZC5oIiwgIkZER0VUTUFYRVJSUyIsIDB4ODAxNDAyMGV9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NWT0xJTkZPIiwgMHg4MDE0NmQwOH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfTE9DS1VOTE9DSyIsIDB4ODAxNDZlMDd9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dVTklUIiwgMHg4MDE0NzYxNX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUFRVUkUiLCAweDgwMTQ3NjE2fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX0lOSVQiLCAweDgwMTg2ZTA1fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwgMHg4MDE4NmUwOX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0ZCVUYiLCAweDgwMTg3NjBifSwKLXsibGludXgvZmQuaCIsICJGREdFVFBSTSIsIDB4ODAyMDAyMDR9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RHQVRUUiIsIDB4ODAyMDQ0MDV9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkJMQU5LIiwgMHg4MDIwNDYxMn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dYQVNZTkNNQVAiLCAweDgwMjA3NDUwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHVkJJRk1UIiwgMHg4MDIwNzYxY30sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVCIsIDB4ODAyNDYxMTB9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVFNUQVRaIiwgMHg4MDI0NjExMX0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHQ09SUiIsIDB4ODAyNDZhMjJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUxNX1JFQUQiLCAweDgwMjQ3MDA4fSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1JEX1RJTUUiLCAweDgwMjQ3MDA5fSwKLXsibGludXgvZmQuaCIsICJGREdFVEZEQ1NUQVQiLCAweDgwMjgwMjE1fSwKLXsibGludXgvZmQuaCIsICJGRFdFUlJPUkdFVCIsIDB4ODAyODAyMTd9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fUkQiLCAweDgwMjg3MDEwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHV0lOIiwgMHg4MDI4NzYwOX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0FVRElPIiwgMHg4MDI4NzYxMH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLCAweDgwMmE2ZTBifSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dQQVJBTVMiLCAweDgwMzA2ZDAxfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DR0VUIiwgMHg4MDMwNmQwMn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NVQk1JVFVSQiIsIDB4ODAzODU1MGF9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dDQVAiLCAweDgwM2M3NjAxfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0dFVElPUFMiLCAweDgwNDA2OTAwfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ09NUFJFU1NPUlMiLCAweDgwNDA3NDg2fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRTVVBQT1JUIiwgMHg4MDQ4NTcwMH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZTVEFUIiwgMHg4MDUwMDIxMn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRQT0xMRFJWU1RBVCIsIDB4ODA1MDAyMTN9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPRVZUR0VUIiwgMHg4MDY4NjkwYn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZQUk0iLCAweDgwODAwMjExfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwgMHg4MDgwNTUxM30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR01CVUYiLCAweDgwODg3NjE0fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFNSRCIsIDB4ODBjMDQ0MDR9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkUiLCAweDgxMGM5MzY1fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHUExBWUlORk8iLCAweDgxMTg3NjFhfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNESU5GTyIsIDB4ODE3ODQ0MDF9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPMiIsIDB4ODFhMDQ0MDN9LAoteyJsaW51eC9tc2Rvc19mcy5oIiwgIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwgMHg4MjMwNzIwMX0sCi17ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwgMHg4MjMwNzIwMn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFBSUkQiLCAweDg0MDg0NDAyfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsIDB4YzAwNDQzMDZ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfU0VSSUFMIiwgMHhjMDA0NDMwOH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfU0VURElBRyIsIDB4YzAwNDYxMTJ9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0NMUkRJQUciLCAweGMwMDQ2MTEzfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1dBSVRFVkVOVCIsIDB4YzAwNDZkMDh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NORVdVTklUIiwgMHhjMDA0NzQzZX0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVUyIsIDB4YzAwNGZlMDV9LAoteyJsaW51eC9sdm0uaCIsICJWR19TVEFUVVNfR0VUX0NPVU5UIiwgMHhjMDA0ZmUwNn0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLCAweGMwMDRmZTA3fSwKLXsibGludXgvbHZtLmgiLCAiTFZfU1RBVFVTX0JZTkFNRSIsIDB4YzAwNGZlMjZ9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllJTkRFWCIsIDB4YzAwNGZlMjd9LAoteyJsaW51eC9sdm0uaCIsICJQVl9TVEFUVVMiLCAweGMwMDRmZTQwfSwKLXsibGludXgvbHZtLmgiLCAiUFZfQ0hBTkdFIiwgMHhjMDA0ZmU0MX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUxMT0NBVEUiLCAweGMwMDg0MTA2fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRUFEQ01CIiwgMHhjMDA4NDQyMH0sCi17ImxpbnV4L2NvZGEuaCIsICJDSU9DX0tFUk5FTF9WRVJTSU9OIiwgMHhjMDA4NjMwYX0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwgMHhjMDA4NmVmYX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1FVRVJZX0NPREVDIiwgMHhjMDA4NzFhN30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dOUE1PREUiLCAweGMwMDg3NDRjfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsIDB4YzAwODkzNjR9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfVkVSU0lPTiIsIDB4YzAxMDQzMDd9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwgMHhjMDEwNDMyMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0lPQ1RMIiwgMHhjMDEwNTUxMn0sCi17ImxpbnV4L2F0bV9uaWNzdGFyLmgiLCAiTlNfR0VUUFNUQVQiLCAweGMwMTA2MTYxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsIDB4YzAxMDZlMGF9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DT05UUk9MIiwgMHhjMDE4NTUwMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0JVTEsiLCAweGMwMTg1NTAyfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0hSVEdFVCIsIDB4YzAxODY5MDF9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPTENUR0VUIiwgMHhjMDE4NjkwMn0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ1JERlRTRUciLCAweGMwMTg2ZDA2fSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DV1JGVFNFRyIsIDB4YzAxODZkMDd9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVEZPUk1BVCIsIDB4YzAxODZkMGF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLCAweGMwMTg2ZTA5fSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DRlRDTUQiLCAweGMwMjA2ZDBifSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1BBUk1TRVQiLCAweGMwMjg2OTAzfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1BBUk1HRVQiLCAweGMwMjg2OTA0fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRfRlNfSU5GTyIsIDB4YzAyODZlMDR9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVENIQVJTRVRTIiwgMHhjMDJhNmUwYn0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV0RMIiwgMHhjMDMwNjkwNX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV1VMIiwgMHhjMDMwNjkwNn0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV0RFTCIsIDB4YzAzMDY5MDd9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFRNTCIsIDB4YzAzMDY5MDl9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwgMHhjMDMwNmUwNH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NIQU4iLCAweGMwMzA3NjAyfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX1BST0ZJTEUiLCAweGMwNDA0MzA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHVFVORVIiLCAweGMwNDA3NjA0fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRUFEQUxMQ01CIiwgMHhjMDU4NDQyMX0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DR0NBTExJTkZPIiwgMHhjMDg4NzQ4MH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zMzkwL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGIwMGIxLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zMzkwL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdVTlVTRUQiLAkvKiAzMSAqLwotCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvczM5MC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMTI1ZjguLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTAvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDAgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3BvcmF0aW9uCi0gKiBBdXRob3JzOiBVbHJpY2ggV2VpZ2FuZCA8VWxyaWNoLldlaWdhbmRAZGUuaWJtLmNvbT4KLSAqICAgICAgICAgIEQuSi4gQmFycm93ICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLQl7IDAsCTAsCXN5c19zZXR1cCwJCSJzZXR1cCIJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIJCX0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNyIJCX0sIC8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE2ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNyIJfSwgLyogMTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4Igl9LCAvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4Igl9LCAvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxIgl9LCAvKiAzMSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMzIiCX0sIC8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1Igl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNDQiCX0sIC8qIDQ0ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU180NiIJfSwgLyogNDYgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3Igl9LCAvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTMiCX0sIC8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2Igl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4Igl9LCAvKiA1OCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTkiCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4Igl9LCAvKiA2OCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNjkiCX0sIC8qIDY5ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNzIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgl9LCAvKiA3MyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNzUgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAvKiA3NiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiA3OCAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNzkgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDgxICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU184MiIJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfODQiCX0sIC8qIDg0ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA4NSAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA4NiAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA4NyAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDg4ICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm1tYXAiCQl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4Igl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCi0JeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogMTAxICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMDggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwOSIJfSwgLyogMTA5ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTAiCX0sIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTMiCX0sIC8qIDExMyAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KLQl7IDUsCTAsCXN5c19pcGMsCQkiaXBjIgkJfSwgLyogMTE3ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMTggKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJfSwgLyogMTE5ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgLyogMTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMiCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMzUgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQiCX0sIC8qIDEzOSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgl9LCAvKiAxNDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIJfSwgLyogMTY2ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiAxNjggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAvKiAxNjkgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgl9LCAvKiAxNzAgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiAxNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sIC8qIDE3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgl9LCAvKiAxNzQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiAxNzUgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywJInJ0X3NpZ3BlbmRpbmciCX0sIC8qIDE3NiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQifSwgLyogMTc3ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywJInJ0X3NpZ3F1ZXVlaW5mbyJ9LCAvKiAxNzggKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sIC8qIDE3OSAqLwotCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE4MCAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxODEgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiAxODIgKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCi0JeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODggKi8KLQl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4OSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQl9LCAvKiAxOTIgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KLQl7IDIsCVRGLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJfSwgLyogMTk0ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCX0sIC8qIDE5NSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCX0sIC8qIDE5NiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDE5NyAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE5OCAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDE5OSAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDIwMCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogMjAxICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiAyMDIgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogMjAzICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDIwNyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDIwOCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDIxMCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDIxMSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIxMyAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDIxNCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAyMTUgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMjE2ICovCi0gICAgICAgIHsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJICAgICAgICAgIm1pbmNvcmUiICAgICAgfSwgLyogMjE4ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDIyMCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDIyMSAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyMiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDIyMyAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI0ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI1ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMjI2ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAyMjcgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAyMjggKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMjkgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMwICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzEgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzMiAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzMgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNCAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAyMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIzNyAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMjM4ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyMzkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI0MCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAyNDEgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MiIJfSwgLyogMjQyICovCi0JeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ0ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMjQ1ICovCi0JeyAzLAkwLAlzeXNfaW9fc3VibWl0LAkJImlvX3N1Ym1pdCIJfSwgLyogMjQ2ICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogMjQ3ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJfSwgLyogMjQ4ICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAyNDkgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiAyNTAgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDI1MSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyJ9LCAvKiAyNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJmYWR2aXNlNjQiCX0sIC8qIDI1MyAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU0ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI1NSAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNTYgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNTcgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI1OCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNTkgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjYwICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjEgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjYyICovCi0KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KLQotI2lmIFNZU19zb2NrZXRfc3ViY2FsbCAhPSAzMDAKLSAjZXJyb3IgZml4IG1lCi0jZW5kaWYKLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAzMDAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMzAxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDMwMiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDMwMyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAzMDQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMzA1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDMwNiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAzMDcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAzMDggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMzA5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDMxMCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAzMTEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDMxMiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMzEzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMzE0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMzE1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMzE2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMzE3ICovCi0KLSNpZiBTWVNfaXBjX3N1YmNhbGwgIT0gMzE4Ci0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMxOCAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDMxOSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzIxICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMzIyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI4ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyOSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMzAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzMxICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMzMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzOCAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzOSAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDM0MCAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzNDEgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzQyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MHgvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9zMzkweC9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODBiNTA2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zMzkweC9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRURFQURMSyIsIC8qIDM1ICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCi0JIkVOT0xDSyIsIC8qIDM3ICovCi0JIkVOT1NZUyIsIC8qIDM4ICovCi0JIkVOT1RFTVBUWSIsIC8qIDM5ICovCi0JIkVMT09QIiwgLyogNDAgKi8KLQkiRVJSTk9fNDEiLCAvKiA0MSAqLwotCSJFTk9NU0ciLCAvKiA0MiAqLwotCSJFSURSTSIsIC8qIDQzICovCi0JIkVDSFJORyIsIC8qIDQ0ICovCi0JIkVMMk5TWU5DIiwgLyogNDUgKi8KLQkiRUwzSExUIiwgLyogNDYgKi8KLQkiRUwzUlNUIiwgLyogNDcgKi8KLQkiRUxOUk5HIiwgLyogNDggKi8KLQkiRVVOQVRDSCIsIC8qIDQ5ICovCi0JIkVOT0NTSSIsIC8qIDUwICovCi0JIkVMMkhMVCIsIC8qIDUxICovCi0JIkVCQURFIiwgLyogNTIgKi8KLQkiRUJBRFIiLCAvKiA1MyAqLwotCSJFWEZVTEwiLCAvKiA1NCAqLwotCSJFTk9BTk8iLCAvKiA1NSAqLwotCSJFQkFEUlFDIiwgLyogNTYgKi8KLQkiRUJBRFNMVCIsIC8qIDU3ICovCi0JIkVSUk5PXzU4IiwgLyogNTggKi8KLQkiRUJGT05UIiwgLyogNTkgKi8KLQkiRU5PU1RSIiwgLyogNjAgKi8KLQkiRU5PREFUQSIsIC8qIDYxICovCi0JIkVUSU1FIiwgLyogNjIgKi8KLQkiRU5PU1IiLCAvKiA2MyAqLwotCSJFTk9ORVQiLCAvKiA2NCAqLwotCSJFTk9QS0ciLCAvKiA2NSAqLwotCSJFUkVNT1RFIiwgLyogNjYgKi8KLQkiRU5PTElOSyIsIC8qIDY3ICovCi0JIkVBRFYiLCAvKiA2OCAqLwotCSJFU1JNTlQiLCAvKiA2OSAqLwotCSJFQ09NTSIsIC8qIDcwICovCi0JIkVQUk9UTyIsIC8qIDcxICovCi0JIkVNVUxUSUhPUCIsIC8qIDcyICovCi0JIkVET1RET1QiLCAvKiA3MyAqLwotCSJFQkFETVNHIiwgLyogNzQgKi8KLQkiRU9WRVJGTE9XIiwgLyogNzUgKi8KLQkiRU5PVFVOSVEiLCAvKiA3NiAqLwotCSJFQkFERkQiLCAvKiA3NyAqLwotCSJFUkVNQ0hHIiwgLyogNzggKi8KLQkiRUxJQkFDQyIsIC8qIDc5ICovCi0JIkVMSUJCQUQiLCAvKiA4MCAqLwotCSJFTElCU0NOIiwgLyogODEgKi8KLQkiRUxJQk1BWCIsIC8qIDgyICovCi0JIkVMSUJFWEVDIiwgLyogODMgKi8KLQkiRUlMU0VRIiwgLyogODQgKi8KLQkiRVJFU1RBUlQiLCAvKiA4NSAqLwotCSJFU1RSUElQRSIsIC8qIDg2ICovCi0JIkVVU0VSUyIsIC8qIDg3ICovCi0JIkVOT1RTT0NLIiwgLyogODggKi8KLQkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KLQkiRU1TR1NJWkUiLCAvKiA5MCAqLwotCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLwotCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLwotCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KLQkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KLQkiRUFERFJJTlVTRSIsIC8qIDk4ICovCi0JIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLwotCSJFTkVURE9XTiIsIC8qIDEwMCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLwotCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCi0JIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KLQkiRU5PQlVGUyIsIC8qIDEwNSAqLwotCSJFSVNDT05OIiwgLyogMTA2ICovCi0JIkVOT1RDT05OIiwgLyogMTA3ICovCi0JIkVTSFVURE9XTiIsIC8qIDEwOCAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KLQkiRVRJTUVET1VUIiwgLyogMTEwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLwotCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCi0JIkVBTFJFQURZIiwgLyogMTE0ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCi0JIkVTVEFMRSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVEUVVPVCIsIC8qIDEyMiAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTB4L2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNGZiZWIuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTB4L2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NDEgKzAsMCBAQAoteyJsaW51eC9mcy5oIiwgIkZJQk1BUCIsIDB4MX0sCi17ImxpbnV4L2ZzLmgiLCAiRklHRVRCU1oiLCAweDJ9LAoteyJsaW51eC9mZC5oIiwgIkZEQ0xSUFJNIiwgMHgyNDF9LAoteyJsaW51eC9mZC5oIiwgIkZETVNHT04iLCAweDI0NX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRNU0dPRkYiLCAweDI0Nn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRCRUciLCAweDI0N30sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRFTkQiLCAweDI0OX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRFTVNHVFJFU0giLCAweDI0YX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTFVTSCIsIDB4MjRifSwKLXsibGludXgvZmQuaCIsICJGRFJFU0VUIiwgMHgyNTR9LAoteyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SQ0xSIiwgMHgyNTZ9LAoteyJsaW51eC9mZC5oIiwgIkZEUkFXQ01EIiwgMHgyNTh9LAoteyJsaW51eC9mZC5oIiwgIkZEVFdBRERMRSIsIDB4MjU5fSwKLXsibGludXgvZmQuaCIsICJGREVKRUNUIiwgMHgyNWF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPIiwgMHgzMDF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX1VOTUFTS0lOVFIiLCAweDMwMn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTVVMVENPVU5UIiwgMHgzMDR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fT0JTT0xFVEVfSURFTlRJVFkiLCAweDMwN30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfS0VFUFNFVFRJTkdTIiwgMHgzMDh9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUXzMyQklUIiwgMHgzMDl9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX05PV0VSUiIsIDB4MzBhfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9ETUEiLCAweDMwYn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTklDRSIsIDB4MzBjfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9JREVOVElUWSIsIDB4MzBkfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX1JFU0VUIiwgMHgzMWN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVFJJU1RBVEVfSFdJRiIsIDB4MzFkfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX1RBU0siLCAweDMxZX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19EUklWRV9DTUQiLCAweDMxZn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTVVMVENPVU5UIiwgMHgzMjF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX1VOTUFTS0lOVFIiLCAweDMyMn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfS0VFUFNFVFRJTkdTIiwgMHgzMjN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUXzMyQklUIiwgMHgzMjR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX05PV0VSUiIsIDB4MzI1fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9ETUEiLCAweDMyNn0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfUElPX01PREUiLCAweDMyN30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TQ0FOX0hXSUYiLCAweDMyOH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTklDRSIsIDB4MzI5fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1VOUkVHSVNURVJfSFdJRiIsIDB4MzJhfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUciLCAweDMzMH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU9fQklHX1JBVyIsIDB4MzMxfSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JFQURESVJfRE9TIiwgMHg0ZDJ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfVU5MSU5LX0RPUyIsIDB4NGQzfSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JNRElSX0RPUyIsIDB4NGQ0fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1NUQVRfRE9TIiwgMHg0ZDV9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfQ1JFQVRfRU1EIiwgMHg0ZDZ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfVU5MSU5LX0VNRCIsIDB4NGQ3fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX1JFQURESVJfRU1EIiwgMHg0ZDh9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfR0VUVkVSU0lPTiIsIDB4NGQ5fSwKLXsibGludXgvdW1zZG9zX2ZzLmgiLCAiVU1TRE9TX0lOSVRfRU1EIiwgMHg0ZGF9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfRE9TX1NFVFVQIiwgMHg0ZGJ9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVOQU1FX0RPUyIsIDB4NGRjfSwKLXsibGludXgvbHAuaCIsICJMUENIQVIiLCAweDYwMX0sCi17ImxpbnV4L2xwLmgiLCAiTFBUSU1FIiwgMHg2MDJ9LAoteyJsaW51eC9scC5oIiwgIkxQQUJPUlQiLCAweDYwNH0sCi17ImxpbnV4L2xwLmgiLCAiTFBTRVRJUlEiLCAweDYwNX0sCi17ImxpbnV4L2FjOTdfY29kZWMuaCIsICJBQzk3X1JFQ01VWF9NT05PX01JWCIsIDB4NjA2fSwKLXsibGludXgvbHAuaCIsICJMUEdFVElSUSIsIDB4NjA2fSwKLXsibGludXgvbHAuaCIsICJMUFdBSVQiLCAweDYwOH0sCi17ImxpbnV4L2xwLmgiLCAiTFBDQVJFRlVMIiwgMHg2MDl9LAoteyJsaW51eC9scC5oIiwgIkxQQUJPUlRPUEVOIiwgMHg2MGF9LAoteyJsaW51eC9scC5oIiwgIkxQR0VUU1RBVFVTIiwgMHg2MGJ9LAoteyJsaW51eC9scC5oIiwgIkxQUkVTRVQiLCAweDYwY30sCi17ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUUyIsIDB4NjBkfSwKLXsibGludXgvbHAuaCIsICJMUEdFVEZMQUdTIiwgMHg2MGV9LAoteyJsaW51eC9scC5oIiwgIkxQU0VUVElNRU9VVCIsIDB4NjBmfSwKLXsibGludXgvZnMuaCIsICJCTEtST1NFVCIsIDB4MTI1ZH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUk9HRVQiLCAweDEyNWV9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JSUEFSVCIsIDB4MTI1Zn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLR0VUU0laRSIsIDB4MTI2MH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRkxTQlVGIiwgMHgxMjYxfSwKLXsibGludXgvZnMuaCIsICJCTEtSQVNFVCIsIDB4MTI2Mn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUkFHRVQiLCAweDEyNjN9LAoteyJsaW51eC9mcy5oIiwgIkJMS0ZSQVNFVCIsIDB4MTI2NH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRlJBR0VUIiwgMHgxMjY1fSwKLXsibGludXgvZnMuaCIsICJCTEtTRUNUU0VUIiwgMHgxMjY2fSwKLXsibGludXgvZnMuaCIsICJCTEtTRUNUR0VUIiwgMHgxMjY3fSwKLXsibGludXgvZnMuaCIsICJCTEtTU1pHRVQiLCAweDEyNjh9LAoteyJsaW51eC9mcy5oIiwgIkJMS1BHIiwgMHgxMjY5fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9USU1FT1VUIiwgMHgyMjAxfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9USU1FT1VUIiwgMHgyMjAyfSwKLXsic2NzaS9zZy5oIiwgIlNHX0VNVUxBVEVEX0hPU1QiLCAweDIyMDN9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RSQU5TRk9STSIsIDB4MjIwNH0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfVFJBTlNGT1JNIiwgMHgyMjA1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9DT01NQU5EX1EiLCAweDIyNzB9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0NPTU1BTkRfUSIsIDB4MjI3MX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfUkVTRVJWRURfU0laRSIsIDB4MjI3Mn0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfUkVTRVJWRURfU0laRSIsIDB4MjI3NX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfU0NTSV9JRCIsIDB4MjI3Nn0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfRk9SQ0VfTE9XX0RNQSIsIDB4MjI3OX0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfTE9XX0RNQSIsIDB4MjI3YX0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfRk9SQ0VfUEFDS19JRCIsIDB4MjI3Yn0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfUEFDS19JRCIsIDB4MjI3Y30sCi17InNjc2kvc2cuaCIsICJTR19HRVRfTlVNX1dBSVRJTkciLCAweDIyN2R9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0RFQlVHIiwgMHgyMjdlfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9TR19UQUJMRVNJWkUiLCAweDIyN2Z9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1ZFUlNJT05fTlVNIiwgMHgyMjgyfSwKLXsic2NzaS9zZy5oIiwgIlNHX05FWFRfQ01EX0xFTiIsIDB4MjI4M30sCi17InNjc2kvc2cuaCIsICJTR19TQ1NJX1JFU0VUIiwgMHgyMjg0fSwKLXsic2NzaS9zZy5oIiwgIlNHX0lPIiwgMHgyMjg1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVFVRVNUX1RBQkxFIiwgMHgyMjg2fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9LRUVQX09SUEhBTiIsIDB4MjI4N30sCi17InNjc2kvc2cuaCIsICJTR19HRVRfS0VFUF9PUlBIQU4iLCAweDIyODh9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0FDUVVJUkUiLCAweDQxMDF9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFTEVBU0UiLCAweDQxMDJ9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NMRUVQIiwgMHg0MjAwfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERElTQUJMRSIsIDB4NDQwMH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTREVOQUJMRSIsIDB4NDQwMX0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJTUlYiLCAweDQ0MDJ9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RSTFNFIiwgMHg0NDAzfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEU0xDSyIsIDB4NDQwNH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFBSUlNUIiwgMHg0NDA1fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUVVJRVNDRSIsIDB4NDQwNn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJFU1VNRSIsIDB4NDQwN30sCi17ImFzbS9jbWIuaCIsICJCSU9EQVNEQ01GRU5BQkxFIiwgMHg0NDIwfSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZESVNBQkxFIiwgMHg0NDIxfSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRVNFVENNQiIsIDB4NDQyMn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WU0NSRUVOSU5GTyIsIDB4NDYwMH0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BVVF9WU0NSRUVOSU5GTyIsIDB4NDYwMX0sCi17ImxpbnV4L3BzMmVzZGkuaCIsICJDTURfUkVBRCIsIDB4NDYwMX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9GU0NSRUVOSU5GTyIsIDB4NDYwMn0sCi17ImxpbnV4L3BzMmVzZGkuaCIsICJDTURfV1JJVEUiLCAweDQ2MDJ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRDTUFQIiwgMHg0NjA0fSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUQ01BUCIsIDB4NDYwNX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BBTl9ESVNQTEFZIiwgMHg0NjA2fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0ZDVVJTT1JJTkZPIiwgMHg0NjA3fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX1ZDVVJTT1JJTkZPIiwgMHg0NjA4fSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX1ZDVVJTT1JJTkZPIiwgMHg0NjA5fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0NVUlNPUlNUQVRFIiwgMHg0NjBhfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX0NVUlNPUlNUQVRFIiwgMHg0NjBifSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0NPTjJGQk1BUCIsIDB4NDYwZn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT1BVVF9DT04yRkJNQVAiLCAweDQ2MTB9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9CTEFOSyIsIDB4NDYxMX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT19BTExPQyIsIDB4NDYxM30sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT19GUkVFIiwgMHg0NjE0fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0dMWVBIIiwgMHg0NjE1fSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0hXQ0lORk8iLCAweDQ2MTZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFJRiIsIDB4NDkwMX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURElGIiwgMHg0OTAyfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRTQ0YiLCAweDQ5MDN9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdDRiIsIDB4NDkwNH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQU5NIiwgMHg0OTA1fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRETk0iLCAweDQ5MDZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdOTSIsIDB4NDkwN30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VUU0VUIiwgMHg0OTA4fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRTRVQiLCAweDQ5MDl9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFZFUiIsIDB4NDkwYX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUSFVQIiwgMHg0OTBifSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRHU1QiLCAweDQ5MGN9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEJSSiIsIDB4NDkwZH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0lHUFJGIiwgMHg0OTBlfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRQUkYiLCAweDQ5MGZ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFBSRiIsIDB4NDkxMH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VUTUFQIiwgMHg0OTExfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTRVRNQVAiLCAweDQ5MTJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFTTCIsIDB4NDkxM30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURElMIiwgMHg0OTE0fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRDUFMiLCAweDQ5MTV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVERWUiIsIDB4NDkxNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUTENSIiwgMHg0OTE3fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVREV1JTRVQiLCAweDQ5MTh9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEFMTiIsIDB4NDkyMH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVURExOIiwgMHg0OTIxfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRHUE4iLCAweDQ5MjJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0RCR1ZBUiIsIDB4NDk3Zn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DRFJWQ1RMIiwgMHg0OTgwfSwKLXsibGludXgva2QuaCIsICJLSU9DU09VTkQiLCAweDRiMmZ9LAoteyJsaW51eC9rZC5oIiwgIktETUtUT05FIiwgMHg0YjMwfSwKLXsibGludXgva2QuaCIsICJLREdFVExFRCIsIDB4NGIzMX0sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRMRUQiLCAweDRiMzJ9LAoteyJsaW51eC9rZC5oIiwgIktER0tCVFlQRSIsIDB4NGIzM30sCi17ImxpbnV4L2tkLmgiLCAiS0RBRERJTyIsIDB4NGIzNH0sCi17ImxpbnV4L2tkLmgiLCAiS0RERUxJTyIsIDB4NGIzNX0sCi17ImxpbnV4L2tkLmgiLCAiS0RFTkFCSU8iLCAweDRiMzZ9LAoteyJsaW51eC9rZC5oIiwgIktERElTQUJJTyIsIDB4NGIzN30sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRNT0RFIiwgMHg0YjNhfSwKLXsibGludXgva2QuaCIsICJLREdFVE1PREUiLCAweDRiM2J9LAoteyJsaW51eC9rZC5oIiwgIktETUFQRElTUCIsIDB4NGIzY30sCi17ImxpbnV4L2tkLmgiLCAiS0RVTk1BUERJU1AiLCAweDRiM2R9LAoteyJsaW51eC9rZC5oIiwgIkdJT19TQ1JOTUFQIiwgMHg0YjQwfSwKLXsibGludXgva2QuaCIsICJQSU9fU0NSTk1BUCIsIDB4NGI0MX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JNT0RFIiwgMHg0YjQ0fSwKLXsibGludXgva2QuaCIsICJLRFNLQk1PREUiLCAweDRiNDV9LAoteyJsaW51eC9rZC5oIiwgIktER0tCRU5UIiwgMHg0YjQ2fSwKLXsibGludXgva2QuaCIsICJLRFNLQkVOVCIsIDB4NGI0N30sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JTRU5UIiwgMHg0YjQ4fSwKLXsibGludXgva2QuaCIsICJLRFNLQlNFTlQiLCAweDRiNDl9LAoteyJsaW51eC9rZC5oIiwgIktER0tCRElBQ1IiLCAweDRiNGF9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCRElBQ1IiLCAweDRiNGJ9LAoteyJsaW51eC9rZC5oIiwgIktER0VUS0VZQ09ERSIsIDB4NGI0Y30sCi17ImxpbnV4L2tkLmgiLCAiS0RTRVRLRVlDT0RFIiwgMHg0YjRkfSwKLXsibGludXgva2QuaCIsICJLRFNJR0FDQ0VQVCIsIDB4NGI0ZX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHSFdDTEsiLCAweDRiNTB9LAoteyJsaW51eC9rZC5oIiwgIktEU0hXQ0xLIiwgMHg0YjUxfSwKLXsibGludXgva2QuaCIsICJLREtCRFJFUCIsIDB4NGI1Mn0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlQiLCAweDRiNjB9LAoteyJsaW51eC9rZC5oIiwgIlBJT19GT05UIiwgMHg0YjYxfSwKLXsibGludXgva2QuaCIsICJLREdLQk1FVEEiLCAweDRiNjJ9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTUVUQSIsIDB4NGI2M30sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JMRUQiLCAweDRiNjR9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTEVEIiwgMHg0YjY1fSwKLXsibGludXgva2QuaCIsICJHSU9fVU5JTUFQIiwgMHg0YjY2fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JTUFQIiwgMHg0YjY3fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JTUFQQ0xSIiwgMHg0YjY4fSwKLXsibGludXgva2QuaCIsICJHSU9fVU5JU0NSTk1BUCIsIDB4NGI2OX0sCi17ImxpbnV4L2tkLmgiLCAiUElPX1VOSVNDUk5NQVAiLCAweDRiNmF9LAoteyJsaW51eC9rZC5oIiwgIkdJT19GT05UWCIsIDB4NGI2Yn0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlRYIiwgMHg0YjZjfSwKLXsibGludXgva2QuaCIsICJQSU9fRk9OVFJFU0VUIiwgMHg0YjZkfSwKLXsibGludXgva2QuaCIsICJHSU9fQ01BUCIsIDB4NGI3MH0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0NNQVAiLCAweDRiNzF9LAoteyJsaW51eC9rZC5oIiwgIktERk9OVE9QIiwgMHg0YjcyfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfU0VUX0ZEIiwgMHg0YzAwfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfQ0xSX0ZEIiwgMHg0YzAxfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfU0VUX1NUQVRVUyIsIDB4NGMwMn0sCi17ImxpbnV4L2xvb3AuaCIsICJMT09QX0dFVF9TVEFUVVMiLCAweDRjMDN9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRaQVBFTlRDTlQiLCAweDUyMDR9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRDTEVBUlBPT0wiLCAweDUyMDZ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUEFVU0UiLCAweDUzMDF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVTVU1FIiwgMHg1MzAyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlNU0YiLCAweDUzMDN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWVRSS0lORCIsIDB4NTMwNH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFEVE9DSERSIiwgMHg1MzA1fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NFTlRSWSIsIDB4NTMwNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVE9QIiwgMHg1MzA3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNUQVJUIiwgMHg1MzA4fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUIiwgMHg1MzA5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVZPTENUUkwiLCAweDUzMGF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1VCQ0hOTCIsIDB4NTMwYn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTIiLCAweDUzMGN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRE1PREUxIiwgMHg1MzBkfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURBVURJTyIsIDB4NTMwZX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01FSkVDVF9TVyIsIDB4NTMwZn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01NVUxUSVNFU1NJT04iLCAweDUzMTB9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0dFVF9NQ04iLCAweDUzMTF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVTRVQiLCAweDUzMTJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MUkVBRCIsIDB4NTMxM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFEUkFXIiwgMHg1MzE0fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURDT09LRUQiLCAweDUzMTV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VFSyIsIDB4NTMxNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZQkxLIiwgMHg1MzE3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURBTEwiLCAweDUzMTh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NQ0xPU0VUUkFZIiwgMHg1MzE5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUdFVFNQSU5ET1dOIiwgMHg1MzFkfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNFVFNQSU5ET1dOIiwgMHg1MzFlfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRVRfT1BUSU9OUyIsIDB4NTMyMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fQ0xFQVJfT1BUSU9OUyIsIDB4NTMyMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fU0VMRUNUX1NQRUVEIiwgMHg1MzIyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfRElTQyIsIDB4NTMyM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTUVESUFfQ0hBTkdFRCIsIDB4NTMyNX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fRFJJVkVfU1RBVFVTIiwgMHg1MzI2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9ESVNDX1NUQVRVUyIsIDB4NTMyN30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fQ0hBTkdFUl9OU0xPVFMiLCAweDUzMjh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0xPQ0tET09SIiwgMHg1MzI5fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9ERUJVRyIsIDB4NTMzMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX0NBUEFCSUxJVFkiLCAweDUzMzF9LAoteyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwgMHg1MzgwfSwKLXsic2NzaS9zY3NpX2lvY3RsLmgiLCAiU0NTSV9JT0NUTF9ET09SVU5MT0NLIiwgMHg1MzgxfSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9HRVRfSURMVU4iLCAweDUzODJ9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1RBR0dFRF9FTkFCTEUiLCAweDUzODN9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1RBR0dFRF9ESVNBQkxFIiwgMHg1Mzg0fSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwgMHg1Mzg1fSwKLXsic2NzaS9zY3NpLmgiLCAiU0NTSV9JT0NUTF9HRVRfQlVTX05VTUJFUiIsIDB4NTM4Nn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiRFZEX1JFQURfU1RSVUNUIiwgMHg1MzkwfSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfV1JJVEVfU1RSVUNUIiwgMHg1MzkxfSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfQVVUSCIsIDB4NTM5Mn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fU0VORF9QQUNLRVQiLCAweDUzOTN9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX05FWFRfV1JJVEFCTEUiLCAweDUzOTR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0xBU1RfV1JJVFRFTiIsIDB4NTM5NX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ0dFVFMiLCAweDU0MDF9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTIiwgMHg1NDAyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0VUU1ciLCAweDU0MDN9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTRiIsIDB4NTQwNH0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ0dFVEEiLCAweDU0MDV9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBIiwgMHg1NDA2fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0VUQVciLCAweDU0MDd9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBRiIsIDB4NTQwOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NCUksiLCAweDU0MDl9LAoteyJhc20vaW9jdGxzLmgiLCAiVENYT05DIiwgMHg1NDBhfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDRkxTSCIsIDB4NTQwYn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DRVhDTCIsIDB4NTQwY30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTlhDTCIsIDB4NTQwZH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0NUVFkiLCAweDU0MGV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQR1JQIiwgMHg1NDBmfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTUEdSUCIsIDB4NTQxMH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DT1VUUSIsIDB4NTQxMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1RJIiwgMHg1NDEyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHV0lOU1oiLCAweDU0MTN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NXSU5TWiIsIDB4NTQxNH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUdFVCIsIDB4NTQxNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUJJUyIsIDB4NTQxNn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTUJJQyIsIDB4NTQxN30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTVNFVCIsIDB4NTQxOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NPRlRDQVIiLCAweDU0MTl9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NTT0ZUQ0FSIiwgMHg1NDFhfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT05SRUFEIiwgMHg1NDFifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NMSU5VWCIsIDB4NTQxY30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DQ09OUyIsIDB4NTQxZH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NFUklBTCIsIDB4NTQxZX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NFUklBTCIsIDB4NTQxZn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DUEtUIiwgMHg1NDIwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT05CSU8iLCAweDU0MjF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ05PVFRZIiwgMHg1NDIyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVREIiwgMHg1NDIzfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHRVREIiwgMHg1NDI0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0JSS1AiLCAweDU0MjV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1RUWUdTVFJVQ1QiLCAweDU0MjZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NCUksiLCAweDU0Mjd9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0NCUksiLCAweDU0Mjh9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dTSUQiLCAweDU0Mjl9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTkNMRVgiLCAweDU0NTB9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPQ0xFWCIsIDB4NTQ1MX0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9BU1lOQyIsIDB4NTQ1Mn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSQ09ORklHIiwgMHg1NDUzfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHV0lMRCIsIDB4NTQ1NH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU1dJTEQiLCAweDU0NTV9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dMQ0tUUk1JT1MiLCAweDU0NTZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NMQ0tUUk1JT1MiLCAweDU0NTd9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdTVFJVQ1QiLCAweDU0NTh9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdFVExTUiIsIDB4NTQ1OX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTVVMVEkiLCAweDU0NWF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUlNFVE1VTFRJIiwgMHg1NDVifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNSVdBSVQiLCAweDU0NWN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dJQ09VTlQiLCAweDU0NWR9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPUVNJWkUiLCAweDU0NWV9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDQVJEVVJCIiwgMHg1NTBifSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVQiLCAweDU1MTR9LAoteyJsaW51eC92dC5oIiwgIlZUX09QRU5RUlkiLCAweDU2MDB9LAoteyJsaW51eC92dC5oIiwgIlZUX0dFVE1PREUiLCAweDU2MDF9LAoteyJsaW51eC92dC5oIiwgIlZUX1NFVE1PREUiLCAweDU2MDJ9LAoteyJsaW51eC92dC5oIiwgIlZUX0dFVFNUQVRFIiwgMHg1NjAzfSwKLXsibGludXgvdnQuaCIsICJWVF9TRU5EU0lHIiwgMHg1NjA0fSwKLXsibGludXgvdnQuaCIsICJWVF9SRUxESVNQIiwgMHg1NjA1fSwKLXsibGludXgvdnQuaCIsICJWVF9BQ1RJVkFURSIsIDB4NTYwNn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfV0FJVEFDVElWRSIsIDB4NTYwN30sCi17ImxpbnV4L3Z0LmgiLCAiVlRfRElTQUxMT0NBVEUiLCAweDU2MDh9LAoteyJsaW51eC92dC5oIiwgIlZUX1JFU0laRSIsIDB4NTYwOX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFWCIsIDB4NTYwYX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfTE9DS1NXSVRDSCIsIDB4NTYwYn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfVU5MT0NLU1dJVENIIiwgMHg1NjBjfSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRGUkFNSU5HIiwgMHg2MTE1fSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19BREpCVUZMRVYiLCAweDYxNjN9LAoteyJsaW51eC9hdG1fdGNwLmgiLCAiU0lPQ1NJRkFUTVRDUCIsIDB4NjE4MH0sCi17ImxpbnV4L2F0bV90Y3AuaCIsICJBVE1UQ1BfQ1JFQVRFIiwgMHg2MThlfSwKLXsibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9SRU1PVkUiLCAweDYxOGZ9LAoteyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfQ1RSTCIsIDB4NjFkMH0sCi17ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19EQVRBIiwgMHg2MWQxfSwKLXsibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX01DQVNUIiwgMHg2MWQyfSwKLXsibGludXgvYXRtbXBjLmgiLCAiQVRNTVBDX0NUUkwiLCAweDYxZDh9LAoteyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfREFUQSIsIDB4NjFkOX0sCi17ImxpbnV4L2F0bWNsaXAuaCIsICJTSU9DTUtDTElQIiwgMHg2MWUwfSwKLXsibGludXgvYXRtYXJwLmgiLCAiQVRNQVJQRF9DVFJMIiwgMHg2MWUxfSwKLXsibGludXgvYXRtYXJwLmgiLCAiQVRNQVJQX01LSVAiLCAweDYxZTJ9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfU0VURU5UUlkiLCAweDYxZTN9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfRU5DQVAiLCAweDYxZTV9LAoteyJsaW51eC9hdG1zdmMuaCIsICJBVE1TSUdEX0NUUkwiLCAweDYxZjB9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9HRVRQT1JUU1RBVFMiLCAweDYzMWV9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9DTFJQT1JUU1RBVFMiLCAweDYzMWZ9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9HRVRCUkRTVEFUUyIsIDB4NjMyMH0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX1JFQURQT1JUIiwgMHg2MzI4fSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBREJPQVJEIiwgMHg2MzI5fSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBBTkVMIiwgMHg2MzJhfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfRFVNUCIsIDB4NjRjMH0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NTVFhJRExFIiwgMHg2ZDAyfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dUWElETEUiLCAweDZkMDN9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DVFhFTkFCTEUiLCAweDZkMDR9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DUlhFTkFCTEUiLCAweDZkMDV9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DVFhBQk9SVCIsIDB4NmQwNn0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NHU1RBVFMiLCAweDZkMDd9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DTE9PUFRYRE9ORSIsIDB4NmQwOX0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NDTFJNT0RDT1VOVCIsIDB4NmQwZn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLCAweDZlMDN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09OIiwgMHg3MDAxfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0FJRV9PRkYiLCAweDcwMDJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09OIiwgMHg3MDAzfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1VJRV9PRkYiLCAweDcwMDR9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUElFX09OIiwgMHg3MDA1fSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1BJRV9PRkYiLCAweDcwMDZ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09OIiwgMHg3MDBmfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1dJRV9PRkYiLCAweDcwMTB9LAoteyJsaW51eC9udnJhbS5oIiwgIk5WUkFNX0lOSVQiLCAweDcwNDB9LAoteyJsaW51eC9udnJhbS5oIiwgIk5WUkFNX1NFVENLUyIsIDB4NzA0MX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBDTEFJTSIsIDB4NzA4Yn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSRUxFQVNFIiwgMHg3MDhjfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFlJRUxEIiwgMHg3MDhkfSwKLXsibGludXgvcHBkZXYuaCIsICJQUEVYQ0wiLCAweDcwOGZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVMiLCAweDcxODB9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HIiwgMHg3MTgzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfSE9PS1NUQVRFIiwgMHg3MTg0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVEFSVCIsIDB4NzE4N30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdfU1RPUCIsIDB4NzE4OH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19TVEFSVCIsIDB4NzE4YX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19TVE9QIiwgMHg3MThifSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0xFVkVMIiwgMHg3MThmfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVEFSVCIsIDB4NzE5MX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfU1RPUCIsIDB4NzE5Mn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfTEVWRUwiLCAweDcxOTV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwgMHg3MTllfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLCAweDcxOWZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9TVEFURSIsIDB4NzFhMH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0JVU1kiLCAweDcxYTF9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HQkFDSyIsIDB4NzFhMn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RJQUxUT05FIiwgMHg3MWEzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQ1BUX1NUT1AiLCAweDcxYTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QU1ROX0dFVF9TVEFURSIsIDB4NzFhNX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fTElORVRFU1QiLCAweDcxYTh9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9SRVNFVCIsIDB4NzFjMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX0lETEUiLCAweDcxYzV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1RFU1RSQU0iLCAweDcxYzZ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19TVE9QIiwgMHg3MWNjfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwgMHg3MWNkfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9QU1ROX0xJTkVURVNUIiwgMHg3MWQzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLCAweDcxZTd9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQklOVFIiLCAweDczMTR9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlNUQVJUIiwgMHg3MzE1fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0JTVE9QIiwgMHg3MzE2fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0JSRVNFVCIsIDB4NzMxN30sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9HRVRQRkxBRyIsIDB4NzM1MH0sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9TRVRQRkxBRyIsIDB4NzM1MX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0RJU0NPTk4iLCAweDc0Mzl9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NYRkVSVU5JVCIsIDB4NzQ0ZX0sCi17ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX0hBU0giLCAweDc0NWF9LAoteyJsaW51eC9qZmZzLmgiLCAiSkZGU19QUklOVF9UUkVFIiwgMHg3NDVifSwKLXsibGludXgvamZmcy5oIiwgIkpGRlNfR0VUX1NUQVRVUyIsIDB4NzQ1Y30sCi17ImFzbS9zb2NraW9zLmgiLCAiRklPU0VUT1dOIiwgMHg4OTAxfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DU1BHUlAiLCAweDg5MDJ9LAoteyJhc20vc29ja2lvcy5oIiwgIkZJT0dFVE9XTiIsIDB4ODkwM30sCi17ImFzbS9zb2NraW9zLmgiLCAiU0lPQ0dQR1JQIiwgMHg4OTA0fSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DQVRNQVJLIiwgMHg4OTA1fSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DR1NUQU1QIiwgMHg4OTA2fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERSVCIsIDB4ODkwYn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMUlQiLCAweDg5MGN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1JUTVNHIiwgMHg4OTBkfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZOQU1FIiwgMHg4OTEwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZMSU5LIiwgMHg4OTExfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZDT05GIiwgMHg4OTEyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZGTEFHUyIsIDB4ODkxM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRkxBR1MiLCAweDg5MTR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkFERFIiLCAweDg5MTV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkFERFIiLCAweDg5MTZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkRTVEFERFIiLCAweDg5MTd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkRTVEFERFIiLCAweDg5MTh9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkJSREFERFIiLCAweDg5MTl9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkJSREFERFIiLCAweDg5MWF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5FVE1BU0siLCAweDg5MWJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk5FVE1BU0siLCAweDg5MWN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FVFJJQyIsIDB4ODkxZH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVUUklDIiwgMHg4OTFlfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNRU0iLCAweDg5MWZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1FTSIsIDB4ODkyMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTVRVIiwgMHg4OTIxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNVFUiLCAweDg5MjJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk5BTUUiLCAweDg5MjN9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkhXQUREUiIsIDB4ODkyNH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRU5DQVAiLCAweDg5MjV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkVOQ0FQIiwgMHg4OTI2fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZIV0FERFIiLCAweDg5Mjd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlNMQVZFIiwgMHg4OTI5fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZTTEFWRSIsIDB4ODkzMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURETVVMVEkiLCAweDg5MzF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RFTE1VTFRJIiwgMHg4OTMyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZJTkRFWCIsIDB4ODkzM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGUEZMQUdTIiwgMHg4OTM0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZQRkxBR1MiLCAweDg5MzV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RJRkFERFIiLCAweDg5MzZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkhXQlJPQURDQVNUIiwgMHg4OTM3fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZDT1VOVCIsIDB4ODkzOH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlIiLCAweDg5NDB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkJSIiwgMHg4OTQxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZUWFFMRU4iLCAweDg5NDJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlRYUUxFTiIsIDB4ODk0M30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREFSUCIsIDB4ODk1M30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0FSUCIsIDB4ODk1NH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0FSUCIsIDB4ODk1NX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRFJBUlAiLCAweDg5NjB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dSQVJQIiwgMHg4OTYxfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTUkFSUCIsIDB4ODk2Mn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUFQIiwgMHg4OTcwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNQVAiLCAweDg5NzF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERERMQ0kiLCAweDg5ODB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0RFTERMQ0kiLCAweDg5ODF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1BST1RPUFJJVkFURSIsIDB4ODllMH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVWUFJJVkFURSIsIDB4ODlmMH0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX1JFQURZIiwgMHg5MzYwfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfRkFJTCIsIDB4OTM2MX0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0NBVEFUT05JQyIsIDB4OTM2Mn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU09DSyIsIDB4YWIwMH0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfQkxLU0laRSIsIDB4YWIwMX0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU0laRSIsIDB4YWIwMn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9ET19JVCIsIDB4YWIwM30sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9DTEVBUl9TT0NLIiwgMHhhYjA0fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1FVRSIsIDB4YWIwNX0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9QUklOVF9ERUJVRyIsIDB4YWIwNn0sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9TRVRfU0laRV9CTE9DS1MiLCAweGFiMDd9LAoteyJsaW51eC9uYmQuaCIsICJOQkRfRElTQ09OTkVDVCIsIDB4YWIwOH0sCi17ImxpbnV4L3Jhdy5oIiwgIlJBV19TRVRCSU5EIiwgMHhhYzAwfSwKLXsibGludXgvcmF3LmgiLCAiUkFXX0dFVEJJTkQiLCAweGFjMDF9LAoteyJsaW51eC9pZl9wcHBveC5oIiwgIlBQUE9FSU9DREZXRCIsIDB4YjEwMX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0FDVElWQVRFIiwgMHhmZTIyfSwKLXsibGludXgvbHZtLmgiLCAiTFZfREVBQ1RJVkFURSIsIDB4ZmUyM30sCi17ImxpbnV4L2x2bS5oIiwgIkxWTV9SRVNFVCIsIDB4ZmU5OX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWTV9MT0NLX0xWTSIsIDB4ZmYwMH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRNT04iLCAweDQzNTkwMX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRUSFJFU0giLCAweDQzNTkwMn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSFJFU0giLCAweDQzNTkwM30sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRERUZUSFJFU0giLCAweDQzNTkwNH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRERUZUSFJFU0giLCAweDQzNTkwNX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRUSU1FT1VUIiwgMHg0MzU5MDZ9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUVElNRU9VVCIsIDB4NDM1OTA3fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRJTUVPVVQiLCAweDQzNTkwOH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRERUZUSU1FT1VUIiwgMHg0MzU5MDl9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUkZMT1ciLCAweDQzNTkwYX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRSRkxPVyIsIDB4NDM1OTBifSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFJUU0RUUl9JTlYiLCAweDQzNTkwY30sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRSVFNEVFJfSU5WIiwgMHg0MzU5MGR9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWlNFVFBPTExDWUNMRSIsIDB4NDM1OTBlfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVpHRVRQT0xMQ1lDTEUiLCAweDQzNTkwZn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRDRDE0MDBWRVIiLCAweDQzNTkxMH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRDQVJESU5GTyIsIDB4NDM1OTExfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFdBSVQiLCAweDQzNTkxMn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lHRVRXQUlUIiwgMHg0MzU5MTN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1ZPTFVNRSIsIDB4MjAwNDRkMDB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0JBU1MiLCAweDIwMDQ0ZDAxfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9UUkVCTEUiLCAweDIwMDQ0ZDAyfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9TWU5USCIsIDB4MjAwNDRkMDN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1BDTSIsIDB4MjAwNDRkMDR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NQRUFLRVIiLCAweDIwMDQ0ZDA1fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FIiwgMHgyMDA0NGQwNn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTUlDIiwgMHgyMDA0NGQwN30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQ0QiLCAweDIwMDQ0ZDA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JTUlYIiwgMHgyMDA0NGQwOX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQUxUUENNIiwgMHgyMDA0NGQwYX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUkVDTEVWIiwgMHgyMDA0NGQwYn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfSUdBSU4iLCAweDIwMDQ0ZDBjfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9PR0FJTiIsIDB4MjAwNDRkMGR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUxIiwgMHgyMDA0NGQwZX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTIiLCAweDIwMDQ0ZDBmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMyIsIDB4MjAwNDRkMTB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX01VVEUiLCAweDIwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9FTkhBTkNFIiwgMHgyMDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTE9VRCIsIDB4MjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NURVJFT0RFVlMiLCAweDIwMDQ0ZGZifSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DQVBTIiwgMHgyMDA0NGRmY30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUkVDTUFTSyIsIDB4MjAwNDRkZmR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0RFVk1BU0siLCAweDIwMDQ0ZGZlfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNTUkMiLCAweDIwMDQ0ZGZmfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFdDT05UUk9MIiwgMHg0MDAxNzA4NH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBXREFUQSIsIDB4NDAwMTcwODZ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQV0NUTE9OSVJRIiwgMHg0MDAxNzA5Mn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX01BWFJJTkdTIiwgMHg0MDAxNzE4NX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfVE9ORSIsIDB4NDAwMTcxOWJ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQRkNPTlRST0wiLCAweDQwMDI3MDhlfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19DQURFTkNFIiwgMHg0MDAyNzE4Nn0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfREVBTExPQ0FURSIsIDB4NDAwNDQxMDd9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRBRERUT0VOVENOVCIsIDB4NDAwNDUyMDF9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQVExDSyIsIDB4NDAwNDU0MzF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VUU0MiLCAweDQwMDQ2MWYxfSwKLXsibGludXgvZGV2ZnNfZnMuaCIsICJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLCAweDQwMDQ2NDAyfSwKLXsibGludXgvZGV2ZnNfZnMuaCIsICJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsIDB4NDAwNDY0MDN9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfTk9STSIsIDB4NDAwNDY0MDN9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsIDB4NDAwNDY0MDR9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfSU5QVVQiLCAweDQwMDQ2NDA0fSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX09VVFBVVCIsIDB4NDAwNDY0MDV9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwgMHg0MDA0NjQwNn0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjUwMn0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY1MDN9LAoteyJsaW51eC92aWRlb19lbmNvZGVyLmgiLCAiRU5DT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjUwNH0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NTA1fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRCIsIDB4NDAwNDZlMDJ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsIDB4NDAwNDZlMDZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsIDB4NDAwNDZlMGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQU0VUTU9ERSIsIDB4NDAwNDcwODB9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQREFUQURJUiIsIDB4NDAwNDcwOTB9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQTkVHT1QiLCAweDQwMDQ3MDkxfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFNFVFBIQVNFIiwgMHg0MDA0NzA5NH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19DT0RFQyIsIDB4NDAwNDcxODl9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfREVQVEgiLCAweDQwMDQ3MThjfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRlJBTUUiLCAweDQwMDQ3MThkfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1ZPTFVNRSIsIDB4NDAwNDcxOGV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX0NPREVDIiwgMHg0MDA0NzE5MH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfREVQVEgiLCAweDQwMDQ3MTkzfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9WT0xVTUUiLCAweDQwMDQ3MTk0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRFRNRl9PT0IiLCAweDQwMDQ3MTk5fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsIDB4NDAwNDcxOWN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsIDB4NDAwNDcxOWR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QU1ROX1NFVF9TVEFURSIsIDB4NDAwNDcxYTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9XSU5LX0RVUkFUSU9OIiwgMHg0MDA0NzFhNn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwgMHg0MDA0NzFjOH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUQVJUIiwgMHg0MDA0NzFjYn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfU0VUX0xFRCIsIDB4NDAwNDcxY2V9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX01JWEVSIiwgMHg0MDA0NzFjZn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfREFBX0NPRUZGX1NFVCIsIDB4NDAwNDcxZDB9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPUlQiLCAweDQwMDQ3MWQxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQUdBSU4iLCAweDQwMDQ3MWQyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9QT1RTX1BTVE4iLCAweDQwMDQ3MWQ1fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9IWiIsIDB4NDAwNDcxZTB9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1JBVEUiLCAweDQwMDQ3MWUxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsIDB4NDAwNDcxZmR9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLCAweDQwMDQ3MWZlfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DQVRUQ0hBTiIsIDB4NDAwNDc0Mzh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NDT05ORUNUIiwgMHg0MDA0NzQzYX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NNUlJVIiwgMHg0MDA0NzQzYn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0RFVEFDSCIsIDB4NDAwNDc0M2N9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRBQ0giLCAweDQwMDQ3NDNkfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0RFQlVHIiwgMHg0MDA0NzQ0MH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NNQVhDSUQiLCAweDQwMDQ3NDUxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SVSIsIDB4NDAwNDc0NTJ9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTUkFTWU5DTUFQIiwgMHg0MDA0NzQ1NH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NBU1lOQ01BUCIsIDB4NDAwNDc0NTd9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTRkxBR1MiLCAweDQwMDQ3NDU5fSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NCVU5ETEUiLCAweDQwMDQ3NDgxfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NTTVBGTEFHUyIsIDB4NDAwNDc0ODN9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUE1UVSIsIDB4NDAwNDc0ODR9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUE1SVSIsIDB4NDAwNDc0ODV9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NDT01QUkVTU09SIiwgMHg0MDA0NzQ4N30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DQ0FQVFVSRSIsIDB4NDAwNDc2MDh9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NZTkMiLCAweDQwMDQ3NjEyfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTV1JJVEVNT0RFIiwgMHg0MDA0NzYxOX0sCi17ImxpbnV4L2RuLmgiLCAiU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCi17ImxpbnV4L2RuLmgiLCAiT1NJT0NTTkVUQUREUiIsIDB4NDAwNDg5ZTB9LAoteyJsaW51eC9hdXRvX2ZzNC5oIiwgIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwgMHg0MDA0OTM2Nn0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX0NSRUFURSIsIDB4NDAwNGZlMDB9LAoteyJsaW51eC9sdm0uaCIsICJWR19SRU1PVkUiLCAweDQwMDRmZTAxfSwKLXsibGludXgvbHZtLmgiLCAiVkdfRVhURU5EIiwgMHg0MDA0ZmUwM30sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1JFRFVDRSIsIDB4NDAwNGZlMDR9LAoteyJsaW51eC9sdm0uaCIsICJWR19TRVRfRVhURU5EQUJMRSIsIDB4NDAwNGZlMDh9LAoteyJsaW51eC9sdm0uaCIsICJMVl9DUkVBVEUiLCAweDQwMDRmZTIwfSwKLXsibGludXgvbHZtLmgiLCAiTFZfUkVNT1ZFIiwgMHg0MDA0ZmUyMX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0VYVEVORCIsIDB4NDAwNGZlMjR9LAoteyJsaW51eC9sdm0uaCIsICJMVl9SRURVQ0UiLCAweDQwMDRmZTI1fSwKLXsibGludXgvbHZtLmgiLCAiTFZfU0VUX0FDQ0VTUyIsIDB4NDAwNGZlMjh9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUxMT0NBVElPTiIsIDB4NDAwNGZlMjl9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfU1RBVFVTIiwgMHg0MDA0ZmUyYX0sCi17ImxpbnV4L2x2bS5oIiwgIkxFX1JFTUFQIiwgMHg0MDA0ZmUyYn0sCi17ImxpbnV4L2x2bS5oIiwgIlBWX0ZMVVNIIiwgMHg0MDA0ZmU0Mn0sCi17ImxpbnV4L2x2bS5oIiwgIlBFX0xPQ0tfVU5MT0NLIiwgMHg0MDA0ZmU1MH0sCi17ImxpbnV4L2VsZXZhdG9yLmgiLCAiQkxLRUxWU0VUIiwgMHg0MDA4MTI2Yn0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRUxWU0VUIiwgMHg0MDA4MTI2Yn0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfU0VUVVAiLCAweDQwMDg0MTAzfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19SRVNFUlZFIiwgMHg0MDA4NDEwNH0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUFJPVEVDVCIsIDB4NDAwODQxMDV9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0JJTkQiLCAweDQwMDg0MTA4fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19VTkJJTkQiLCAweDQwMDg0MTA5fSwKLXsibGludXgvcG11LmgiLCAiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwgMHg0MDA4NDIwMn0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NTUkVQIiwgMHg0MDA4NDUwM30sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NTS0VZQ09ERSIsIDB4NDAwODQ1MDR9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRBRERFTlRST1BZIiwgMHg0MDA4NTIwM30sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFQVBVUkIiLCAweDQwMDg1NTBjfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsIDB4NDAwODU1MGR9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DT05ORUNUSU5GTyIsIDB4NDAwODU1MTF9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VURkxBR1MiLCAweDQwMDg2NjAyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DVE9QIiwgMHg0MDA4NmQwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwgMHg0MDA4NmUwMn0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwgMHg0MDA4NmVmOH0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwgMHg0MDA4NmVmYX0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19JUlFQX1NFVCIsIDB4NDAwODcwMGN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfU0VUIiwgMHg0MDA4NzAwZX0sCi17ImxpbnV4L3NlcmlvLmgiLCAiU1BJT0NTVFlQRSIsIDB4NDAwODcxMDF9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLCAweDQwMDg3MTgyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfRklMVEVSIiwgMHg0MDA4NzFjN30sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5JVF9UT05FIiwgMHg0MDA4NzFjOX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVE9ORV9DQURFTkNFIiwgMHg0MDA4NzFjYX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NOUE1PREUiLCAweDQwMDg3NDRifSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX1NFVFZFUlNJT04iLCAweDQwMDg3NjAyfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTRlJFUSIsIDB4NDAwODc2MGZ9LAoteyJsaW51eC9pZl9wcHBveC5oIiwgIlBQUE9FSU9DU0ZXRCIsIDB4NDAwOGIxMDB9LAoteyJsaW51eC9mZC5oIiwgIkZERk1UVFJLIiwgMHg0MDBjMDI0OH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX1JFR0lTVEVSIiwgMHg0MDBjNDMwMX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRSRUciLCAweDQwMGM2OTBhfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRST09UIiwgMHg0MDBjNmUwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1BMQVlNT0RFIiwgMHg0MDBjNzYxOH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9QSUNUVVJFIiwgMHg0MDBlNjQwN30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1BJQ1QiLCAweDQwMGU3NjA3fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERk1UIiwgMHg0MDEwNDQwMX0sCi17ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwgIklEVDc3MTA1X0dFVFNUQVQiLCAweDQwMTA2MTMyfSwKLXsibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVFoiLCAweDQwMTA2MTMzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFNUQVQiLCAweDQwMTA2MTUwfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFNUQVRaIiwgMHg0MDEwNjE1MX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRMT09QIiwgMHg0MDEwNjE1Mn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRMT09QIiwgMHg0MDEwNjE1M30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9RVUVSWUxPT1AiLCAweDQwMTA2MTU0fSwKLXsibGludXgvYXRtX2VuaS5oIiwgIkVOSV9NRU1EVU1QIiwgMHg0MDEwNjE2MH0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRQT09MIiwgMHg0MDEwNjE2MX0sCi17ImxpbnV4L2F0bV9uaWNzdGFyLmgiLCAiTlNfU0VUQlVGTEVWIiwgMHg0MDEwNjE2Mn0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRQT09MWiIsIDB4NDAxMDYxNjJ9LAoteyJsaW51eC9hdG1femF0bS5oIiwgIlpBVE1fU0VUUE9PTCIsIDB4NDAxMDYxNjN9LAoteyJsaW51eC9hdG1femF0bS5oIiwgIlpBVE1fR0VUVEhJU1QiLCAweDQwMTA2MTY0fSwKLXsibGludXgvYXRtX2VuaS5oIiwgIkVOSV9TRVRNVUxUIiwgMHg0MDEwNjE2N30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRMSU5LUkFURSIsIDB4NDAxMDYxODF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUTkFNRVMiLCAweDQwMTA2MTgzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVFRZUEUiLCAweDQwMTA2MTg0fSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVEVTSSIsIDB4NDAxMDYxODV9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUQUREUiIsIDB4NDAxMDYxODZ9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fUlNUQUREUiIsIDB4NDAxMDYxODd9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fQUREQUREUiIsIDB4NDAxMDYxODh9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fREVMQUREUiIsIDB4NDAxMDYxODl9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUQ0lSQU5HRSIsIDB4NDAxMDYxOGF9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VUQ0lSQU5HRSIsIDB4NDAxMDYxOGJ9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fU0VURVNJIiwgMHg0MDEwNjE4Y30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0lGIiwgMHg0MDEwNjE4ZH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRUSU1FIiwgMHg0MDEwNzA5Nn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NDT01QUkVTUyIsIDB4NDAxMDc0NGR9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ01DQVBUVVJFIiwgMHg0MDEwNzYxM30sCi17ImFzbS90YXBlMzkwLmgiLCAiVEFQRTM5MF9ESVNQTEFZIiwgMHg0MDExNjQwMX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRNQVhFUlJTIiwgMHg0MDE0MDI0Y30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU0NBUFRVUkUiLCAweDQwMTQ3NjE3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTRkJVRiIsIDB4NDAxODc2MGN9LAoteyJsaW51eC9mZC5oIiwgIkZEU0VUUFJNIiwgMHg0MDIwMDI0Mn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRERUZQUk0iLCAweDQwMjAwMjQzfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEU0FUVFIiLCAweDQwMjA0NDAyfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU1hBU1lOQ01BUCIsIDB4NDAyMDc0NGZ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NNSUNST0NPREUiLCAweDQwMjA3NjFifSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTVkJJRk1UIiwgMHg0MDIwNzYxZH0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NTQ09SUiIsIDB4NDAyNDZhMjF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUxNX1NFVCIsIDB4NDAyNDcwMDd9LAoteyJsaW51eC9ydGMuaCIsICJSVENfU0VUX1RJTUUiLCAweDQwMjQ3MDBhfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1dLQUxNX1NFVCIsIDB4NDAyODcwMGZ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXSU4iLCAweDQwMjg3NjBhfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQVVESU8iLCAweDQwMjg3NjExfSwKLXsibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19ORVdDT05OIiwgMHg0MDJjNzUwMn0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NTUEFSQU1TIiwgMHg0MDMwNmQwMH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU0NIQU4iLCAweDQwMzA3NjAzfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTVFVORVIiLCAweDQwNDA3NjA1fSwKLXsibGludXgvZmQuaCIsICJGRFNFVERSVlBSTSIsIDB4NDA4MDAyOTB9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19HRVREUklWRVIiLCAweDQxMDQ1NTA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfVk9MVU1FIiwgMHg2MDA0NGQwMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0JBU1MiLCAweDYwMDQ0ZDAxfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfVFJFQkxFIiwgMHg2MDA0NGQwMn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NZTlRIIiwgMHg2MDA0NGQwM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1BDTSIsIDB4NjAwNDRkMDR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9TUEVBS0VSIiwgMHg2MDA0NGQwNX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUiLCAweDYwMDQ0ZDA2fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTUlDIiwgMHg2MDA0NGQwN30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0NEIiwgMHg2MDA0NGQwOH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lNSVgiLCAweDYwMDQ0ZDA5fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQUxUUENNIiwgMHg2MDA0NGQwYX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ0xFViIsIDB4NjAwNDRkMGJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9JR0FJTiIsIDB4NjAwNDRkMGN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9PR0FJTiIsIDB4NjAwNDRkMGR9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMSIsIDB4NjAwNDRkMGV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMiIsIDB4NjAwNDRkMGZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MSU5FMyIsIDB4NjAwNDRkMTB9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NVVRFIiwgMHg2MDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0VOSEFOQ0UiLCAweDYwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTE9VRCIsIDB4NjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9SRUNTUkMiLCAweDYwMDQ0ZGZmfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dBWEVTIiwgMHg4MDAxNmExMX0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHQlVUVE9OUyIsIDB4ODAwMTZhMTJ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUlNUQVRVUyIsIDB4ODAwMTcwODF9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUkNPTlRST0wiLCAweDgwMDE3MDgzfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFJEQVRBIiwgMHg4MDAxNzA4NX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9FUlJDT0RFIiwgMHg4MDAyNDMyMX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0lOU1RBTExFRCIsIDB4ODAwMjQzMjJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfRkxBR1MiLCAweDgwMDQ0MzIzfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfU0VUX0ZMQUdTIiwgMHg4MDA0NDMyNH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0NMUl9GTEFHUyIsIDB4ODAwNDQzMjV9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsIDB4ODAwNDQzMjZ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9OQ0NJX0dFVFVOSVQiLCAweDgwMDQ0MzI3fSwKLXsiYXNtL2Rhc2QuaCIsICJEQVNEQVBJVkVSIiwgMHg4MDA0NDQwMH0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHVkVSU0lPTiIsIDB4ODAwNDQ1MDF9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRFTlRDTlQiLCAweDgwMDQ1MjAwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHUFROIiwgMHg4MDA0NTQzMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFU0VURVAiLCAweDgwMDQ1NTAzfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsIDB4ODAwNDU1MDV9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsIDB4ODAwNDU1MGZ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwgMHg4MDA0NTUxMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMRUFSX0hBTFQiLCAweDgwMDQ1NTE1fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRTVEFUVVMiLCAweDgwMDQ1NzAxfSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRCT09UU1RBVFVTIiwgMHg4MDA0NTcwMn0sCi17ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfR0VUVEVNUCIsIDB4ODAwNDU3MDN9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX1NFVE9QVElPTlMiLCAweDgwMDQ1NzA0fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19LRUVQQUxJVkUiLCAweDgwMDQ1NzA1fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRESUFHIiwgMHg4MDA0NjExNH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJBTUlORyIsIDB4ODAwNDYxMTZ9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwgMHg4MDA0NjQwMH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0dFVF9TVEFUVVMiLCAweDgwMDQ2NDAyfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1ZBTElEQVRFIiwgMHg4MDA0NjkwOH0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHVkVSU0lPTiIsIDB4ODAwNDZhMDF9LAoteyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRFQVNJWkUiLCAweDgwMDQ2YzQwfSwKLXsibGludXgvemZ0YXBlLmgiLCAiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwgMHg4MDA0NmQ2OH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0lHTl9XQU5URUQiLCAweDgwMDQ2ZTA2fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRERU5UUllUVEwiLCAweDgwMDQ2ZTBjfSwKLXsibGludXgvcHBkZXYuaCIsICJQUENMUklSUSIsIDB4ODAwNDcwOTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX1JFQURZIiwgMHg4MDA0NzE5Nn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9EVE1GIiwgMHg4MDA0NzE5N30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwgMHg4MDA0NzE5OH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0VYQ0VQVElPTiIsIDB4ODAwNDcxOWF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NBUkRUWVBFIiwgMHg4MDA0NzFjMX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfU0VSSUFMIiwgMHg4MDA0NzFjMn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1RZUEUiLCAweDgwMDQ3MWMzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVkVSU0lPTiIsIDB4ODAwNDcxYzR9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHQ0hBTiIsIDB4ODAwNDc0Mzd9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHREVCVUciLCAweDgwMDQ3NDQxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR01SVSIsIDB4ODAwNDc0NTN9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHUkFTWU5DTUFQIiwgMHg4MDA0NzQ1NX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dVTklUIiwgMHg4MDA0NzQ1Nn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dBU1lOQ01BUCIsIDB4ODAwNDc0NTh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHRkxBR1MiLCAweDgwMDQ3NDVhfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHTVBGTEFHUyIsIDB4ODAwNDc0ODJ9LAoteyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX0dFVE1PVU5UVUlEIiwgMHg4MDA0NzUwMX0sCi17ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsIDB4ODAwNDc1MDN9LAoteyJsaW51eC9kbi5oIiwgIlNJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoteyJsaW51eC9kbi5oIiwgIk9TSU9DR05FVEFERFIiLCAweDgwMDQ4OWUxfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUFJPVE9WRVIiLCAweDgwMDQ5MzYzfSwKLXsibGludXgvbHZtLmgiLCAiTFZNX0dFVF9JT1BfVkVSU0lPTiIsIDB4ODAwNGZlOTh9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVEZSU0VOU0UiLCAweDgwMDY2MTE3fSwKLXsibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZHRVQiLCAweDgwMDgxMjZhfSwKLXsibGludXgvZnMuaCIsICJCTEtFTFZHRVQiLCAweDgwMDgxMjZhfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19JTkZPIiwgMHg4MDA4NDEwMH0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsIDB4ODAwODQyMDF9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX0dFVF9NT0RFTCIsIDB4ODAwODQyMDN9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX0hBU19BREIiLCAweDgwMDg0MjA0fSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dJRCIsIDB4ODAwODQ1MDJ9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR1JFUCIsIDB4ODAwODQ1MDN9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWUNPREUiLCAweDgwMDg0NTA0fSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dLRVkiLCAweDgwMDg0NTA1fSwKLXsibGludXgvcmFuZG9tLmgiLCAiUk5ER0VUUE9PTCIsIDB4ODAwODUyMDJ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLCAweDgwMDg1NTA0fSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVEZMQUdTIiwgMHg4MDA4NjYwMX0sCi17ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBQkxPQ0siLCAweDgwMDg2YzQxfSwKLXsibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VUVk9MSURFTlQiLCAweDgwMDg2YzQyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DUE9TIiwgMHg4MDA4NmQwM30sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwgMHg4MDA4NmVmOH0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwgMHg4MDA4NmVmOX0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwgMHg4MDA4NmVmYn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19JUlFQX1JFQUQiLCAweDgwMDg3MDBifSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0VQT0NIX1JFQUQiLCAweDgwMDg3MDBkfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLCAweDgwMDg3MTgxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9DSUQiLCAweDgwMDg3MWQ0fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9GUkFNRVNfUkVBRCIsIDB4ODAwODcxZTJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwgMHg4MDA4NzFlM30sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkVBRF9XQUlUIiwgMHg4MDA4NzFlNH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfV1JJVEVfV0FJVCIsIDB4ODAwODcxZTV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwgMHg4MDA4NzFlNn0sCi17ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19HRVRWRVJTSU9OIiwgMHg4MDA4NzYwMX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0ZSRVEiLCAweDgwMDg3NjBlfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsIDB4ODAwYzY0MDF9LAoteyJsaW51eC92aWRlb19lbmNvZGVyLmgiLCAiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjUwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUk9PVCIsIDB4ODAwYzZlMDh9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0tFWSIsIDB4ODAwYzc2MGR9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQSUNUIiwgMHg4MDBlNzYwNn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZUWVAiLCAweDgwMTAwMjBmfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfRElTQ1NJR05BTCIsIDB4ODAxMDU1MGV9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVRTSVpFIiwgMHg4MDEwNmQwOX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfTkNQUkVRVUVTVCIsIDB4ODAxMDZlMDF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwgMHg4MDEwNmUwYX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBHRVRUSU1FIiwgMHg4MDEwNzA5NX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dJRExFIiwgMHg4MDEwNzQzZn0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DR0lGTkFNRSIsIDB4ODAxMDc0ODh9LAoteyJsaW51eC9mZC5oIiwgIkZER0VUTUFYRVJSUyIsIDB4ODAxNDAyMGV9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NWT0xJTkZPIiwgMHg4MDE0NmQwOH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfTE9DS1VOTE9DSyIsIDB4ODAxNDZlMDd9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dVTklUIiwgMHg4MDE0NzYxNX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUFRVUkUiLCAweDgwMTQ3NjE2fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX0lOSVQiLCAweDgwMTg2ZTA1fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwgMHg4MDE4NmUwOX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0ZCVUYiLCAweDgwMTg3NjBifSwKLXsibGludXgvZmQuaCIsICJGREdFVFBSTSIsIDB4ODAyMDAyMDR9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RHQVRUUiIsIDB4ODAyMDQ0MDV9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkJMQU5LIiwgMHg4MDIwNDYxMn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dYQVNZTkNNQVAiLCAweDgwMjA3NDUwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHVkJJRk1UIiwgMHg4MDIwNzYxY30sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVCIsIDB4ODAyNDYxMTB9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVFNUQVRaIiwgMHg4MDI0NjExMX0sCi17ImxpbnV4L2pveXN0aWNrLmgiLCAiSlNJT0NHQ09SUiIsIDB4ODAyNDZhMjJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUxNX1JFQUQiLCAweDgwMjQ3MDA4fSwKLXsibGludXgvcnRjLmgiLCAiUlRDX1JEX1RJTUUiLCAweDgwMjQ3MDA5fSwKLXsibGludXgvZmQuaCIsICJGREdFVEZEQ1NUQVQiLCAweDgwMjgwMjE1fSwKLXsibGludXgvZmQuaCIsICJGRFdFUlJPUkdFVCIsIDB4ODAyODAyMTd9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fUkQiLCAweDgwMjg3MDEwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHV0lOIiwgMHg4MDI4NzYwOX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0FVRElPIiwgMHg4MDI4NzYxMH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLCAweDgwMmE2ZTBifSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dQQVJBTVMiLCAweDgwMzA2ZDAxfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DR0VUIiwgMHg4MDMwNmQwMn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NVQk1JVFVSQiIsIDB4ODAzODU1MGF9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dDQVAiLCAweDgwM2M3NjAxfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0dFVElPUFMiLCAweDgwNDA2OTAwfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ09NUFJFU1NPUlMiLCAweDgwNDA3NDg2fSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRTVVBQT1JUIiwgMHg4MDQ4NTcwMH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZTVEFUIiwgMHg4MDUwMDIxMn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRQT0xMRFJWU1RBVCIsIDB4ODA1MDAyMTN9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPRVZUR0VUIiwgMHg4MDY4NjkwYn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVREUlZQUk0iLCAweDgwODAwMjExfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwgMHg4MDgwNTUxM30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR01CVUYiLCAweDgwODg3NjE0fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFNSRCIsIDB4ODBjMDQ0MDR9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkUiLCAweDgxMGM5MzY1fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHUExBWUlORk8iLCAweDgxMTg3NjFhfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNESU5GTyIsIDB4ODE3ODQ0MDF9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPMiIsIDB4ODFhMDQ0MDN9LAoteyJsaW51eC9tc2Rvc19mcy5oIiwgIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwgMHg4MjMwNzIwMX0sCi17ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwgMHg4MjMwNzIwMn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFBSUkQiLCAweDg0MDg0NDAyfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsIDB4YzAwNDQzMDZ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfU0VSSUFMIiwgMHhjMDA0NDMwOH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfU0VURElBRyIsIDB4YzAwNDYxMTJ9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0NMUkRJQUciLCAweGMwMDQ2MTEzfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1dBSVRFVkVOVCIsIDB4YzAwNDZkMDh9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NORVdVTklUIiwgMHhjMDA0NzQzZX0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVUyIsIDB4YzAwNGZlMDV9LAoteyJsaW51eC9sdm0uaCIsICJWR19TVEFUVVNfR0VUX0NPVU5UIiwgMHhjMDA0ZmUwNn0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLCAweGMwMDRmZTA3fSwKLXsibGludXgvbHZtLmgiLCAiTFZfU1RBVFVTX0JZTkFNRSIsIDB4YzAwNGZlMjZ9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllJTkRFWCIsIDB4YzAwNGZlMjd9LAoteyJsaW51eC9sdm0uaCIsICJQVl9TVEFUVVMiLCAweGMwMDRmZTQwfSwKLXsibGludXgvbHZtLmgiLCAiUFZfQ0hBTkdFIiwgMHhjMDA0ZmU0MX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUxMT0NBVEUiLCAweGMwMDg0MTA2fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRUFEQ01CIiwgMHhjMDA4NDQyMH0sCi17ImxpbnV4L2NvZGEuaCIsICJDSU9DX0tFUk5FTF9WRVJTSU9OIiwgMHhjMDA4NjMwYX0sCi17ImxpbnV4L21hdHJveGZiLmgiLCAiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwgMHhjMDA4NmVmYX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1FVRVJZX0NPREVDIiwgMHhjMDA4NzFhN30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dOUE1PREUiLCAweGMwMDg3NDRjfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsIDB4YzAwODkzNjR9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfVkVSU0lPTiIsIDB4YzAxMDQzMDd9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwgMHhjMDEwNDMyMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0lPQ1RMIiwgMHhjMDEwNTUxMn0sCi17ImxpbnV4L2F0bV9uaWNzdGFyLmgiLCAiTlNfR0VUUFNUQVQiLCAweGMwMTA2MTYxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsIDB4YzAxMDZlMGF9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19DT05UUk9MIiwgMHhjMDE4NTUwMH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0JVTEsiLCAweGMwMTg1NTAyfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0hSVEdFVCIsIDB4YzAxODY5MDF9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPTENUR0VUIiwgMHhjMDE4NjkwMn0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ1JERlRTRUciLCAweGMwMTg2ZDA2fSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DV1JGVFNFRyIsIDB4YzAxODZkMDd9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVEZPUk1BVCIsIDB4YzAxODZkMGF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLCAweGMwMTg2ZTA5fSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DRlRDTUQiLCAweGMwMjA2ZDBifSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1BBUk1TRVQiLCAweGMwMjg2OTAzfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1BBUk1HRVQiLCAweGMwMjg2OTA0fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRfRlNfSU5GTyIsIDB4YzAyODZlMDR9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVENIQVJTRVRTIiwgMHhjMDJhNmUwYn0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV0RMIiwgMHhjMDMwNjkwNX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV1VMIiwgMHhjMDMwNjkwNn0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9TV0RFTCIsIDB4YzAzMDY5MDd9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFRNTCIsIDB4YzAzMDY5MDl9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwgMHhjMDMwNmUwNH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NIQU4iLCAweGMwMzA3NjAyfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX1BST0ZJTEUiLCAweGMwNDA0MzA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHVFVORVIiLCAweGMwNDA3NjA0fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RSRUFEQUxMQ01CIiwgMHhjMDU4NDQyMX0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DR0NBTExJTkZPIiwgMHhjMDg4NzQ4MH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MHgvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvczM5MHgvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0YjAwYjEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTB4L3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdVTlVTRUQiLAkvKiAzMSAqLwotCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvczM5MHgvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdkMDJmMy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvczM5MHgvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDAgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3BvcmF0aW9uCi0gKiBBdXRob3I6IFVscmljaCBXZWlnYW5kIDxVbHJpY2guV2VpZ2FuZEBkZS5pYm0uY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzciCQl9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzIgl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2Igl9LCAvKiAxNiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTciCX0sIC8qIDE3ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOCIJfSwgLyogMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogMjAgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLwotCXsgMSwJVEYsCXN5c191bW91bnQsCQkib2xkdW1vdW50Igl9LCAvKiAyMiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjMiCX0sIC8qIDIzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNCIJfSwgLyogMjQgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1Igl9LCAvKiAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjgiCX0sIC8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMzEiCX0sIC8qIDMxICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMiIJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMzUiCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU180NCIJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2Igl9LCAvKiA0NiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNDciCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU180OSIJfSwgLyogNDkgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwIgl9LCAvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNTIgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzIgl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDU1ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU181NiIJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU181OCIJfSwgLyogNTggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5Igl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU182OCIJfSwgLyogNjggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5Igl9LCAvKiA2OSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNzAiCX0sIC8qIDcwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU183MSIJfSwgLyogNzEgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfODAiCX0sIC8qIDgwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU184MSIJfSwgLyogODEgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyIgl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU184NCIJfSwgLyogODQgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5Igl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm1tYXAiCQl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1Igl9LCAvKiA5NSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4Igl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDEiCX0sIC8qIDEwMSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogMTAyICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDkiCX0sIC8qIDEwOSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTEwIgl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLwotCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTEzIgl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCi0JeyA1LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTIzIgl9LCAvKiAxMjMgKi8KLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDEyNSAqLwotCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogMTI3ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgLyogMTI4ICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDEyOSAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogMTMxICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMzIgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMzMgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCX0sIC8qIDEzNCAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogMTM1ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTM2ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJfSwgLyogMTM3ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzgiCX0sIC8qIDEzOCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTM5Igl9LCAvKiAxMzkgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MCIJfSwgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDE0MSAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogMTQzICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxNDQgKi8KLQl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDE0NSAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCX0sIC8qIDE0NiAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDE0NyAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDE0OCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgl9LCAvKiAxNDkgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sIC8qIDE1MCAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogMTUxICovCi0JeyAyLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCX0sIC8qIDE1MiAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgLyogMTUzICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxNTQgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIn0sIC8qIDE1NSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciJ9LCAvKiAxNTYgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogMTU3ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCJ9LCAvKiAxNTggKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDE1OSAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogMTYwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogMTYxICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTYyICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJfSwgLyogMTYzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQiCX0sIC8qIDE2NCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTY1Igl9LCAvKiAxNjUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIJfSwgLyogMTY2ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiAxNjggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAvKiAxNjkgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MCIJfSwgLyogMTcwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzEiCX0sIC8qIDE3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDE3MyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCX0sIC8qIDE3NCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTgwICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgl9LCAvKiAxODIgKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCi0JeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODggKi8KLQl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4OSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLwotIAl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MiIJfSwgLyogMTkyICovCi0gCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTkzIgl9LCAvKiAxOTMgKi8KLSAJeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQiCX0sIC8qIDE5NCAqLwotIAl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NSIJfSwgLyogMTk1ICovCi0gCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTk2Igl9LCAvKiAxOTYgKi8KLSAJeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTciCX0sIC8qIDE5NyAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE5OCAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDE5OSAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDIwMCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogMjAxICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiAyMDIgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogMjAzICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDIwNyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDIwOCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDIxMCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDIxMSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIxMyAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDIxNCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAyMTUgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMjE2ICovCi0gICAgICAgIHsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJICAgICAgICAgIm1pbmNvcmUiICAgICAgfSwgLyogMjE4ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDIyMCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgl9LCAvKiAyMjEgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAyMjIgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGU2NCwJCSJzZW5kZmlsZTY0Igl9LCAvKiAyMjMgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDIyNCAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDIyNSAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDIyNiAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMjI3ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMjI4ICovCi0JeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogMjI5ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDIzMCAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMjMxICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAyMzIgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogMjMzICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAyMzQgKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDIzNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldHRpZCIJfSwgLyogMjM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMzcgKi8KLQl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDIzOCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjM5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNDAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MSIJfSwgLyogMjQxICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDIiCX0sIC8qIDI0MiAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAyNDMgKi8KLQl7IDEsCTAsCXN5c19pb19kZXN0cm95LAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDI0NCAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCX0sIC8qIDI0NSAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDI0NiAqLwotCXsgMywJMCwJc3lzX2lvX2NhbmNlbCwJCSJpb19jYW5jZWwiCX0sIC8qIDI0NyAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDI0OCAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjQ5ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogMjUwICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0Igl9LCAvKiAyNTEgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjUyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZmFkdmlzZTY0Igl9LCAvKiAyNTMgKi8KLQl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDI1NCAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAyNTUgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJfSwgLyogMjU2ICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4ifSwgLyogMjU3ICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAyNTggKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogMjU5ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCX0sIC8qIDI2MCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMjYxICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIn0sIC8qIDI2MiAqLwotCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MyIJfSwgLyogMjYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJfSwgLyogMjY0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJfSwgLyogMjY1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NiIJfSwgLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJfSwgLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJfSwgLyogMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OSIJfSwgLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJfSwgLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJfSwgLyogMjcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MiIJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJfSwgLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJfSwgLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJfSwgLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJfSwgLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJfSwgLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJfSwgLyogMjgwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MSIJfSwgLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJfSwgLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJfSwgLyogMjgzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NCIJfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCi0KLSNpZiBTWVNfc29ja2V0X3N1YmNhbGwgIT0gMzAwCi0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMzAwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDMwMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAzMDIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAzMDMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMzA0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDMwNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAzMDYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMzA3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMzA4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDMwOSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAzMTAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMzExICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAzMTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDMxMyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDMxNCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDMxNSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDMxNiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDMxNyAqLwotCi0jaWYgU1lTX2lwY19zdWJjYWxsICE9IDMxOAotICNlcnJvciBmaXggbWUKLSNlbmRpZgotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMTggKi8KLQl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzMTkgKi8KLQl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMzIwICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDMyMSAqLwotCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDMyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyOCAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjkgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzMwICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDMzMSAqLwotCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAzMzIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzMzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzggKi8KLQl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzkgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzNDAgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMzQxICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDM0MiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvc2gvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhiMmFkYy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc2gvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUyOSArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVERUFETEsiLCAvKiAzNSAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiAzNiAqLwotCSJFTk9MQ0siLCAvKiAzNyAqLwotCSJFTk9TWVMiLCAvKiAzOCAqLwotCSJFTk9URU1QVFkiLCAvKiAzOSAqLwotCSJFTE9PUCIsIC8qIDQwICovCi0JIkVSUk5PXzQxIiwgLyogNDEgKi8KLQkiRU5PTVNHIiwgLyogNDIgKi8KLQkiRUlEUk0iLCAvKiA0MyAqLwotCSJFQ0hSTkciLCAvKiA0NCAqLwotCSJFTDJOU1lOQyIsIC8qIDQ1ICovCi0JIkVMM0hMVCIsIC8qIDQ2ICovCi0JIkVMM1JTVCIsIC8qIDQ3ICovCi0JIkVMTlJORyIsIC8qIDQ4ICovCi0JIkVVTkFUQ0giLCAvKiA0OSAqLwotCSJFTk9DU0kiLCAvKiA1MCAqLwotCSJFTDJITFQiLCAvKiA1MSAqLwotCSJFQkFERSIsIC8qIDUyICovCi0JIkVCQURSIiwgLyogNTMgKi8KLQkiRVhGVUxMIiwgLyogNTQgKi8KLQkiRU5PQU5PIiwgLyogNTUgKi8KLQkiRUJBRFJRQyIsIC8qIDU2ICovCi0JIkVCQURTTFQiLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCi0JIkVSUk5PXzEyNSIsIC8qIDEyNSAqLwotCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KLQkiRVJSTk9fMTI3IiwgLyogMTI3ICovCi0JIkVSUk5PXzEyOCIsIC8qIDEyOCAqLwotCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KLQkiRVJSTk9fMTMwIiwgLyogMTMwICovCi0JIkVSUk5PXzEzMSIsIC8qIDEzMSAqLwotCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KLQkiRVJSTk9fMTMzIiwgLyogMTMzICovCi0JIkVSUk5PXzEzNCIsIC8qIDEzNCAqLwotCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KLQkiRVJSTk9fMTM2IiwgLyogMTM2ICovCi0JIkVSUk5PXzEzNyIsIC8qIDEzNyAqLwotCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KLQkiRVJSTk9fMTM5IiwgLyogMTM5ICovCi0JIkVSUk5PXzE0MCIsIC8qIDE0MCAqLwotCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KLQkiRVJSTk9fMTQyIiwgLyogMTQyICovCi0JIkVSUk5PXzE0MyIsIC8qIDE0MyAqLwotCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KLQkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCi0JIkVSUk5PXzE0NiIsIC8qIDE0NiAqLwotCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KLQkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCi0JIkVSUk5PXzE0OSIsIC8qIDE0OSAqLwotCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KLQkiRVJSTk9fMTUxIiwgLyogMTUxICovCi0JIkVSUk5PXzE1MiIsIC8qIDE1MiAqLwotCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KLQkiRVJSTk9fMTU0IiwgLyogMTU0ICovCi0JIkVSUk5PXzE1NSIsIC8qIDE1NSAqLwotCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KLQkiRVJSTk9fMTU3IiwgLyogMTU3ICovCi0JIkVSUk5PXzE1OCIsIC8qIDE1OCAqLwotCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KLQkiRVJSTk9fMTYwIiwgLyogMTYwICovCi0JIkVSUk5PXzE2MSIsIC8qIDE2MSAqLwotCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KLQkiRVJSTk9fMTYzIiwgLyogMTYzICovCi0JIkVSUk5PXzE2NCIsIC8qIDE2NCAqLwotCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KLQkiRVJSTk9fMTY2IiwgLyogMTY2ICovCi0JIkVSUk5PXzE2NyIsIC8qIDE2NyAqLwotCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KLQkiRVJSTk9fMTY5IiwgLyogMTY5ICovCi0JIkVSUk5PXzE3MCIsIC8qIDE3MCAqLwotCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KLQkiRVJSTk9fMTcyIiwgLyogMTcyICovCi0JIkVSUk5PXzE3MyIsIC8qIDE3MyAqLwotCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KLQkiRVJSTk9fMTc1IiwgLyogMTc1ICovCi0JIkVSUk5PXzE3NiIsIC8qIDE3NiAqLwotCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KLQkiRVJSTk9fMTc4IiwgLyogMTc4ICovCi0JIkVSUk5PXzE3OSIsIC8qIDE3OSAqLwotCSJFUlJOT18xODAiLCAvKiAxODAgKi8KLQkiRVJSTk9fMTgxIiwgLyogMTgxICovCi0JIkVSUk5PXzE4MiIsIC8qIDE4MiAqLwotCSJFUlJOT18xODMiLCAvKiAxODMgKi8KLQkiRVJSTk9fMTg0IiwgLyogMTg0ICovCi0JIkVSUk5PXzE4NSIsIC8qIDE4NSAqLwotCSJFUlJOT18xODYiLCAvKiAxODYgKi8KLQkiRVJSTk9fMTg3IiwgLyogMTg3ICovCi0JIkVSUk5PXzE4OCIsIC8qIDE4OCAqLwotCSJFUlJOT18xODkiLCAvKiAxODkgKi8KLQkiRVJSTk9fMTkwIiwgLyogMTkwICovCi0JIkVSUk5PXzE5MSIsIC8qIDE5MSAqLwotCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KLQkiRVJSTk9fMTkzIiwgLyogMTkzICovCi0JIkVSUk5PXzE5NCIsIC8qIDE5NCAqLwotCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KLQkiRVJSTk9fMTk2IiwgLyogMTk2ICovCi0JIkVSUk5PXzE5NyIsIC8qIDE5NyAqLwotCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KLQkiRVJSTk9fMTk5IiwgLyogMTk5ICovCi0JIkVSUk5PXzIwMCIsIC8qIDIwMCAqLwotCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KLQkiRVJSTk9fMjAyIiwgLyogMjAyICovCi0JIkVSUk5PXzIwMyIsIC8qIDIwMyAqLwotCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KLQkiRVJSTk9fMjA1IiwgLyogMjA1ICovCi0JIkVSUk5PXzIwNiIsIC8qIDIwNiAqLwotCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KLQkiRVJSTk9fMjA4IiwgLyogMjA4ICovCi0JIkVSUk5PXzIwOSIsIC8qIDIwOSAqLwotCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KLQkiRVJSTk9fMjExIiwgLyogMjExICovCi0JIkVSUk5PXzIxMiIsIC8qIDIxMiAqLwotCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KLQkiRVJSTk9fMjE0IiwgLyogMjE0ICovCi0JIkVSUk5PXzIxNSIsIC8qIDIxNSAqLwotCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KLQkiRVJSTk9fMjE3IiwgLyogMjE3ICovCi0JIkVSUk5PXzIxOCIsIC8qIDIxOCAqLwotCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KLQkiRVJSTk9fMjIwIiwgLyogMjIwICovCi0JIkVSUk5PXzIyMSIsIC8qIDIyMSAqLwotCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KLQkiRVJSTk9fMjIzIiwgLyogMjIzICovCi0JIkVSUk5PXzIyNCIsIC8qIDIyNCAqLwotCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KLQkiRVJSTk9fMjI2IiwgLyogMjI2ICovCi0JIkVSUk5PXzIyNyIsIC8qIDIyNyAqLwotCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KLQkiRVJSTk9fMjI5IiwgLyogMjI5ICovCi0JIkVSUk5PXzIzMCIsIC8qIDIzMCAqLwotCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KLQkiRVJSTk9fMjMyIiwgLyogMjMyICovCi0JIkVSUk5PXzIzMyIsIC8qIDIzMyAqLwotCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KLQkiRVJSTk9fMjM1IiwgLyogMjM1ICovCi0JIkVSUk5PXzIzNiIsIC8qIDIzNiAqLwotCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KLQkiRVJSTk9fMjM4IiwgLyogMjM4ICovCi0JIkVSUk5PXzIzOSIsIC8qIDIzOSAqLwotCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KLQkiRVJSTk9fMjQxIiwgLyogMjQxICovCi0JIkVSUk5PXzI0MiIsIC8qIDI0MiAqLwotCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KLQkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCi0JIkVSUk5PXzI0NSIsIC8qIDI0NSAqLwotCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KLQkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCi0JIkVSUk5PXzI0OCIsIC8qIDI0OCAqLwotCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KLQkiRVJSTk9fMjUwIiwgLyogMjUwICovCi0JIkVSUk5PXzI1MSIsIC8qIDI1MSAqLwotCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KLQkiRVJSTk9fMjUzIiwgLyogMjUzICovCi0JIkVSUk5PXzI1NCIsIC8qIDI1NCAqLwotCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KLQkiRVJSTk9fMjU2IiwgLyogMjU2ICovCi0JIkVSUk5PXzI1NyIsIC8qIDI1NyAqLwotCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KLQkiRVJSTk9fMjU5IiwgLyogMjU5ICovCi0JIkVSUk5PXzI2MCIsIC8qIDI2MCAqLwotCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KLQkiRVJSTk9fMjYyIiwgLyogMjYyICovCi0JIkVSUk5PXzI2MyIsIC8qIDI2MyAqLwotCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KLQkiRVJSTk9fMjY1IiwgLyogMjY1ICovCi0JIkVSUk5PXzI2NiIsIC8qIDI2NiAqLwotCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KLQkiRVJSTk9fMjY4IiwgLyogMjY4ICovCi0JIkVSUk5PXzI2OSIsIC8qIDI2OSAqLwotCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KLQkiRVJSTk9fMjcxIiwgLyogMjcxICovCi0JIkVSUk5PXzI3MiIsIC8qIDI3MiAqLwotCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KLQkiRVJSTk9fMjc0IiwgLyogMjc0ICovCi0JIkVSUk5PXzI3NSIsIC8qIDI3NSAqLwotCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KLQkiRVJSTk9fMjc3IiwgLyogMjc3ICovCi0JIkVSUk5PXzI3OCIsIC8qIDI3OCAqLwotCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KLQkiRVJSTk9fMjgwIiwgLyogMjgwICovCi0JIkVSUk5PXzI4MSIsIC8qIDI4MSAqLwotCSJFUlJOT18yODIiLCAvKiAyODIgKi8KLQkiRVJSTk9fMjgzIiwgLyogMjgzICovCi0JIkVSUk5PXzI4NCIsIC8qIDI4NCAqLwotCSJFUlJOT18yODUiLCAvKiAyODUgKi8KLQkiRVJSTk9fMjg2IiwgLyogMjg2ICovCi0JIkVSUk5PXzI4NyIsIC8qIDI4NyAqLwotCSJFUlJOT18yODgiLCAvKiAyODggKi8KLQkiRVJSTk9fMjg5IiwgLyogMjg5ICovCi0JIkVSUk5PXzI5MCIsIC8qIDI5MCAqLwotCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KLQkiRVJSTk9fMjkyIiwgLyogMjkyICovCi0JIkVSUk5PXzI5MyIsIC8qIDI5MyAqLwotCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KLQkiRVJSTk9fMjk1IiwgLyogMjk1ICovCi0JIkVSUk5PXzI5NiIsIC8qIDI5NiAqLwotCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KLQkiRVJSTk9fMjk4IiwgLyogMjk4ICovCi0JIkVSUk5PXzI5OSIsIC8qIDI5OSAqLwotCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KLQkiRVJSTk9fMzAxIiwgLyogMzAxICovCi0JIkVSUk5PXzMwMiIsIC8qIDMwMiAqLwotCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KLQkiRVJSTk9fMzA0IiwgLyogMzA0ICovCi0JIkVSUk5PXzMwNSIsIC8qIDMwNSAqLwotCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KLQkiRVJSTk9fMzA3IiwgLyogMzA3ICovCi0JIkVSUk5PXzMwOCIsIC8qIDMwOCAqLwotCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KLQkiRVJSTk9fMzEwIiwgLyogMzEwICovCi0JIkVSUk5PXzMxMSIsIC8qIDMxMSAqLwotCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KLQkiRVJSTk9fMzEzIiwgLyogMzEzICovCi0JIkVSUk5PXzMxNCIsIC8qIDMxNCAqLwotCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KLQkiRVJSTk9fMzE2IiwgLyogMzE2ICovCi0JIkVSUk5PXzMxNyIsIC8qIDMxNyAqLwotCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KLQkiRVJSTk9fMzE5IiwgLyogMzE5ICovCi0JIkVSUk5PXzMyMCIsIC8qIDMyMCAqLwotCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KLQkiRVJSTk9fMzIyIiwgLyogMzIyICovCi0JIkVSUk5PXzMyMyIsIC8qIDMyMyAqLwotCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KLQkiRVJSTk9fMzI1IiwgLyogMzI1ICovCi0JIkVSUk5PXzMyNiIsIC8qIDMyNiAqLwotCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KLQkiRVJSTk9fMzI4IiwgLyogMzI4ICovCi0JIkVSUk5PXzMyOSIsIC8qIDMyOSAqLwotCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KLQkiRVJSTk9fMzMxIiwgLyogMzMxICovCi0JIkVSUk5PXzMzMiIsIC8qIDMzMiAqLwotCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KLQkiRVJSTk9fMzM0IiwgLyogMzM0ICovCi0JIkVSUk5PXzMzNSIsIC8qIDMzNSAqLwotCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KLQkiRVJSTk9fMzM3IiwgLyogMzM3ICovCi0JIkVSUk5PXzMzOCIsIC8qIDMzOCAqLwotCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KLQkiRVJSTk9fMzQwIiwgLyogMzQwICovCi0JIkVSUk5PXzM0MSIsIC8qIDM0MSAqLwotCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KLQkiRVJSTk9fMzQzIiwgLyogMzQzICovCi0JIkVSUk5PXzM0NCIsIC8qIDM0NCAqLwotCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KLQkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCi0JIkVSUk5PXzM0NyIsIC8qIDM0NyAqLwotCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KLQkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCi0JIkVSUk5PXzM1MCIsIC8qIDM1MCAqLwotCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KLQkiRVJSTk9fMzUyIiwgLyogMzUyICovCi0JIkVSUk5PXzM1MyIsIC8qIDM1MyAqLwotCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KLQkiRVJSTk9fMzU1IiwgLyogMzU1ICovCi0JIkVSUk5PXzM1NiIsIC8qIDM1NiAqLwotCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KLQkiRVJSTk9fMzU4IiwgLyogMzU4ICovCi0JIkVSUk5PXzM1OSIsIC8qIDM1OSAqLwotCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KLQkiRVJSTk9fMzYxIiwgLyogMzYxICovCi0JIkVSUk5PXzM2MiIsIC8qIDM2MiAqLwotCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KLQkiRVJSTk9fMzY0IiwgLyogMzY0ICovCi0JIkVSUk5PXzM2NSIsIC8qIDM2NSAqLwotCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KLQkiRVJSTk9fMzY3IiwgLyogMzY3ICovCi0JIkVSUk5PXzM2OCIsIC8qIDM2OCAqLwotCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KLQkiRVJSTk9fMzcwIiwgLyogMzcwICovCi0JIkVSUk5PXzM3MSIsIC8qIDM3MSAqLwotCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KLQkiRVJSTk9fMzczIiwgLyogMzczICovCi0JIkVSUk5PXzM3NCIsIC8qIDM3NCAqLwotCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KLQkiRVJSTk9fMzc2IiwgLyogMzc2ICovCi0JIkVSUk5PXzM3NyIsIC8qIDM3NyAqLwotCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KLQkiRVJSTk9fMzc5IiwgLyogMzc5ICovCi0JIkVSUk5PXzM4MCIsIC8qIDM4MCAqLwotCSJFUlJOT18zODEiLCAvKiAzODEgKi8KLQkiRVJSTk9fMzgyIiwgLyogMzgyICovCi0JIkVSUk5PXzM4MyIsIC8qIDM4MyAqLwotCSJFUlJOT18zODQiLCAvKiAzODQgKi8KLQkiRVJSTk9fMzg1IiwgLyogMzg1ICovCi0JIkVSUk5PXzM4NiIsIC8qIDM4NiAqLwotCSJFUlJOT18zODciLCAvKiAzODcgKi8KLQkiRVJSTk9fMzg4IiwgLyogMzg4ICovCi0JIkVSUk5PXzM4OSIsIC8qIDM4OSAqLwotCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KLQkiRVJSTk9fMzkxIiwgLyogMzkxICovCi0JIkVSUk5PXzM5MiIsIC8qIDM5MiAqLwotCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KLQkiRVJSTk9fMzk0IiwgLyogMzk0ICovCi0JIkVSUk5PXzM5NSIsIC8qIDM5NSAqLwotCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KLQkiRVJSTk9fMzk3IiwgLyogMzk3ICovCi0JIkVSUk5PXzM5OCIsIC8qIDM5OCAqLwotCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KLQkiRVJSTk9fNDAwIiwgLyogNDAwICovCi0JIkVSUk5PXzQwMSIsIC8qIDQwMSAqLwotCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KLQkiRVJSTk9fNDAzIiwgLyogNDAzICovCi0JIkVSUk5PXzQwNCIsIC8qIDQwNCAqLwotCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KLQkiRVJSTk9fNDA2IiwgLyogNDA2ICovCi0JIkVSUk5PXzQwNyIsIC8qIDQwNyAqLwotCSJFUlJOT180MDgiLCAvKiA0MDggKi8KLQkiRVJSTk9fNDA5IiwgLyogNDA5ICovCi0JIkVSUk5PXzQxMCIsIC8qIDQxMCAqLwotCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KLQkiRVJSTk9fNDEyIiwgLyogNDEyICovCi0JIkVSUk5PXzQxMyIsIC8qIDQxMyAqLwotCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KLQkiRVJSTk9fNDE1IiwgLyogNDE1ICovCi0JIkVSUk5PXzQxNiIsIC8qIDQxNiAqLwotCSJFUlJOT180MTciLCAvKiA0MTcgKi8KLQkiRVJSTk9fNDE4IiwgLyogNDE4ICovCi0JIkVSUk5PXzQxOSIsIC8qIDQxOSAqLwotCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KLQkiRVJSTk9fNDIxIiwgLyogNDIxICovCi0JIkVSUk5PXzQyMiIsIC8qIDQyMiAqLwotCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KLQkiRVJSTk9fNDI0IiwgLyogNDI0ICovCi0JIkVSUk5PXzQyNSIsIC8qIDQyNSAqLwotCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KLQkiRVJSTk9fNDI3IiwgLyogNDI3ICovCi0JIkVSUk5PXzQyOCIsIC8qIDQyOCAqLwotCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KLQkiRVJSTk9fNDMwIiwgLyogNDMwICovCi0JIkVSUk5PXzQzMSIsIC8qIDQzMSAqLwotCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KLQkiRVJSTk9fNDMzIiwgLyogNDMzICovCi0JIkVSUk5PXzQzNCIsIC8qIDQzNCAqLwotCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KLQkiRVJSTk9fNDM2IiwgLyogNDM2ICovCi0JIkVSUk5PXzQzNyIsIC8qIDQzNyAqLwotCSJFUlJOT180MzgiLCAvKiA0MzggKi8KLQkiRVJSTk9fNDM5IiwgLyogNDM5ICovCi0JIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLwotCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KLQkiRVJSTk9fNDQyIiwgLyogNDQyICovCi0JIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLwotCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KLQkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCi0JIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLwotCSJFUlJOT180NDciLCAvKiA0NDcgKi8KLQkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCi0JIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLwotCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KLQkiRVJSTk9fNDUxIiwgLyogNDUxICovCi0JIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLwotCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KLQkiRVJSTk9fNDU0IiwgLyogNDU0ICovCi0JIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLwotCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KLQkiRVJSTk9fNDU3IiwgLyogNDU3ICovCi0JIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLwotCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KLQkiRVJSTk9fNDYwIiwgLyogNDYwICovCi0JIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLwotCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KLQkiRVJSTk9fNDYzIiwgLyogNDYzICovCi0JIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLwotCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KLQkiRVJSTk9fNDY2IiwgLyogNDY2ICovCi0JIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLwotCSJFUlJOT180NjgiLCAvKiA0NjggKi8KLQkiRVJSTk9fNDY5IiwgLyogNDY5ICovCi0JIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLwotCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KLQkiRVJSTk9fNDcyIiwgLyogNDcyICovCi0JIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLwotCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KLQkiRVJSTk9fNDc1IiwgLyogNDc1ICovCi0JIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLwotCSJFUlJOT180NzciLCAvKiA0NzcgKi8KLQkiRVJSTk9fNDc4IiwgLyogNDc4ICovCi0JIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLwotCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KLQkiRVJSTk9fNDgxIiwgLyogNDgxICovCi0JIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLwotCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KLQkiRVJSTk9fNDg0IiwgLyogNDg0ICovCi0JIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLwotCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KLQkiRVJSTk9fNDg3IiwgLyogNDg3ICovCi0JIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLwotCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KLQkiRVJSTk9fNDkwIiwgLyogNDkwICovCi0JIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLwotCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KLQkiRVJSTk9fNDkzIiwgLyogNDkzICovCi0JIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLwotCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KLQkiRVJSTk9fNDk2IiwgLyogNDk2ICovCi0JIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLwotCSJFUlJOT180OTgiLCAvKiA0OTggKi8KLQkiRVJSTk9fNDk5IiwgLyogNDk5ICovCi0JIkVSUk5PXzUwMCIsIC8qIDUwMCAqLwotCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KLQkiRVJSTk9fNTAyIiwgLyogNTAyICovCi0JIkVSUk5PXzUwMyIsIC8qIDUwMyAqLwotCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KLQkiRVJSTk9fNTA1IiwgLyogNTA1ICovCi0JIkVSUk5PXzUwNiIsIC8qIDUwNiAqLwotCSJFUlJOT181MDciLCAvKiA1MDcgKi8KLQkiRVJSTk9fNTA4IiwgLyogNTA4ICovCi0JIkVSUk5PXzUwOSIsIC8qIDUwOSAqLwotCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KLQkiRVJSTk9fNTExIiwgLyogNTExICovCi0JIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCi0JIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCi0JIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCi0JIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLwotCSJFUlJOT181MTciLCAvKiA1MTcgKi8KLQkiRVJSTk9fNTE4IiwgLyogNTE4ICovCi0JIkVSUk5PXzUxOSIsIC8qIDUxOSAqLwotCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KLQkiRUJBREhBTkRMRSIsIC8qIDUyMSAqLwotCSJFTk9UU1lOQyIsIC8qIDUyMiAqLwotCSJFQkFEQ09PS0lFIiwgLyogNTIzICovCi0JIkVOT1RTVVBQIiwgLyogNTI0ICovCi0JIkVUT09TTUFMTCIsIC8qIDUyNSAqLwotCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KLQkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KLQkiRUpVS0VCT1giLCAvKiA1MjggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zaC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L3NoL2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmOGJjN2IuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NoL2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MzYgKzAsMCBAQAotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAotCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAotCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg2NjdifSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg2NjdjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NjY3ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NjY3ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDY2N2Z9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAotCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAotCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRNT1VOVCIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUUElEIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTE9TRV9KT1VSTkFMRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVF9GU0VUUk9PVCIsCTB4NzAwN30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0ZTRVRST09UIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVE9QVCIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE9QVCIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfS01MU0laRSIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX1JFQ05PIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRBVFRSIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DUkVBVEUiLAkweDcwMTF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTElOSyIsCTB4NzAxMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19VTkxJTksiLAkweDcwMTN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU1lNTElOSyIsCTB4NzAxNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS0RJUiIsCTB4NzAxNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19STURJUiIsCTB4NzAxNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS05PRCIsCTB4NzAxN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19SRU5BTUUiLAkweDcwMTh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ0xPU0UiLAkweDcwMWF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfSU9QRU4iLAkweDcwMWJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VURVhUQVRUUiIsCTB4NzAxY30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19ERUxFWFRBVFRSIiwJMHg3MDFkfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg3MzA3fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg3MzA4fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg3MzA5fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1NUQU1QIiwJMHg3MzY0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDc0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NzQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NzQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NzQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg3NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDc0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NzQxZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDc0Njd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDc0Njh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEFSVCIsCTB4NzQ2ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUT1AiLAkweDc0NmZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg3NDczfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDc0NzZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NzQ3N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCi0JeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NoL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTJmNzQ2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zaC9zaWduYWxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0FCUlQiLAkvKiA2ICovCi0JIlNJR0JVUyIsCS8qIDcgKi8KLQkiU0lHRlBFIiwJLyogOCAqLwotCSJTSUdLSUxMIiwJLyogOSAqLwotCSJTSUdVU1IxIiwJLyogMTAgKi8KLQkiU0lHU0VHViIsCS8qIDExICovCi0JIlNJR1VTUjIiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdTVEtGTFQiLAkvKiAxNiAqLwotCSJTSUdDSExEIiwJLyogMTcgKi8KLQkiU0lHQ09OVCIsCS8qIDE4ICovCi0JIlNJR1NUT1AiLAkvKiAxOSAqLwotCSJTSUdUU1RQIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdVUkciLAkvKiAyMyAqLwotCSJTSUdYQ1BVIiwJLyogMjQgKi8KLQkiU0lHWEZTWiIsCS8qIDI1ICovCi0JIlNJR1ZUQUxSTSIsCS8qIDI2ICovCi0JIlNJR1BST0YiLAkvKiAyNyAqLwotCSJTSUdXSU5DSCIsCS8qIDI4ICovCi0JIlNJR0lPIiwJLyogMjkgKi8KLQkiU0lHUFdSIiwJLyogMzAgKi8KLQkiU0lHU1lTIiwJLyogMzEgKi8KLQkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zaC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNjNmNzUuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NoL3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMDAgUG9ja2V0UGVuZ3VpbnMgSW5jLiAgTGludXggZm9yIEhpdGFjaGkgU3VwZXJICi0gKiAgICAgICAgICAgICAgICAgICAgcG9ydCBieSBHcmVnIEJhbmtzIDxnYmFua3NAcG9ja2V0cGVuZ3VpbnMuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudC5oLHYgMS40IDIwMDMvMTEvMTMgMjI6MzI6Mjggcm9sYW5kIEV4cCAkCi0gKi8KLQotCXsgMCwJMCwJc3lzX3NldHVwLAkJInNldHVwIgkJfSwgLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQl9LCAvKiAyICovCi0JeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIgkJfSwgLyogMyAqLwotCXsgMywJMCwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIJfSwgLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCi0JeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDE2ICovCi0JeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLwotCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgMiwJMCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0Igl9LCAvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLwotCXsgMiwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KLQl7IDAsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUyICovCi0JeyAwLAkwLAlzeXNfbG9jaywJCSJsb2NrIgkJfSwgLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLwotCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA1OCAqLwotCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KLQl7IDAsCVRTLAlzeXNfc2lnZ2V0bWFzaywJCSJzaWdnZXRtYXNrIgl9LCAvKiA2OCAqLwotCXsgMSwJVFMsCXN5c19zaWdzZXRtYXNrLAkJInNpZ3NldG1hc2siCX0sIC8qIDY5ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNzIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgl9LCAvKiA3MyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNzUgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAvKiA3NiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiA3OCAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNzkgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDgxICovCi0JeyAxLAkwLAlzeXNfb2xkc2VsZWN0LAkJIm9sZHNlbGVjdCIJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLwotCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogODQgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfb2xkX21tYXAsCQkib2xkX21tYXAiICAgCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLwotCXsgNCwJMCwJc3lzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KLQl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCX0sIC8qIDEwMiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLwotCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KLQl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLwotCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLwotCXsgMSwJMCwJc3lzX3ZtODZvbGQsCQkidm04Nm9sZCIJfSwgLyogMTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogMTE0ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiAxMTUgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sIC8qIDExNiAqLwotCXsgNSwJMCwJc3lzX2lwYywJCSJpcGMiCQl9LCAvKiAxMTcgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDExOCAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgl9LCAvKiAxMTkgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTIxICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMjIgKi8KLQl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMzUgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQiCX0sIC8qIDEzOSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgl9LCAvKiAxNDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMSwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAxLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ2bTg2IgkJfSwgLyogMTY2ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiAxNjggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAvKiAxNjkgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgl9LCAvKiAxNzAgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiAxNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sIC8qIDE3MiAqLwotCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDE3MyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iICB9LCAvKiAxNzQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiAxNzUgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywJInJ0X3NpZ3BlbmRpbmciCX0sIC8qIDE3NiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQifSwgLyogMTc3ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywgICAgInJ0X3NpZ3F1ZXVlaW5mbyJ9LCAvKiAxNzggKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sIC8qIDE3OSAqLwotCi0JeyA2LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTgwICovCi0JeyA2LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLwotCXsgMiwJMCwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgiCX0sIC8qIDE4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCX0sIC8qIDE4OSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLwotCXsgNSwJMCwJc3lzX3RydW5jYXRlNjQsCQkidHJ1bmNhdGU2NCIJfSwgLyogMTkzICovCi0JeyA1LAkwLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJfSwgLyogMTk0ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCX0sIC8qIDE5NSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCX0sIC8qIDE5NiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDE5NyAqLwotLypUT0RPKi97IDMsCVRGLAlwcmludGFyZ3MsCQkibGNob3duMzIiCX0sIC8qIDE5OCAqLwotLypUT0RPKi97IDAsCTAsCXByaW50YXJncywJCSJnZXR1aWQzMiIJfSwgLyogMTk5ICovCi0KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRnaWQzMiIJfSwgLyogMjAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0ZXVpZDMyIgl9LCAvKiAyMDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImZjaG93bjMyIgl9LCAvKiAyMDcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXN1aWQzMiIJfSwgLyogMjA4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc2dpZDMyIgl9LCAvKiAyMTAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRzZXRnaWQzMiIJfSwgLyogMjExICovCi0JeyAzLAlURiwJcHJpbnRhcmdzLAkJImNob3duMzIiCX0sIC8qIDIxMiAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRnaWQzMiIJfSwgLyogMjE0ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0ZnN1aWQzMiIJfSwgLyogMjE1ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0ZnNnaWQzMiIJfSwgLyogMjE2ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiAyMTcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImdldGRlbnRzNjQiCX0sIC8qIDIyMCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDIyMSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiCX0sIC8qIDIyMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQiCX0sIC8qIDIyNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUiCX0sIC8qIDIyNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCX0sIC8qIDIyNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjciCX0sIC8qIDIyNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgiCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCX0sIC8qIDIyOSAqLwotCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMjMwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDIzMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAyMzIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAyMzMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMjM0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDIzNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAyMzYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMjM3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMjM4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDIzOSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAyNDAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMjQxICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAyNDIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDI0MyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDI0NCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDI0NSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDI0NiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDI0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgiCX0sIC8qIDI0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qIDI0OSAqLwotCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1MCAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDI1MSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAyNTIgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMjUzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1NCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1NyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTggKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU5ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2MCAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAyNjEgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMjYyICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDI2MyAqLwotCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAyNjQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjY1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2NiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjY4ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2OSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNzAgKi8KLQl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAyNzEgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAyNzIgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMjczICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCX0sIC8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCX0sIC8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qIDI3OSAqLwotCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMjgwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDI4MSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAyODIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAyODMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMjg0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDI4NSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAyODYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMjg3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMjg4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDI4OSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAyOTAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMjkxICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAyOTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDI5MyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDI5NCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDI5NSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDI5NiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoNjQvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NoNjQvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzAxZGEwLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zaDY0L3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjIgMjAwMy8xMS8xMyAyMjozMjoyOCByb2xhbmQgRXhwICQKLSAqLwotCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgl9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiAxNiAqLwotCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogMTcgKi8KLQl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCi0JeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KLQl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLwotCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KLQl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCi0JeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KLQl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogNzYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA3NyAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDc5ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogODAgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiA4MSAqLwotCXsgMSwJMCwJc3lzX29sZHNlbGVjdCwJCSJvbGRzZWxlY3QiCX0sIC8qIDgyICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogODMgKi8KLQl7IDIsCVRGLAlzeXNfb2xkbHN0YXQsCQkib2xkbHN0YXQiCX0sIC8qIDg0ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA4NSAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA4NiAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA4NyAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDg4ICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm9sZF9tbWFwIgl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KLQl7IDQsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCi0JeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogMTAxICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMDggKi8KLQl7IDEsCTAsCXN5c19vbGR1bmFtZSwJCSJvbGR1bmFtZSIJfSwgLyogMTA5ICovCi0JeyAxLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgLyogMTEwICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTEgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQl9LCAvKiAxMTIgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJTWVNfMTEzIgl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCi0JeyA1LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMiCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMzUgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQiCX0sIC8qIDEzOSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgl9LCAvKiAxNDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMSwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY2Igl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTgwICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAvKiAxODMgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiAxODUgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogMTg2ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg4Igl9LCAvKiAxODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg5Igl9LCAvKiAxODkgKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiCQl9LCAvKiAxOTAgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQl9LCAvKiAxOTIgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KLQl7IDIsCVRGLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJfSwgLyogMTk0ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCX0sIC8qIDE5NSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCX0sIC8qIDE5NiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDE5NyAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24zMiIJfSwgLyogMTk4ICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRnaWQzMiIJfSwgLyogMjAwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0ZXVpZDMyIgl9LCAvKiAyMDEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImZjaG93bjMyIgl9LCAvKiAyMDcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXN1aWQzMiIJfSwgLyogMjA4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc2dpZDMyIgl9LCAvKiAyMTAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXNnaWQzMiIJfSwgLyogMjExICovCi0JeyAzLAlURiwJcHJpbnRhcmdzLAkJImNob3duMzIiCX0sIC8qIDIxMiAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRnaWQzMiIJfSwgLyogMjE0ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0ZnN1aWQzMiIJfSwgLyogMjE1ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0ZnNnaWQzMiIJfSwgLyogMjE2ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiAyMTcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAyMjAgKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMjIxICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMjIyICovCi0JeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDIyMyAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAyMjQgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMjI1ICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDIyNiAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDIyNyAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAyMjggKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMjI5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDIzMCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMjMxICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAyMzIgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAyMzMgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAyMzQgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAyMzUgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAyMzYgKi8KLQl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAyMzcgKi8KLQl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMjM4ICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDIzOSAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAyNDAgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMjQxICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDI0MiAqLwotCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAyNDMgKi8KLQl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAyNDQgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAyNDUgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMjQ2ICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDI0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgiCX0sIC8qIDI0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qIDI0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAiCX0sIC8qIDI1MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEiCX0sIC8qIDI1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIiCX0sIC8qIDI1MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMiCX0sIC8qIDI1MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQiCX0sIC8qIDI1NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUiCX0sIC8qIDI1NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYiCX0sIC8qIDI1NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTciCX0sIC8qIDI1NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgiCX0sIC8qIDI1OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkiCX0sIC8qIDI1OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjAiCX0sIC8qIDI2MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEiCX0sIC8qIDI2MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIiCX0sIC8qIDI2MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCX0sIC8qIDI2MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQiCX0sIC8qIDI2NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCX0sIC8qIDI2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCX0sIC8qIDI2NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjciCX0sIC8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCX0sIC8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCX0sIC8qIDI2OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAiCX0sIC8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCX0sIC8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCX0sIC8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCX0sIC8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCX0sIC8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCX0sIC8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCX0sIC8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCX0sIC8qIDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCX0sIC8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCX0sIC8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCX0sIC8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCX0sIC8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCX0sIC8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCX0sIC8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDMwMCAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAzMDEgKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMzAyICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMzAzICovCi0JeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDMwNCAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAzMDUgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMzA2ICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDMwNyAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDMwOCAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAzMDkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMzEwICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDMxMSAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMzEyICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAzMTMgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAzMTQgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAzMTUgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAzMTYgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAzMTcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzE4ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMmY3NDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdTWVMiLAkvKiAzMSAqLwotCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvZHVtbXkyLmggYi9zdHJhY2UvbGludXgvc3BhcmMvZHVtbXkyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5Yzc3NTMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL2R1bW15Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsMjgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGR1bW15Mi5oLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIzOjA5IHdpY2hlcnQgRXhwICQKLSAqLwotCi0vKiBzdGlsbCB1bmZpbmlzaGVkICovCi0KLSNkZWZpbmUgc29sYXJpc19zeXNtcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZ2luYXAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2dpa29wdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNtaXBzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3JldHVybiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19yZWN2bXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbmRtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbmZzc3ZjIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldGZoIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FzeW5jX2RhZW1vbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19leHBvcnRmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19CU0RfZ2V0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Nwcm9jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Byb2NibGsgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3Byb2NzcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tYWR2aXNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3BhZ2Vsb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3F1b3RhY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2NhY2hlZmx1c2ggcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2FjaGVjdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbnVuYW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3BvbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3dhcGN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzdGFjayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzZW5kc2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3ByaW9jbnRsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2tzaWdxdWV1ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc2VtYV93YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21lbWNudGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzY2FsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9jYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzc3VuIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2k4NiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNtYWNoaW5lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Bsb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3BhdGhjb25mIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3RpbWVkd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191bGltaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHRyYWNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0dHkgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2luZm8gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJpb2NudGxzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfaHJ0c3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3hlbml4IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0YXRmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mc3RhdGZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0YXR2ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnN0YXR2ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZm9yazEgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc2VuZHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19ndHR5IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Z0cmFjZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mcGF0aGNvbmYgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXZzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYWNjdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19leGVjIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZW1hX3Bvc3QgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbmZzc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2FsdHN0YWNrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3VhZG1pbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191bW91bnQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbW9kY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FjYW5jZWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYXN5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXZ0cmFwcmV0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jcmVhdGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2V4aXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3N1c3BlbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbnRpbnVlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9raWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZWxmIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZXRwcml2YXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9nZXRwcml2YXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF93YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9tdXRleF91bmxvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX211dGV4X2xvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbmRfd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY29uZF9zaWduYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbmRfYnJvYWRjYXN0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2xsc2VlayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19pbnN0X3N5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYXVkaXRzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvY2Vzc29yX2JpbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvY2Vzc29yX2luZm8gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcF9vbmxpbmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncXVldWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2xvY2tfZ2V0dGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9ja19zZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Nsb2NrX2dldHJlcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19uYW5vc2xlZXAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfY3JlYXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2RlbGV0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9zZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2dldHRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1biBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWduYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2hvbGQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncmVsc2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnaWdub3JlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3BhdXNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ2N0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2dnZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNncmN2IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ3NuZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1hdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1jdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htZHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htZ2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1nZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2Vtb3AgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfb2xkdW5hbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdXN0YXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnVzZXJzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzMSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNmczIgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzZnMzIHByaW50YXJncwotCi0vKiBsaWtlIGFub3RoZXIgY2FsbCAqLwotI2RlZmluZSBzb2xhcmlzX2xjaG93biBzb2xhcmlzX2Nob3duCi0jZGVmaW5lIHNvbGFyaXNfc2V0dWlkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zZXRldWlkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zZXRnaWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3NldGVnaWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3ZoYW5ndXAgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX2Zkc3luYyBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfc2lnZmlsbHNldCBzb2xhcmlzX3NpZ3BlbmRpbmcKLSNkZWZpbmUgc29sYXJpc192Zm9yayBzb2xhcmlzX2ZvcmsKLSNkZWZpbmUgc29sYXJpc19rc2lnYWN0aW9uIHNvbGFyaXNfc2lnYWN0aW9uCi0jZGVmaW5lIHNvbGFyaXNfQlNEZ2V0cGdycCBzb2xhcmlzX2dldHBncnAKLSNkZWZpbmUgc29sYXJpc19CU0RzZXRwZ3JwIHNvbGFyaXNfc2V0cGdycAotI2RlZmluZSBzb2xhcmlzX3dhaXRzeXMgc29sYXJpc193YWl0aWQKLQotLyogcHJpbnRhcmdzIGRvZXMgdGhlIHJpZ2h0IHRoaW5nICovCi0jZGVmaW5lIHNvbGFyaXNfc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcm9maWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfeWllbGQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcGF1c2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0aG9zdGlkIHByaW50YXJncwotCi0vKiBzdWJmdW5jdGlvbiBlbnRyeSBwb2ludHMgKi8KLSNkZWZpbmUgc29sYXJpc19wZ3Jwc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2NhbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNnc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobXN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1zeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdXRzc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NwY2FsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jb250ZXh0IHByaW50YXJncwotCi0vKiBzYW1lIGFzIGxpbnV4ICovCi0jZGVmaW5lIHNvbGFyaXNfZXhpdCBzeXNfZXhpdAotI2RlZmluZSBzb2xhcmlzX2Zvcmsgc3lzX2ZvcmsKLSNkZWZpbmUgc29sYXJpc19yZWFkIHN5c19yZWFkCi0jZGVmaW5lIHNvbGFyaXNfd3JpdGUgc3lzX3dyaXRlCi0jZGVmaW5lIHNvbGFyaXNfY2xvc2Ugc3lzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfY3JlYXQgc3lzX2NyZWF0Ci0jZGVmaW5lIHNvbGFyaXNfbGluayBzeXNfbGluawotI2RlZmluZSBzb2xhcmlzX3VubGluayBzeXNfdW5saW5rCi0jZGVmaW5lIHNvbGFyaXNfY2hkaXIgc3lzX2NoZGlyCi0jZGVmaW5lIHNvbGFyaXNfdGltZSBzeXNfdGltZQotI2RlZmluZSBzb2xhcmlzX2NobW9kIHN5c19jaG1vZAotI2RlZmluZSBzb2xhcmlzX2xzZWVrIHN5c19sc2VlawotI2RlZmluZSBzb2xhcmlzX3N0aW1lIHN5c19zdGltZQotI2RlZmluZSBzb2xhcmlzX2FsYXJtIHN5c19hbGFybQotI2RlZmluZSBzb2xhcmlzX3V0aW1lIHN5c191dGltZQotI2RlZmluZSBzb2xhcmlzX2FjY2VzcyBzeXNfYWNjZXNzCi0jZGVmaW5lIHNvbGFyaXNfbmljZSBzeXNfbmljZQotI2RlZmluZSBzb2xhcmlzX2R1cCBzeXNfZHVwCi0jZGVmaW5lIHNvbGFyaXNfcGlwZSBzeXNfcGlwZQotI2RlZmluZSBzb2xhcmlzX3RpbWVzIHN5c190aW1lcwotI2RlZmluZSBzb2xhcmlzX2V4ZWN2ZSBzeXNfZXhlY3ZlCi0jZGVmaW5lIHNvbGFyaXNfdW1hc2sgc3lzX3VtYXNrCi0jZGVmaW5lIHNvbGFyaXNfY2hyb290IHN5c19jaHJvb3QKLSNkZWZpbmUgc29sYXJpc19ybWRpciBzeXNfcm1kaXIKLSNkZWZpbmUgc29sYXJpc19ta2RpciBzeXNfbWtkaXIKLSNkZWZpbmUgc29sYXJpc19nZXRkZW50cyBzeXNfZ2V0ZGVudHMKLSNkZWZpbmUgc29sYXJpc19wb2xsIHN5c19wb2xsCi0jZGVmaW5lIHNvbGFyaXNfc3ltbGluayBzeXNfc3ltbGluawotI2RlZmluZSBzb2xhcmlzX3JlYWRsaW5rIHN5c19yZWFkbGluawotI2RlZmluZSBzb2xhcmlzX3NldGdyb3VwcyBzeXNfc2V0Z3JvdXBzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0Z3JvdXBzIHN5c19nZXRncm91cHMKLSNkZWZpbmUgc29sYXJpc19mY2htb2Qgc3lzX2ZjaG1vZAotI2RlZmluZSBzb2xhcmlzX2ZjaG93biBzeXNfZmNob3duCi0jZGVmaW5lIHNvbGFyaXNfbXByb3RlY3Qgc3lzX21wcm90ZWN0Ci0jZGVmaW5lIHNvbGFyaXNfbXVubWFwIHN5c19tdW5tYXAKLSNkZWZpbmUgc29sYXJpc19yZWFkdiBzeXNfcmVhZHYKLSNkZWZpbmUgc29sYXJpc193cml0ZXYgc3lzX3dyaXRldgotI2RlZmluZSBzb2xhcmlzX2Nob3duIHN5c19jaG93bgotI2RlZmluZSBzb2xhcmlzX3JlbmFtZSBzeXNfcmVuYW1lCi0jZGVmaW5lIHNvbGFyaXNfZ2V0dGltZW9mZGF5IHN5c19nZXR0aW1lb2ZkYXkKLSNkZWZpbmUgc29sYXJpc19nZXRpdGltZXIgc3lzX2dldGl0aW1lcgotI2RlZmluZSBzb2xhcmlzX3NldGl0aW1lciBzeXNfc2V0aXRpbWVyCi0jZGVmaW5lIHNvbGFyaXNfYnJrIHN5c19icmsKLSNkZWZpbmUgc29sYXJpc19tbWFwIHN5c19tbWFwCi0jZGVmaW5lIHNvbGFyaXNfZ2V0c2lkIHN5c19nZXRzaWQKLSNkZWZpbmUgc29sYXJpc19zZXRzaWQgc3lzX3NldHNpZAotI2RlZmluZSBzb2xhcmlzX2dldHBnaWQgc3lzX2dldHBnaWQKLSNkZWZpbmUgc29sYXJpc19zZXRwZ2lkIHN5c19zZXRwZ2lkCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cGdycCBzeXNfZ2V0cGdycAotCi0vKiBUaGVzZSBhcmUgaGFuZGxlZCBhY2NvcmRpbmcgdG8gY3VycmVudF9wZXJzb25hbGl0eSAqLwotI2RlZmluZSBzb2xhcmlzX3hzdGF0IHN5c194c3RhdAotI2RlZmluZSBzb2xhcmlzX2Z4c3RhdCBzeXNfZnhzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfbHhzdGF0IHN5c19seHN0YXQKLSNkZWZpbmUgc29sYXJpc194bWtub2Qgc3lzX3hta25vZAotI2RlZmluZSBzb2xhcmlzX3N0YXQgc3lzX3N0YXQKLSNkZWZpbmUgc29sYXJpc19mc3RhdCBzeXNfZnN0YXQKLSNkZWZpbmUgc29sYXJpc19sc3RhdCBzeXNfbHN0YXQKLSNkZWZpbmUgc29sYXJpc19wcmVhZCBzeXNfcHJlYWQKLSNkZWZpbmUgc29sYXJpc19wd3JpdGUgc3lzX3B3cml0ZQotI2RlZmluZSBzb2xhcmlzX2lvY3RsIHN5c19pb2N0bAotI2RlZmluZSBzb2xhcmlzX21rbm9kIHN5c19ta25vZAotCi0vKiBUbyBiZSBkb25lICovCi0jZGVmaW5lIHNvbGFyaXNfbW91bnQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzaW5mbyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNjb25maWcgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wdXRwbXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3dhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfd2FpdGlkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3N1c3BlbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0cGdycCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRjb250ZXh0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldGNvbnRleHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cGlkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldHVpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19raWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldGdpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mY250bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHV0bXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3Byb2NtYXNrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2FjdGlvbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdwZW5kaW5nIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21pbmNvcmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZmNoZGlyIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldHJsaW1pdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRybGltaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdW5hbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYWRqdGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mY2hyb290IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3V0aW1lcyBwcmludGFyZ3MKLQotI2lmIERPTkUKLSNkZWZpbmUgc29sYXJpc19vcGVuIHByaW50YXJncwotI2VuZGlmCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjQzNjk5Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRVdPVUxEQkxPQ0siLCAvKiAzNSAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDM2ICovCi0JIkVBTFJFQURZIiwgLyogMzcgKi8KLQkiRU5PVFNPQ0siLCAvKiAzOCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiAzOSAqLwotCSJFTVNHU0laRSIsIC8qIDQwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA0MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDQyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDQzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDQ0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA0NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA0NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA0NyAqLwotCSJFQUREUklOVVNFIiwgLyogNDggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDQ5ICovCi0JIkVORVRET1dOIiwgLyogNTAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiA1MSAqLwotCSJFTkVUUkVTRVQiLCAvKiA1MiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiA1MyAqLwotCSJFQ09OTlJFU0VUIiwgLyogNTQgKi8KLQkiRU5PQlVGUyIsIC8qIDU1ICovCi0JIkVJU0NPTk4iLCAvKiA1NiAqLwotCSJFTk9UQ09OTiIsIC8qIDU3ICovCi0JIkVTSFVURE9XTiIsIC8qIDU4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDU5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDYwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDYxICovCi0JIkVMT09QIiwgLyogNjIgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogNjMgKi8KLQkiRUhPU1RET1dOIiwgLyogNjQgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogNjUgKi8KLQkiRU5PVEVNUFRZIiwgLyogNjYgKi8KLQkiRVBST0NMSU0iLCAvKiA2NyAqLwotCSJFVVNFUlMiLCAvKiA2OCAqLwotCSJFRFFVT1QiLCAvKiA2OSAqLwotCSJFU1RBTEUiLCAvKiA3MCAqLwotCSJFUkVNT1RFIiwgLyogNzEgKi8KLQkiRU5PU1RSIiwgLyogNzIgKi8KLQkiRVRJTUUiLCAvKiA3MyAqLwotCSJFTk9TUiIsIC8qIDc0ICovCi0JIkVOT01TRyIsIC8qIDc1ICovCi0JIkVCQURNU0ciLCAvKiA3NiAqLwotCSJFSURSTSIsIC8qIDc3ICovCi0JIkVERUFETEsiLCAvKiA3OCAqLwotCSJFTk9MQ0siLCAvKiA3OSAqLwotCSJFTk9ORVQiLCAvKiA4MCAqLwotCSJFUlJFTU9URSIsIC8qIDgxICovCi0JIkVOT0xJTksiLCAvKiA4MiAqLwotCSJFQURWIiwgLyogODMgKi8KLQkiRVNSTU5UIiwgLyogODQgKi8KLQkiRUNPTU0iLCAvKiA4NSAqLwotCSJFUFJPVE8iLCAvKiA4NiAqLwotCSJFTVVMVElIT1AiLCAvKiA4NyAqLwotCSJFRE9URE9UIiwgLyogODggKi8KLQkiRVJFTUNIRyIsIC8qIDg5ICovCi0JIkVOT1NZUyIsIC8qIDkwICovCi0JIkVTVFJQSVBFIiwgLyogOTEgKi8KLQkiRU9WRVJGTE9XIiwgLyogOTIgKi8KLQkiRUJBREZEIiwgLyogOTMgKi8KLQkiRUNIUk5HIiwgLyogOTQgKi8KLQkiRUwyTlNZTkMiLCAvKiA5NSAqLwotCSJFTDNITFQiLCAvKiA5NiAqLwotCSJFTDNSU1QiLCAvKiA5NyAqLwotCSJFTE5STkciLCAvKiA5OCAqLwotCSJFVU5BVENIIiwgLyogOTkgKi8KLQkiRU5PQ1NJIiwgLyogMTAwICovCi0JIkVMMkhMVCIsIC8qIDEwMSAqLwotCSJFQkFERSIsIC8qIDEwMiAqLwotCSJFQkFEUiIsIC8qIDEwMyAqLwotCSJFWEZVTEwiLCAvKiAxMDQgKi8KLQkiRU5PQU5PIiwgLyogMTA1ICovCi0JIkVCQURSUUMiLCAvKiAxMDYgKi8KLQkiRUJBRFNMVCIsIC8qIDEwNyAqLwotCSJFREVBRExPQ0siLCAvKiAxMDggKi8KLQkiRUJGT05UIiwgLyogMTA5ICovCi0JIkVMSUJFWEVDIiwgLyogMTEwICovCi0JIkVOT0RBVEEiLCAvKiAxMTEgKi8KLQkiRUxJQkJBRCIsIC8qIDExMiAqLwotCSJFTk9QS0ciLCAvKiAxMTMgKi8KLQkiRUxJQkFDQyIsIC8qIDExNCAqLwotCSJFTk9UVU5JUSIsIC8qIDExNSAqLwotCSJFUkVTVEFSVCIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVJTFNFUSIsIC8qIDEyMiAqLwotCSJFTElCTUFYIiwgLyogMTIzICovCi0JIkVMSUJTQ04iLCAvKiAxMjQgKi8KLQkiRU5PTUVESVVNIiwgLyogMTI1ICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI2ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvZXJybm9lbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvZXJybm9lbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNzUwYmQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3N2cjQvZXJybm9lbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9nZW4ucGwgYi9zdHJhY2UvbGludXgvc3BhcmMvZ2VuLnBsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTMyMGVlLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9nZW4ucGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1vcGVuIFNQQVJDLCAic3lzY2FsbGVudC5oIiB8fCBkaWUgIm5vIHB1ZWRvIGFicmlyIGVsIGRlIGxhIHNwYXJjIjsKLW9wZW4gQUxQSEEsICIuLi9hbHBoYS9zeXNjYWxsZW50LmgiIHx8IGRpZSAibm8gcHVlZG8gYWJyaXIgZWwgZGUgbGEgYWxwaGEiOwotb3BlbiBQQywgIi4uL3N5c2NhbGxlbnQuaCIgfHwgZGllICJubyBwdWVkbyBhYnJpciBQQ1xuIjsKLQotd2hpbGUgKDxTUEFSQz4pIHsKLSAgICBjaG9wOwotICAgICgkaTEsICRpMiwgJGkzLCAkc3lzY2FsbCwgJHN5c2NhbGxfbmFtZSkgPSBzcGxpdDsKLSAgICAkc3RyblskaW5kZXhdICAgPSAkc3lzY2FsbF9uYW1lOwotICAgICRuYW1lWyRpbmRleCsrXSA9ICRzeXNjYWxsOwotfQotCi13aGlsZSAoPEFMUEhBPil7Ci0gICAgaWYgKC9cey8pIHsKLQkoJGkxLCAkbiwgJHByLCAkc3lzY2FsbCkgPSBzcGxpdDsKLQkkcGFyeyRzeXNjYWxsfSA9ICRuOwotCSRwcnJ7JHN5c2NhbGx9ID0gJHByOwotICAgIH0KLX0KLQotd2hpbGUgKDxQQz4pewotICAgIGlmICgvXHsvKSB7Ci0JKCRpMSwgJG4sICRwciwgJHN5c2NhbGwpID0gc3BsaXQ7Ci0JJHBhcnskc3lzY2FsbH0gPSAkbjsKLQkkcHJyeyRzeXNjYWxsfSA9ICRwcjsKLSAgICB9Ci19Ci0KLXByaW50ICJtaXNzaW5nIFxuIjsKLQotZm9yICgkaSA9IDA7ICRpIDwgJGluZGV4OyAkaSsrKXsKLSAgICAkeCA9ICRuYW1lWyRpXTsKLSAgICAkeSA9ICRzdHJuWyRpXTsKLSAgICAkbiA9ICRwYXJ7JHh9OwotICAgICRwID0gJHBycnskeH07Ci0gICAgJGorKzsKLSAgICBwcmludCAiXHR7ICRuXHQkcFx0JHhcdCR5IH0sXHQgLyogJGogKi9cbiI7Ci19Ci0KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZDZiOGEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MzggKzAsMCBAQAotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9pb2N0bGVudDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9pb2N0bGVudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ1MzZjZi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiLi4vc3ZyNC9pb2N0bGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDU5YjVkLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9zaWduYWxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0FCUlQiLAkvKiA2ICovCi0JIlNJR0VNVCIsCS8qIDcgKi8KLQkiU0lHRlBFIiwJLyogOCAqLwotCSJTSUdLSUxMIiwJLyogOSAqLwotCSJTSUdCVVMiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHU1lTIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHVVJHIiwJLyogMTYgKi8KLQkiU0lHU1RPUCIsCS8qIDE3ICovCi0JIlNJR1RTVFAiLAkvKiAxOCAqLwotCSJTSUdDT05UIiwJLyogMTkgKi8KLQkiU0lHQ0hMRCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHSU8iLAkvKiAyMyAqLwotCSJTSUdYQ1BVIiwJLyogMjQgKi8KLQkiU0lHWEZTWiIsCS8qIDI1ICovCi0JIlNJR1ZUQUxSTSIsCS8qIDI2ICovCi0JIlNJR1BST0YiLAkvKiAyNyAqLwotCSJTSUdXSU5DSCIsCS8qIDI4ICovCi0JIlNJR0xPU1QiLAkvKiAyOSAqLwotCSJTSUdVU1IxIiwJLyogMzAgKi8KLQkiU0lHVVNSMiIsCS8qIDMxICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlN2EyNi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3N2cjQvc2lnbmFsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI1OTg0Mi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsLmgsdiAxLjEwIDIwMDUvMDIvMDIgMjA6MzI6MTMgcm9sYW5kIEV4cCAkCi0gKi8KLSNpbmNsdWRlICJkdW1teS5oIgotCi1pbnQJc3lzX25vc3lzKCk7Ci1pbnQJc3lzX251bGxzeXMoKTsKLWludAlzeXNfZXJyc3lzKCk7Ci0KLS8qIDEuMSBwcm9jZXNzZXMgYW5kIHByb3RlY3Rpb24gKi8KLWludAlzeXNfZ2V0aG9zdGlkKCksc3lzX3NldGhvc3RuYW1lKCksc3lzX2dldGhvc3RuYW1lKCksc3lzX2dldHBpZCgpOwotaW50CXN5c19zZXRkb21haW5uYW1lKCksc3lzX2dldGRvbWFpbm5hbWUoKTsKLWludAlzeXNfZm9yaygpLHN5c19jbG9uZSgpLHN5c19leGl0KCksc3lzX2V4ZWN2KCksc3lzX2V4ZWN2ZSgpLHN5c193YWl0NCgpLHN5c193YWl0cGlkKCk7Ci1pbnQJc3lzX3NldHVpZCgpLHN5c19zZXRnaWQoKSxzeXNfZ2V0dWlkKCksc3lzX3NldHJldWlkKCksc3lzX2dldGdpZCgpLHN5c19nZXRncm91cHMoKSxzeXNfc2V0cmVnaWQoKSxzeXNfc2V0Z3JvdXBzKCk7Ci1pbnQJc3lzX2dldHBncnAoKSxzeXNfc2V0cGdycCgpOwotaW50CXN5c19zZXRzaWQoKSwgc3lzX3NldHBnaWQoKTsKLWludAlzeXNfdW5hbWUoKSwgc3lzX3N5c2luZm8oKTsKLQotLyogMS4yIG1lbW9yeSBtYW5hZ2VtZW50ICovCi1pbnQJc3lzX2JyaygpLHN5c19zYnJrKCksc3lzX3NzdGsoKTsKLWludAlzeXNfZ2V0cGFnZXNpemUoKSxzeXNfbW1hcCgpLHN5c19tY3RsKCksc3lzX211bm1hcCgpLHN5c19tcHJvdGVjdCgpLHN5c19taW5jb3JlKCksIHN5c19tcmVtYXAoKTsKLWludAlzeXNfb21zeW5jKCksc3lzX29tYWR2aXNlKCksIHN5c19tYWR2aXNlKCksc3lzX21sb2NrYWxsKCk7Ci0KLS8qIDEuMyBzaWduYWxzICovCi1pbnQJc3lzX3NpZ3ZlYygpLHN5c19zaWdibG9jaygpLHN5c19zaWdzZXRtYXNrKCksc3lzX3NpZ3BhdXNlKCksc3lzX3NpZ3N0YWNrKCksc3lzX3NpZ2NsZWFudXAoKSwgc3lzX3NpZ3JldHVybigpOwotaW50CXN5c19raWxsKCksIHN5c19raWxscGcoKSwgc3lzX3NpZ3BlbmRpbmcoKSwgc3lzX3NpZ25hbCgpLCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdzdXNwZW5kKCksIHN5c19zaWdwcm9jbWFzaygpOwotCi0vKiAxLjQgdGltaW5nIGFuZCBzdGF0aXN0aWNzICovCi1pbnQJc3lzX2dldHRpbWVvZmRheSgpLHN5c19zZXR0aW1lb2ZkYXkoKTsKLWludAlzeXNfYWRqdGltZSgpLCBzeXNfYWRqdGltZXgoKTsKLWludAlzeXNfZ2V0aXRpbWVyKCksc3lzX3NldGl0aW1lcigpOwotCi0vKiAxLjUgZGVzY3JpcHRvcnMgKi8KLWludAlzeXNfZ2V0ZHRhYmxlc2l6ZSgpLHN5c19kdXAoKSxzeXNfZHVwMigpLHN5c19jbG9zZSgpOwotaW50CXN5c19vbGRzZWxlY3QoKSxzeXNfc2VsZWN0KCksc3lzX2dldGRvcHQoKSxzeXNfc2V0ZG9wdCgpLHN5c19mY250bCgpLHN5c19mbG9jaygpOwotaW50CXN5c19lcG9sbF9jcmVhdGUoKSwgc3lzX2Vwb2xsX2N0bCgpLCBzeXNfZXBvbGxfd2FpdCgpOwotCi0vKiAxLjYgcmVzb3VyY2UgY29udHJvbHMgKi8KLWludAlzeXNfZ2V0cHJpb3JpdHkoKSxzeXNfc2V0cHJpb3JpdHkoKSxzeXNfZ2V0cnVzYWdlKCksc3lzX2dldHJsaW1pdCgpLHN5c19zZXRybGltaXQoKTsKLWludAlzeXNfb2xkcXVvdGEoKSwgc3lzX3F1b3RhY3RsKCk7Ci1pbnQJc3lzX3J0c2NoZWR1bGUoKSwgc3lzX3BlcnNvbmFsaXR5KCk7Ci0KLS8qIDEuNyBzeXN0ZW0gb3BlcmF0aW9uIHN1cHBvcnQgKi8KLWludAlzeXNfbW91bnQoKSxzeXNfdW5tb3VudCgpLHN5c19zd2Fwb24oKSxzeXNfcGl2b3Ryb290KCk7Ci1pbnQJc3lzX3N5bmMoKSxzeXNfcmVib290KCk7Ci1pbnQJc3lzX3N5c2FjY3QoKTsKLWludAlzeXNfYXVkaXRzeXMoKTsKLQotLyogMi4xIGdlbmVyaWMgb3BlcmF0aW9ucyAqLwotaW50CXN5c19yZWFkKCksc3lzX3dyaXRlKCksc3lzX3JlYWR2KCksc3lzX3dyaXRldigpLHN5c19pb2N0bCgpOwotCi0vKiAyLjEuMSBhc3luY2ggb3BlcmF0aW9ucyAqLwotaW50CXN5c19haW9yZWFkKCksIHN5c19haW93cml0ZSgpLCBzeXNfYWlvd2FpdCgpLCBzeXNfYWlvY2FuY2VsKCk7Ci0KLS8qIDIuMiBmaWxlIHN5c3RlbSAqLwotaW50CXN5c19jaGRpcigpLHN5c19jaHJvb3QoKTsKLWludAlzeXNfZmNoZGlyKCksc3lzX2ZjaHJvb3QoKTsKLWludAlzeXNfbWtkaXIoKSxzeXNfcm1kaXIoKSxzeXNfZ2V0ZGlyZW50cmllcygpOwotaW50CXN5c19nZXRkZW50cygpLCBzeXNfZ2V0ZGVudHM2NCgpLCBzeXNfcmVhZGRpcigpOwotaW50CXN5c19jcmVhdCgpLHN5c19vcGVuKCksc3lzX21rbm9kKCksc3lzX3VubGluaygpLHN5c19zdGF0KCksc3lzX2ZzdGF0KCksc3lzX2xzdGF0KCk7Ci1pbnQJc3lzX2Nob3duKCksc3lzX2ZjaG93bigpLHN5c19jaG1vZCgpLHN5c19mY2htb2QoKSxzeXNfdXRpbWVzKCk7Ci1pbnQJc3lzX2xpbmsoKSxzeXNfc3ltbGluaygpLHN5c19yZWFkbGluaygpLHN5c19yZW5hbWUoKTsKLWludAlzeXNfbHNlZWsoKSwgc3lzX2xsc2VlaygpOwotaW50CXN5c190cnVuY2F0ZSgpLHN5c19mdHJ1bmNhdGUoKSxzeXNfYWNjZXNzKCksc3lzX2ZzeW5jKCksc3lzX3N5c2N0bCgpOwotaW50CXN5c19zdGF0ZnMoKSxzeXNfZnN0YXRmcygpLHN5c19tc3luYygpOwotaW50IHN5c19zdGF0NjQoKSwgc3lzX2xzdGF0NjQoKSwgc3lzX2ZzdGF0NjQoKTsKLWludCBzeXNfdHJ1bmNhdGU2NCgpLCBzeXNfZnRydW5jYXRlNjQoKTsKLQotCi0vKiAyLjMgY29tbXVuaWNhdGlvbnMgKi8KLWludAlzeXNfc29ja2V0KCksc3lzX2JpbmQoKSxzeXNfbGlzdGVuKCksc3lzX2FjY2VwdCgpLHN5c19jb25uZWN0KCk7Ci1pbnQJc3lzX3NvY2tldHBhaXIoKSxzeXNfc2VuZHRvKCksc3lzX3NlbmQoKSxzeXNfcmVjdmZyb20oKSxzeXNfcmVjdigpOwotaW50CXN5c19zZW5kbXNnKCksc3lzX3JlY3Ztc2coKSxzeXNfc2h1dGRvd24oKSxzeXNfc2V0c29ja29wdCgpLHN5c19nZXRzb2Nrb3B0KCk7Ci1pbnQJc3lzX2dldHNvY2tuYW1lKCksc3lzX2dldHBlZXJuYW1lKCksc3lzX3BpcGUoKTsKLQotaW50IHN5c19zZXRyZXN1aWQoKSwgc3lzX3NldHJlc2dpZCgpLCBzeXNfZ2V0cmVzdWlkKCksIHN5c19nZXRyZXNnaWQoKSwgc3lzX3ByZWFkKCk7Ci1pbnQgc3lzX3B3cml0ZSgpLCBzeXNfZ2V0Y3dkKCk7Ci1pbnQgc3lzX3NpZ2FsdHN0YWNrKCksIHN5c19ydF9zaWdwcm9jbWFzaygpLCBzeXNfcnRfc2lnYWN0aW9uKCk7Ci1pbnQgc3lzX3J0X3NpZ3BlbmRpbmcoKSwgc3lzX3J0X3NpZ3N1c3BlbmQoKSwgc3lzX3J0X3NpZ3F1ZXVlaW5mbygpOwotaW50IHN5c19ydF9zaWd0aW1lZHdhaXQoKSwgc3lzX3ByY3RsKCksIHN5c19wb2xsKCk7Ci1pbnQgc3lzX3NlbmRmaWxlKCksIHN5c19xdWVyeV9tb2R1bGUoKSwgc3lzX2NhcGdldCgpLCBzeXNfY2Fwc2V0KCk7Ci1pbnQgc3lzX2NyZWF0ZV9tb2R1bGUoKSwgc3lzX2luaXRfbW9kdWxlKCk7Ci0KLWludAlzeXNfdW1hc2soKTsJCS8qIFhYWCAqLwotCi1pbnQgc3lzX3NjaGVkX3NldHBhcmFtKCksIHN5c19zY2hlZF9nZXRwYXJhbSgpOwotaW50IHN5c19zY2hlZF9zZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfeWllbGQoKTsKLWludCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCgpLCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigpOwotCi0vKiAyLjMuMSBTeXN0ZW1WLWNvbXBhdGlibGUgSVBDICovCi1pbnQJc3lzX3NlbXN5cygpLCBzeXNfc2VtY3RsKCksIHN5c19zZW1nZXQoKTsKLSNkZWZpbmUgU1lTX3NlbXN5c19zdWJjYWxsCTIwMAotI2RlZmluZSBTWVNfc2Vtc3lzX25zdWJjYWxscwkzCi0jZGVmaW5lIFNZU19zZW1jdGwJCShTWVNfc2Vtc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTWVNfc2VtZ2V0CQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX3NlbW9wCQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMikKLWludAlzeXNfbXNnc3lzKCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dzbmQoKTsKLSNkZWZpbmUgU1lTX21zZ3N5c19zdWJjYWxsCTIwMwotI2RlZmluZSBTWVNfbXNnc3lzX25zdWJjYWxscwk0Ci0jZGVmaW5lIFNZU19tc2dnZXQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTWVNfbXNnY3RsCQkoU1lTX21zZ3N5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX21zZ3JjdgkJKFNZU19tc2dzeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19tc2dzbmQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAzKQotaW50CXN5c19zaG1zeXMoKSwgc3lzX3NobWF0KCksIHN5c19zaG1jdGwoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKTsKLSNkZWZpbmUgU1lTX3NobXN5c19zdWJjYWxsCTIwNwotI2RlZmluZSBTWVNfc2htc3lzX25zdWJjYWxscwk0Ci0jZGVmaW5lCVNZU19zaG1hdAkJKFNZU19zaG1zeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNZU19zaG1jdGwJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfc2htZHQJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc2htZ2V0CQkoU1lTX3NobXN5c19zdWJjYWxsICsgMykKLQotLyogMi40IHByb2Nlc3NlcyAqLwotaW50CXN5c19wdHJhY2UoKTsKLQotLyogMi41IHRlcm1pbmFscyAqLwotCi0vKiBlbXVsYXRpb25zIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwotaW50CXN5c19vdGltZSgpOwkJLyogbm93IHVzZSBnZXR0aW1lb2ZkYXkgKi8KLWludAlzeXNfb3N0aW1lKCk7CQkvKiBub3cgdXNlIHNldHRpbWVvZmRheSAqLwotaW50CXN5c19vYWxhcm0oKTsJCS8qIG5vdyB1c2Ugc2V0aXRpbWVyICovCi1pbnQJc3lzX291dGltZSgpOwkJLyogbm93IHVzZSB1dGltZXMgKi8KLWludAlzeXNfb3BhdXNlKCk7CQkvKiBub3cgdXNlIHNpZ3BhdXNlICovCi1pbnQJc3lzX29uaWNlKCk7CQkvKiBub3cgdXNlIHNldHByaW9yaXR5LGdldHByaW9yaXR5ICovCi1pbnQJc3lzX29mdGltZSgpOwkJLyogbm93IHVzZSBnZXR0aW1lb2ZkYXkgKi8KLWludAlzeXNfb3NldHBncnAoKTsJCS8qID8/PyAqLwotaW50CXN5c19vdGltZXMoKTsJCS8qIG5vdyB1c2UgZ2V0cnVzYWdlICovCi1pbnQJc3lzX29zc2lnKCk7CQkvKiBub3cgdXNlIHNpZ3ZlYywgZXRjICovCi1pbnQJc3lzX292bGltaXQoKTsJCS8qIG5vdyB1c2Ugc2V0cmxpbWl0LGdldHJsaW1pdCAqLwotaW50CXN5c19vdnRpbWVzKCk7CQkvKiBub3cgdXNlIGdldHJ1c2FnZSAqLwotaW50CXN5c19vc2V0dWlkKCk7CQkvKiBub3cgdXNlIHNldHJldWlkICovCi1pbnQJc3lzX29zZXRnaWQoKTsJCS8qIG5vdyB1c2Ugc2V0cmVnaWQgKi8KLWludAlzeXNfb3N0YXQoKTsJCS8qIG5vdyB1c2Ugc3RhdCAqLwotaW50CXN5c19vZnN0YXQoKTsJCS8qIG5vdyB1c2UgZnN0YXQgKi8KLQotLyogQkVHSU4gSlVOSyAqLwotaW50CXN5c19wcm9maWwoKTsJCS8qICdjdXogc3lzIGNhbGxzIGFyZSBpbnRlcnJ1cHRpYmxlICovCi1pbnQJc3lzX3ZoYW5ndXAoKTsJCS8qIHNob3VsZCBqdXN0IGRvIGluIHN5c19leGl0KCkgKi8KLWludAlzeXNfdmZvcmsoKTsJCS8qIFhYWCAtIHdhcyBhd2FpdGluZyBmb3JrIHcvIGNvcHkgb24gd3JpdGUgKi8KLWludAlzeXNfb3ZhZHZpc2UoKTsJCS8qIGF3YWl0aW5nIG5ldyBtYWR2aXNlICovCi1pbnQJc3lzX2luZGlyKCk7CQkvKiBpbmRpcmVjdCBzeXN0ZW0gY2FsbCAqLwotaW50CXN5c191c3RhdCgpOwkJLyogU3lzdGVtIFYgY29tcGF0aWJpbGl0eSAqLwotaW50CXN5c19vd2FpdCgpOwkJLyogc2hvdWxkIHVzZSB3YWl0NCBpbnRlcmZhY2UgKi8KLWludAlzeXNfb3dhaXQzKCk7CQkvKiBzaG91bGQgdXNlIHdhaXQ0IGludGVyZmFjZSAqLwotaW50CXN5c191bW91bnQoKTsJCS8qIHN0aWxsIG1vcmUgU3lzIFYgKGFuZCA0LjI/KSBjb21wYXRpYmlsaXR5ICovCi1pbnQJc3lzX3Vtb3VudDIoKTsKLWludAlzeXNfcGF0aGNvbmYoKTsJCS8qIHBvc2l4ICovCi1pbnQJc3lzX2ZwYXRoY29uZigpOwkJLyogcG9zaXggKi8KLWludAlzeXNfc3lzY29uZigpOwkJLyogcG9zaXggKi8KLWludCAgICAgc3lzX2RlbGV0ZV9tb2R1bGUoKTsKLWludCBzeXNfZGVidWcoKTsKLS8qIEVORCBKVU5LICovCi0KLWludAlzeXNfdnRyYWNlKCk7CQkvKiBrZXJuZWwgZXZlbnQgdHJhY2luZyAqLwotCi0vKiBuZnMgKi8KLWludAlzeXNfYXN5bmNfZGFlbW9uKCk7CQkvKiBjbGllbnQgYXN5bmMgZGFlbW9uICovCi1pbnQJc3lzX25mc19zdmMoKTsJCS8qIHJ1biBuZnMgc2VydmVyICovCi1pbnQJc3lzX25mc19nZXRmaCgpOwkJLyogZ2V0IGZpbGUgaGFuZGxlICovCi1pbnQJc3lzX2V4cG9ydGZzKCk7CQkvKiBleHBvcnQgZmlsZSBzeXN0ZW1zICovCi0KLWludCAgCXN5c19yZnNzeXMoKTsJCS8qIFJGUy1yZWxhdGVkIGNhbGxzICovCi0KLWludAlzeXNfZ2V0bXNnKCk7Ci1pbnQJc3lzX3B1dG1zZygpOwotaW50CXN5c19wb2xsKCk7Ci0KLWludAlzeXNfdnBpeHN5cygpOwkJLyogVlAvaXggc3lzdGVtIGNhbGxzICovCi0KLWludAlzeXNfc2VuZGZpbGU2NCgpLCBzeXNfZnV0ZXgoKSwgc3lzX2dldHRpZCgpLCBzeXNfc2NoZWRfc2V0YWZmaW5pdHkoKTsKLWludAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHkoKSwgc3lzX3NldHhhdHRyKCksIHN5c19sc2V0eGF0dHIoKTsKLWludAlzeXNfZnNldHhhdHRyKCksIHN5c19nZXR4YXR0cigpLCBzeXNfbGdldHhhdHRyKCksIHN5c19mZ2V0eGF0dHIoKTsKLWludAlzeXNfbGlzdHhhdHRyKCksIHN5c19sbGlzdHhhdHRyKCksIHN5c19mbGlzdHhhdHRyKCk7Ci1pbnQJc3lzX3JlbW92ZXhhdHRyKCksIHN5c19scmVtb3ZleGF0dHIoKSwgc3lzX2ZyZW1vdmV4YXR0cigpOwotaW50CXN5c19yZW1hcF9maWxlX3BhZ2VzKCksIHN5c19yZWFkYWhlYWQoKSwgc3lzX3Rna2lsbCgpLCBzeXNfc3RhdGZzNjQoKTsKLWludAlzeXNfZnN0YXRmczY0KCksIHN5c19jbG9ja19zZXR0aW1lKCksIHN5c19jbG9ja19nZXR0aW1lKCk7Ci1pbnQJc3lzX2Nsb2NrX2dldHJlcygpLCBzeXNfY2xvY2tfbmFub3NsZWVwKCk7Ci1pbnQJc3lzX3RpbWVyX2NyZWF0ZSgpLCBzeXNfdGltZXJfc2V0dGltZSgpLCBzeXNfdGltZXJfZ2V0dGltZSgpOwotCi0jaW5jbHVkZSAic3lzY2FsbDEuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmguMiBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmguMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBjMGJjYS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbC5oLjIKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbC5oLjIsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjM6MTQgd2ljaGVydCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkdW1teS5oIgotCi0vKiBwcmltYXJ5IHN5c2NhbGxzICovCi0KLWludCBzeXNfc2V0dXAoKSwgc3lzX2V4aXQoKSwgc3lzX2ZvcmsoKSwgc3lzX3JlYWQoKSwgc3lzX3dyaXRlKCk7Ci1pbnQgc3lzX29wZW4oKSwgc3lzX2Nsb3NlKCksIHN5c193YWl0cGlkKCksIHN5c19jcmVhdCgpLCBzeXNfbGluaygpOwotaW50IHN5c191bmxpbmsoKSwgc3lzX2V4ZWN2ZSgpLCBzeXNfY2hkaXIoKSwgc3lzX3RpbWUoKSwgc3lzX21rbm9kKCk7Ci1pbnQgc3lzX2NobW9kKCksIHN5c19jaG93bigpLCBzeXNfYnJlYWsoKSwgc3lzX29sZHN0YXQoKTsKLWludCBzeXNfbHNlZWsoKSwgc3lzX2dldHBpZCgpLCBzeXNfbW91bnQoKSwgc3lzX3Vtb3VudCgpOwotaW50IHN5c19zZXR1aWQoKSwgc3lzX2dldHVpZCgpLCBzeXNfc3RpbWUoKSwgc3lzX3B0cmFjZSgpOwotaW50IHN5c19hbGFybSgpLCBzeXNfb2xkZnN0YXQoKSwgc3lzX3BhdXNlKCksIHN5c191dGltZSgpOwotaW50IHN5c19zdHR5KCksIHN5c19ndHR5KCksIHN5c19hY2Nlc3MoKSwgc3lzX25pY2UoKSwgc3lzX2Z0aW1lKCk7Ci1pbnQgc3lzX3N5bmMoKSwgc3lzX2tpbGwoKSwgc3lzX3JlbmFtZSgpLCBzeXNfbWtkaXIoKSwgc3lzX3JtZGlyKCk7Ci1pbnQgc3lzX2R1cCgpLCBzeXNfcGlwZSgpLCBzeXNfdGltZXMoKSwgc3lzX3Byb2YoKSwgc3lzX2JyaygpOwotaW50IHN5c19zZXRnaWQoKSwgc3lzX2dldGdpZCgpLCBzeXNfc2lnbmFsKCksIHN5c19nZXRldWlkKCk7Ci1pbnQgc3lzX2dldGVnaWQoKSwgc3lzX2FjY3QoKSwgc3lzX3BoeXMoKSwgc3lzX2xvY2soKSwgc3lzX2lvY3RsKCk7Ci1pbnQgc3lzX2ZjbnRsKCksIHN5c19tcHgoKSwgc3lzX3NldHBnaWQoKSwgc3lzX3VsaW1pdCgpOwotaW50IHN5c19vbGR1bmFtZSgpLCBzeXNfdW1hc2soKSwgc3lzX2Nocm9vdCgpLCBzeXNfdXN0YXQoKTsKLWludCBzeXNfZHVwMigpLCBzeXNfZ2V0cHBpZCgpLCBzeXNfZ2V0cGdycCgpLCBzeXNfc2V0c2lkKCk7Ci1pbnQgc3lzX3NpZ2FjdGlvbigpLCBzeXNfc2lnZ2V0bWFzaygpLCBzeXNfc2lnc2V0bWFzaygpOwotaW50IHN5c19zZXRyZXVpZCgpLCBzeXNfc2V0cmVnaWQoKSwgc3lzX3NpZ3N1c3BlbmQoKTsKLWludCBzeXNfc2lncGVuZGluZygpLCBzeXNfc2V0aG9zdG5hbWUoKSwgc3lzX3NldHJsaW1pdCgpOwotaW50IHN5c19nZXRybGltaXQoKSwgc3lzX2dldHJ1c2FnZSgpLCBzeXNfZ2V0dGltZW9mZGF5KCk7Ci1pbnQgc3lzX3NldHRpbWVvZmRheSgpLCBzeXNfZ2V0Z3JvdXBzKCksIHN5c19zZXRncm91cHMoKTsKLWludCBzeXNfb2xkc2VsZWN0KCksIHN5c19zeW1saW5rKCksIHN5c19vbGRsc3RhdCgpLCBzeXNfcmVhZGxpbmsoKTsKLWludCBzeXNfdXNlbGliKCksIHN5c19zd2Fwb24oKSwgc3lzX3JlYm9vdCgpLCBzeXNfcmVhZGRpcigpOwotaW50IHN5c19tbWFwKCksIHN5c19tdW5tYXAoKSwgc3lzX3RydW5jYXRlKCksIHN5c19mdHJ1bmNhdGUoKTsKLWludCBzeXNfZmNobW9kKCksIHN5c19mY2hvd24oKSwgc3lzX2dldHByaW9yaXR5KCk7Ci1pbnQgc3lzX3NldHByaW9yaXR5KCksIHN5c19wcm9maWwoKSwgc3lzX3N0YXRmcygpLCBzeXNfZnN0YXRmcygpOwotaW50IHN5c19pb3Blcm0oKSwgc3lzX3NvY2tldGNhbGwoKSwgc3lzX3N5c2xvZygpLCBzeXNfc2V0aXRpbWVyKCk7Ci1pbnQgc3lzX2dldGl0aW1lcigpLCBzeXNfc3RhdCgpLCBzeXNfbHN0YXQoKSwgc3lzX2ZzdGF0KCk7Ci1pbnQgc3lzX3VuYW1lKCksIHN5c19pb3BsKCksIHN5c192aGFuZ3VwKCksIHN5c19pZGxlKCksIHN5c192bTg2KCk7Ci1pbnQgc3lzX3dhaXQ0KCksIHN5c19zd2Fwb2ZmKCksIHN5c19pcGMoKSwgc3lzX3NpZ3JldHVybigpOwotaW50IHN5c19mc3luYygpLCBzeXNfY2xvbmUoKSwgc3lzX3NldGRvbWFpbm5hbWUoKSwgc3lzX3N5c2luZm8oKTsKLWludCBzeXNfbW9kaWZ5X2xkdCgpLCBzeXNfYWRqdGltZXgoKSwgc3lzX21wcm90ZWN0KCk7Ci1pbnQgc3lzX3NpZ3Byb2NtYXNrKCksIHN5c19jcmVhdGVfbW9kdWxlKCksIHN5c19pbml0X21vZHVsZSgpOwotaW50IHN5c19kZWxldGVfbW9kdWxlKCksIHN5c19nZXRfa2VybmVsX3N5bXMoKSwgc3lzX3F1b3RhY3RsKCk7Ci1pbnQgc3lzX2dldHBnaWQoKSwgc3lzX2ZjaGRpcigpLCBzeXNfYmRmbHVzaCgpOwotaW50IHN5c19zeXNmcygpLCBzeXNfcGVyc29uYWxpdHkoKSwgc3lzX2Fmc19zeXNjYWxsKCk7Ci1pbnQgc3lzX3NldGZzdWlkKCksIHN5c19zZXRmc2dpZCgpLCBzeXNfbGxzZWVrKCk7Ci1pbnQgc3lzX2dldGRlbnRzKCksIHN5c19mbG9jaygpLCBzeXNfbXN5bmMoKTsKLWludCBzeXNfcmVhZHYoKSwgc3lzX3dyaXRldigpLCBzeXNfc2VsZWN0KCk7Ci1pbnQgc3lzX2dldHNpZCgpLCBzeXNfZmRhdGFzeW5jKCksIHN5c19zeXNjdGwoKTsKLWludCBzeXNfbWxvY2soKSwgc3lzX211bmxvY2soKSwgc3lzX21sb2NrYWxsKCksIHN5c19tdW5sb2NrYWxsKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHBhcmFtKCksIHN5c19zY2hlZF9nZXRwYXJhbSgpOwotaW50IHN5c19zY2hlZF9zZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfeWllbGQoKTsKLWludCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCgpLCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigpOwotaW50IHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKSwgc3lzX25hbm9zbGVlcCgpLCBzeXNfbXJlbWFwKCk7Ci1pbnQgc3lzX3NlbmRtc2coKSwgc3lzX3JlY3Ztc2coKTsKLQotLyogc3lzX3NvY2tldGNhbGwgc3ViY2FsbHMgKi8KLQotaW50IHN5c19zb2NrZXQoKSwgc3lzX2JpbmQoKSwgc3lzX2Nvbm5lY3QoKSwgc3lzX2xpc3RlbigpOwotaW50IHN5c19hY2NlcHQoKSwgc3lzX2dldHNvY2tuYW1lKCksIHN5c19nZXRwZWVybmFtZSgpLCBzeXNfc29ja2V0cGFpcigpOwotaW50IHN5c19zZW5kKCksIHN5c19yZWN2KCksIHN5c19zZW5kdG8oKSwgc3lzX3JlY3Zmcm9tKCk7Ci1pbnQgc3lzX3NodXRkb3duKCksIHN5c19zZXRzb2Nrb3B0KCksIHN5c19nZXRzb2Nrb3B0KCk7Ci0KLSNpZm5kZWYgQUxQSEEKLSNkZWZpbmUgU1lTX3NvY2tldF9zdWJjYWxsCTE4MAotI2RlZmluZSBTWVNfc29ja2V0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX2JpbmQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfY29ubmVjdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNZU19saXN0ZW4JCShTWVNfc29ja2V0X3N1YmNhbGwgKyA0KQotI2RlZmluZSBTWVNfYWNjZXB0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNSkKLSNkZWZpbmUgU1lTX2dldHNvY2tuYW1lCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNikKLSNkZWZpbmUgU1lTX2dldHBlZXJuYW1lCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNykKLSNkZWZpbmUgU1lTX3NvY2tldHBhaXIJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA4KQotI2RlZmluZSBTWVNfc2VuZAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDkpCi0jZGVmaW5lIFNZU19yZWN2CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTApCi0jZGVmaW5lIFNZU19zZW5kdG8JCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMSkKLSNkZWZpbmUgU1lTX3JlY3Zmcm9tCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTIpCi0jZGVmaW5lIFNZU19zaHV0ZG93bgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDEzKQotI2RlZmluZSBTWVNfc2V0c29ja29wdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE0KQotI2RlZmluZSBTWVNfZ2V0c29ja29wdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE1KQotCi0jZGVmaW5lIFNZU19zb2NrZXRfbnN1YmNhbGxzCTE2Ci0jZW5kaWYgLyogIUFMUEhBICovCi0KLS8qIHN5c19pcGMgc3ViY2FsbHMgKi8KLQotaW50IHN5c19zZW1nZXQoKSwgc3lzX3NlbWN0bCgpOwotaW50IHN5c19tc2dzbmQoKSwgc3lzX21zZ3JjdigpLCBzeXNfbXNnZ2V0KCksIHN5c19tc2djdGwoKTsKLWludCBzeXNfc2htYXQoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKSwgc3lzX3NobWN0bCgpOwotCi0jaWZuZGVmIEFMUEhBCi0jZGVmaW5lIFNZU19pcGNfc3ViY2FsbAkJMjAwCi0jZGVmaW5lIFNZU19zZW1vcAkJKFNZU19pcGNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNZU19zZW1nZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc2VtY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMykKLSNkZWZpbmUgU1lTX21zZ3NuZAkJKFNZU19pcGNfc3ViY2FsbCArIDExKQotI2RlZmluZSBTWVNfbXNncmN2CQkoU1lTX2lwY19zdWJjYWxsICsgMTIpCi0jZGVmaW5lIFNZU19tc2dnZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAxMykKLSNkZWZpbmUgU1lTX21zZ2N0bAkJKFNZU19pcGNfc3ViY2FsbCArIDE0KQotI2RlZmluZSBTWVNfc2htYXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMSkKLSNkZWZpbmUgU1lTX3NobWR0CQkoU1lTX2lwY19zdWJjYWxsICsgMjIpCi0jZGVmaW5lIFNZU19zaG1nZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMykKLSNkZWZpbmUgU1lTX3NobWN0bAkJKFNZU19pcGNfc3ViY2FsbCArIDI0KQotCi0jZGVmaW5lIFNZU19pcGNfbnN1YmNhbGxzCTI1Ci0jZW5kaWYgLyogQUxQSEEgKi8KLQotI2lmZGVmIEFMUEhBCi1pbnQgb3NmX3N0YXRmcygpLCBvc2ZfZnN0YXRmcygpLCBzeXNfZ2V0cGFnZXNpemUoKSwgc3lzX21hZHZpc2UoKTsKLWludCBzeXNfc2V0cGdycCgpLCBzeXNfZ2V0aG9zdG5hbWUoKSwgc3lzX2dldGR0YWJsZXNpemUoKSwgc3lzX3V0aW1lcygpOwotI2VuZGlmCi0KLWludCBzeXNfX2xsc2VlaygpLCBzeXNfX25ld3NlbGVjdCgpLCBzeXNfX3N5c2N0bCgpLCBzeXNfa2xvZygpOwotaW50IHN5c19wcmV2X2ZzdGF0KCksIHN5c19wcmV2X2xzdGF0KCksIHN5c19wcmV2X21rbm9kKCksIHN5c19wcmV2X3N0YXQoKTsKLWludCBzeXNfcHJldl91c3RhdCgpLCBzeXNfc3lzY2FsbF9mbG9jaygpLCBzeXNfc3lzY2FsbF9yZWFkdigpOwotaW50IHN5c19zeXNjYWxsX3dyaXRldigpOwotCi0jaW5jbHVkZSAic3lzY2FsbDEuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsMS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZDc2MjQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwxLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbDEuaCx2IDEuMS4xLjEgMTk5OS8wMi8xOSAwMDoyMzoxNiB3aWNoZXJ0IEV4cCAkCi0gKi8KLQotI2RlZmluZQlTT0xBUklTX3N5c2NhbGwJMAotI2RlZmluZQlTT0xBUklTX2V4aXQJMQotI2RlZmluZQlTT0xBUklTX2ZvcmsJMgotI2RlZmluZQlTT0xBUklTX3JlYWQJMwotI2RlZmluZQlTT0xBUklTX3dyaXRlCTQKLSNkZWZpbmUJU09MQVJJU19vcGVuCTUKLSNkZWZpbmUJU09MQVJJU19jbG9zZQk2Ci0jZGVmaW5lCVNPTEFSSVNfd2FpdAk3Ci0jZGVmaW5lCVNPTEFSSVNfY3JlYXQJOAotI2RlZmluZQlTT0xBUklTX2xpbmsJOQotI2RlZmluZQlTT0xBUklTX3VubGluawkxMAotI2RlZmluZQlTT0xBUklTX2V4ZWMJMTEKLSNkZWZpbmUJU09MQVJJU19jaGRpcgkxMgotI2RlZmluZQlTT0xBUklTX3RpbWUJMTMKLSNkZWZpbmUJU09MQVJJU19ta25vZAkxNAotI2RlZmluZQlTT0xBUklTX2NobW9kCTE1Ci0jZGVmaW5lCVNPTEFSSVNfY2hvd24JMTYKLSNkZWZpbmUJU09MQVJJU19icmsJCTE3Ci0jZGVmaW5lCVNPTEFSSVNfc3RhdAkxOAotI2RlZmluZQlTT0xBUklTX2xzZWVrCTE5Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0cGlkCTIwCi0jZGVmaW5lCVNPTEFSSVNfbW91bnQJMjEKLSNkZWZpbmUJU09MQVJJU191bW91bnQJMjIKLSNkZWZpbmUJU09MQVJJU19zZXR1aWQJMjMKLSNkZWZpbmUJU09MQVJJU19nZXR1aWQJMjQKLSNkZWZpbmUJU09MQVJJU19zdGltZQkyNQotI2RlZmluZQlTT0xBUklTX3B0cmFjZQkyNgotI2RlZmluZQlTT0xBUklTX2FsYXJtCTI3Ci0jZGVmaW5lCVNPTEFSSVNfZnN0YXQJMjgKLSNkZWZpbmUJU09MQVJJU19wYXVzZQkyOQotI2RlZmluZQlTT0xBUklTX3V0aW1lCTMwCi0jZGVmaW5lCVNPTEFSSVNfc3R0eQkzMQotI2RlZmluZQlTT0xBUklTX2d0dHkJMzIKLSNkZWZpbmUJU09MQVJJU19hY2Nlc3MJMzMKLSNkZWZpbmUJU09MQVJJU19uaWNlCTM0Ci0jZGVmaW5lCVNPTEFSSVNfc3RhdGZzCTM1Ci0jZGVmaW5lCVNPTEFSSVNfc3luYwkzNgotI2RlZmluZQlTT0xBUklTX2tpbGwJMzcKLSNkZWZpbmUJU09MQVJJU19mc3RhdGZzCTM4Ci0jZGVmaW5lCVNPTEFSSVNfcGdycHN5cwkzOQotI2RlZmluZQlTT0xBUklTX3hlbml4CTQwCi0jZGVmaW5lCVNPTEFSSVNfZHVwCQk0MQotI2RlZmluZQlTT0xBUklTX3BpcGUJNDIKLSNkZWZpbmUJU09MQVJJU190aW1lcwk0MwotI2RlZmluZQlTT0xBUklTX3Byb2ZpbAk0NAotI2RlZmluZQlTT0xBUklTX3Bsb2NrCTQ1Ci0jZGVmaW5lCVNPTEFSSVNfc2V0Z2lkCTQ2Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0Z2lkCTQ3Ci0jZGVmaW5lCVNPTEFSSVNfc2lnbmFsCTQ4Ci0jZGVmaW5lCVNPTEFSSVNfbXNnc3lzCTQ5Ci0jZGVmaW5lCVNPTEFSSVNfc3lzc3VuCTUwCi0jZGVmaW5lCVNPTEFSSVNfYWNjdAk1MQotI2RlZmluZQlTT0xBUklTX3NobXN5cwk1MgotI2RlZmluZQlTT0xBUklTX3NlbXN5cwk1MwotI2RlZmluZQlTT0xBUklTX2lvY3RsCTU0Ci0jZGVmaW5lCVNPTEFSSVNfdWFkbWluCTU1Ci0jZGVmaW5lCVNPTEFSSVNfdXRzc3lzCTU3Ci0jZGVmaW5lCVNPTEFSSVNfZmRzeW5jCTU4Ci0jZGVmaW5lCVNPTEFSSVNfZXhlY3ZlCTU5Ci0jZGVmaW5lCVNPTEFSSVNfdW1hc2sJNjAKLSNkZWZpbmUJU09MQVJJU19jaHJvb3QJNjEKLSNkZWZpbmUJU09MQVJJU19mY250bAk2MgotI2RlZmluZQlTT0xBUklTX3VsaW1pdAk2MwotI2RlZmluZQlTT0xBUklTX3JtZGlyCTc5Ci0jZGVmaW5lCVNPTEFSSVNfbWtkaXIJODAKLSNkZWZpbmUJU09MQVJJU19nZXRkZW50cwk4MQotI2RlZmluZQlTT0xBUklTX3N5c2ZzCTg0Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0bXNnCTg1Ci0jZGVmaW5lCVNPTEFSSVNfcHV0bXNnCTg2Ci0jZGVmaW5lCVNPTEFSSVNfcG9sbAk4NwotI2RlZmluZQlTT0xBUklTX2xzdGF0CTg4Ci0jZGVmaW5lCVNPTEFSSVNfc3ltbGluawk4OQotI2RlZmluZQlTT0xBUklTX3JlYWRsaW5rCTkwCi0jZGVmaW5lCVNPTEFSSVNfc2V0Z3JvdXBzCTkxCi0jZGVmaW5lCVNPTEFSSVNfZ2V0Z3JvdXBzCTkyCi0jZGVmaW5lCVNPTEFSSVNfZmNobW9kCTkzCi0jZGVmaW5lCVNPTEFSSVNfZmNob3duCTk0Ci0jZGVmaW5lCVNPTEFSSVNfc2lncHJvY21hc2sJOTUKLSNkZWZpbmUJU09MQVJJU19zaWdzdXNwZW5kCTk2Ci0jZGVmaW5lCVNPTEFSSVNfc2lnYWx0c3RhY2sJOTcKLSNkZWZpbmUJU09MQVJJU19zaWdhY3Rpb24JOTgKLSNkZWZpbmUJU09MQVJJU19zaWdwZW5kaW5nCTk5Ci0jZGVmaW5lCVNPTEFSSVNfY29udGV4dAkxMDAKLSNkZWZpbmUJU09MQVJJU19ldnN5cwkxMDEKLSNkZWZpbmUJU09MQVJJU19ldnRyYXByZXQJMTAyCi0jZGVmaW5lCVNPTEFSSVNfc3RhdHZmcwkxMDMKLSNkZWZpbmUJU09MQVJJU19mc3RhdHZmcwkxMDQKLSNkZWZpbmUJU09MQVJJU19uZnNzeXMJMTA2Ci0jZGVmaW5lCVNPTEFSSVNfd2FpdHN5cwkxMDcKLSNkZWZpbmUJU09MQVJJU19zaWdzZW5kc3lzCTEwOAotI2RlZmluZQlTT0xBUklTX2hydHN5cwkxMDkKLSNkZWZpbmUJU09MQVJJU19hY2FuY2VsCTExMAotI2RlZmluZQlTT0xBUklTX2FzeW5jCTExMQotI2RlZmluZQlTT0xBUklTX3ByaW9jbnRsc3lzCTExMgotI2RlZmluZQlTT0xBUklTX3BhdGhjb25mCTExMwotI2RlZmluZQlTT0xBUklTX21pbmNvcmUJMTE0Ci0jZGVmaW5lCVNPTEFSSVNfbW1hcAkxMTUKLSNkZWZpbmUJU09MQVJJU19tcHJvdGVjdAkxMTYKLSNkZWZpbmUJU09MQVJJU19tdW5tYXAJMTE3Ci0jZGVmaW5lCVNPTEFSSVNfZnBhdGhjb25mCTExOAotI2RlZmluZQlTT0xBUklTX3Zmb3JrCTExOQotI2RlZmluZQlTT0xBUklTX2ZjaGRpcgkxMjAKLSNkZWZpbmUJU09MQVJJU19yZWFkdgkxMjEKLSNkZWZpbmUJU09MQVJJU193cml0ZXYJMTIyCi0jZGVmaW5lCVNPTEFSSVNfeHN0YXQJMTIzCi0jZGVmaW5lCVNPTEFSSVNfbHhzdGF0CTEyNAotI2RlZmluZQlTT0xBUklTX2Z4c3RhdAkxMjUKLSNkZWZpbmUJU09MQVJJU194bWtub2QJMTI2Ci0jZGVmaW5lCVNPTEFSSVNfY2xvY2FsCTEyNwotI2RlZmluZQlTT0xBUklTX3NldHJsaW1pdAkxMjgKLSNkZWZpbmUJU09MQVJJU19nZXRybGltaXQJMTI5Ci0jZGVmaW5lCVNPTEFSSVNfbGNob3duCTEzMAotI2RlZmluZQlTT0xBUklTX21lbWNudGwJMTMxCi0jZGVmaW5lCVNPTEFSSVNfZ2V0cG1zZwkxMzIKLSNkZWZpbmUJU09MQVJJU19wdXRwbXNnCTEzMwotI2RlZmluZQlTT0xBUklTX3JlbmFtZQkxMzQKLSNkZWZpbmUJU09MQVJJU191bmFtZQkxMzUKLSNkZWZpbmUJU09MQVJJU19zZXRlZ2lkCTEzNgotI2RlZmluZQlTT0xBUklTX3N5c2NvbmZpZwkxMzcKLSNkZWZpbmUJU09MQVJJU19hZGp0aW1lCTEzOAotI2RlZmluZQlTT0xBUklTX3N5c3RlbWluZm8JMTM5Ci0jZGVmaW5lCVNPTEFSSVNfc2V0ZXVpZAkxNDEKLSNkZWZpbmUJU09MQVJJU192dHJhY2UJMTQyCi0jZGVmaW5lCVNPTEFSSVNfZm9yazEJMTQzCi0jZGVmaW5lCVNPTEFSSVNfc2lndGltZWR3YWl0CTE0NAotI2RlZmluZQlTT0xBUklTX2x3cF9pbmZvCTE0NQotI2RlZmluZQlTT0xBUklTX3lpZWxkCTE0NgotI2RlZmluZQlTT0xBUklTX2x3cF9zZW1hX3dhaXQJMTQ3Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3NlbWFfcG9zdAkxNDgKLSNkZWZpbmUJU09MQVJJU19tb2RjdGwJMTUyCi0jZGVmaW5lCVNPTEFSSVNfZmNocm9vdAkxNTMKLSNkZWZpbmUJU09MQVJJU191dGltZXMJMTU0Ci0jZGVmaW5lCVNPTEFSSVNfdmhhbmd1cAkxNTUKLSNkZWZpbmUJU09MQVJJU19nZXR0aW1lb2ZkYXkJMTU2Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0aXRpbWVyCQkxNTcKLSNkZWZpbmUJU09MQVJJU19zZXRpdGltZXIJCTE1OAotI2RlZmluZQlTT0xBUklTX2x3cF9jcmVhdGUJCTE1OQotI2RlZmluZQlTT0xBUklTX2x3cF9leGl0CQkxNjAKLSNkZWZpbmUJU09MQVJJU19sd3Bfc3VzcGVuZAkJMTYxCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbnRpbnVlCTE2MgotI2RlZmluZQlTT0xBUklTX2x3cF9raWxsCQkxNjMKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2VsZgkJMTY0Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3NldHByaXZhdGUJMTY1Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2dldHByaXZhdGUJMTY2Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3dhaXQJCTE2NwotI2RlZmluZQlTT0xBUklTX2x3cF9tdXRleF91bmxvY2sJMTY4Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX211dGV4X2xvY2sJMTY5Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfd2FpdAkxNzAKLSNkZWZpbmUJU09MQVJJU19sd3BfY29uZF9zaWduYWwJMTcxCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfYnJvYWRjYXN0CTE3MgotI2RlZmluZQlTT0xBUklTX3ByZWFkCQkxNzMKLSNkZWZpbmUJU09MQVJJU19wd3JpdGUJCTE3NAotI2RlZmluZQlTT0xBUklTX2xsc2VlawkJMTc1Ci0jZGVmaW5lCVNPTEFSSVNfaW5zdF9zeW5jCQkxNzYKLSNkZWZpbmUJU09MQVJJU19rYWlvCQkxNzgKLSNkZWZpbmUJU09MQVJJU190c29sc3lzCQkxODQKLSNkZWZpbmUJU09MQVJJU19hY2wJCQkxODUKLSNkZWZpbmUJU09MQVJJU19hdWRpdHN5cwkJMTg2Ci0jZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2JpbmQJMTg3Ci0jZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2luZm8JMTg4Ci0jZGVmaW5lCVNPTEFSSVNfcF9vbmxpbmUJCTE4OQotI2RlZmluZQlTT0xBUklTX3NpZ3F1ZXVlCQkxOTAKLSNkZWZpbmUJU09MQVJJU19jbG9ja19nZXR0aW1lCTE5MQotI2RlZmluZQlTT0xBUklTX2Nsb2NrX3NldHRpbWUJMTkyCi0jZGVmaW5lCVNPTEFSSVNfY2xvY2tfZ2V0cmVzCTE5MwotI2RlZmluZQlTT0xBUklTX3RpbWVyX2NyZWF0ZQkxOTQKLSNkZWZpbmUJU09MQVJJU190aW1lcl9kZWxldGUJMTk1Ci0jZGVmaW5lCVNPTEFSSVNfdGltZXJfc2V0dGltZQkxOTYKLSNkZWZpbmUJU09MQVJJU190aW1lcl9nZXR0aW1lCTE5NwotI2RlZmluZQlTT0xBUklTX3RpbWVyX2dldG92ZXJydW4JMTk4Ci0jZGVmaW5lCVNPTEFSSVNfbmFub3NsZWVwCQkxOTkKLSNkZWZpbmUJU09MQVJJU19mYWNsCQkyMDAKLSNkZWZpbmUJU09MQVJJU19kb29yCQkyMDEKLSNkZWZpbmUJU09MQVJJU19zZXRyZXVpZAkJMjAyCi0jZGVmaW5lCVNPTEFSSVNfc2V0cmVnaWQJCTIwMwotI2RlZmluZQlTT0xBUklTX3NpZ25vdGlmeXdhaXQJMjEwCi0jZGVmaW5lCVNPTEFSSVNfbHdwX3NpZ3JlZGlyZWN0CTIxMQotI2RlZmluZQlTT0xBUklTX2x3cF9hbGFybQkJMjEyCi0KLSNpbmNsdWRlICJkdW1teTIuaCIKLQotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2NhbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19leGl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZm9yaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc193cml0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX29wZW4oKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9zZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3dhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jcmVhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bmxpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19leGVjKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2hkaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWtub2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaG1vZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nob3duKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYnJrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xzZWVrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cGlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbW91bnQoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bW91bnQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXR1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXR1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B0cmFjZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FsYXJtKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wYXVzZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3V0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3R0eSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2d0dHkoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hY2Nlc3MoKTsKLWV4dGVybiBpbnQgc29sYXJpc19uaWNlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RhdGZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3luYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2tpbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mc3RhdGZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGdycHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldHBncnAoKTsKLWV4dGVybiBpbnQgc29sYXJpc194ZW5peCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c3NnaSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2R1cCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BpcGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Byb2ZpbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Bsb2NrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0Z2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0Z2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnY2FsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21zZ3N5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c3N1bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2k4NigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c21pcHMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNtYWNoaW5lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWNjdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NobXN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NlbXN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2lvY3RsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdWFkbWluKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdXRzc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmRzeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXhlY3ZlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdW1hc2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaHJvb3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY250bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VsaW1pdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JtZGlyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWtkaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRkZW50cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2ZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0bXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHV0bXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcG9sbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3ltbGluaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWRsaW5rKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0Z3JvdXBzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0Z3JvdXBzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNobW9kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNob3duKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lncHJvY21hc2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdzdXNwZW5kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnYWx0c3RhY2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdhY3Rpb24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19zcGNhbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jb250ZXh0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXZzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ldnRyYXByZXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGF0dmZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnN0YXR2ZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19uZnNzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc193YWl0aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdzZW5kc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfaHJ0c3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWNhbmNlbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FzeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJpb2NudGxzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wYXRoY29uZigpOwotZXh0ZXJuIGludCBzb2xhcmlzX21pbmNvcmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tbWFwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbXByb3RlY3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tdW5tYXAoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mcGF0aGNvbmYoKTsKLWV4dGVybiBpbnQgc29sYXJpc192Zm9yaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaGRpcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWR2KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfd3JpdGV2KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19seHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19meHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc194bWtub2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9jYWwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRybGltaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRybGltaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sY2hvd24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19tZW1jbnRsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cG1zZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B1dHBtc2coKTsKLWV4dGVybiBpbnQgc29sYXJpc19yZW5hbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bmFtZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGVnaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNjb25maWcoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hZGp0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzaW5mbygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGV1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc192dHJhY2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mb3JrMSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3RpbWVkd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9pbmZvKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeWllbGQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VtYV93YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbWFfcG9zdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21vZGN0bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaHJvb3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc191dGltZXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc192aGFuZ3VwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0dGltZW9mZGF5KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0aXRpbWVyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0aXRpbWVyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NyZWF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9leGl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3N1c3BlbmQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY29udGludWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfa2lsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZWxmKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NldHByaXZhdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfZ2V0cHJpdmF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF93YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX211dGV4X3VubG9jaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9tdXRleF9sb2NrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbmRfd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3ByZWFkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHdyaXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbGxzZWVrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfaW5zdF9zeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYXVkaXRzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcm9jZXNzb3JfYmluZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcF9vbmxpbmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdxdWV1ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX2dldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9ja19zZXR0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfZ2V0cmVzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfY3JlYXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZGVsZXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfc2V0dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2dldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9nZXRvdmVycnVuKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbmFub3NsZWVwKCk7Ci0KLS8qIHNvbGFyaXNfcGdycHN5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cGdycCgpLCBzb2xhcmlzX3NldHBncnAoKSwgc29sYXJpc19nZXRzaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRzaWQoKSwgc29sYXJpc19nZXRwZ2lkKCksIHNvbGFyaXNfc2V0cGdpZCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfcGdycHN5c19zdWJjYWxsCTMwMAotI2RlZmluZSBTT0xBUklTX2dldHBncnAJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2V0cGdycAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19nZXRzaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfc2V0c2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAzKQotI2RlZmluZSBTT0xBUklTX2dldHBnaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNPTEFSSVNfc2V0cGdpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgNSkKLQotI2RlZmluZSBTT0xBUklTX3BncnBzeXNfbnN1YmNhbGxzCTYKLQotLyogc29sYXJpc19zaWdjYWxsIHN1YmNhbGxzICovCi0KLSN1bmRlZiBTT0xBUklTX3NpZ25hbAotI2RlZmluZSBTT0xBUklTX3NpZ2NhbGwJCTQ4Ci0KLWV4dGVybiBpbnQgc29sYXJpc19zaWduYWwoKSwgc29sYXJpc19zaWdzZXQoKSwgc29sYXJpc19zaWdob2xkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lncmVsc2UoKSwgc29sYXJpc19zaWdpZ25vcmUoKSwgc29sYXJpc19zaWdwYXVzZSgpOwotCi0jZGVmaW5lIFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsCTMxMAotI2RlZmluZSBTT0xBUklTX3NpZ25hbAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zaWdzZXQJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2lnaG9sZAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zaWdyZWxzZQkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMykKLSNkZWZpbmUgU09MQVJJU19zaWdpZ25vcmUJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNPTEFSSVNfc2lncGF1c2UJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDUpCi0KLSNkZWZpbmUgU09MQVJJU19zaWdjYWxsX25zdWJjYWxscwk2Ci0KLS8qIG1zZ3N5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfbXNnZ2V0KCksIHNvbGFyaXNfbXNnY3RsKCksIHNvbGFyaXNfbXNncmN2KCksIHNvbGFyaXNfbXNnc25kKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19tc2dzeXNfc3ViY2FsbAkzMjAKLSNkZWZpbmUgU09MQVJJU19tc2dnZXQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19tc2djdGwJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19tc2dyY3YJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19tc2dzbmQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX21zZ3N5c19uc3ViY2FsbHMJNAotCi0vKiBzaG1zeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX3NobWF0KCksIHNvbGFyaXNfc2htY3RsKCksIHNvbGFyaXNfc2htZHQoKSwgc29sYXJpc19zaG1nZXQoKTsKLQotI2RlZmluZSBTT0xBUklTX3NobXN5c19zdWJjYWxsCTMzMAotI2RlZmluZSBTT0xBUklTX3NobWF0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2htY3RsCQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2htZHQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zaG1nZXQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX3NobXN5c19uc3ViY2FsbHMJNAotCi0vKiBzZW1zeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX3NlbWN0bCgpLCBzb2xhcmlzX3NlbWdldCgpLCBzb2xhcmlzX3NlbW9wKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zZW1zeXNfc3ViY2FsbAkzNDAKLSNkZWZpbmUgU09MQVJJU19zZW1jdGwJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zZW1nZXQJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zZW1vcAkJKFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwgKyAyKQotCi0jZGVmaW5lIFNPTEFSSVNfc2Vtc3lzX25zdWJjYWxscwkzCi0KLS8qIHV0c3N5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfb2xkdW5hbWUoKSwgc29sYXJpc191c3RhdCgpLCBzb2xhcmlzX2Z1c2VycygpOwotCi0jZGVmaW5lIFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwJMzUwCi0KLSNkZWZpbmUgU09MQVJJU19vbGR1bmFtZQkJKFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwgKyAwKQotCQkJCS8qIDEgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfdXN0YXQJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19mdXNlcnMJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX3V0c3N5c19uc3ViY2FsbHMJNAotCi0vKiBzeXNmcyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfc3lzZnMxKCksIHNvbGFyaXNfc3lzZnMyKCksIHNvbGFyaXNfc3lzZnMzKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zeXNmc19zdWJjYWxsCTM2MAotCQkJCS8qIDAgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnMxCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zeXNmczIJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX3N5c2ZzMwkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDMpCi0KLSNkZWZpbmUgU09MQVJJU19zeXNmc19uc3ViY2FsbHMJNAotCi0vKiBzb2xhcmlzX3NwY2FsbCBzdWJjYWxscyAqLwotCi0jdW5kZWYgU09MQVJJU19zaWdwZW5kaW5nCi0jZGVmaW5lIFNPTEFSSVNfc3BjYWxsCQk5OQotCi1leHRlcm4gaW50IHNvbGFyaXNfc2lncGVuZGluZygpLCBzb2xhcmlzX3NpZ2ZpbGxzZXQoKTsKLQotI2RlZmluZSBTT0xBUklTX3NwY2FsbF9zdWJjYWxsCTM3MAotCQkJCS8qIDAgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfc2lncGVuZGluZwkJKFNPTEFSSVNfc3BjYWxsX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3NpZ2ZpbGxzZXQJCShTT0xBUklTX3NwY2FsbF9zdWJjYWxsICsgMikKLQotI2RlZmluZSBTT0xBUklTX3NwY2FsbF9uc3ViY2FsbHMJMwotCi0vKiBzb2xhcmlzX2NvbnRleHQgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX2dldGNvbnRleHQoKSwgc29sYXJpc19zZXRjb250ZXh0KCk7Ci0KLSNkZWZpbmUgU09MQVJJU19jb250ZXh0X3N1YmNhbGwJMzgwCi0jZGVmaW5lIFNPTEFSSVNfZ2V0Y29udGV4dAkJKFNPTEFSSVNfY29udGV4dF9zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zZXRjb250ZXh0CQkoU09MQVJJU19jb250ZXh0X3N1YmNhbGwgKyAxKQotCi0jZGVmaW5lIFNPTEFSSVNfY29udGV4dF9uc3ViY2FsbHMJMgotCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjg3Mjk0Ni4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUzICswLDAgQEAKLQl7IDEsCTAsCXN5c19zZXR1cCwJInNldHVwIiB9LAkJLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdCIgfSwJCS8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJImZvcmsiIH0sCQkvKiAyICovCi0JeyAzLAkwLAlzeXNfcmVhZCwJInJlYWQiIH0sCQkvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCSJ3cml0ZSIgfSwJCS8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJIm9wZW4iIH0sCQkvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCSJjbG9zZSIgfSwJCS8qIDYgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCSJ3YWl0NCIgfSwJCS8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCSJjcmVhdCIgfSwJCS8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJImxpbmsiIH0sCQkvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJInVubGluayIgfSwJCS8qIDEwICovCi0JeyAyLCAgICBURnxUUCwJc3lzX2V4ZWN2LAkiZXhlY3YiIH0sCQkvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJImNoZGlyIiB9LAkJLyogMTIgKi8KLSAgICAgICAgeyAzLCAgICBURiwgICAgIHN5c19jaG93biwgICAgICAiY2hvd24ifSwJCS8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkibWtub2QiIH0sCQkvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJImNobW9kIiB9LAkJLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24iIH0sCQkvKiAxNiAqLwotCXsgMSwJMCwJc3lzX2JyaywJImJyayIgfSwJCS8qIDE3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJwZXJmY3RyIiB9LAkJLyogMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJImxzZWVrIiB9LAkJLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCSJnZXRwaWQiIH0sCQkvKiAyMCAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJImNhcGdldCIgfSwJCS8qIDIxICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkiY2Fwc2V0IiB9LAkJLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQiIH0sCQkvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZCIgfSwJCS8qIDI0ICovCi0JeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyNSAqLwotCXsgNSwJMCwJc3lzX3B0cmFjZSwJInB0cmFjZSIgfSwJCS8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCSJhbGFybSIgfSwJCS8qIDI3ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLCJzaWdhbHRzdGFjayIgfSwJLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCSJwYXVzZSIgfSwJCS8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkidXRpbWUiIH0sCQkvKiAzMCAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93bjMyIiB9LAkJLyogMzEgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24zMiIgfSwJCS8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJImFjY2VzcyIgfSwJCS8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJIm5pY2UiIH0sCQkvKiAzNCAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImNob3duMzIiIH0sCQkvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCSJzeW5jIiB9LAkJLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJImtpbGwiIH0sCQkvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDM4ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkic2VuZGZpbGUiIH0sCQkvKiAzOSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJImxzdGF0IiB9LAkJLyogNDAgKi8KLQl7IDIsCTAsCXN5c19kdXAsCSJkdXAiIH0sCQkvKiA0MSAqLwotCXsgMCwJMCwJc3lzX3BpcGUsCSJwaXBlIiB9LAkJLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJInRpbWVzIiB9LAkJLyogNDMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCSJnZXR1aWQzMiIgfSwJCS8qIDQ0ICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCSJ1bW91bnQiIH0sCQkvKiA0NSAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJInNldGdpZCIgfSwJCS8qIDQ2ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkiZ2V0Z2lkIiB9LAkJLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkic2lnbmFsIiB9LAkJLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkiZ2V0ZXVpZCIgfSwJCS8qIDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQiIH0sCQkvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkiYWNjdCIgfSwJCS8qIDUxICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCSJtZW1vcnlfb3JkZXJpbmciIH0sCS8qIDUyICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkiZ2V0Z2lkMzIiIH0sCQkvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkiaW9jdGwiIH0sCQkvKiA1NCAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJInJlYm9vdCIgfSwJCS8qIDU1ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAyIiB9LAkJLyogNTYgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJInN5bWxpbmsiIH0sCQkvKiA1NyAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJInJlYWRsaW5rIiB9LAkJLyogNTggKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkiZXhlY3ZlIiB9LAkJLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJInVtYXNrIiB9LAkJLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkiY2hyb290IiB9LAkJLyogNjEgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJImZzdGF0IiB9LAkJLyogNjIgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJImZzdGF0NjQiIH0sCQkvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBhZ2VzaXplLCJnZXRwYWdlc2l6ZSIgfSwJLyogNjQgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJIm1zeW5jIiB9LAkJLyogNjUgKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCSJ2Zm9yayIgfSwJCS8qIDY2ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkicHJlYWQiIH0sCQkvKiA2NyAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCSJwd3JpdGUiIH0sCQkvKiA2OCAqLwotCXsgMCwgICAgMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkMzIiIH0sCQkvKiA2OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCSJnZXRlZ2lkMzIiIH0sCQkvKiA3MCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCSJtbWFwIiB9LAkJLyogNzEgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJInNldHJldWlkMzIiIH0sCQkvKiA3MiAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJIm11bm1hcCIgfSwJCS8qIDczICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCSJtcHJvdGVjdCIgfSwJCS8qIDc0ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJIm1hZHZpc2UiIH0sCQkvKiA3NSAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCSJ2aGFuZ3VwIiB9LAkJLyogNzYgKi8KLQl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJInRydW5jYXRlNjQiIH0sCQkvKiA3NyAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCSJtaW5jb3JlIiB9LAkJLyogNzggKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCSJnZXRncm91cHMiIH0sCQkvKiA3OSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJInNldGdyb3VwcyIgfSwJCS8qIDgwICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJImdldHBncnAiIH0sCQkvKiA4MSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJInNldGdyb3VwczMyIiB9LAkvKiA4MiAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJInNldGl0aW1lciIgfSwJCS8qIDgzICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlNjQiIH0sCS8qIDg0ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJInN3YXBvbiIgfSwJCS8qIDg1ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkiZ2V0aXRpbWVyIiB9LAkJLyogODYgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQzMiIgfSwJCS8qIDg3ICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsInNldGhvc3RuYW1lIiB9LAkvKiA4OCAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJInNldGdpZDMyIiB9LAkJLyogODkgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkiZHVwMiIgfSwJCS8qIDkwICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZDMyIiB9LAkJLyogOTEgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJImZjbnRsIiB9LAkJLyogOTIgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiA5MyAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQzMiIgfSwJCS8qIDk0ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCSJmc3luYyIgfSwJCS8qIDk1ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksInNldHByaW9yaXR5IiB9LAkvKiA5NiAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCSJzb2NrZXQiIH0sCQkvKiA5NyAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkiY29ubmVjdCIgfSwJCS8qIDk4ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJImFjY2VwdCIgfSwJCS8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksImdldHByaW9yaXR5IiB9LAkvKiAxMDAgKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCSJydF9zaWdyZXR1cm4iIH0sCS8qIDEwMSAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sInJ0X3NpZ2FjdGlvbiIgfSwJLyogMTAyICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLCJydF9zaWdwcm9jbWFzayIgfSwJLyogMTAzICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsInJ0X3NpZ3BlbmRpbmciIH0sCS8qIDEwNCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsInJ0X3NpZ3RpbWVkd2FpdCIgfSwvKiAxMDUgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCJydF9zaWdxdWV1ZWluZm8iIH0sLyogMTA2ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsInJ0X3NpZ3N1c3BlbmQiIH0sCS8qIDEwNyAqLwotCXsgMywJVFMsCXN5c19zZXRyZXN1aWQsCSJzZXRyZXN1aWQiIH0sCQkvKiAxMDggKi8KLQl7IDMsICAgIFRTLAlzeXNfZ2V0cmVzdWlkLAkiZ2V0cmVzdWlkIiB9LAkJLyogMTA5ICovCi0JeyAzLAlUUywJc3lzX3NldHJlc2dpZCwJInNldHJlc2dpZCIgfSwJCS8qIDExMCAqLwotCXsgMywJVFMsCXN5c19nZXRyZXNnaWQsCSJnZXRyZXNnaWQiIH0sCQkvKiAxMTEgKi8KLQl7IDIsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkMzIiIH0sCS8qIDExMiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkicmVjdm1zZyIgfSwJCS8qIDExMyAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkic2VuZG1zZyIgfSwJCS8qIDExNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwczMyIiB9LAkvKiAxMTUgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksImdldHRpbWVvZmRheSIgfSwJLyogMTE2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkiZ2V0cnVzYWdlIiB9LAkJLyogMTE3ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCSJnZXRzb2Nrb3B0IiB9LAkJLyogMTE4ICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJImdldGN3ZCIgfSwJCS8qIDExOSAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkicmVhZHYiIH0sCQkvKiAxMjAgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCSJ3cml0ZXYiIH0sCQkvKiAxMjEgKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksInNldHRpbWVvZmRheSIgfSwJLyogMTIyICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkiZmNob3duIiB9LAkJLyogMTIzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkiZmNobW9kIiB9LAkJLyogMTI0ICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkicmVjdmZyb20iIH0sCQkvKiAxMjUgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJInNldHJldWlkIiB9LAkJLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCSJzZXRyZWdpZCIgfSwJCS8qIDEyNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCSJyZW5hbWUiIH0sCQkvKiAxMjggKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCSJ0cnVuY2F0ZSIgfSwJCS8qIDEyOSAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJImZ0cnVuY2F0ZSIgfSwJCS8qIDEzMCAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkiZmxvY2siIH0sCQkvKiAxMzEgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJImxzdGF0NjQiIH0sCQkvKiAxMzIgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkic2VuZHRvIiB9LAkJLyogMTMzICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkic2h1dGRvd24iIH0sCQkvKiAxMzQgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJInNvY2tldHBhaXIiIH0sCQkvKiAxMzUgKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCSJta2RpciIgfSwJCS8qIDEzNiAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJInJtZGlyIiB9LAkJLyogMTM3ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lcywJInV0aW1lcyIgfSwJCS8qIDEzOCAqLwotCXsgMiwJVEYsCXN5c19zdGF0NjQsCSJzdGF0NjQiIH0sCQkvKiAxMzkgKi8KLQl7IDQsICAgIFRGLAlzeXNfc2VuZGZpbGU2NCwJInNlbmRmaWxlNjQiIH0sCQkvKiAxNDAgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsImdldHBlZXJuYW1lIiB9LAkvKiAxNDEgKi8KLQl7IDUsICAgIDAsCXN5c19mdXRleCwJImZ1dGV4IiB9LAkJLyogMTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCSJnZXR0aWQiIH0sCQkvKiAxNDMgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCSJnZXRybGltaXQiIH0sCQkvKiAxNDQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCSJzZXRybGltaXQiIH0sCQkvKiAxNDUgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkicGl2b3Rfcm9vdCIgfSwJCS8qIDE0NiAqLwotCXsgNSwJMCwJc3lzX3ByY3RsLAkicHJjdGwiIH0sCQkvKiAxNDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInBjaWNvbmZpZ19yZWFkIiB9LAkvKiAxNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJInBjaWNvbmZpZ193cml0ZSIgfSwJLyogMTQ5ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLCJnZXRzb2NrbmFtZSIgfSwJLyogMTUwICovCi0JeyA0LAlUTiwJc3lzX2dldG1zZywJImdldG1zZyIgfSwJCS8qIDE1MSAqLwotCXsgNCwJVE4sCXN5c19wdXRtc2csCSJwdXRtc2ciIH0sCQkvKiAxNTIgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkicG9sbCIgfSwJCS8qIDE1MyAqLwotCXsgNCwJMCwJc3lzX2dldGRlbnRzNjQsCSJnZXRkZW50czY0IiB9LAkJLyogMTU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCSJmY250bDY0IiB9LAkJLyogMTU1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJnZXRkaXJlbnRyaWVzIiB9LAkvKiAxNTYgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkic3RhdGZzIiB9LAkJLyogMTU3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJImZzdGF0ZnMiIH0sCQkvKiAxNTggKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkib2xkdW1vdW50IiB9LAkJLyogMTU5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAxNjAgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDE2MSAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkiZ2V0ZG9tYWlubmFtZSIgfSwJLyogMTYyICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwic2V0ZG9tYWlubmFtZSIgfSwJLyogMTYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJ1dHJhcF9pbnN0YWxsIiB9LAkvKiAxNjQgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJInF1b3RhY3RsIiB9LAkJLyogMTY1ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCSJzZXRfdGlkX2FkZHJlc3MiIH0sCS8qIDE2NiAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJIm1vdW50IiB9LAkJLyogMTY3ICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCSJ1c3RhdCIgfSwJCS8qIDE2OCAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJInNldHhhdHRyIiB9LAkJLyogMTY5ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkibHNldHhhdHRyIiB9LAkJLyogMTcwICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkiZnNldHhhdHRyIiB9LAkJLyogMTcxICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkiZ2V0eGF0dHIiIH0sCQkvKiAxNzIgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCSJsZ2V0eGF0dHIiIH0sCQkvKiAxNzMgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJImdldGRlbnRzIiB9LAkJLyogMTc0ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkic2V0c2lkIiB9LAkJLyogMTc1ICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkiZmNoZGlyIiB9LAkJLyogMTc2ICovCi0JeyA0LCAgICAwLAlzeXNfZmdldHhhdHRyLAkiZmdldHhhdHRyIiB9LAkJLyogMTc3ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJImxpc3R4YXR0ciIgfSwJCS8qIDE3OCAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsbGlzdHhhdHRyIiB9LAkJLyogMTc5ICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJImZsaXN0eGF0dHIiIH0sCQkvKiAxODAgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsInJlbW92ZXhhdHRyIiB9LAkvKiAxODEgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsImxyZW1vdmV4YXR0ciIgfSwJLyogMTgyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCSJzaWdwZW5kaW5nIiB9LAkJLyogMTgzICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLCJxdWVyeV9tb2R1bGUiIH0sCS8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCSJzZXRwZ2lkIiB9LAkJLyogMTg1ICovCi0JeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLCJmcmVtb3ZleGF0dHIiIH0sCS8qIDE4NiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkidGtpbGwiIH0sCQkvKiAxODcgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJImV4aXRfZ3JvdXAiIH0sCQkvKiAxODggKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJInVuYW1lIiB9LAkJLyogMTg5ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsImluaXRfbW9kdWxlIiB9LAkvKiAxOTAgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwicGVyc29uYWxpdHkiIH0sCS8qIDE5MSAqLwotCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsInJlbWFwX2ZpbGVfcGFnZXMiIH0sLyogMTkyICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLCJlcG9sbF9jcmVhdGUiIH0sCS8qIDE5MyAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJImVwb2xsX2N0bCIgfSwJCS8qIDE5NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCSJlcG9sbF93YWl0IiB9LAkJLyogMTk1ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkidWxpbWl0IiB9LAkJLyogMTk2ICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJImdldHBwaWQiIH0sCQkvKiAxOTcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkic2lnYWN0aW9uIiB9LAkJLyogMTk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJzZ2V0bWFzayIgfSwJCS8qIDE5OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkic3NldG1hc2siIH0sCQkvKiAyMDAgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJInNpZ3N1c3BlbmQiIH0sCQkvKiAyMDEgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCSJsc3RhdCIgfSwJCS8qIDIwMiAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCSJ1c2VsaWIiIH0sCQkvKiAyMDMgKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkicmVhZGRpciIgfSwJCS8qIDIwNCAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJInJlYWRhaGVhZCIgfSwJCS8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCSJzb2NrZXRjYWxsIiB9LAkJLyogMjA2ICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkic3lzbG9nIiB9LAkJLyogMjA3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJsb29rdXBfZGNvb2tpZSIgfSwJLyogMjA4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjQiIH0sCQkvKiAyMDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJImZhZHZpc2U2NF82NCIgfSwJLyogMjEwICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJInRna2lsbCIgfSwJCS8qIDIxMSAqLwotCXsgMywJVFAsCXN5c193YWl0cGlkLAkid2FpdHBpZCIgfSwJCS8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCSJzd2Fwb2ZmIiB9LAkJLyogMjEzICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJInN5c2luZm8iIH0sCQkvKiAyMTQgKi8KLQl7IDUsCTAsCXN5c19pcGMsCSJpcGMiIH0sCQkvKiAyMTUgKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkic2lncmV0dXJuIiB9LAkJLyogMjE2ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkiY2xvbmUiIH0sCQkvKiAyMTcgKi8KLQl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkibW9kaWZ5X2xkdCIgfSwJCS8qIDIxOCAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkiYWRqdGltZXgiIH0sCQkvKiAyMTkgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssInNpZ3Byb2NtYXNrIiB9LAkvKiAyMjAgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLCJjcmVhdGVfbW9kdWxlIiB9LAkvKiAyMjEgKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLCJkZWxldGVfbW9kdWxlIiB9LAotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywiZ2V0X2tlcm5lbF9zeW1zIn0sCS8qIDIyMyAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCSJnZXRwZ2lkIiB9LAkJLyogMjI0ICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJImJkZmx1c2giIH0sCQkvKiAyMjUgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJInN5c2ZzIiB9LAkJLyogMjI2ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsImFmc19zeXNjYWxsIiB9LAkvKiAyMjcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkIiB9LAkJLyogMjI4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZCIgfSwJCS8qIDIyOSAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDIzMCAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCSJ0aW1lIiB9LAkJLyogMjMxICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCSJzdGF0IiB9LAkJLyogMjMyICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCSJzdGltZSIgfSwJCS8qIDIzMyAqLwotCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJInN0YXRmczY0IiB9LAkJLyogMjM0ICovCi0JeyAzLAkwLAlzeXNfZnN0YXRmczY0LAkiZnN0YXRmczY0IiB9LAkJLyogMjM1ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkiX2xsc2VlayIgfSwJCS8qIDIzNiAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkibWxvY2siIH0sCQkvKiAyMzcgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkibXVubG9jayIgfSwJCS8qIDIzOCAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkibWxvY2thbGwiIH0sCQkvKiAyMzkgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkibXVubG9ja2FsbCIgfSwJCS8qIDI0MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLCJzY2hlZF9zZXRwYXJhbSJ9LAkvKiAyNDEgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwic2NoZWRfZ2V0cGFyYW0ifSwJLyogMjQyICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCJzY2hlZF9zZXRzY2hlZHVsZXIifSwvKiAyNDMgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsInNjaGVkX2dldHNjaGVkdWxlciJ9LC8qIDI0NCAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLCJzY2hlZF95aWVsZCIgfSwJLyogMjQ1ICovCi0JeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwvKiAyNDYgKi8KLQl7IDEsMCxzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LC8qIDI0NyAqLwotCXsgMiwJMCxzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwvKiAyNDggKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCSJuYW5vc2xlZXAiIH0sCQkvKiAyNDkgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCSJtcmVtYXAiIH0sCQkvKiAyNTAgKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCSJfc3lzY3RsIiB9LAkJLyogMjUxICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkiZ2V0c2lkIiB9LAkJLyogMjUyICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkiZmRhdGFzeW5jIiB9LAkJLyogMjUzICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCSJuZnNzZXJ2Y3RsIiB9LAkJLyogMjU0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJhcGxpYiIgfSwJCS8qIDI1NSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsImNsb2NrX3NldHRpbWUiIH0sCS8qIDI1NiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsImNsb2NrX2dldHRpbWUiIH0sCS8qIDI1NyAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywiY2xvY2tfZ2V0cmVzIiB9LAkvKiAyNTggKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsImNsb2NrX25hbm9zbGVlcCIgfSwvKiAyNTkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjYwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI2MSAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsInRpbWVyX3NldHRpbWUiIH0sCS8qIDI2MiAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsInRpbWVyX2dldHRpbWUiIH0sCS8qIDI2MyAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sInRpbWVyX2dldG92ZXJydW4iIH0sLyogMjY0ICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLCJ0aW1lcl9kZWxldGUiIH0sCS8qIDI2NSAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwidGltZXJfY3JlYXRlIiB9LAkvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjciIH0sCQkvKiAyNjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjgiIH0sCQkvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjkiIH0sCQkvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzAiIH0sCQkvKiAyNzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzEiIH0sCQkvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzIiIH0sCQkvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzMiIH0sCQkvKiAyNzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzQiIH0sCQkvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzUiIH0sCQkvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzYiIH0sCQkvKiAyNzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzciIH0sCQkvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzgiIH0sCQkvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzkiIH0sCQkvKiAyNzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODAiIH0sCQkvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODEiIH0sCQkvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODIiIH0sCQkvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODMiIH0sCQkvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODQiIH0sCQkvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODUiIH0sCQkvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODYiIH0sCQkvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODciIH0sCQkvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODgiIH0sCQkvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODkiIH0sCQkvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTAiIH0sCQkvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTEiIH0sCQkvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTIiIH0sCQkvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTMiIH0sCQkvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTQiIH0sCQkvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTUiIH0sCQkvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTYiIH0sCQkvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTciIH0sCQkvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTgiIH0sCQkvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTkiIH0sCQkvKiAyOTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDAiIH0sCQkvKiAzMDAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDEiIH0sCQkvKiAzMDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDIiIH0sCQkvKiAzMDIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDMiIH0sCQkvKiAzMDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDQiIH0sCQkvKiAzMDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDUiIH0sCQkvKiAzMDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDYiIH0sCQkvKiAzMDYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDciIH0sCQkvKiAzMDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDgiIH0sCQkvKiAzMDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDkiIH0sCQkvKiAzMDkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTAiIH0sCQkvKiAzMTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTEiIH0sCQkvKiAzMTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTIiIH0sCQkvKiAzMTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTMiIH0sCQkvKiAzMTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTQiIH0sCQkvKiAzMTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTUiIH0sCQkvKiAzMTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTYiIH0sCQkvKiAzMTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTciIH0sCQkvKiAzMTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTgiIH0sCQkvKiAzMTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTkiIH0sCQkvKiAzMTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjAiIH0sCQkvKiAzMjAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjEiIH0sCQkvKiAzMjEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjIiIH0sCQkvKiAzMjIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjMiIH0sCQkvKiAzMjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjQiIH0sCQkvKiAzMjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjUiIH0sCQkvKiAzMjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjYiIH0sCQkvKiAzMjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjciIH0sCQkvKiAzMjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjgiIH0sCQkvKiAzMjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjkiIH0sCQkvKiAzMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzAiIH0sCQkvKiAzMzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzEiIH0sCQkvKiAzMzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzIiIH0sCQkvKiAzMzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzMiIH0sCQkvKiAzMzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzQiIH0sCQkvKiAzMzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzUiIH0sCQkvKiAzMzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzYiIH0sCQkvKiAzMzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzciIH0sCQkvKiAzMzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzgiIH0sCQkvKiAzMzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzkiIH0sCQkvKiAzMzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDAiIH0sCQkvKiAzNDAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDEiIH0sCQkvKiAzNDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDIiIH0sCQkvKiAzNDIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDMiIH0sCQkvKiAzNDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDQiIH0sCQkvKiAzNDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDUiIH0sCQkvKiAzNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDYiIH0sCQkvKiAzNDYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDciIH0sCQkvKiAzNDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDgiIH0sCQkvKiAzNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDkiIH0sCQkvKiAzNDkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTAiIH0sCQkvKiAzNTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTEiIH0sCQkvKiAzNTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTIiIH0sCQkvKiAzNTIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiNWMzMzUuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudDEuaCx2IDEuMS4xLjEgMTk5OS8wMi8xOSAwMDoyMzoxOSB3aWNoZXJ0IEV4cCAkCi0gKi8KLQotCXsgNiwJMCwJc29sYXJpc19zeXNjYWxsLAkic3lzY2FsbCIJfSwgLyogMCAqLwotCXsgNiwJVFAsCXNvbGFyaXNfZXhpdCwJCSJfZXhpdCIJCX0sIC8qIDEgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcmVhZCwJCSJyZWFkIgkJfSwgLyogMyAqLwotCXsgNiwJMCwJc29sYXJpc193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCi0JeyA2LAlUUCwJc29sYXJpc193YWl0LAkJIndhaXQiCQl9LCAvKiA3ICovCi0JeyA2LAlURiwJc29sYXJpc19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyA2LAlURnxUUCwJc29sYXJpc19leGVjLAkJImV4ZWMiCQl9LCAvKiAxMSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxNiAqLwotCXsgNiwJMCwJc29sYXJpc19icmssCQkiYnJrIgkJfSwgLyogMTcgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDE4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogMjAgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3Vtb3VudCwJCSJ1bW91bnQiCX0sIC8qIDIyICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIzICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgNiwJMCwJc29sYXJpc19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDI4ICovCi0JeyA2LAlUUywJc29sYXJpc19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCi0JeyA2LAlURiwJc29sYXJpc191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCi0JeyA2LAkwLAlzb2xhcmlzX3N0dHksCQkic3R0eSIJCX0sIC8qIDMxICovCi0JeyA2LAkwLAlzb2xhcmlzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCi0JeyA2LAlURiwJc29sYXJpc19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLwotCXsgNiwJMCwJc29sYXJpc19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogMzUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZzdGF0ZnMsCSJmc3RhdGZzIgl9LCAvKiAzOCAqLwotCXsgNiwJMCwJc29sYXJpc19wZ3Jwc3lzLAkicGdycHN5cyIJfSwgLyogMzkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfeGVuaXgsCQkieGVuaXgiCQl9LCAvKiA0MCAqLwotCXsgNiwJMCwJc29sYXJpc19kdXAsCQkiZHVwIgkJfSwgLyogNDEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLwotCXsgNiwJMCwJc29sYXJpc19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA0NCAqLwotCXsgNiwJMCwJc29sYXJpc19wbG9jaywJCSJwbG9jayIJCX0sIC8qIDQ1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQ2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NpZ2NhbGwsCSJzaWdjYWxsIgl9LCAvKiA0OCAqLwotCXsgNiwJVEksCXNvbGFyaXNfbXNnc3lzLAkJIm1zZ3N5cyIJfSwgLyogNDkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzc3VuLAkJInN5c3N1biIJfSwgLyogNTAgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyA2LAlUSSwJc29sYXJpc19zaG1zeXMsCQkic2htc3lzIgl9LCAvKiA1MiAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2Vtc3lzLAkJInNlbXN5cyIJfSwgLyogNTMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgNiwJMCwJc29sYXJpc191YWRtaW4sCQkidWFkbWluIgl9LCAvKiA1NSAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNtcCwJCSJzeXNtcCIJCX0sIC8qIDU2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3V0c3N5cywJCSJ1dHNzeXMiCX0sIC8qIDU3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Zkc3luYywJCSJmZHN5bmMiCX0sIC8qIDU4ICovCi0JeyA2LAlURnxUUCwJc29sYXJpc19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiA1OSAqLwotCXsgNiwJMCwJc29sYXJpc191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDYwICovCi0JeyA2LAlURiwJc29sYXJpc19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgNiwJMCwJc29sYXJpc19mY250bCwJCSJmY250bCIJCX0sIC8qIDYyICovCi0JeyA2LAkwLAlzb2xhcmlzX3VsaW1pdCwJCSJ1bGltaXQiCX0sIC8qIDYzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0Igl9LCAvKiA2NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NSIJfSwgLyogNjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjYiCX0sIC8qIDY2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3Igl9LCAvKiA2NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182OCIJfSwgLyogNjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjkiCX0sIC8qIDY5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwIgl9LCAvKiA3MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MSIJfSwgLyogNzEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzIiCX0sIC8qIDcyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczIgl9LCAvKiA3MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NCIJfSwgLyogNzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzUiCX0sIC8qIDc1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2Igl9LCAvKiA3NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NyIJfSwgLyogNzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzgiCX0sIC8qIDc4ICovCi0JeyA2LAlURiwJc29sYXJpc19ybWRpciwJCSJybWRpciIJCX0sIC8qIDc5ICovCi0JeyA2LAlURiwJc29sYXJpc19ta2RpciwJCSJta2RpciIJCX0sIC8qIDgwICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldGRlbnRzLAkiZ2V0ZGVudHMiCX0sIC8qIDgxICovCi0JeyA2LAkwLAlzb2xhcmlzX3NnaW5hcCwJCSJzZ2luYXAiCX0sIC8qIDgyICovCi0JeyA2LAkwLAlzb2xhcmlzX3NnaWtvcHQsCSJzZ2lrb3B0Igl9LCAvKiA4MyAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDg0ICovCi0JeyA2LAlUTiwJc3lzX2dldG1zZywJCSJnZXRtc2ciCX0sIC8qIDg1ICovCi0JeyA2LAlUTiwJc3lzX3B1dG1zZywJCSJwdXRtc2ciCX0sIC8qIDg2ICovCi0JeyA2LAlUTiwJc29sYXJpc19wb2xsLAkJInBvbGwiCQl9LCAvKiA4NyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiA4OCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3ltbGluaywJInN5bWxpbmsiCX0sIC8qIDg5ICovCi0JeyA2LAlURiwJc29sYXJpc19yZWFkbGluaywJInJlYWRsaW5rIgl9LCAvKiA5MCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRncm91cHMsCSJzZXRncm91cHMiCX0sIC8qIDkxICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldGdyb3VwcywJImdldGdyb3VwcyIJfSwgLyogOTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTQgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDk1ICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdzdXNwZW5kLAkic2lnc3VzcGVuZCIJfSwgLyogOTYgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDk3ICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdhY3Rpb24sCSJzaWdhY3Rpb24iCX0sIC8qIDk4ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NwY2FsbCwJCSJzcGNhbGwiCX0sIC8qIDk5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2NvbnRleHQsCSJjb250ZXh0Igl9LCAvKiAxMDAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZXZzeXMsCQkiZXZzeXMiCQl9LCAvKiAxMDEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZXZ0cmFwcmV0LAkiZXZ0cmFwcmV0Igl9LCAvKiAxMDIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3N0YXR2ZnMsCSJzdGF0dmZzIgl9LCAvKiAxMDMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnN0YXR2ZnMsCSJmc3RhdHZmcyIJfSwgLyogMTA0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwNSIJfSwgLyogMTA1ICovCi0JeyA2LAkwLAlzb2xhcmlzX25mc3N5cywJCSJuZnNzeXMiCX0sIC8qIDEwNiAqLwotCXsgNiwJVFAsCXNvbGFyaXNfd2FpdGlkLAkJIndhaXRpZCIJfSwgLyogMTA3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NpZ3NlbmRzeXMsCSJzaWdzZW5kc3lzIgl9LCAvKiAxMDggKi8KLQl7IDYsCTAsCXNvbGFyaXNfaHJ0c3lzLAkJImhydHN5cyIJfSwgLyogMTA5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2FjYW5jZWwsCSJhY2FuY2VsIgl9LCAvKiAxMTAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYXN5bmMsCQkiYXN5bmMiCQl9LCAvKiAxMTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHJpb2NudGxzeXMsCSJwcmlvY250bHN5cyIJfSwgLyogMTEyICovCi0JeyA2LAlURiwJc29sYXJpc19wYXRoY29uZiwJInBhdGhjb25mIgl9LCAvKiAxMTMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbWluY29yZSwJIm1pbmNvcmUiCX0sIC8qIDExNCAqLwotCXsgNiwJMCwJc29sYXJpc19tbWFwLAkJIm1tYXAiCQl9LCAvKiAxMTUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbXByb3RlY3QsCSJtcHJvdGVjdCIJfSwgLyogMTE2ICovCi0JeyA2LAkwLAlzb2xhcmlzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDExNyAqLwotCXsgNiwJMCwJc29sYXJpc19mcGF0aGNvbmYsCSJmcGF0aGNvbmYiCX0sIC8qIDExOCAqLwotCXsgNiwJVFAsCXNvbGFyaXNfdmZvcmssCQkidmZvcmsiCQl9LCAvKiAxMTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTIwICovCi0JeyA2LAkwLAlzb2xhcmlzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTIxICovCi0JeyA2LAkwLAlzb2xhcmlzX3dyaXRldiwJCSJ3cml0ZXYiCX0sIC8qIDEyMiAqLwotCXsgNiwJVEYsCXNvbGFyaXNfeHN0YXQsCQkieHN0YXQiCQl9LCAvKiAxMjMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2x4c3RhdCwJCSJseHN0YXQiCX0sIC8qIDEyNCAqLwotCXsgNiwJMCwJc29sYXJpc19meHN0YXQsCQkiZnhzdGF0Igl9LCAvKiAxMjUgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3hta25vZCwJCSJ4bWtub2QiCX0sIC8qIDEyNiAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9jYWwsCQkiY2xvY2FsIgl9LCAvKiAxMjcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0cmxpbWl0LAkic2V0cmxpbWl0Igl9LCAvKiAxMjggKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0cmxpbWl0LAkiZ2V0cmxpbWl0Igl9LCAvKiAxMjkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2xjaG93biwJCSJsY2hvd24iCX0sIC8qIDEzMCAqLwotCXsgNiwJMCwJc29sYXJpc19tZW1jbnRsLAkibWVtY250bCIJfSwgLyogMTMxICovCi0JeyA2LAlUTiwJc29sYXJpc19nZXRwbXNnLAkiZ2V0cG1zZyIJfSwgLyogMTMyICovCi0JeyA2LAlUTiwJc29sYXJpc19wdXRwbXNnLAkicHV0cG1zZyIJfSwgLyogMTMzICovCi0JeyA2LAlURiwJc29sYXJpc19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAxMzQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMzUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0ZWdpZCwJInNldGVnaWQiCX0sIC8qIDEzNiAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNjb25maWcsCSJzeXNjb25maWciCX0sIC8qIDEzNyAqLwotCXsgNiwJMCwJc29sYXJpc19hZGp0aW1lLAkiYWRqdGltZSIJfSwgLyogMTM4ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2luZm8sCSJzeXNpbmZvIgl9LCAvKiAxMzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTQwIgl9LCAvKiAxNDAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0ZXVpZCwJInNldGV1aWQiCX0sIC8qIDE0MSAqLwotCXsgNiwJMCwJc29sYXJpc192dHJhY2UsCQkidnRyYWNlIgl9LCAvKiAxNDIgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX2ZvcmsxLAkJImZvcmsxIgkJfSwgLyogMTQzICovCi0JeyA2LAlUUywJc29sYXJpc19zaWd0aW1lZHdhaXQsCSJzaWd0aW1lZHdhaXQiCX0sIC8qIDE0NCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfaW5mbywJImx3cF9pbmZvIgl9LCAvKiAxNDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfeWllbGQsCQkieWllbGQiCQl9LCAvKiAxNDYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbWFfd2FpdCwJImx3cF9zZW1hX3dhaXQiCX0sIC8qIDE0NyAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VtYV9wb3N0LAkibHdwX3NlbWFfcG9zdCIJfSwgLyogMTQ4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OSIJfSwgLyogMTQ5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MCIJfSwgLyogMTUwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MSIJfSwgLyogMTUxICovCi0JeyA2LAkwLAlzb2xhcmlzX21vZGN0bCwJCSJtb2RjdGwiCX0sIC8qIDE1MiAqLwotCXsgNiwJMCwJc29sYXJpc19mY2hyb290LAkiZmNocm9vdCIJfSwgLyogMTUzICovCi0JeyA2LAlURiwJc29sYXJpc191dGltZXMsCQkidXRpbWVzIgl9LCAvKiAxNTQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdmhhbmd1cCwJInZoYW5ndXAiCX0sIC8qIDE1NSAqLwotCXsgNiwJMCwJc29sYXJpc19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDE1NiAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRpdGltZXIsCSJnZXRpdGltZXIiCX0sIC8qIDE1NyAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRpdGltZXIsCSJzZXRpdGltZXIiCX0sIC8qIDE1OCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY3JlYXRlLAkibHdwX2NyZWF0ZSIJfSwgLyogMTU5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9leGl0LAkibHdwX2V4aXQiCX0sIC8qIDE2MCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc3VzcGVuZCwJImx3cF9zdXNwZW5kIgl9LCAvKiAxNjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbnRpbnVlLAkibHdwX2NvbnRpbnVlIgl9LCAvKiAxNjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2tpbGwsCSJsd3Bfa2lsbCIJfSwgLyogMTYzICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZWxmLAkibHdwX3NlbGYiCX0sIC8qIDE2NCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc2V0cHJpdmF0ZSwJImx3cF9zZXRwcml2YXRlIn0sIC8qIDE2NSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfZ2V0cHJpdmF0ZSwJImx3cF9nZXRwcml2YXRlIn0sIC8qIDE2NiAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfd2FpdCwJImx3cF93YWl0Igl9LCAvKiAxNjcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX211dGV4X3VubG9jaywibHdwX211dGV4X3VubG9jayJ9LCAvKiAxNjggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX211dGV4X2xvY2ssCSJsd3BfbXV0ZXhfbG9jayJ9LCAvKiAxNjkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfd2FpdCwJImx3cF9jb25kX3dhaXQifSwgLyogMTcwICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCwibHdwX2NvbmRfc2lnbmFsIn0sIC8qIDE3MSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QsImx3cF9jb25kX2Jyb2FkY2FzdCJ9LCAvKiAxNzIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxNzMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTc0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2xsc2VlaywJCSJsbHNlZWsiCX0sIC8qIDE3NSAqLwotCXsgNiwJMCwJc29sYXJpc19pbnN0X3N5bmMsCSJpbnN0X3N5bmMiCX0sIC8qIDE3NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzciCX0sIC8qIDE3NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzgiCX0sIC8qIDE3OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzkiCX0sIC8qIDE3OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAiCX0sIC8qIDE4MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODEiCX0sIC8qIDE4MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIiCX0sIC8qIDE4MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODMiCX0sIC8qIDE4MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQiCX0sIC8qIDE4NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUiCX0sIC8qIDE4NSAqLwotCXsgNiwJMCwJc29sYXJpc19hdWRpdHN5cywJImF1ZGl0c3lzIgl9LCAvKiAxODYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHJvY2Vzc29yX2JpbmQsCSJwcm9jZXNzb3JfYmluZCJ9LCAvKiAxODcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHJvY2Vzc29yX2luZm8sCSJwcm9jZXNzb3JfaW5mbyJ9LCAvKiAxODggKi8KLQl7IDYsCTAsCXNvbGFyaXNfcF9vbmxpbmUsCSJwX29ubGluZSIJfSwgLyogMTg5ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NpZ3F1ZXVlLAkic2lncXVldWUiCX0sIC8qIDE5MCAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAxOTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAxOTMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAxOTQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAxOTUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDE5NiAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJfSwgLyogMTk3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2dldG92ZXJydW4sInRpbWVyX2dldG92ZXJydW4ifSwgLyogMTk4ICovCi0JeyA2LAkwLAlzb2xhcmlzX25hbm9zbGVlcCwJIm5hbm9zbGVlcCIJfSwgLyogMTk5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwMCIJfSwgLyogMjAwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwMSIJfSwgLyogMjAxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwMiIJfSwgLyogMjAyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwMyIJfSwgLyogMjAzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNCIJfSwgLyogMjA0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNSIJfSwgLyogMjA1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNiIJfSwgLyogMjA2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwNyIJfSwgLyogMjA3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwOCIJfSwgLyogMjA4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwOSIJfSwgLyogMjA5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMCIJfSwgLyogMjEwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMSIJfSwgLyogMjExICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMiIJfSwgLyogMjEyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMyIJfSwgLyogMjEzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNCIJfSwgLyogMjE0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNSIJfSwgLyogMjE1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNiIJfSwgLyogMjE2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNyIJfSwgLyogMjE3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOCIJfSwgLyogMjE4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOSIJfSwgLyogMjE5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMCIJfSwgLyogMjIwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMSIJfSwgLyogMjIxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMyIJfSwgLyogMjIzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNCIJfSwgLyogMjI0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIJfSwgLyogMjI1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNiIJfSwgLyogMjI2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNyIJfSwgLyogMjI3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIJfSwgLyogMjI4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOSIJfSwgLyogMjI5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMCIJfSwgLyogMjMwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMSIJfSwgLyogMjMxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMiIJfSwgLyogMjMyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMyIJfSwgLyogMjMzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNCIJfSwgLyogMjM0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNSIJfSwgLyogMjM1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNiIJfSwgLyogMjM2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNyIJfSwgLyogMjM3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOCIJfSwgLyogMjM4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOSIJfSwgLyogMjM5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MCIJfSwgLyogMjQwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MSIJfSwgLyogMjQxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MiIJfSwgLyogMjQyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MyIJfSwgLyogMjQzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NCIJfSwgLyogMjQ0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NSIJfSwgLyogMjQ1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NiIJfSwgLyogMjQ2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NyIJfSwgLyogMjQ3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OCIJfSwgLyogMjQ4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJfSwgLyogMjQ5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MCIJfSwgLyogMjUwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MiIJfSwgLyogMjUyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MyIJfSwgLyogMjUzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NCIJfSwgLyogMjU0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NSIJfSwgLyogMjU1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NiIJfSwgLyogMjU2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NyIJfSwgLyogMjU3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OCIJfSwgLyogMjU4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OSIJfSwgLyogMjU5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MCIJfSwgLyogMjYwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MSIJfSwgLyogMjYxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MiIJfSwgLyogMjYyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MyIJfSwgLyogMjYzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJfSwgLyogMjY0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJfSwgLyogMjY1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NiIJfSwgLyogMjY2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJfSwgLyogMjY3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJfSwgLyogMjY4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OSIJfSwgLyogMjY5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJfSwgLyogMjcwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJfSwgLyogMjcxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MiIJfSwgLyogMjcyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJfSwgLyogMjczICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJfSwgLyogMjc0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJfSwgLyogMjc1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJfSwgLyogMjc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJfSwgLyogMjc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJfSwgLyogMjc4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJfSwgLyogMjc5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJfSwgLyogMjgwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MSIJfSwgLyogMjgxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJfSwgLyogMjgyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJfSwgLyogMjgzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NCIJfSwgLyogMjg0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCi0KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0cGdycCwJImdldHBncnAiCX0sIC8qIDMwMCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRwZ3JwLAkic2V0cGdycCIJfSwgLyogMzAxICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDMwMiAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiAzMDMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0cGdpZCwJImdldHBnaWQiCX0sIC8qIDMwNCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRwZ2lkLAkic2V0cGdpZCIJfSwgLyogMzA1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNiIJfSwgLyogMzA2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNyIJfSwgLyogMzA3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOCIJfSwgLyogMzA4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOSIJfSwgLyogMzA5ICovCi0KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDMxMCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnc2V0LAkJInNpZ3NldCIJfSwgLyogMzExICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdob2xkLAkic2lnaG9sZCIJfSwgLyogMzEyICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdyZWxzZSwJInNpZ3JlbHNlIgl9LCAvKiAzMTMgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2lnbm9yZSwJInNpZ2lnbm9yZSIJfSwgLyogMzE0ICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdwYXVzZSwJInNpZ3BhdXNlIgl9LCAvKiAzMTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzE2Igl9LCAvKiAzMTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzE3Igl9LCAvKiAzMTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzE4Igl9LCAvKiAzMTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzE5Igl9LCAvKiAzMTkgKi8KLQotCXsgNiwJVEksCXNvbGFyaXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzIwICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAzMjEgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDMyMiAqLwotCXsgNiwJVEksCXNvbGFyaXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMzIzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNCIJfSwgLyogMzI0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNSIJfSwgLyogMzI1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNiIJfSwgLyogMzI2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNyIJfSwgLyogMzI3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyOCIJfSwgLyogMzI4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyOSIJfSwgLyogMzI5ICovCi0KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMzMwICovCi0JeyA2LAlUSSwJc29sYXJpc19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAzMzEgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMzMyICovCi0JeyA2LAlUSSwJc29sYXJpc19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzMzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM0Igl9LCAvKiAzMzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM1Igl9LCAvKiAzMzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM2Igl9LCAvKiAzMzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM3Igl9LCAvKiAzMzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM4Igl9LCAvKiAzMzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzM5Igl9LCAvKiAzMzkgKi8KLQotCXsgNiwJVEksCXNvbGFyaXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzQwICovCi0JeyA2LAlUSSwJc29sYXJpc19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAzNDEgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogMzQyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MyIJfSwgLyogMzQzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NCIJfSwgLyogMzQ0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NSIJfSwgLyogMzQ1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NiIJfSwgLyogMzQ2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NyIJfSwgLyogMzQ3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OCIJfSwgLyogMzQ4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OSIJfSwgLyogMzQ5ICovCi0KLQl7IDYsCTAsCXNvbGFyaXNfb2xkdW5hbWUsCSJvbGR1bmFtZSIJfSwgLyogMzUwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkidXRzc3lzMSIJfSwgLyogMzUxICovCi0JeyA2LAkwLAlzb2xhcmlzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogMzUyICovCi0JeyA2LAkwLAlzb2xhcmlzX2Z1c2VycywJCSJmdXNlcnMiCX0sIC8qIDM1MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQiCX0sIC8qIDM1NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUiCX0sIC8qIDM1NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYiCX0sIC8qIDM1NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTciCX0sIC8qIDM1NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgiCX0sIC8qIDM1OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkiCX0sIC8qIDM1OSAqLwotCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkic3lzZnMwIgl9LCAvKiAzNjAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzZnMxLAkJInN5c2ZzMSIJfSwgLyogMzYxICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMiwJCSJzeXNmczIiCX0sIC8qIDM2MiAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNmczMsCQkic3lzZnMzIgl9LCAvKiAzNjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY0Igl9LCAvKiAzNjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY1Igl9LCAvKiAzNjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY2Igl9LCAvKiAzNjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY3Igl9LCAvKiAzNjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY4Igl9LCAvKiAzNjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzY5Igl9LCAvKiAzNjkgKi8KLQotCXsgNiwJMCwJcHJpbnRhcmdzLAkJInNwY2FsbDAiCX0sIC8qIDM3MCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lncGVuZGluZywJInNpZ3BlbmRpbmciCX0sIC8qIDM3MSAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnZmlsbHNldCwJInNpZ2ZpbGxzZXQiCX0sIC8qIDM3MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qIDM3MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQiCX0sIC8qIDM3NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qIDM3NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qIDM3NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzciCX0sIC8qIDM3NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qIDM3OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qIDM3OSAqLwotCi0JeyA2LAkwLAlzb2xhcmlzX2dldGNvbnRleHQsCSJnZXRjb250ZXh0Igl9LCAvKiAzODAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0Y29udGV4dCwJInNldGNvbnRleHQiCX0sIC8qIDM4MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qIDM4MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMiCX0sIC8qIDM4MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qIDM4NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qIDM4NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYiCX0sIC8qIDM4NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qIDM4NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qIDM4OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkiCX0sIC8qIDM4OSAqLwotCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MCIJfSwgLyogMzkwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MSIJfSwgLyogMzkxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MiIJfSwgLyogMzkyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MyIJfSwgLyogMzkzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NCIJfSwgLyogMzk0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NSIJfSwgLyogMzk1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NiIJfSwgLyogMzk2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NyIJfSwgLyogMzk3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OCIJfSwgLyogMzk4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OSIJfSwgLyogMzk5ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9kdW1teTIuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2R1bW15Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjMyYzZiLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2R1bW15Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsMjgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGR1bW15Mi5oLHYgMS4xIDIwMDQvMDcvMTIgMDc6NDQ6MDggcm9sYW5kIEV4cCAkCi0gKi8KLQotLyogc3RpbGwgdW5maW5pc2hlZCAqLwotCi0jZGVmaW5lIHNvbGFyaXNfc3lzbXAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2dpbmFwIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NnaWtvcHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzbWlwcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdyZXR1cm4gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcmVjdm1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW5kbXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX25mc3N2YyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRmaCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hc3luY19kYWVtb24gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXhwb3J0ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfQlNEX2dldGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zcHJvYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcm9jYmxrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Nwcm9jc3AgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXN5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbWFkdmlzZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wYWdlbG9jayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19xdW90YWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jYWNoZWZsdXNoIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2NhY2hlY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX251bmFtZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdwb2xsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N3YXBjdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc3RhY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc2VuZHNldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcmlvY250bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19rc2lncXVldWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3NlbWFfd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tZW1jbnRsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2NhbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2xvY2FsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c3N1biBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNpODYgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzbWFjaGluZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wbG9jayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wYXRoY29uZiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWd0aW1lZHdhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdWxpbWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3B0cmFjZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zdHR5IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9pbmZvIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3ByaW9jbnRsc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2hydHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc194ZW5peCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zdGF0ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnN0YXRmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zdGF0dmZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZzdGF0dmZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZvcmsxIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3NlbmRzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ3R0eSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc192dHJhY2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnBhdGhjb25mIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2V2c3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FjY3QgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXhlYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc2VtYV9wb3N0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX25mc3N5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdhbHRzdGFjayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191YWRtaW4gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdW1vdW50IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21vZGN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hY2FuY2VsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FzeW5jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2V2dHJhcHJldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY3JlYXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9leGl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zdXNwZW5kIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jb250aW51ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfa2lsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc2VsZiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc2V0cHJpdmF0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfZ2V0cHJpdmF0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfbXV0ZXhfdW5sb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9tdXRleF9sb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jb25kX3dhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbmRfc2lnbmFsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sbHNlZWsgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfaW5zdF9zeW5jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2F1ZGl0c3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Byb2Nlc3Nvcl9iaW5kIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Bfb25saW5lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3F1ZXVlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Nsb2NrX2dldHRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2xvY2tfc2V0dGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9ja19nZXRyZXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbmFub3NsZWVwIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2NyZWF0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9kZWxldGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfc2V0dGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9nZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2dldG92ZXJydW4gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnbmFsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3NldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdob2xkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3JlbHNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2lnbm9yZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdwYXVzZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2djdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNnZ2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ3JjdiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2dzbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htYXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobWR0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobWdldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1jdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2VtZ2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbW9wIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX29sZHVuYW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3VzdGF0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Z1c2VycyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNmczEgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzZnMyIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzMyBwcmludGFyZ3MKLQotLyogbGlrZSBhbm90aGVyIGNhbGwgKi8KLSNkZWZpbmUgc29sYXJpc19sY2hvd24gc29sYXJpc19jaG93bgotI2RlZmluZSBzb2xhcmlzX3NldHVpZCBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfc2V0ZXVpZCBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfc2V0Z2lkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zZXRlZ2lkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc192aGFuZ3VwIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19mZHN5bmMgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3NpZ2ZpbGxzZXQgc29sYXJpc19zaWdwZW5kaW5nCi0jZGVmaW5lIHNvbGFyaXNfdmZvcmsgc29sYXJpc19mb3JrCi0jZGVmaW5lIHNvbGFyaXNfa3NpZ2FjdGlvbiBzb2xhcmlzX3NpZ2FjdGlvbgotI2RlZmluZSBzb2xhcmlzX0JTRGdldHBncnAgc29sYXJpc19nZXRwZ3JwCi0jZGVmaW5lIHNvbGFyaXNfQlNEc2V0cGdycCBzb2xhcmlzX3NldHBncnAKLSNkZWZpbmUgc29sYXJpc193YWl0c3lzIHNvbGFyaXNfd2FpdGlkCi0KLS8qIHByaW50YXJncyBkb2VzIHRoZSByaWdodCB0aGluZyAqLwotI2RlZmluZSBzb2xhcmlzX3N5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvZmlsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3lpZWxkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3BhdXNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldGhvc3RpZCBwcmludGFyZ3MKLQotLyogc3ViZnVuY3Rpb24gZW50cnkgcG9pbnRzICovCi0jZGVmaW5lIHNvbGFyaXNfcGdycHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdjYWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ3N5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1zeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2Vtc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3V0c3N5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zcGNhbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY29udGV4dCBwcmludGFyZ3MKLQotLyogc2FtZSBhcyBsaW51eCAqLwotI2RlZmluZSBzb2xhcmlzX2V4aXQgc3lzX2V4aXQKLSNkZWZpbmUgc29sYXJpc19mb3JrIHN5c19mb3JrCi0jZGVmaW5lIHNvbGFyaXNfcmVhZCBzeXNfcmVhZAotI2RlZmluZSBzb2xhcmlzX3dyaXRlIHN5c193cml0ZQotI2RlZmluZSBzb2xhcmlzX2Nsb3NlIHN5c19jbG9zZQotI2RlZmluZSBzb2xhcmlzX2NyZWF0IHN5c19jcmVhdAotI2RlZmluZSBzb2xhcmlzX2xpbmsgc3lzX2xpbmsKLSNkZWZpbmUgc29sYXJpc191bmxpbmsgc3lzX3VubGluawotI2RlZmluZSBzb2xhcmlzX2NoZGlyIHN5c19jaGRpcgotI2RlZmluZSBzb2xhcmlzX3RpbWUgc3lzX3RpbWUKLSNkZWZpbmUgc29sYXJpc19jaG1vZCBzeXNfY2htb2QKLSNkZWZpbmUgc29sYXJpc19sc2VlayBzeXNfbHNlZWsKLSNkZWZpbmUgc29sYXJpc19zdGltZSBzeXNfc3RpbWUKLSNkZWZpbmUgc29sYXJpc19hbGFybSBzeXNfYWxhcm0KLSNkZWZpbmUgc29sYXJpc191dGltZSBzeXNfdXRpbWUKLSNkZWZpbmUgc29sYXJpc19hY2Nlc3Mgc3lzX2FjY2VzcwotI2RlZmluZSBzb2xhcmlzX25pY2Ugc3lzX25pY2UKLSNkZWZpbmUgc29sYXJpc19kdXAgc3lzX2R1cAotI2RlZmluZSBzb2xhcmlzX3BpcGUgc3lzX3BpcGUKLSNkZWZpbmUgc29sYXJpc190aW1lcyBzeXNfdGltZXMKLSNkZWZpbmUgc29sYXJpc19leGVjdmUgc3lzX2V4ZWN2ZQotI2RlZmluZSBzb2xhcmlzX3VtYXNrIHN5c191bWFzawotI2RlZmluZSBzb2xhcmlzX2Nocm9vdCBzeXNfY2hyb290Ci0jZGVmaW5lIHNvbGFyaXNfcm1kaXIgc3lzX3JtZGlyCi0jZGVmaW5lIHNvbGFyaXNfbWtkaXIgc3lzX21rZGlyCi0jZGVmaW5lIHNvbGFyaXNfZ2V0ZGVudHMgc3lzX2dldGRlbnRzCi0jZGVmaW5lIHNvbGFyaXNfcG9sbCBzeXNfcG9sbAotI2RlZmluZSBzb2xhcmlzX3N5bWxpbmsgc3lzX3N5bWxpbmsKLSNkZWZpbmUgc29sYXJpc19yZWFkbGluayBzeXNfcmVhZGxpbmsKLSNkZWZpbmUgc29sYXJpc19zZXRncm91cHMgc3lzX3NldGdyb3VwcwotI2RlZmluZSBzb2xhcmlzX2dldGdyb3VwcyBzeXNfZ2V0Z3JvdXBzCi0jZGVmaW5lIHNvbGFyaXNfZmNobW9kIHN5c19mY2htb2QKLSNkZWZpbmUgc29sYXJpc19mY2hvd24gc3lzX2ZjaG93bgotI2RlZmluZSBzb2xhcmlzX21wcm90ZWN0IHN5c19tcHJvdGVjdAotI2RlZmluZSBzb2xhcmlzX211bm1hcCBzeXNfbXVubWFwCi0jZGVmaW5lIHNvbGFyaXNfcmVhZHYgc3lzX3JlYWR2Ci0jZGVmaW5lIHNvbGFyaXNfd3JpdGV2IHN5c193cml0ZXYKLSNkZWZpbmUgc29sYXJpc19jaG93biBzeXNfY2hvd24KLSNkZWZpbmUgc29sYXJpc19yZW5hbWUgc3lzX3JlbmFtZQotI2RlZmluZSBzb2xhcmlzX2dldHRpbWVvZmRheSBzeXNfZ2V0dGltZW9mZGF5Ci0jZGVmaW5lIHNvbGFyaXNfZ2V0aXRpbWVyIHN5c19nZXRpdGltZXIKLSNkZWZpbmUgc29sYXJpc19zZXRpdGltZXIgc3lzX3NldGl0aW1lcgotI2RlZmluZSBzb2xhcmlzX2JyayBzeXNfYnJrCi0jZGVmaW5lIHNvbGFyaXNfbW1hcCBzeXNfbW1hcAotI2RlZmluZSBzb2xhcmlzX2dldHNpZCBzeXNfZ2V0c2lkCi0jZGVmaW5lIHNvbGFyaXNfc2V0c2lkIHN5c19zZXRzaWQKLSNkZWZpbmUgc29sYXJpc19nZXRwZ2lkIHN5c19nZXRwZ2lkCi0jZGVmaW5lIHNvbGFyaXNfc2V0cGdpZCBzeXNfc2V0cGdpZAotI2RlZmluZSBzb2xhcmlzX2dldHBncnAgc3lzX2dldHBncnAKLQotLyogVGhlc2UgYXJlIGhhbmRsZWQgYWNjb3JkaW5nIHRvIGN1cnJlbnRfcGVyc29uYWxpdHkgKi8KLSNkZWZpbmUgc29sYXJpc194c3RhdCBzeXNfeHN0YXQKLSNkZWZpbmUgc29sYXJpc19meHN0YXQgc3lzX2Z4c3RhdAotI2RlZmluZSBzb2xhcmlzX2x4c3RhdCBzeXNfbHhzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfeG1rbm9kIHN5c194bWtub2QKLSNkZWZpbmUgc29sYXJpc19zdGF0IHN5c19zdGF0Ci0jZGVmaW5lIHNvbGFyaXNfZnN0YXQgc3lzX2ZzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfbHN0YXQgc3lzX2xzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfcHJlYWQgc3lzX3ByZWFkCi0jZGVmaW5lIHNvbGFyaXNfcHdyaXRlIHN5c19wd3JpdGUKLSNkZWZpbmUgc29sYXJpc19pb2N0bCBzeXNfaW9jdGwKLSNkZWZpbmUgc29sYXJpc19ta25vZCBzeXNfbWtub2QKLQotLyogVG8gYmUgZG9uZSAqLwotI2RlZmluZSBzb2xhcmlzX21vdW50IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2luZm8gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzY29uZmlnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldHBtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHV0cG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc193YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3dhaXRpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzdXNwZW5kIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldHBncnAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0Y29udGV4dCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZXRjb250ZXh0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldHBpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXR1aWQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfa2lsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRnaWQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZmNudGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0bXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3B1dG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdwcm9jbWFzayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdhY3Rpb24gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncGVuZGluZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19taW5jb3JlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZjaGRpciBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZXRybGltaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cmxpbWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3VuYW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FkanRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZmNocm9vdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191dGltZXMgcHJpbnRhcmdzCi0KLSNpZiBET05FCi0jZGVmaW5lIHNvbGFyaXNfb3BlbiBwcmludGFyZ3MKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNDM2OTkuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNyArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVXT1VMREJMT0NLIiwgLyogMzUgKi8KLQkiRUlOUFJPR1JFU1MiLCAvKiAzNiAqLwotCSJFQUxSRUFEWSIsIC8qIDM3ICovCi0JIkVOT1RTT0NLIiwgLyogMzggKi8KLQkiRURFU1RBRERSUkVRIiwgLyogMzkgKi8KLQkiRU1TR1NJWkUiLCAvKiA0MCAqLwotCSJFUFJPVE9UWVBFIiwgLyogNDEgKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA0MiAqLwotCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA0MyAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA0NCAqLwotCSJFT1BOT1RTVVBQIiwgLyogNDUgKi8KLQkiRVBGTk9TVVBQT1JUIiwgLyogNDYgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogNDcgKi8KLQkiRUFERFJJTlVTRSIsIC8qIDQ4ICovCi0JIkVBRERSTk9UQVZBSUwiLCAvKiA0OSAqLwotCSJFTkVURE9XTiIsIC8qIDUwICovCi0JIkVORVRVTlJFQUNIIiwgLyogNTEgKi8KLQkiRU5FVFJFU0VUIiwgLyogNTIgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogNTMgKi8KLQkiRUNPTk5SRVNFVCIsIC8qIDU0ICovCi0JIkVOT0JVRlMiLCAvKiA1NSAqLwotCSJFSVNDT05OIiwgLyogNTYgKi8KLQkiRU5PVENPTk4iLCAvKiA1NyAqLwotCSJFU0hVVERPV04iLCAvKiA1OCAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiA1OSAqLwotCSJFVElNRURPVVQiLCAvKiA2MCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiA2MSAqLwotCSJFTE9PUCIsIC8qIDYyICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDYzICovCi0JIkVIT1NURE9XTiIsIC8qIDY0ICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDY1ICovCi0JIkVOT1RFTVBUWSIsIC8qIDY2ICovCi0JIkVQUk9DTElNIiwgLyogNjcgKi8KLQkiRVVTRVJTIiwgLyogNjggKi8KLQkiRURRVU9UIiwgLyogNjkgKi8KLQkiRVNUQUxFIiwgLyogNzAgKi8KLQkiRVJFTU9URSIsIC8qIDcxICovCi0JIkVOT1NUUiIsIC8qIDcyICovCi0JIkVUSU1FIiwgLyogNzMgKi8KLQkiRU5PU1IiLCAvKiA3NCAqLwotCSJFTk9NU0ciLCAvKiA3NSAqLwotCSJFQkFETVNHIiwgLyogNzYgKi8KLQkiRUlEUk0iLCAvKiA3NyAqLwotCSJFREVBRExLIiwgLyogNzggKi8KLQkiRU5PTENLIiwgLyogNzkgKi8KLQkiRU5PTkVUIiwgLyogODAgKi8KLQkiRVJSRU1PVEUiLCAvKiA4MSAqLwotCSJFTk9MSU5LIiwgLyogODIgKi8KLQkiRUFEViIsIC8qIDgzICovCi0JIkVTUk1OVCIsIC8qIDg0ICovCi0JIkVDT01NIiwgLyogODUgKi8KLQkiRVBST1RPIiwgLyogODYgKi8KLQkiRU1VTFRJSE9QIiwgLyogODcgKi8KLQkiRURPVERPVCIsIC8qIDg4ICovCi0JIkVSRU1DSEciLCAvKiA4OSAqLwotCSJFTk9TWVMiLCAvKiA5MCAqLwotCSJFU1RSUElQRSIsIC8qIDkxICovCi0JIkVPVkVSRkxPVyIsIC8qIDkyICovCi0JIkVCQURGRCIsIC8qIDkzICovCi0JIkVDSFJORyIsIC8qIDk0ICovCi0JIkVMMk5TWU5DIiwgLyogOTUgKi8KLQkiRUwzSExUIiwgLyogOTYgKi8KLQkiRUwzUlNUIiwgLyogOTcgKi8KLQkiRUxOUk5HIiwgLyogOTggKi8KLQkiRVVOQVRDSCIsIC8qIDk5ICovCi0JIkVOT0NTSSIsIC8qIDEwMCAqLwotCSJFTDJITFQiLCAvKiAxMDEgKi8KLQkiRUJBREUiLCAvKiAxMDIgKi8KLQkiRUJBRFIiLCAvKiAxMDMgKi8KLQkiRVhGVUxMIiwgLyogMTA0ICovCi0JIkVOT0FOTyIsIC8qIDEwNSAqLwotCSJFQkFEUlFDIiwgLyogMTA2ICovCi0JIkVCQURTTFQiLCAvKiAxMDcgKi8KLQkiRURFQURMT0NLIiwgLyogMTA4ICovCi0JIkVCRk9OVCIsIC8qIDEwOSAqLwotCSJFTElCRVhFQyIsIC8qIDExMCAqLwotCSJFTk9EQVRBIiwgLyogMTExICovCi0JIkVMSUJCQUQiLCAvKiAxMTIgKi8KLQkiRU5PUEtHIiwgLyogMTEzICovCi0JIkVMSUJBQ0MiLCAvKiAxMTQgKi8KLQkiRU5PVFVOSVEiLCAvKiAxMTUgKi8KLQkiRVJFU1RBUlQiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFSUxTRVEiLCAvKiAxMjIgKi8KLQkiRUxJQk1BWCIsIC8qIDEyMyAqLwotCSJFTElCU0NOIiwgLyogMTI0ICovCi0JIkVOT01FRElVTSIsIC8qIDEyNSAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDEyNiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ3NTBiZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudDEuaAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSNpbmNsdWRlICIuLi9zdnI0L2Vycm5vZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudDIuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjQzNjk5Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRVdPVUxEQkxPQ0siLCAvKiAzNSAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDM2ICovCi0JIkVBTFJFQURZIiwgLyogMzcgKi8KLQkiRU5PVFNPQ0siLCAvKiAzOCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiAzOSAqLwotCSJFTVNHU0laRSIsIC8qIDQwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA0MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDQyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDQzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDQ0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA0NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA0NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA0NyAqLwotCSJFQUREUklOVVNFIiwgLyogNDggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDQ5ICovCi0JIkVORVRET1dOIiwgLyogNTAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiA1MSAqLwotCSJFTkVUUkVTRVQiLCAvKiA1MiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiA1MyAqLwotCSJFQ09OTlJFU0VUIiwgLyogNTQgKi8KLQkiRU5PQlVGUyIsIC8qIDU1ICovCi0JIkVJU0NPTk4iLCAvKiA1NiAqLwotCSJFTk9UQ09OTiIsIC8qIDU3ICovCi0JIkVTSFVURE9XTiIsIC8qIDU4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDU5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDYwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDYxICovCi0JIkVMT09QIiwgLyogNjIgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogNjMgKi8KLQkiRUhPU1RET1dOIiwgLyogNjQgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogNjUgKi8KLQkiRU5PVEVNUFRZIiwgLyogNjYgKi8KLQkiRVBST0NMSU0iLCAvKiA2NyAqLwotCSJFVVNFUlMiLCAvKiA2OCAqLwotCSJFRFFVT1QiLCAvKiA2OSAqLwotCSJFU1RBTEUiLCAvKiA3MCAqLwotCSJFUkVNT1RFIiwgLyogNzEgKi8KLQkiRU5PU1RSIiwgLyogNzIgKi8KLQkiRVRJTUUiLCAvKiA3MyAqLwotCSJFTk9TUiIsIC8qIDc0ICovCi0JIkVOT01TRyIsIC8qIDc1ICovCi0JIkVCQURNU0ciLCAvKiA3NiAqLwotCSJFSURSTSIsIC8qIDc3ICovCi0JIkVERUFETEsiLCAvKiA3OCAqLwotCSJFTk9MQ0siLCAvKiA3OSAqLwotCSJFTk9ORVQiLCAvKiA4MCAqLwotCSJFUlJFTU9URSIsIC8qIDgxICovCi0JIkVOT0xJTksiLCAvKiA4MiAqLwotCSJFQURWIiwgLyogODMgKi8KLQkiRVNSTU5UIiwgLyogODQgKi8KLQkiRUNPTU0iLCAvKiA4NSAqLwotCSJFUFJPVE8iLCAvKiA4NiAqLwotCSJFTVVMVElIT1AiLCAvKiA4NyAqLwotCSJFRE9URE9UIiwgLyogODggKi8KLQkiRVJFTUNIRyIsIC8qIDg5ICovCi0JIkVOT1NZUyIsIC8qIDkwICovCi0JIkVTVFJQSVBFIiwgLyogOTEgKi8KLQkiRU9WRVJGTE9XIiwgLyogOTIgKi8KLQkiRUJBREZEIiwgLyogOTMgKi8KLQkiRUNIUk5HIiwgLyogOTQgKi8KLQkiRUwyTlNZTkMiLCAvKiA5NSAqLwotCSJFTDNITFQiLCAvKiA5NiAqLwotCSJFTDNSU1QiLCAvKiA5NyAqLwotCSJFTE5STkciLCAvKiA5OCAqLwotCSJFVU5BVENIIiwgLyogOTkgKi8KLQkiRU5PQ1NJIiwgLyogMTAwICovCi0JIkVMMkhMVCIsIC8qIDEwMSAqLwotCSJFQkFERSIsIC8qIDEwMiAqLwotCSJFQkFEUiIsIC8qIDEwMyAqLwotCSJFWEZVTEwiLCAvKiAxMDQgKi8KLQkiRU5PQU5PIiwgLyogMTA1ICovCi0JIkVCQURSUUMiLCAvKiAxMDYgKi8KLQkiRUJBRFNMVCIsIC8qIDEwNyAqLwotCSJFREVBRExPQ0siLCAvKiAxMDggKi8KLQkiRUJGT05UIiwgLyogMTA5ICovCi0JIkVMSUJFWEVDIiwgLyogMTEwICovCi0JIkVOT0RBVEEiLCAvKiAxMTEgKi8KLQkiRUxJQkJBRCIsIC8qIDExMiAqLwotCSJFTk9QS0ciLCAvKiAxMTMgKi8KLQkiRUxJQkFDQyIsIC8qIDExNCAqLwotCSJFTk9UVU5JUSIsIC8qIDExNSAqLwotCSJFUkVTVEFSVCIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVJTFNFUSIsIC8qIDEyMiAqLwotCSJFTElCTUFYIiwgLyogMTIzICovCi0JIkVMSUJTQ04iLCAvKiAxMjQgKi8KLQkiRU5PTUVESVVNIiwgLyogMTI1ICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI2ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkNmI4YS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsODM4ICswLDAgQEAKLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDUzNmNmLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3N2cjQvaW9jdGxlbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZDZiOGEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MzggKzAsMCBAQAotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNTliNWQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0JIlNJR18wIiwJLyogMCAqLwotCSJTSUdIVVAiLAkvKiAxICovCi0JIlNJR0lOVCIsCS8qIDIgKi8KLQkiU0lHUVVJVCIsCS8qIDMgKi8KLQkiU0lHSUxMIiwJLyogNCAqLwotCSJTSUdUUkFQIiwJLyogNSAqLwotCSJTSUdBQlJUIiwJLyogNiAqLwotCSJTSUdFTVQiLAkvKiA3ICovCi0JIlNJR0ZQRSIsCS8qIDggKi8KLQkiU0lHS0lMTCIsCS8qIDkgKi8KLQkiU0lHQlVTIiwJLyogMTAgKi8KLQkiU0lHU0VHViIsCS8qIDExICovCi0JIlNJR1NZUyIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1VSRyIsCS8qIDE2ICovCi0JIlNJR1NUT1AiLAkvKiAxNyAqLwotCSJTSUdUU1RQIiwJLyogMTggKi8KLQkiU0lHQ09OVCIsCS8qIDE5ICovCi0JIlNJR0NITEQiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR0lPIiwJLyogMjMgKi8KLQkiU0lHWENQVSIsCS8qIDI0ICovCi0JIlNJR1hGU1oiLAkvKiAyNSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyNiAqLwotCSJTSUdQUk9GIiwJLyogMjcgKi8KLQkiU0lHV0lOQ0giLAkvKiAyOCAqLwotCSJTSUdMT1NUIiwJLyogMjkgKi8KLQkiU0lHVVNSMSIsCS8qIDMwICovCi0JIlNJR1VTUjIiLAkvKiAzMSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmU3YTI2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3NpZ25hbGVudDEuaAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSNpbmNsdWRlICIuLi9zdnI0L3NpZ25hbGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDU5YjVkLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3NpZ25hbGVudDIuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0FCUlQiLAkvKiA2ICovCi0JIlNJR0VNVCIsCS8qIDcgKi8KLQkiU0lHRlBFIiwJLyogOCAqLwotCSJTSUdLSUxMIiwJLyogOSAqLwotCSJTSUdCVVMiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHU1lTIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHVVJHIiwJLyogMTYgKi8KLQkiU0lHU1RPUCIsCS8qIDE3ICovCi0JIlNJR1RTVFAiLAkvKiAxOCAqLwotCSJTSUdDT05UIiwJLyogMTkgKi8KLQkiU0lHQ0hMRCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHSU8iLAkvKiAyMyAqLwotCSJTSUdYQ1BVIiwJLyogMjQgKi8KLQkiU0lHWEZTWiIsCS8qIDI1ICovCi0JIlNJR1ZUQUxSTSIsCS8qIDI2ICovCi0JIlNJR1BST0YiLAkvKiAyNyAqLwotCSJTSUdXSU5DSCIsCS8qIDI4ICovCi0JIlNJR0xPU1QiLAkvKiAyOSAqLwotCSJTSUdVU1IxIiwJLyogMzAgKi8KLQkiU0lHVVNSMiIsCS8qIDMxICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1NmUwOGQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbC5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3NwYXJjL3N5c2NhbGwuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDFmOGRhLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwxLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbDEuaCx2IDEuMSAyMDA0LzA3LzEyIDA3OjQ0OjA4IHJvbGFuZCBFeHAgJAotICovCi0KLSNkZWZpbmUJU09MQVJJU19zeXNjYWxsCTAKLSNkZWZpbmUJU09MQVJJU19leGl0CTEKLSNkZWZpbmUJU09MQVJJU19mb3JrCTIKLSNkZWZpbmUJU09MQVJJU19yZWFkCTMKLSNkZWZpbmUJU09MQVJJU193cml0ZQk0Ci0jZGVmaW5lCVNPTEFSSVNfb3Blbgk1Ci0jZGVmaW5lCVNPTEFSSVNfY2xvc2UJNgotI2RlZmluZQlTT0xBUklTX3dhaXQJNwotI2RlZmluZQlTT0xBUklTX2NyZWF0CTgKLSNkZWZpbmUJU09MQVJJU19saW5rCTkKLSNkZWZpbmUJU09MQVJJU191bmxpbmsJMTAKLSNkZWZpbmUJU09MQVJJU19leGVjCTExCi0jZGVmaW5lCVNPTEFSSVNfY2hkaXIJMTIKLSNkZWZpbmUJU09MQVJJU190aW1lCTEzCi0jZGVmaW5lCVNPTEFSSVNfbWtub2QJMTQKLSNkZWZpbmUJU09MQVJJU19jaG1vZAkxNQotI2RlZmluZQlTT0xBUklTX2Nob3duCTE2Ci0jZGVmaW5lCVNPTEFSSVNfYnJrCQkxNwotI2RlZmluZQlTT0xBUklTX3N0YXQJMTgKLSNkZWZpbmUJU09MQVJJU19sc2VlawkxOQotI2RlZmluZQlTT0xBUklTX2dldHBpZAkyMAotI2RlZmluZQlTT0xBUklTX21vdW50CTIxCi0jZGVmaW5lCVNPTEFSSVNfdW1vdW50CTIyCi0jZGVmaW5lCVNPTEFSSVNfc2V0dWlkCTIzCi0jZGVmaW5lCVNPTEFSSVNfZ2V0dWlkCTI0Ci0jZGVmaW5lCVNPTEFSSVNfc3RpbWUJMjUKLSNkZWZpbmUJU09MQVJJU19wdHJhY2UJMjYKLSNkZWZpbmUJU09MQVJJU19hbGFybQkyNwotI2RlZmluZQlTT0xBUklTX2ZzdGF0CTI4Ci0jZGVmaW5lCVNPTEFSSVNfcGF1c2UJMjkKLSNkZWZpbmUJU09MQVJJU191dGltZQkzMAotI2RlZmluZQlTT0xBUklTX3N0dHkJMzEKLSNkZWZpbmUJU09MQVJJU19ndHR5CTMyCi0jZGVmaW5lCVNPTEFSSVNfYWNjZXNzCTMzCi0jZGVmaW5lCVNPTEFSSVNfbmljZQkzNAotI2RlZmluZQlTT0xBUklTX3N0YXRmcwkzNQotI2RlZmluZQlTT0xBUklTX3N5bmMJMzYKLSNkZWZpbmUJU09MQVJJU19raWxsCTM3Ci0jZGVmaW5lCVNPTEFSSVNfZnN0YXRmcwkzOAotI2RlZmluZQlTT0xBUklTX3BncnBzeXMJMzkKLSNkZWZpbmUJU09MQVJJU194ZW5peAk0MAotI2RlZmluZQlTT0xBUklTX2R1cAkJNDEKLSNkZWZpbmUJU09MQVJJU19waXBlCTQyCi0jZGVmaW5lCVNPTEFSSVNfdGltZXMJNDMKLSNkZWZpbmUJU09MQVJJU19wcm9maWwJNDQKLSNkZWZpbmUJU09MQVJJU19wbG9jawk0NQotI2RlZmluZQlTT0xBUklTX3NldGdpZAk0NgotI2RlZmluZQlTT0xBUklTX2dldGdpZAk0NwotI2RlZmluZQlTT0xBUklTX3NpZ25hbAk0OAotI2RlZmluZQlTT0xBUklTX21zZ3N5cwk0OQotI2RlZmluZQlTT0xBUklTX3N5c3N1bgk1MAotI2RlZmluZQlTT0xBUklTX2FjY3QJNTEKLSNkZWZpbmUJU09MQVJJU19zaG1zeXMJNTIKLSNkZWZpbmUJU09MQVJJU19zZW1zeXMJNTMKLSNkZWZpbmUJU09MQVJJU19pb2N0bAk1NAotI2RlZmluZQlTT0xBUklTX3VhZG1pbgk1NQotI2RlZmluZQlTT0xBUklTX3V0c3N5cwk1NwotI2RlZmluZQlTT0xBUklTX2Zkc3luYwk1OAotI2RlZmluZQlTT0xBUklTX2V4ZWN2ZQk1OQotI2RlZmluZQlTT0xBUklTX3VtYXNrCTYwCi0jZGVmaW5lCVNPTEFSSVNfY2hyb290CTYxCi0jZGVmaW5lCVNPTEFSSVNfZmNudGwJNjIKLSNkZWZpbmUJU09MQVJJU191bGltaXQJNjMKLSNkZWZpbmUJU09MQVJJU19ybWRpcgk3OQotI2RlZmluZQlTT0xBUklTX21rZGlyCTgwCi0jZGVmaW5lCVNPTEFSSVNfZ2V0ZGVudHMJODEKLSNkZWZpbmUJU09MQVJJU19zeXNmcwk4NAotI2RlZmluZQlTT0xBUklTX2dldG1zZwk4NQotI2RlZmluZQlTT0xBUklTX3B1dG1zZwk4NgotI2RlZmluZQlTT0xBUklTX3BvbGwJODcKLSNkZWZpbmUJU09MQVJJU19sc3RhdAk4OAotI2RlZmluZQlTT0xBUklTX3N5bWxpbmsJODkKLSNkZWZpbmUJU09MQVJJU19yZWFkbGluawk5MAotI2RlZmluZQlTT0xBUklTX3NldGdyb3Vwcwk5MQotI2RlZmluZQlTT0xBUklTX2dldGdyb3Vwcwk5MgotI2RlZmluZQlTT0xBUklTX2ZjaG1vZAk5MwotI2RlZmluZQlTT0xBUklTX2ZjaG93bgk5NAotI2RlZmluZQlTT0xBUklTX3NpZ3Byb2NtYXNrCTk1Ci0jZGVmaW5lCVNPTEFSSVNfc2lnc3VzcGVuZAk5NgotI2RlZmluZQlTT0xBUklTX3NpZ2FsdHN0YWNrCTk3Ci0jZGVmaW5lCVNPTEFSSVNfc2lnYWN0aW9uCTk4Ci0jZGVmaW5lCVNPTEFSSVNfc2lncGVuZGluZwk5OQotI2RlZmluZQlTT0xBUklTX2NvbnRleHQJMTAwCi0jZGVmaW5lCVNPTEFSSVNfZXZzeXMJMTAxCi0jZGVmaW5lCVNPTEFSSVNfZXZ0cmFwcmV0CTEwMgotI2RlZmluZQlTT0xBUklTX3N0YXR2ZnMJMTAzCi0jZGVmaW5lCVNPTEFSSVNfZnN0YXR2ZnMJMTA0Ci0jZGVmaW5lCVNPTEFSSVNfbmZzc3lzCTEwNgotI2RlZmluZQlTT0xBUklTX3dhaXRzeXMJMTA3Ci0jZGVmaW5lCVNPTEFSSVNfc2lnc2VuZHN5cwkxMDgKLSNkZWZpbmUJU09MQVJJU19ocnRzeXMJMTA5Ci0jZGVmaW5lCVNPTEFSSVNfYWNhbmNlbAkxMTAKLSNkZWZpbmUJU09MQVJJU19hc3luYwkxMTEKLSNkZWZpbmUJU09MQVJJU19wcmlvY250bHN5cwkxMTIKLSNkZWZpbmUJU09MQVJJU19wYXRoY29uZgkxMTMKLSNkZWZpbmUJU09MQVJJU19taW5jb3JlCTExNAotI2RlZmluZQlTT0xBUklTX21tYXAJMTE1Ci0jZGVmaW5lCVNPTEFSSVNfbXByb3RlY3QJMTE2Ci0jZGVmaW5lCVNPTEFSSVNfbXVubWFwCTExNwotI2RlZmluZQlTT0xBUklTX2ZwYXRoY29uZgkxMTgKLSNkZWZpbmUJU09MQVJJU192Zm9yawkxMTkKLSNkZWZpbmUJU09MQVJJU19mY2hkaXIJMTIwCi0jZGVmaW5lCVNPTEFSSVNfcmVhZHYJMTIxCi0jZGVmaW5lCVNPTEFSSVNfd3JpdGV2CTEyMgotI2RlZmluZQlTT0xBUklTX3hzdGF0CTEyMwotI2RlZmluZQlTT0xBUklTX2x4c3RhdAkxMjQKLSNkZWZpbmUJU09MQVJJU19meHN0YXQJMTI1Ci0jZGVmaW5lCVNPTEFSSVNfeG1rbm9kCTEyNgotI2RlZmluZQlTT0xBUklTX2Nsb2NhbAkxMjcKLSNkZWZpbmUJU09MQVJJU19zZXRybGltaXQJMTI4Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0cmxpbWl0CTEyOQotI2RlZmluZQlTT0xBUklTX2xjaG93bgkxMzAKLSNkZWZpbmUJU09MQVJJU19tZW1jbnRsCTEzMQotI2RlZmluZQlTT0xBUklTX2dldHBtc2cJMTMyCi0jZGVmaW5lCVNPTEFSSVNfcHV0cG1zZwkxMzMKLSNkZWZpbmUJU09MQVJJU19yZW5hbWUJMTM0Ci0jZGVmaW5lCVNPTEFSSVNfdW5hbWUJMTM1Ci0jZGVmaW5lCVNPTEFSSVNfc2V0ZWdpZAkxMzYKLSNkZWZpbmUJU09MQVJJU19zeXNjb25maWcJMTM3Ci0jZGVmaW5lCVNPTEFSSVNfYWRqdGltZQkxMzgKLSNkZWZpbmUJU09MQVJJU19zeXN0ZW1pbmZvCTEzOQotI2RlZmluZQlTT0xBUklTX3NldGV1aWQJMTQxCi0jZGVmaW5lCVNPTEFSSVNfdnRyYWNlCTE0MgotI2RlZmluZQlTT0xBUklTX2ZvcmsxCTE0MwotI2RlZmluZQlTT0xBUklTX3NpZ3RpbWVkd2FpdAkxNDQKLSNkZWZpbmUJU09MQVJJU19sd3BfaW5mbwkxNDUKLSNkZWZpbmUJU09MQVJJU195aWVsZAkxNDYKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2VtYV93YWl0CTE0NwotI2RlZmluZQlTT0xBUklTX2x3cF9zZW1hX3Bvc3QJMTQ4Ci0jZGVmaW5lCVNPTEFSSVNfbW9kY3RsCTE1MgotI2RlZmluZQlTT0xBUklTX2ZjaHJvb3QJMTUzCi0jZGVmaW5lCVNPTEFSSVNfdXRpbWVzCTE1NAotI2RlZmluZQlTT0xBUklTX3ZoYW5ndXAJMTU1Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0dGltZW9mZGF5CTE1NgotI2RlZmluZQlTT0xBUklTX2dldGl0aW1lcgkJMTU3Ci0jZGVmaW5lCVNPTEFSSVNfc2V0aXRpbWVyCQkxNTgKLSNkZWZpbmUJU09MQVJJU19sd3BfY3JlYXRlCQkxNTkKLSNkZWZpbmUJU09MQVJJU19sd3BfZXhpdAkJMTYwCi0jZGVmaW5lCVNPTEFSSVNfbHdwX3N1c3BlbmQJCTE2MQotI2RlZmluZQlTT0xBUklTX2x3cF9jb250aW51ZQkxNjIKLSNkZWZpbmUJU09MQVJJU19sd3Bfa2lsbAkJMTYzCi0jZGVmaW5lCVNPTEFSSVNfbHdwX3NlbGYJCTE2NAotI2RlZmluZQlTT0xBUklTX2x3cF9zZXRwcml2YXRlCTE2NQotI2RlZmluZQlTT0xBUklTX2x3cF9nZXRwcml2YXRlCTE2NgotI2RlZmluZQlTT0xBUklTX2x3cF93YWl0CQkxNjcKLSNkZWZpbmUJU09MQVJJU19sd3BfbXV0ZXhfdW5sb2NrCTE2OAotI2RlZmluZQlTT0xBUklTX2x3cF9tdXRleF9sb2NrCTE2OQotI2RlZmluZQlTT0xBUklTX2x3cF9jb25kX3dhaXQJMTcwCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfc2lnbmFsCTE3MQotI2RlZmluZQlTT0xBUklTX2x3cF9jb25kX2Jyb2FkY2FzdAkxNzIKLSNkZWZpbmUJU09MQVJJU19wcmVhZAkJMTczCi0jZGVmaW5lCVNPTEFSSVNfcHdyaXRlCQkxNzQKLSNkZWZpbmUJU09MQVJJU19sbHNlZWsJCTE3NQotI2RlZmluZQlTT0xBUklTX2luc3Rfc3luYwkJMTc2Ci0jZGVmaW5lCVNPTEFSSVNfa2FpbwkJMTc4Ci0jZGVmaW5lCVNPTEFSSVNfdHNvbHN5cwkJMTg0Ci0jZGVmaW5lCVNPTEFSSVNfYWNsCQkJMTg1Ci0jZGVmaW5lCVNPTEFSSVNfYXVkaXRzeXMJCTE4NgotI2RlZmluZQlTT0xBUklTX3Byb2Nlc3Nvcl9iaW5kCTE4NwotI2RlZmluZQlTT0xBUklTX3Byb2Nlc3Nvcl9pbmZvCTE4OAotI2RlZmluZQlTT0xBUklTX3Bfb25saW5lCQkxODkKLSNkZWZpbmUJU09MQVJJU19zaWdxdWV1ZQkJMTkwCi0jZGVmaW5lCVNPTEFSSVNfY2xvY2tfZ2V0dGltZQkxOTEKLSNkZWZpbmUJU09MQVJJU19jbG9ja19zZXR0aW1lCTE5MgotI2RlZmluZQlTT0xBUklTX2Nsb2NrX2dldHJlcwkxOTMKLSNkZWZpbmUJU09MQVJJU190aW1lcl9jcmVhdGUJMTk0Ci0jZGVmaW5lCVNPTEFSSVNfdGltZXJfZGVsZXRlCTE5NQotI2RlZmluZQlTT0xBUklTX3RpbWVyX3NldHRpbWUJMTk2Ci0jZGVmaW5lCVNPTEFSSVNfdGltZXJfZ2V0dGltZQkxOTcKLSNkZWZpbmUJU09MQVJJU190aW1lcl9nZXRvdmVycnVuCTE5OAotI2RlZmluZQlTT0xBUklTX25hbm9zbGVlcAkJMTk5Ci0jZGVmaW5lCVNPTEFSSVNfZmFjbAkJMjAwCi0jZGVmaW5lCVNPTEFSSVNfZG9vcgkJMjAxCi0jZGVmaW5lCVNPTEFSSVNfc2V0cmV1aWQJCTIwMgotI2RlZmluZQlTT0xBUklTX3NldHJlZ2lkCQkyMDMKLSNkZWZpbmUJU09MQVJJU19zaWdub3RpZnl3YWl0CTIxMAotI2RlZmluZQlTT0xBUklTX2x3cF9zaWdyZWRpcmVjdAkyMTEKLSNkZWZpbmUJU09MQVJJU19sd3BfYWxhcm0JCTIxMgotCi0jaW5jbHVkZSAiZHVtbXkyLmgiCi0KLWV4dGVybiBpbnQgc29sYXJpc19zeXNjYWxsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXhpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZvcmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19yZWFkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfd3JpdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19vcGVuKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvc2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc193YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY3JlYXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19saW5rKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdW5saW5rKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXhlYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2NoZGlyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21rbm9kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2htb2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaG93bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX2JyaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sc2VlaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldHBpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21vdW50KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdW1vdW50KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0dWlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0dWlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wdHJhY2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hbGFybSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGF1c2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc191dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N0dHkoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ndHR5KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWNjZXNzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbmljZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N0YXRmcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5bmMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19raWxsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnN0YXRmcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BncnBzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRwZ3JwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeGVuaXgoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNzZ2koKTsKLWV4dGVybiBpbnQgc29sYXJpc19kdXAoKTsKLWV4dGVybiBpbnQgc29sYXJpc19waXBlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcm9maWwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wbG9jaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGdpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldGdpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ2NhbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tc2dzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNzdW4oKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNpODYoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNtaXBzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzbWFjaGluZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FjY3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaG1zeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZW1zeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19pb2N0bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VhZG1pbigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3V0c3N5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Zkc3luYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2V4ZWN2ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VtYXNrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2hyb290KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNudGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bGltaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ybWRpcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX21rZGlyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0ZGVudHMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNmcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldG1zZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B1dG1zZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BvbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sc3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5bWxpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19yZWFkbGluaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGdyb3VwcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldGdyb3VwcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaG1vZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaG93bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3Byb2NtYXNrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnc3VzcGVuZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ2FsdHN0YWNrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnYWN0aW9uKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3BjYWxsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY29udGV4dCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2V2c3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXZ0cmFwcmV0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RhdHZmcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZzdGF0dmZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbmZzc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfd2FpdGlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnc2VuZHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2hydHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FjYW5jZWwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hc3luYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3ByaW9jbnRsc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGF0aGNvbmYoKTsKLWV4dGVybiBpbnQgc29sYXJpc19taW5jb3JlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbW1hcCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21wcm90ZWN0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbXVubWFwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnBhdGhjb25mKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdmZvcmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY2hkaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19yZWFkdigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3dyaXRldigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3hzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHhzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnhzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeG1rbm9kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvY2FsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0cmxpbWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cmxpbWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbGNob3duKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWVtY250bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldHBtc2coKTsKLWV4dGVybiBpbnQgc29sYXJpc19wdXRwbXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcmVuYW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdW5hbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRlZ2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzY29uZmlnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWRqdGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2luZm8oKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRldWlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdnRyYWNlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZm9yazEoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWd0aW1lZHdhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfaW5mbygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3lpZWxkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbWFfd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZW1hX3Bvc3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tb2RjdGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY2hyb290KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdXRpbWVzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdmhhbmd1cCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldHRpbWVvZmRheSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldGl0aW1lcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGl0aW1lcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jcmVhdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfZXhpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zdXNwZW5kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbnRpbnVlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2tpbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VsZigpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZXRwcml2YXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2dldHByaXZhdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9tdXRleF91bmxvY2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfbXV0ZXhfbG9jaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX3dhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY29uZF9zaWduYWwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcmVhZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B3cml0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xsc2VlaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2luc3Rfc3luYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2F1ZGl0c3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJvY2Vzc29yX2JpbmQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcm9jZXNzb3JfaW5mbygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Bfb25saW5lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lncXVldWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9ja19nZXR0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfc2V0dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX2dldHJlcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2NyZWF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2RlbGV0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX3NldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9nZXR0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX25hbm9zbGVlcCgpOwotCi0vKiBzb2xhcmlzX3BncnBzeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX2dldHBncnAoKSwgc29sYXJpc19zZXRwZ3JwKCksIHNvbGFyaXNfZ2V0c2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0c2lkKCksIHNvbGFyaXNfZ2V0cGdpZCgpLCBzb2xhcmlzX3NldHBnaWQoKTsKLQotI2RlZmluZSBTT0xBUklTX3BncnBzeXNfc3ViY2FsbAkzMDAKLSNkZWZpbmUgU09MQVJJU19nZXRwZ3JwCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX3NldHBncnAJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfZ2V0c2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX3NldHNpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMykKLSNkZWZpbmUgU09MQVJJU19nZXRwZ2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyA0KQotI2RlZmluZSBTT0xBUklTX3NldHBnaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDUpCi0KLSNkZWZpbmUgU09MQVJJU19wZ3Jwc3lzX25zdWJjYWxscwk2Ci0KLS8qIHNvbGFyaXNfc2lnY2FsbCBzdWJjYWxscyAqLwotCi0jdW5kZWYgU09MQVJJU19zaWduYWwKLSNkZWZpbmUgU09MQVJJU19zaWdjYWxsCQk0OAotCi1leHRlcm4gaW50IHNvbGFyaXNfc2lnbmFsKCksIHNvbGFyaXNfc2lnc2V0KCksIHNvbGFyaXNfc2lnaG9sZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3JlbHNlKCksIHNvbGFyaXNfc2lnaWdub3JlKCksIHNvbGFyaXNfc2lncGF1c2UoKTsKLQotI2RlZmluZSBTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbAkzMTAKLSNkZWZpbmUgU09MQVJJU19zaWduYWwJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2lnc2V0CQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3NpZ2hvbGQJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfc2lncmVsc2UJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNPTEFSSVNfc2lnaWdub3JlCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyA0KQotI2RlZmluZSBTT0xBUklTX3NpZ3BhdXNlCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyA1KQotCi0jZGVmaW5lIFNPTEFSSVNfc2lnY2FsbF9uc3ViY2FsbHMJNgotCi0vKiBtc2dzeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX21zZ2dldCgpLCBzb2xhcmlzX21zZ2N0bCgpLCBzb2xhcmlzX21zZ3JjdigpLCBzb2xhcmlzX21zZ3NuZCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwJMzIwCi0jZGVmaW5lIFNPTEFSSVNfbXNnZ2V0CQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfbXNnY3RsCQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfbXNncmN2CQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfbXNnc25kCQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDMpCi0KLSNkZWZpbmUgU09MQVJJU19tc2dzeXNfbnN1YmNhbGxzCTQKLQotLyogc2htc3lzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19zaG1hdCgpLCBzb2xhcmlzX3NobWN0bCgpLCBzb2xhcmlzX3NobWR0KCksIHNvbGFyaXNfc2htZ2V0KCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zaG1zeXNfc3ViY2FsbAkzMzAKLSNkZWZpbmUgU09MQVJJU19zaG1hdAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX3NobWN0bAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3NobWR0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfc2htZ2V0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDMpCi0KLSNkZWZpbmUgU09MQVJJU19zaG1zeXNfbnN1YmNhbGxzCTQKLQotLyogc2Vtc3lzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19zZW1jdGwoKSwgc29sYXJpc19zZW1nZXQoKSwgc29sYXJpc19zZW1vcCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwJMzQwCi0jZGVmaW5lIFNPTEFSSVNfc2VtY3RsCQkoU09MQVJJU19zZW1zeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2VtZ2V0CQkoU09MQVJJU19zZW1zeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2Vtb3AJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMikKLQotI2RlZmluZSBTT0xBUklTX3NlbXN5c19uc3ViY2FsbHMJMwotCi0vKiB1dHNzeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX29sZHVuYW1lKCksIHNvbGFyaXNfdXN0YXQoKSwgc29sYXJpc19mdXNlcnMoKTsKLQotI2RlZmluZSBTT0xBUklTX3V0c3N5c19zdWJjYWxsCTM1MAotCi0jZGVmaW5lIFNPTEFSSVNfb2xkdW5hbWUJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMCkKLQkJCQkvKiAxIGlzIHVudXNlZCAqLwotI2RlZmluZSBTT0xBUklTX3VzdGF0CQkoU09MQVJJU191dHNzeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfZnVzZXJzCQkoU09MQVJJU191dHNzeXNfc3ViY2FsbCArIDMpCi0KLSNkZWZpbmUgU09MQVJJU191dHNzeXNfbnN1YmNhbGxzCTQKLQotLyogc3lzZnMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2ZzMSgpLCBzb2xhcmlzX3N5c2ZzMigpLCBzb2xhcmlzX3N5c2ZzMygpOwotCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnNfc3ViY2FsbAkzNjAKLQkJCQkvKiAwIGlzIHVudXNlZCAqLwotI2RlZmluZSBTT0xBUklTX3N5c2ZzMQkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnMyCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zeXNmczMJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAzKQotCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnNfbnN1YmNhbGxzCTQKLQotLyogc29sYXJpc19zcGNhbGwgc3ViY2FsbHMgKi8KLQotI3VuZGVmIFNPTEFSSVNfc2lncGVuZGluZwotI2RlZmluZSBTT0xBUklTX3NwY2FsbAkJOTkKLQotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3BlbmRpbmcoKSwgc29sYXJpc19zaWdmaWxsc2V0KCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zcGNhbGxfc3ViY2FsbAkzNzAKLQkJCQkvKiAwIGlzIHVudXNlZCAqLwotI2RlZmluZSBTT0xBUklTX3NpZ3BlbmRpbmcJCShTT0xBUklTX3NwY2FsbF9zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zaWdmaWxsc2V0CQkoU09MQVJJU19zcGNhbGxfc3ViY2FsbCArIDIpCi0KLSNkZWZpbmUgU09MQVJJU19zcGNhbGxfbnN1YmNhbGxzCTMKLQotLyogc29sYXJpc19jb250ZXh0IHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19nZXRjb250ZXh0KCksIHNvbGFyaXNfc2V0Y29udGV4dCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfY29udGV4dF9zdWJjYWxsCTM4MAotI2RlZmluZSBTT0xBUklTX2dldGNvbnRleHQJCShTT0xBUklTX2NvbnRleHRfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2V0Y29udGV4dAkJKFNPTEFSSVNfY29udGV4dF9zdWJjYWxsICsgMSkKLQotI2RlZmluZSBTT0xBUklTX2NvbnRleHRfbnN1YmNhbGxzCTIKLQpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODcyOTQ2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1MyArMCwwIEBACi0JeyAxLAkwLAlzeXNfc2V0dXAsCSJzZXR1cCIgfSwJCS8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJImV4aXQiIH0sCQkvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCSJmb3JrIiB9LAkJLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCSJyZWFkIiB9LAkJLyogMyAqLwotCXsgMywJMCwJc3lzX3dyaXRlLAkid3JpdGUiIH0sCQkvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCSJvcGVuIiB9LAkJLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkiY2xvc2UiIH0sCQkvKiA2ICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkid2FpdDQiIH0sCQkvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkiY3JlYXQiIH0sCQkvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCSJsaW5rIiB9LAkJLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCSJ1bmxpbmsiIH0sCQkvKiAxMCAqLwotCXsgMiwgICAgVEZ8VFAsCXN5c19leGVjdiwJImV4ZWN2IiB9LAkJLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCSJjaGRpciIgfSwJCS8qIDEyICovCi0gICAgICAgIHsgMywgICAgVEYsICAgICBzeXNfY2hvd24sICAgICAgImNob3duIn0sCQkvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJIm1rbm9kIiB9LAkJLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCSJjaG1vZCIgfSwJCS8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkibGNob3duIiB9LAkJLyogMTYgKi8KLQl7IDEsCTAsCXN5c19icmssCSJicmsiIH0sCQkvKiAxNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkicGVyZmN0ciIgfSwJCS8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCSJsc2VlayIgfSwJCS8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkiZ2V0cGlkIiB9LAkJLyogMjAgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCSJjYXBnZXQiIH0sCQkvKiAyMSAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJImNhcHNldCIgfSwJCS8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkic2V0dWlkIiB9LAkJLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCSJnZXR1aWQiIH0sCQkvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCSJ0aW1lIiB9LAkJLyogMjUgKi8KLQl7IDUsCTAsCXN5c19wdHJhY2UsCSJwdHJhY2UiIH0sCQkvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkiYWxhcm0iIH0sCQkvKiAyNyAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywic2lnYWx0c3RhY2siIH0sCS8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkicGF1c2UiIH0sCQkvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJInV0aW1lIiB9LAkJLyogMzAgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24zMiIgfSwJCS8qIDMxICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkiZmNob3duMzIiIH0sCQkvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCSJhY2Nlc3MiIH0sCQkvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCSJuaWNlIiB9LAkJLyogMzQgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJjaG93bjMyIiB9LAkJLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkic3luYyIgfSwJCS8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCSJraWxsIiB9LAkJLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJInN0YXQiIH0sCQkvKiAzOCAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJInNlbmRmaWxlIiB9LAkJLyogMzkgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCSJsc3RhdCIgfSwJCS8qIDQwICovCi0JeyAyLAkwLAlzeXNfZHVwLAkiZHVwIiB9LAkJLyogNDEgKi8KLQl7IDAsCTAsCXN5c19waXBlLAkicGlwZSIgfSwJCS8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCSJ0aW1lcyIgfSwJCS8qIDQzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkiZ2V0dWlkMzIiIH0sCQkvKiA0NCAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkidW1vdW50IiB9LAkJLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCSJzZXRnaWQiIH0sCQkvKiA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJImdldGdpZCIgfSwJCS8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJInNpZ25hbCIgfSwJCS8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQiIH0sCQkvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCSJnZXRlZ2lkIiB9LAkJLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJImFjY3QiIH0sCQkvKiA1MSAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkibWVtb3J5X29yZGVyaW5nIiB9LAkvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJImdldGdpZDMyIiB9LAkJLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJImlvY3RsIiB9LAkJLyogNTQgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCSJyZWJvb3QiIH0sCQkvKiA1NSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCSJtbWFwMiIgfSwJCS8qIDU2ICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCSJzeW1saW5rIiB9LAkJLyogNTcgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCSJyZWFkbGluayIgfSwJCS8qIDU4ICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJImV4ZWN2ZSIgfSwJCS8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCSJ1bWFzayIgfSwJCS8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJImNocm9vdCIgfSwJCS8qIDYxICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCSJmc3RhdCIgfSwJCS8qIDYyICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCSJmc3RhdDY0IiB9LAkJLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwiZ2V0cGFnZXNpemUiIH0sCS8qIDY0ICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCSJtc3luYyIgfSwJCS8qIDY1ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkidmZvcmsiIH0sCQkvKiA2NiAqLwotCXsgNSwJVEYsCXN5c19wcmVhZCwJInByZWFkIiB9LAkJLyogNjcgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkicHdyaXRlIiB9LAkJLyogNjggKi8KLQl7IDAsICAgIDAsCXN5c19nZXRldWlkLAkiZ2V0ZXVpZDMyIiB9LAkJLyogNjkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZDMyIiB9LAkJLyogNzAgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkibW1hcCIgfSwJCS8qIDcxICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCSJzZXRyZXVpZDMyIiB9LAkJLyogNzIgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCSJtdW5tYXAiIH0sCQkvKiA3MyAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkibXByb3RlY3QiIH0sCQkvKiA3NCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCSJtYWR2aXNlIiB9LAkJLyogNzUgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkidmhhbmd1cCIgfSwJCS8qIDc2ICovCi0JeyAzLAlURiwJc3lzX3RydW5jYXRlNjQsCSJ0cnVuY2F0ZTY0IiB9LAkJLyogNzcgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkibWluY29yZSIgfSwJCS8qIDc4ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzIiB9LAkJLyogNzkgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCSJzZXRncm91cHMiIH0sCQkvKiA4MCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCSJnZXRwZ3JwIiB9LAkJLyogODEgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCSJzZXRncm91cHMzMiIgfSwJLyogODIgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCSJzZXRpdGltZXIiIH0sCQkvKiA4MyAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJImZ0cnVuY2F0ZTY0IiB9LAkvKiA4NCAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCSJzd2Fwb24iIH0sCQkvKiA4NSAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJImdldGl0aW1lciIgfSwJCS8qIDg2ICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkic2V0dWlkMzIiIH0sCQkvKiA4NyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLCJzZXRob3N0bmFtZSIgfSwJLyogODggKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCSJzZXRnaWQzMiIgfSwJCS8qIDg5ICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJImR1cDIiIH0sCQkvKiA5MCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkic2V0ZnN1aWQzMiIgfSwJCS8qIDkxICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCSJmY250bCIgfSwJCS8qIDkyICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkic2VsZWN0IiB9LAkJLyogOTMgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJInNldGZzZ2lkMzIiIH0sCQkvKiA5NCAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkiZnN5bmMiIH0sCQkvKiA5NSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LCJzZXRwcmlvcml0eSIgfSwJLyogOTYgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkic29ja2V0IiB9LAkJLyogOTcgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJImNvbm5lY3QiIH0sCQkvKiA5OCAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCSJhY2NlcHQiIH0sCQkvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LCJnZXRwcmlvcml0eSIgfSwJLyogMTAwICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkicnRfc2lncmV0dXJuIiB9LAkvKiAxMDEgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLCJydF9zaWdhY3Rpb24iIH0sCS8qIDEwMiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywicnRfc2lncHJvY21hc2siIH0sCS8qIDEwMyAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLCJydF9zaWdwZW5kaW5nIiB9LAkvKiAxMDQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LCJydF9zaWd0aW1lZHdhaXQiIH0sLyogMTA1ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywicnRfc2lncXVldWVpbmZvIiB9LC8qIDEwNiAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLCJydF9zaWdzdXNwZW5kIiB9LAkvKiAxMDcgKi8KLQl7IDMsCVRTLAlzeXNfc2V0cmVzdWlkLAkic2V0cmVzdWlkIiB9LAkJLyogMTA4ICovCi0JeyAzLCAgICBUUywJc3lzX2dldHJlc3VpZCwJImdldHJlc3VpZCIgfSwJCS8qIDEwOSAqLwotCXsgMywJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQiIH0sCQkvKiAxMTAgKi8KLQl7IDMsCVRTLAlzeXNfZ2V0cmVzZ2lkLAkiZ2V0cmVzZ2lkIiB9LAkJLyogMTExICovCi0JeyAyLAlUUywJc3lzX3NldHJlc2dpZCwJInNldHJlc2dpZDMyIiB9LAkvKiAxMTIgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJInJlY3Ztc2ciIH0sCQkvKiAxMTMgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJInNlbmRtc2ciIH0sCQkvKiAxMTQgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCSJnZXRncm91cHMzMiIgfSwJLyogMTE1ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LCJnZXR0aW1lb2ZkYXkiIH0sCS8qIDExNiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJImdldHJ1c2FnZSIgfSwJCS8qIDExNyAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkiZ2V0c29ja29wdCIgfSwJCS8qIDExOCAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCSJnZXRjd2QiIH0sCQkvKiAxMTkgKi8KLQl7IDMsCTAsCXN5c19yZWFkdiwJInJlYWR2IiB9LAkJLyogMTIwICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkid3JpdGV2IiB9LAkJLyogMTIxICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LCJzZXR0aW1lb2ZkYXkiIH0sCS8qIDEyMiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJImZjaG93biIgfSwJCS8qIDEyMyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJImZjaG1vZCIgfSwJCS8qIDEyNCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJInJlY3Zmcm9tIiB9LAkJLyogMTI1ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCSJzZXRyZXVpZCIgfSwJCS8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkic2V0cmVnaWQiIH0sCQkvKiAxMjcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkicmVuYW1lIiB9LAkJLyogMTI4ICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkidHJ1bmNhdGUiIH0sCQkvKiAxMjkgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGUiIH0sCQkvKiAxMzAgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJImZsb2NrIiB9LAkJLyogMTMxICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCSJsc3RhdDY0IiB9LAkJLyogMTMyICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJInNlbmR0byIgfSwJCS8qIDEzMyAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJInNodXRkb3duIiB9LAkJLyogMTM0ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCSJzb2NrZXRwYWlyIiB9LAkJLyogMTM1ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkibWtkaXIiIH0sCQkvKiAxMzYgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCSJybWRpciIgfSwJCS8qIDEzNyAqLwotCXsgMiwJVEYsCXN5c191dGltZXMsCSJ1dGltZXMiIH0sCQkvKiAxMzggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkic3RhdDY0IiB9LAkJLyogMTM5ICovCi0JeyA0LCAgICBURiwJc3lzX3NlbmRmaWxlNjQsCSJzZW5kZmlsZTY0IiB9LAkJLyogMTQwICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLCJnZXRwZWVybmFtZSIgfSwJLyogMTQxICovCi0JeyA1LCAgICAwLAlzeXNfZnV0ZXgsCSJmdXRleCIgfSwJCS8qIDE0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkiZ2V0dGlkIiB9LAkJLyogMTQzICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkiZ2V0cmxpbWl0IiB9LAkJLyogMTQ0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkic2V0cmxpbWl0IiB9LAkJLyogMTQ1ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJInBpdm90X3Jvb3QiIH0sCQkvKiAxNDYgKi8KLQl7IDUsCTAsCXN5c19wcmN0bCwJInByY3RsIiB9LAkJLyogMTQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfcmVhZCIgfSwJLyogMTQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfd3JpdGUiIH0sCS8qIDE0OSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwiZ2V0c29ja25hbWUiIH0sCS8qIDE1MCAqLwotCXsgNCwJVE4sCXN5c19nZXRtc2csCSJnZXRtc2ciIH0sCQkvKiAxNTEgKi8KLQl7IDQsCVROLAlzeXNfcHV0bXNnLAkicHV0bXNnIiB9LAkJLyogMTUyICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJInBvbGwiIH0sCQkvKiAxNTMgKi8KLQl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkiZ2V0ZGVudHM2NCIgfSwJCS8qIDE1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGw2NCIgfSwJCS8qIDE1NSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkiZ2V0ZGlyZW50cmllcyIgfSwJLyogMTU2ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJInN0YXRmcyIgfSwJCS8qIDE1NyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCSJmc3RhdGZzIiB9LAkJLyogMTU4ICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJIm9sZHVtb3VudCIgfSwJCS8qIDE1OSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMTYwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAxNjEgKi8KLQl7IDIsCTAsCXByaW50YXJncywJImdldGRvbWFpbm5hbWUiIH0sCS8qIDE2MiAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsInNldGRvbWFpbm5hbWUiIH0sCS8qIDE2MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkidXRyYXBfaW5zdGFsbCIgfSwJLyogMTY0ICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCSJxdW90YWN0bCIgfSwJCS8qIDE2NSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkic2V0X3RpZF9hZGRyZXNzIiB9LAkvKiAxNjYgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCSJtb3VudCIgfSwJCS8qIDE2NyAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkidXN0YXQiIH0sCQkvKiAxNjggKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJzZXR4YXR0ciIgfSwJCS8qIDE2OSAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJImxzZXR4YXR0ciIgfSwJCS8qIDE3MCAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJImZzZXR4YXR0ciIgfSwJCS8qIDE3MSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImdldHhhdHRyIiB9LAkJLyogMTcyICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkibGdldHhhdHRyIiB9LAkJLyogMTczICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIgfSwJCS8qIDE3NCAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJInNldHNpZCIgfSwJCS8qIDE3NSAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJImZjaGRpciIgfSwJCS8qIDE3NiAqLwotCXsgNCwgICAgMCwJc3lzX2ZnZXR4YXR0ciwJImZnZXR4YXR0ciIgfSwJCS8qIDE3NyAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsaXN0eGF0dHIiIH0sCQkvKiAxNzggKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGxpc3R4YXR0ciIgfSwJCS8qIDE3OSAqLwotCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCSJmbGlzdHhhdHRyIiB9LAkJLyogMTgwICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJyZW1vdmV4YXR0ciIgfSwJLyogMTgxICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJscmVtb3ZleGF0dHIiIH0sCS8qIDE4MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIgfSwJCS8qIDE4MyAqLwotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwicXVlcnlfbW9kdWxlIiB9LAkvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkic2V0cGdpZCIgfSwJCS8qIDE4NSAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwiZnJlbW92ZXhhdHRyIiB9LAkvKiAxODYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJInRraWxsIiB9LAkJLyogMTg3ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0X2dyb3VwIiB9LAkJLyogMTg4ICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCSJ1bmFtZSIgfSwJCS8qIDE4OSAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLCJpbml0X21vZHVsZSIgfSwJLyogMTkwICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksInBlcnNvbmFsaXR5IiB9LAkvKiAxOTEgKi8KLQl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLCJyZW1hcF9maWxlX3BhZ2VzIiB9LC8qIDE5MiAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwiZXBvbGxfY3JlYXRlIiB9LAkvKiAxOTMgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCSJlcG9sbF9jdGwiIH0sCQkvKiAxOTQgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkiZXBvbGxfd2FpdCIgfSwJCS8qIDE5NSAqLwotCXsgMiwJMCwJc3lzX3VsaW1pdCwJInVsaW1pdCIgfSwJCS8qIDE5NiAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCSJnZXRwcGlkIiB9LAkJLyogMTk3ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIgfSwJCS8qIDE5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkic2dldG1hc2siIH0sCQkvKiAxOTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInNzZXRtYXNrIiB9LAkJLyogMjAwICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIiB9LAkJLyogMjAxICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiAyMDIgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkidXNlbGliIiB9LAkJLyogMjAzICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJInJlYWRkaXIiIH0sCQkvKiAyMDQgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCSJyZWFkYWhlYWQiIH0sCQkvKiAyMDUgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkic29ja2V0Y2FsbCIgfSwJCS8qIDIwNiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJInN5c2xvZyIgfSwJCS8qIDIwNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkibG9va3VwX2Rjb29raWUiIH0sCS8qIDIwOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0IiB9LAkJLyogMjA5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjRfNjQiIH0sCS8qIDIxMCAqLwotCXsgMywJVFMsCXN5c190Z2tpbGwsCSJ0Z2tpbGwiIH0sCQkvKiAyMTEgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJIndhaXRwaWQiIH0sCQkvKiAyMTIgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkic3dhcG9mZiIgfSwJCS8qIDIxMyAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCSJzeXNpbmZvIiB9LAkJLyogMjE0ICovCi0JeyA1LAkwLAlzeXNfaXBjLAkiaXBjIiB9LAkJLyogMjE1ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJInNpZ3JldHVybiIgfSwJCS8qIDIxNiAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJImNsb25lIiB9LAkJLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJIm1vZGlmeV9sZHQiIH0sCQkvKiAyMTggKi8KLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJImFkanRpbWV4IiB9LAkJLyogMjE5ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLCJzaWdwcm9jbWFzayIgfSwJLyogMjIwICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwiY3JlYXRlX21vZHVsZSIgfSwJLyogMjIxICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwiZGVsZXRlX21vZHVsZSIgfSwKLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsImdldF9rZXJuZWxfc3ltcyJ9LAkvKiAyMjMgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkiZ2V0cGdpZCIgfSwJCS8qIDIyNCAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCSJiZGZsdXNoIiB9LAkJLyogMjI1ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCSJzeXNmcyIgfSwJCS8qIDIyNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLCJhZnNfc3lzY2FsbCIgfSwJLyogMjI3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZCIgfSwJCS8qIDIyOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQiIH0sCQkvKiAyMjkgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiAyMzAgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDIzMSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDIzMiAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkic3RpbWUiIH0sCQkvKiAyMzMgKi8KLQl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCSJzdGF0ZnM2NCIgfSwJCS8qIDIzNCAqLwotCXsgMywJMCwJc3lzX2ZzdGF0ZnM2NCwJImZzdGF0ZnM2NCIgfSwJCS8qIDIzNSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJIl9sbHNlZWsiIH0sCQkvKiAyMzYgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJIm1sb2NrIiB9LAkJLyogMjM3ICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJIm11bmxvY2siIH0sCQkvKiAyMzggKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJIm1sb2NrYWxsIiB9LAkJLyogMjM5ICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJIm11bmxvY2thbGwiIH0sCQkvKiAyNDAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwic2NoZWRfc2V0cGFyYW0ifSwJLyogMjQxICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sInNjaGVkX2dldHBhcmFtIn0sCS8qIDI0MiAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwic2NoZWRfc2V0c2NoZWR1bGVyIn0sLyogMjQzICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCJzY2hlZF9nZXRzY2hlZHVsZXIifSwvKiAyNDQgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwic2NoZWRfeWllbGQiIH0sCS8qIDI0NSAqLwotCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sLyogMjQ2ICovCi0JeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwvKiAyNDcgKi8KLQl7IDIsCTAsc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sLyogMjQ4ICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkibmFub3NsZWVwIiB9LAkJLyogMjQ5ICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkibXJlbWFwIiB9LAkJLyogMjUwICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkiX3N5c2N0bCIgfSwJCS8qIDI1MSAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJImdldHNpZCIgfSwJCS8qIDI1MiAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJImZkYXRhc3luYyIgfSwJCS8qIDI1MyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkibmZzc2VydmN0bCIgfSwJCS8qIDI1NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiYXBsaWIiIH0sCQkvKiAyNTUgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLCJjbG9ja19zZXR0aW1lIiB9LAkvKiAyNTYgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLCJjbG9ja19nZXR0aW1lIiB9LAkvKiAyNTcgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsImNsb2NrX2dldHJlcyIgfSwJLyogMjU4ICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLCJjbG9ja19uYW5vc2xlZXAiIH0sLyogMjU5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI2MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LCJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNjEgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLCJ0aW1lcl9zZXR0aW1lIiB9LAkvKiAyNjIgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLCJ0aW1lcl9nZXR0aW1lIiB9LAkvKiAyNjMgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIiB9LC8qIDI2NCAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwidGltZXJfZGVsZXRlIiB9LAkvKiAyNjUgKi8KLQl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsInRpbWVyX2NyZWF0ZSIgfSwJLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY3IiB9LAkJLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY4IiB9LAkJLyogMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY5IiB9LAkJLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcwIiB9LAkJLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcxIiB9LAkJLyogMjcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcyIiB9LAkJLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjczIiB9LAkJLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc0IiB9LAkJLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc1IiB9LAkJLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc2IiB9LAkJLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc3IiB9LAkJLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc4IiB9LAkJLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc5IiB9LAkJLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgwIiB9LAkJLyogMjgwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgxIiB9LAkJLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgyIiB9LAkJLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgzIiB9LAkJLyogMjgzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg0IiB9LAkJLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg1IiB9LAkJLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg2IiB9LAkJLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg3IiB9LAkJLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg4IiB9LAkJLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg5IiB9LAkJLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkwIiB9LAkJLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkxIiB9LAkJLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkyIiB9LAkJLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkzIiB9LAkJLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk0IiB9LAkJLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk1IiB9LAkJLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk2IiB9LAkJLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk3IiB9LAkJLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk4IiB9LAkJLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk5IiB9LAkJLyogMjk5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAwIiB9LAkJLyogMzAwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAxIiB9LAkJLyogMzAxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAyIiB9LAkJLyogMzAyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAzIiB9LAkJLyogMzAzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA0IiB9LAkJLyogMzA0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA1IiB9LAkJLyogMzA1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA2IiB9LAkJLyogMzA2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA3IiB9LAkJLyogMzA3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA4IiB9LAkJLyogMzA4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA5IiB9LAkJLyogMzA5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEwIiB9LAkJLyogMzEwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzExIiB9LAkJLyogMzExICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEyIiB9LAkJLyogMzEyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEzIiB9LAkJLyogMzEzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE0IiB9LAkJLyogMzE0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE1IiB9LAkJLyogMzE1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE2IiB9LAkJLyogMzE2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE3IiB9LAkJLyogMzE3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE4IiB9LAkJLyogMzE4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE5IiB9LAkJLyogMzE5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIwIiB9LAkJLyogMzIwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIxIiB9LAkJLyogMzIxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIyIiB9LAkJLyogMzIyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIzIiB9LAkJLyogMzIzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI0IiB9LAkJLyogMzI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI1IiB9LAkJLyogMzI1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI2IiB9LAkJLyogMzI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI3IiB9LAkJLyogMzI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI4IiB9LAkJLyogMzI4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI5IiB9LAkJLyogMzI5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMwIiB9LAkJLyogMzMwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMxIiB9LAkJLyogMzMxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMyIiB9LAkJLyogMzMyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMzIiB9LAkJLyogMzMzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM0IiB9LAkJLyogMzM0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM1IiB9LAkJLyogMzM1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM2IiB9LAkJLyogMzM2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM3IiB9LAkJLyogMzM3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM4IiB9LAkJLyogMzM4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM5IiB9LAkJLyogMzM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQwIiB9LAkJLyogMzQwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQxIiB9LAkJLyogMzQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQyIiB9LAkJLyogMzQyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQzIiB9LAkJLyogMzQzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ0IiB9LAkJLyogMzQ0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ1IiB9LAkJLyogMzQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ2IiB9LAkJLyogMzQ2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ3IiB9LAkJLyogMzQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ4IiB9LAkJLyogMzQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ5IiB9LAkJLyogMzQ5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUwIiB9LAkJLyogMzUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUxIiB9LAkJLyogMzUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUyIiB9LAkJLyogMzUyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM0ZDgxMy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGxlbnQxLmgsdiAxLjEgMjAwNC8wNy8xMiAwNzo0NDowOCByb2xhbmQgRXhwICQKLSAqLwotCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2NhbGwsCSJzeXNjYWxsIgl9LCAvKiAwICovCi0JeyA2LAlUUCwJc29sYXJpc19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLwotCXsgNiwJVFAsCXNvbGFyaXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLwotCXsgNiwJMCwJc29sYXJpc19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCi0JeyA2LAkwLAlzb2xhcmlzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX3dhaXQsCQkid2FpdCIJCX0sIC8qIDcgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWMsCQkiZXhlYyIJCX0sIC8qIDExICovCi0JeyA2LAlURiwJc29sYXJpc19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCi0JeyA2LAlURiwJc29sYXJpc19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyA2LAlURiwJc29sYXJpc19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCi0JeyA2LAlURiwJc29sYXJpc19jaG93biwJCSJjaG93biIJCX0sIC8qIDE2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2JyaywJCSJicmsiCQl9LCAvKiAxNyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdW1vdW50LAkJInVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNiwJMCwJc29sYXJpc19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgNiwJMCwJc29sYXJpc19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMjggKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyA2LAkwLAlzb2xhcmlzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyA2LAlURiwJc29sYXJpc19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiAzNSAqLwotCXsgNiwJMCwJc29sYXJpc19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLwotCXsgNiwJVFMsCXNvbGFyaXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnN0YXRmcywJImZzdGF0ZnMiCX0sIC8qIDM4ICovCi0JeyA2LAkwLAlzb2xhcmlzX3BncnBzeXMsCSJwZ3Jwc3lzIgl9LCAvKiAzOSAqLwotCXsgNiwJMCwJc29sYXJpc194ZW5peCwJCSJ4ZW5peCIJCX0sIC8qIDQwICovCi0JeyA2LAkwLAlzb2xhcmlzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgNiwJMCwJc29sYXJpc19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyA2LAkwLAlzb2xhcmlzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDQ0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3Bsb2NrLAkJInBsb2NrIgkJfSwgLyogNDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lnY2FsbCwJInNpZ2NhbGwiCX0sIC8qIDQ4ICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2dzeXMsCQkibXNnc3lzIgl9LCAvKiA0OSAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNzdW4sCQkic3lzc3VuIgl9LCAvKiA1MCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobXN5cywJCSJzaG1zeXMiCX0sIC8qIDUyICovCi0JeyA2LAlUSSwJc29sYXJpc19zZW1zeXMsCQkic2Vtc3lzIgl9LCAvKiA1MyAqLwotCXsgNiwJMCwJc29sYXJpc19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3VhZG1pbiwJCSJ1YWRtaW4iCX0sIC8qIDU1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c21wLAkJInN5c21wIgkJfSwgLyogNTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdXRzc3lzLAkJInV0c3N5cyIJfSwgLyogNTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmRzeW5jLAkJImZkc3luYyIJfSwgLyogNTggKi8KLQl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDU5ICovCi0JeyA2LAkwLAlzb2xhcmlzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjQiCX0sIC8qIDY0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1Igl9LCAvKiA2NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NiIJfSwgLyogNjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjciCX0sIC8qIDY3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4Igl9LCAvKiA2OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182OSIJfSwgLyogNjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzAiCX0sIC8qIDcwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxIgl9LCAvKiA3MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MiIJfSwgLyogNzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzMiCX0sIC8qIDczICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0Igl9LCAvKiA3NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NSIJfSwgLyogNzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzYiCX0sIC8qIDc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3Igl9LCAvKiA3NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183OCIJfSwgLyogNzggKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNzkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogODAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIJfSwgLyogODEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2dpbmFwLAkJInNnaW5hcCIJfSwgLyogODIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2dpa29wdCwJInNnaWtvcHQiCX0sIC8qIDgzICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogODQgKi8KLQl7IDYsCVROLAlzeXNfZ2V0bXNnLAkJImdldG1zZyIJfSwgLyogODUgKi8KLQl7IDYsCVROLAlzeXNfcHV0bXNnLAkJInB1dG1zZyIJfSwgLyogODYgKi8KLQl7IDYsCVROLAlzb2xhcmlzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDg3ICovCi0JeyA2LAlURiwJc29sYXJpc19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDg4ICovCi0JeyA2LAlURiwJc29sYXJpc19zeW1saW5rLAkic3ltbGluayIJfSwgLyogODkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JlYWRsaW5rLAkicmVhZGxpbmsiCX0sIC8qIDkwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGdyb3VwcywJInNldGdyb3VwcyIJfSwgLyogOTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzIgl9LCAvKiA5MiAqLwotCXsgNiwJMCwJc29sYXJpc19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5MyAqLwotCXsgNiwJMCwJc29sYXJpc19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogOTUgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIgl9LCAvKiA5NiAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogOTcgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIJfSwgLyogOTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3BjYWxsLAkJInNwY2FsbCIJfSwgLyogOTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY29udGV4dCwJImNvbnRleHQiCX0sIC8qIDEwMCAqLwotCXsgNiwJMCwJc29sYXJpc19ldnN5cywJCSJldnN5cyIJCX0sIC8qIDEwMSAqLwotCXsgNiwJMCwJc29sYXJpc19ldnRyYXByZXQsCSJldnRyYXByZXQiCX0sIC8qIDEwMiAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3RhdHZmcywJInN0YXR2ZnMiCX0sIC8qIDEwMyAqLwotCXsgNiwJMCwJc29sYXJpc19mc3RhdHZmcywJImZzdGF0dmZzIgl9LCAvKiAxMDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTA1Igl9LCAvKiAxMDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbmZzc3lzLAkJIm5mc3N5cyIJfSwgLyogMTA2ICovCi0JeyA2LAlUUCwJc29sYXJpc193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMDcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lnc2VuZHN5cywJInNpZ3NlbmRzeXMiCX0sIC8qIDEwOCAqLwotCXsgNiwJMCwJc29sYXJpc19ocnRzeXMsCQkiaHJ0c3lzIgl9LCAvKiAxMDkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYWNhbmNlbCwJImFjYW5jZWwiCX0sIC8qIDExMCAqLwotCXsgNiwJMCwJc29sYXJpc19hc3luYywJCSJhc3luYyIJCX0sIC8qIDExMSAqLwotCXsgNiwJMCwJc29sYXJpc19wcmlvY250bHN5cywJInByaW9jbnRsc3lzIgl9LCAvKiAxMTIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3BhdGhjb25mLAkicGF0aGNvbmYiCX0sIC8qIDExMyAqLwotCXsgNiwJMCwJc29sYXJpc19taW5jb3JlLAkibWluY29yZSIJfSwgLyogMTE0ICovCi0JeyA2LAkwLAlzb2xhcmlzX21tYXAsCQkibW1hcCIJCX0sIC8qIDExNSAqLwotCXsgNiwJMCwJc29sYXJpc19tcHJvdGVjdCwJIm1wcm90ZWN0Igl9LCAvKiAxMTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZwYXRoY29uZiwJImZwYXRoY29uZiIJfSwgLyogMTE4ICovCi0JeyA2LAlUUCwJc29sYXJpc192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDExOSAqLwotCXsgNiwJMCwJc29sYXJpc19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMjAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxMjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTIyICovCi0JeyA2LAlURiwJc29sYXJpc194c3RhdCwJCSJ4c3RhdCIJCX0sIC8qIDEyMyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbHhzdGF0LAkJImx4c3RhdCIJfSwgLyogMTI0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Z4c3RhdCwJCSJmeHN0YXQiCX0sIC8qIDEyNSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfeG1rbm9kLAkJInhta25vZCIJfSwgLyogMTI2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NhbCwJCSJjbG9jYWwiCX0sIC8qIDEyNyAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRybGltaXQsCSJzZXRybGltaXQiCX0sIC8qIDEyOCAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRybGltaXQsCSJnZXRybGltaXQiCX0sIC8qIDEyOSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbGNob3duLAkJImxjaG93biIJfSwgLyogMTMwICovCi0JeyA2LAkwLAlzb2xhcmlzX21lbWNudGwsCSJtZW1jbnRsIgl9LCAvKiAxMzEgKi8KLQl7IDYsCVROLAlzb2xhcmlzX2dldHBtc2csCSJnZXRwbXNnIgl9LCAvKiAxMzIgKi8KLQl7IDYsCVROLAlzb2xhcmlzX3B1dHBtc2csCSJwdXRwbXNnIgl9LCAvKiAxMzMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEzNCAqLwotCXsgNiwJMCwJc29sYXJpc191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEzNSAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRlZ2lkLAkic2V0ZWdpZCIJfSwgLyogMTM2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2NvbmZpZywJInN5c2NvbmZpZyIJfSwgLyogMTM3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2FkanRpbWUsCSJhZGp0aW1lIgl9LCAvKiAxMzggKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzaW5mbywJInN5c2luZm8iCX0sIC8qIDEzOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAiCX0sIC8qIDE0MCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRldWlkLAkic2V0ZXVpZCIJfSwgLyogMTQxICovCi0JeyA2LAkwLAlzb2xhcmlzX3Z0cmFjZSwJCSJ2dHJhY2UiCX0sIC8qIDE0MiAqLwotCXsgNiwJVFAsCXNvbGFyaXNfZm9yazEsCQkiZm9yazEiCQl9LCAvKiAxNDMgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3RpbWVkd2FpdCwJInNpZ3RpbWVkd2FpdCIJfSwgLyogMTQ0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9pbmZvLAkibHdwX2luZm8iCX0sIC8qIDE0NSAqLwotCXsgNiwJMCwJc29sYXJpc195aWVsZCwJCSJ5aWVsZCIJCX0sIC8qIDE0NiAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VtYV93YWl0LAkibHdwX3NlbWFfd2FpdCIJfSwgLyogMTQ3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZW1hX3Bvc3QsCSJsd3Bfc2VtYV9wb3N0Igl9LCAvKiAxNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5Igl9LCAvKiAxNDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUwIgl9LCAvKiAxNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUxIgl9LCAvKiAxNTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbW9kY3RsLAkJIm1vZGN0bCIJfSwgLyogMTUyICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjaHJvb3QsCSJmY2hyb290Igl9LCAvKiAxNTMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDE1NCAqLwotCXsgNiwJMCwJc29sYXJpc192aGFuZ3VwLAkidmhhbmd1cCIJfSwgLyogMTU1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogMTU2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldGl0aW1lciwJImdldGl0aW1lciIJfSwgLyogMTU3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGl0aW1lciwJInNldGl0aW1lciIJfSwgLyogMTU4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jcmVhdGUsCSJsd3BfY3JlYXRlIgl9LCAvKiAxNTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2V4aXQsCSJsd3BfZXhpdCIJfSwgLyogMTYwICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zdXNwZW5kLAkibHdwX3N1c3BlbmQiCX0sIC8qIDE2MSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29udGludWUsCSJsd3BfY29udGludWUiCX0sIC8qIDE2MiAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfa2lsbCwJImx3cF9raWxsIgl9LCAvKiAxNjMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbGYsCSJsd3Bfc2VsZiIJfSwgLyogMTY0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZXRwcml2YXRlLAkibHdwX3NldHByaXZhdGUifSwgLyogMTY1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9nZXRwcml2YXRlLAkibHdwX2dldHByaXZhdGUifSwgLyogMTY2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF93YWl0LAkibHdwX3dhaXQiCX0sIC8qIDE2NyAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfdW5sb2NrLCJsd3BfbXV0ZXhfdW5sb2NrIn0sIC8qIDE2OCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfbG9jaywJImx3cF9tdXRleF9sb2NrIn0sIC8qIDE2OSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF93YWl0LAkibHdwX2NvbmRfd2FpdCJ9LCAvKiAxNzAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfc2lnbmFsLCJsd3BfY29uZF9zaWduYWwifSwgLyogMTcxICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCwibHdwX2NvbmRfYnJvYWRjYXN0In0sIC8qIDE3MiAqLwotCXsgNiwJMCwJc29sYXJpc19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE3MyAqLwotCXsgNiwJMCwJc29sYXJpc19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxNzQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbGxzZWVrLAkJImxsc2VlayIJfSwgLyogMTc1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2luc3Rfc3luYywJImluc3Rfc3luYyIJfSwgLyogMTc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NyIJfSwgLyogMTc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OCIJfSwgLyogMTc4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJfSwgLyogMTc5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MCIJfSwgLyogMTgwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MSIJfSwgLyogMTgxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MiIJfSwgLyogMTgyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJfSwgLyogMTgzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NCIJfSwgLyogMTg0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NSIJfSwgLyogMTg1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2F1ZGl0c3lzLAkiYXVkaXRzeXMiCX0sIC8qIDE4NiAqLwotCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfYmluZCwJInByb2Nlc3Nvcl9iaW5kIn0sIC8qIDE4NyAqLwotCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfaW5mbywJInByb2Nlc3Nvcl9pbmZvIn0sIC8qIDE4OCAqLwotCXsgNiwJMCwJc29sYXJpc19wX29ubGluZSwJInBfb25saW5lIgl9LCAvKiAxODkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lncXVldWUsCSJzaWdxdWV1ZSIJfSwgLyogMTkwICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAxOTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDE5MiAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDE5MyAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDE5NCAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDE5NSAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMTk2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAxOTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1biwidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxOTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbmFub3NsZWVwLAkibmFub3NsZWVwIgl9LCAvKiAxOTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAwIgl9LCAvKiAyMDAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAxIgl9LCAvKiAyMDEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAyIgl9LCAvKiAyMDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAzIgl9LCAvKiAyMDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA0Igl9LCAvKiAyMDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA1Igl9LCAvKiAyMDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA2Igl9LCAvKiAyMDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA3Igl9LCAvKiAyMDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA4Igl9LCAvKiAyMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA5Igl9LCAvKiAyMDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEwIgl9LCAvKiAyMTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjExIgl9LCAvKiAyMTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEyIgl9LCAvKiAyMTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEzIgl9LCAvKiAyMTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE0Igl9LCAvKiAyMTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE1Igl9LCAvKiAyMTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE2Igl9LCAvKiAyMTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE3Igl9LCAvKiAyMTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE4Igl9LCAvKiAyMTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE5Igl9LCAvKiAyMTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIwIgl9LCAvKiAyMjAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgl9LCAvKiAyMjEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIyIgl9LCAvKiAyMjIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIzIgl9LCAvKiAyMjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI0Igl9LCAvKiAyMjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI1Igl9LCAvKiAyMjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI2Igl9LCAvKiAyMjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI3Igl9LCAvKiAyMjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI4Igl9LCAvKiAyMjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI5Igl9LCAvKiAyMjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgl9LCAvKiAyMzAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMxIgl9LCAvKiAyMzEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMyIgl9LCAvKiAyMzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMzIgl9LCAvKiAyMzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM0Igl9LCAvKiAyMzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM1Igl9LCAvKiAyMzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM2Igl9LCAvKiAyMzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM3Igl9LCAvKiAyMzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM4Igl9LCAvKiAyMzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM5Igl9LCAvKiAyMzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQwIgl9LCAvKiAyNDAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAyNDEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQyIgl9LCAvKiAyNDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQzIgl9LCAvKiAyNDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0Igl9LCAvKiAyNDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1Igl9LCAvKiAyNDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2Igl9LCAvKiAyNDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3Igl9LCAvKiAyNDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAyNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5Igl9LCAvKiAyNDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUwIgl9LCAvKiAyNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUyIgl9LCAvKiAyNTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUzIgl9LCAvKiAyNTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAyNTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU1Igl9LCAvKiAyNTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU2Igl9LCAvKiAyNTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU3Igl9LCAvKiAyNTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU4Igl9LCAvKiAyNTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU5Igl9LCAvKiAyNTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYwIgl9LCAvKiAyNjAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYxIgl9LCAvKiAyNjEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYyIgl9LCAvKiAyNjIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KLQotCXsgNiwJMCwJc29sYXJpc19nZXRwZ3JwLAkiZ2V0cGdycCIJfSwgLyogMzAwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHBncnAsCSJzZXRwZ3JwIgl9LCAvKiAzMDEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMzAyICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDMwMyAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRwZ2lkLAkiZ2V0cGdpZCIJfSwgLyogMzA0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHBnaWQsCSJzZXRwZ2lkIgl9LCAvKiAzMDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA2Igl9LCAvKiAzMDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA3Igl9LCAvKiAzMDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA4Igl9LCAvKiAzMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA5Igl9LCAvKiAzMDkgKi8KLQotCXsgNiwJVFMsCXNvbGFyaXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogMzEwICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdzZXQsCQkic2lnc2V0Igl9LCAvKiAzMTEgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2hvbGQsCSJzaWdob2xkIgl9LCAvKiAzMTIgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3JlbHNlLAkic2lncmVsc2UiCX0sIC8qIDMxMyAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnaWdub3JlLAkic2lnaWdub3JlIgl9LCAvKiAzMTQgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3BhdXNlLAkic2lncGF1c2UiCX0sIC8qIDMxNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTYiCX0sIC8qIDMxNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTciCX0sIC8qIDMxNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgiCX0sIC8qIDMxOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkiCX0sIC8qIDMxOSAqLwotCi0JeyA2LAlUSSwJc29sYXJpc19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMyMSAqLwotCXsgNiwJVEksCXNvbGFyaXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzIyICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI0Igl9LCAvKiAzMjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI1Igl9LCAvKiAzMjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI2Igl9LCAvKiAzMjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI3Igl9LCAvKiAzMjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI4Igl9LCAvKiAzMjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI5Igl9LCAvKiAzMjkgKi8KLQotCXsgNiwJVEksCXNvbGFyaXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDMzMSAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzMzIgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDMzMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQiCX0sIC8qIDMzNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUiCX0sIC8qIDMzNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYiCX0sIC8qIDMzNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzciCX0sIC8qIDMzNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgiCX0sIC8qIDMzOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkiCX0sIC8qIDMzOSAqLwotCi0JeyA2LAlUSSwJc29sYXJpc19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzNDAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDM0MSAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzNDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAzNDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAzNDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1Igl9LCAvKiAzNDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAzNDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAzNDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4Igl9LCAvKiAzNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5Igl9LCAvKiAzNDkgKi8KLQotCXsgNiwJMCwJc29sYXJpc19vbGR1bmFtZSwJIm9sZHVuYW1lIgl9LCAvKiAzNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJ1dHNzeXMxIgl9LCAvKiAzNTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAzNTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnVzZXJzLAkJImZ1c2VycyIJfSwgLyogMzUzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogMzU0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NSIJfSwgLyogMzU1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogMzU2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogMzU3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OCIJfSwgLyogMzU4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogMzU5ICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJzeXNmczAiCX0sIC8qIDM2MCAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNmczEsCQkic3lzZnMxIgl9LCAvKiAzNjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzZnMyLAkJInN5c2ZzMiIJfSwgLyogMzYyICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMywJCSJzeXNmczMiCX0sIC8qIDM2MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLwotCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkic3BjYWxsMCIJfSwgLyogMzcwICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIJfSwgLyogMzcxICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdmaWxsc2V0LAkic2lnZmlsbHNldCIJfSwgLyogMzcyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MyIJfSwgLyogMzczICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogMzc0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogMzc1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NiIJfSwgLyogMzc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogMzc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogMzc4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OSIJfSwgLyogMzc5ICovCi0KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Y29udGV4dCwJImdldGNvbnRleHQiCX0sIC8qIDM4MCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRjb250ZXh0LAkic2V0Y29udGV4dCIJfSwgLyogMzgxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MiIJfSwgLyogMzgyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogMzgzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogMzg0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NSIJfSwgLyogMzg1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogMzg2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogMzg3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OCIJfSwgLyogMzg4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogMzg5ICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkwIgl9LCAvKiAzOTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkxIgl9LCAvKiAzOTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkyIgl9LCAvKiAzOTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkzIgl9LCAvKiAzOTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk0Igl9LCAvKiAzOTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk1Igl9LCAvKiAzOTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk2Igl9LCAvKiAzOTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk3Igl9LCAvKiAzOTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk4Igl9LCAvKiAzOTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk5Igl9LCAvKiAzOTkgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODcyOTQ2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNTMgKzAsMCBAQAotCXsgMSwJMCwJc3lzX3NldHVwLAkic2V0dXAiIH0sCQkvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0IiB9LAkJLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkiZm9yayIgfSwJCS8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkicmVhZCIgfSwJCS8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJIndyaXRlIiB9LAkJLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkib3BlbiIgfSwJCS8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJImNsb3NlIiB9LAkJLyogNiAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJIndhaXQ0IiB9LAkJLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJImNyZWF0IiB9LAkJLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkibGluayIgfSwJCS8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkidW5saW5rIiB9LAkJLyogMTAgKi8KLQl7IDIsICAgIFRGfFRQLAlzeXNfZXhlY3YsCSJleGVjdiIgfSwJCS8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkiY2hkaXIiIH0sCQkvKiAxMiAqLwotICAgICAgICB7IDMsICAgIFRGLCAgICAgc3lzX2Nob3duLCAgICAgICJjaG93biJ9LAkJLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCSJta25vZCIgfSwJCS8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkiY2htb2QiIH0sCQkvKiAxNSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93biIgfSwJCS8qIDE2ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkiYnJrIiB9LAkJLyogMTcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJInBlcmZjdHIiIH0sCQkvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkibHNlZWsiIH0sCQkvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJImdldHBpZCIgfSwJCS8qIDIwICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkiY2FwZ2V0IiB9LAkJLyogMjEgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCSJjYXBzZXQiIH0sCQkvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZCIgfSwJCS8qIDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkiZ2V0dWlkIiB9LAkJLyogMjQgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDI1ICovCi0JeyA1LAkwLAlzeXNfcHRyYWNlLAkicHRyYWNlIiB9LAkJLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJImFsYXJtIiB9LAkJLyogMjcgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssInNpZ2FsdHN0YWNrIiB9LAkvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJInBhdXNlIiB9LAkJLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCSJ1dGltZSIgfSwJCS8qIDMwICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkibGNob3duMzIiIH0sCQkvKiAzMSAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJImZjaG93bjMyIiB9LAkJLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkiYWNjZXNzIiB9LAkJLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkibmljZSIgfSwJCS8qIDM0ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkiY2hvd24zMiIgfSwJCS8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJInN5bmMiIH0sCQkvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkia2lsbCIgfSwJCS8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCSJzdGF0IiB9LAkJLyogMzggKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCSJzZW5kZmlsZSIgfSwJCS8qIDM5ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiA0MCAqLwotCXsgMiwJMCwJc3lzX2R1cCwJImR1cCIgfSwJCS8qIDQxICovCi0JeyAwLAkwLAlzeXNfcGlwZSwJInBpcGUiIH0sCQkvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkidGltZXMiIH0sCQkvKiA0MyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZDMyIiB9LAkJLyogNDQgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJInVtb3VudCIgfSwJCS8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkIiB9LAkJLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQiIH0sCQkvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCSJzaWduYWwiIH0sCQkvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkIiB9LAkJLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZCIgfSwJCS8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCSJhY2N0IiB9LAkJLyogNTEgKi8KLQl7IDIsCTAsCXByaW50YXJncywJIm1lbW9yeV9vcmRlcmluZyIgfSwJLyogNTIgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQzMiIgfSwJCS8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCSJpb2N0bCIgfSwJCS8qIDU0ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkicmVib290IiB9LAkJLyogNTUgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkibW1hcDIiIH0sCQkvKiA1NiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkic3ltbGluayIgfSwJCS8qIDU3ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkicmVhZGxpbmsiIH0sCQkvKiA1OCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCSJleGVjdmUiIH0sCQkvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkidW1hc2siIH0sCQkvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCSJjaHJvb3QiIH0sCQkvKiA2MSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkiZnN0YXQiIH0sCQkvKiA2MiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkiZnN0YXQ2NCIgfSwJCS8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cGFnZXNpemUsImdldHBhZ2VzaXplIiB9LAkvKiA2NCAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkibXN5bmMiIH0sCQkvKiA2NSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJInZmb3JrIiB9LAkJLyogNjYgKi8KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCSJwcmVhZCIgfSwJCS8qIDY3ICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJInB3cml0ZSIgfSwJCS8qIDY4ICovCi0JeyAwLCAgICAwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQzMiIgfSwJCS8qIDY5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQzMiIgfSwJCS8qIDcwICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAiIH0sCQkvKiA3MSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQzMiIgfSwJCS8qIDcyICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkibXVubWFwIiB9LAkJLyogNzMgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJIm1wcm90ZWN0IiB9LAkJLyogNzQgKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkibWFkdmlzZSIgfSwJCS8qIDc1ICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJInZoYW5ndXAiIH0sCQkvKiA3NiAqLwotCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkidHJ1bmNhdGU2NCIgfSwJCS8qIDc3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJIm1pbmNvcmUiIH0sCQkvKiA3OCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwcyIgfSwJCS8qIDc5ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIiB9LAkJLyogODAgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkiZ2V0cGdycCIgfSwJCS8qIDgxICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzMzIiIH0sCS8qIDgyICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIiB9LAkJLyogODMgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGU2NCIgfSwJLyogODQgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkic3dhcG9uIiB9LAkJLyogODUgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCSJnZXRpdGltZXIiIH0sCQkvKiA4NiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZDMyIiB9LAkJLyogODcgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwic2V0aG9zdG5hbWUiIH0sCS8qIDg4ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkMzIiIH0sCQkvKiA4OSAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCSJkdXAyIiB9LAkJLyogOTAgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkMzIiIH0sCQkvKiA5MSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGwiIH0sCQkvKiA5MiAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDkzICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZDMyIiB9LAkJLyogOTQgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJImZzeW5jIiB9LAkJLyogOTUgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwic2V0cHJpb3JpdHkiIH0sCS8qIDk2ICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJInNvY2tldCIgfSwJCS8qIDk3ICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCSJjb25uZWN0IiB9LAkJLyogOTggKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkiYWNjZXB0IiB9LAkJLyogOTkgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwiZ2V0cHJpb3JpdHkiIH0sCS8qIDEwMCAqLwotCXsgMSwJVFMsCXByaW50YXJncywJInJ0X3NpZ3JldHVybiIgfSwJLyogMTAxICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwicnRfc2lnYWN0aW9uIiB9LAkvKiAxMDIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssInJ0X3NpZ3Byb2NtYXNrIiB9LAkvKiAxMDMgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywicnRfc2lncGVuZGluZyIgfSwJLyogMTA0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwicnRfc2lndGltZWR3YWl0IiB9LC8qIDEwNSAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sInJ0X3NpZ3F1ZXVlaW5mbyIgfSwvKiAxMDYgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwicnRfc2lnc3VzcGVuZCIgfSwJLyogMTA3ICovCi0JeyAzLAlUUywJc3lzX3NldHJlc3VpZCwJInNldHJlc3VpZCIgfSwJCS8qIDEwOCAqLwotCXsgMywgICAgVFMsCXN5c19nZXRyZXN1aWQsCSJnZXRyZXN1aWQiIH0sCQkvKiAxMDkgKi8KLQl7IDMsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkIiB9LAkJLyogMTEwICovCi0JeyAzLAlUUywJc3lzX2dldHJlc2dpZCwJImdldHJlc2dpZCIgfSwJCS8qIDExMSAqLwotCXsgMiwJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQzMiIgfSwJLyogMTEyICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCSJyZWN2bXNnIiB9LAkJLyogMTEzICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCSJzZW5kbXNnIiB9LAkJLyogMTE0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzMzIiIH0sCS8qIDExNSAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwiZ2V0dGltZW9mZGF5IiB9LAkvKiAxMTYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCSJnZXRydXNhZ2UiIH0sCQkvKiAxMTcgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJImdldHNvY2tvcHQiIH0sCQkvKiAxMTggKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkiZ2V0Y3dkIiB9LAkJLyogMTE5ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCSJyZWFkdiIgfSwJCS8qIDEyMCAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJIndyaXRldiIgfSwJCS8qIDEyMSAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwic2V0dGltZW9mZGF5IiB9LAkvKiAxMjIgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24iIH0sCQkvKiAxMjMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCSJmY2htb2QiIH0sCQkvKiAxMjQgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCSJyZWN2ZnJvbSIgfSwJCS8qIDEyNSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQiIH0sCQkvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJInNldHJlZ2lkIiB9LAkJLyogMTI3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJInJlbmFtZSIgfSwJCS8qIDEyOCAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJInRydW5jYXRlIiB9LAkJLyogMTI5ICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlIiB9LAkJLyogMTMwICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCSJmbG9jayIgfSwJCS8qIDEzMSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkibHN0YXQ2NCIgfSwJCS8qIDEzMiAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCSJzZW5kdG8iIH0sCQkvKiAxMzMgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCSJzaHV0ZG93biIgfSwJCS8qIDEzNCAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkic29ja2V0cGFpciIgfSwJCS8qIDEzNSAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJIm1rZGlyIiB9LAkJLyogMTM2ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkicm1kaXIiIH0sCQkvKiAxMzcgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWVzLAkidXRpbWVzIiB9LAkJLyogMTM4ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJInN0YXQ2NCIgfSwJCS8qIDEzOSAqLwotCXsgNCwgICAgVEYsCXN5c19zZW5kZmlsZTY0LAkic2VuZGZpbGU2NCIgfSwJCS8qIDE0MCAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwiZ2V0cGVlcm5hbWUiIH0sCS8qIDE0MSAqLwotCXsgNSwgICAgMCwJc3lzX2Z1dGV4LAkiZnV0ZXgiIH0sCQkvKiAxNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJImdldHRpZCIgfSwJCS8qIDE0MyAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJImdldHJsaW1pdCIgfSwJCS8qIDE0NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJInNldHJsaW1pdCIgfSwJCS8qIDE0NSAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCSJwaXZvdF9yb290IiB9LAkJLyogMTQ2ICovCi0JeyA1LAkwLAlzeXNfcHJjdGwsCSJwcmN0bCIgfSwJCS8qIDE0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkicGNpY29uZmlnX3JlYWQiIH0sCS8qIDE0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkicGNpY29uZmlnX3dyaXRlIiB9LAkvKiAxNDkgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsImdldHNvY2tuYW1lIiB9LAkvKiAxNTAgKi8KLQl7IDQsCVROLAlzeXNfZ2V0bXNnLAkiZ2V0bXNnIiB9LAkJLyogMTUxICovCi0JeyA0LAlUTiwJc3lzX3B1dG1zZywJInB1dG1zZyIgfSwJCS8qIDE1MiAqLwotCXsgMywJMCwJc3lzX3BvbGwsCSJwb2xsIiB9LAkJLyogMTUzICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJImdldGRlbnRzNjQiIH0sCQkvKiAxNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJImZjbnRsNjQiIH0sCQkvKiAxNTUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJImdldGRpcmVudHJpZXMiIH0sCS8qIDE1NiAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCSJzdGF0ZnMiIH0sCQkvKiAxNTcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkiZnN0YXRmcyIgfSwJCS8qIDE1OCAqLwotCXsgMSwJVEYsCXN5c191bW91bnQsCSJvbGR1bW91bnQiIH0sCQkvKiAxNTkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDE2MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMTYxICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCSJnZXRkb21haW5uYW1lIiB9LAkvKiAxNjIgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLCJzZXRkb21haW5uYW1lIiB9LAkvKiAxNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInV0cmFwX2luc3RhbGwiIH0sCS8qIDE2NCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkicXVvdGFjdGwiIH0sCQkvKiAxNjUgKi8KLQl7IDEsCTAsCXByaW50YXJncywJInNldF90aWRfYWRkcmVzcyIgfSwJLyogMTY2ICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkibW91bnQiIH0sCQkvKiAxNjcgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJInVzdGF0IiB9LAkJLyogMTY4ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkic2V0eGF0dHIiIH0sCQkvKiAxNjkgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJsc2V0eGF0dHIiIH0sCQkvKiAxNzAgKi8KLQl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCSJmc2V0eGF0dHIiIH0sCQkvKiAxNzEgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCSJnZXR4YXR0ciIgfSwJCS8qIDE3MiAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImxnZXR4YXR0ciIgfSwJCS8qIDE3MyAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkiZ2V0ZGVudHMiIH0sCQkvKiAxNzQgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCSJzZXRzaWQiIH0sCQkvKiAxNzUgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCSJmY2hkaXIiIH0sCQkvKiAxNzYgKi8KLQl7IDQsICAgIDAsCXN5c19mZ2V0eGF0dHIsCSJmZ2V0eGF0dHIiIH0sCQkvKiAxNzcgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGlzdHhhdHRyIiB9LAkJLyogMTc4ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJImxsaXN0eGF0dHIiIH0sCQkvKiAxNzkgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkiZmxpc3R4YXR0ciIgfSwJCS8qIDE4MCAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwicmVtb3ZleGF0dHIiIH0sCS8qIDE4MSAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwibHJlbW92ZXhhdHRyIiB9LAkvKiAxODIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJInNpZ3BlbmRpbmciIH0sCQkvKiAxODMgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsInF1ZXJ5X21vZHVsZSIgfSwJLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJInNldHBnaWQiIH0sCQkvKiAxODUgKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsImZyZW1vdmV4YXR0ciIgfSwJLyogMTg2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCSJ0a2lsbCIgfSwJCS8qIDE4NyAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdF9ncm91cCIgfSwJCS8qIDE4OCAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkidW5hbWUiIH0sCQkvKiAxODkgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwiaW5pdF9tb2R1bGUiIH0sCS8qIDE5MCAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LCJwZXJzb25hbGl0eSIgfSwJLyogMTkxICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywicmVtYXBfZmlsZV9wYWdlcyIgfSwvKiAxOTIgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsImVwb2xsX2NyZWF0ZSIgfSwJLyogMTkzICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkiZXBvbGxfY3RsIiB9LAkJLyogMTk0ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJImVwb2xsX3dhaXQiIH0sCQkvKiAxOTUgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCSJ1bGltaXQiIH0sCQkvKiAxOTYgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkiZ2V0cHBpZCIgfSwJCS8qIDE5NyAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCSJzaWdhY3Rpb24iIH0sCQkvKiAxOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJInNnZXRtYXNrIiB9LAkJLyogMTk5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJzc2V0bWFzayIgfSwJCS8qIDIwMCAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkic2lnc3VzcGVuZCIgfSwJCS8qIDIwMSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJImxzdGF0IiB9LAkJLyogMjAyICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJInVzZWxpYiIgfSwJCS8qIDIwMyAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCSJyZWFkZGlyIiB9LAkJLyogMjA0ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkicmVhZGFoZWFkIiB9LAkJLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJInNvY2tldGNhbGwiIH0sCQkvKiAyMDYgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCSJzeXNsb2ciIH0sCQkvKiAyMDcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJImxvb2t1cF9kY29va2llIiB9LAkvKiAyMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJImZhZHZpc2U2NCIgfSwJCS8qIDIwOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0XzY0IiB9LAkvKiAyMTAgKi8KLQl7IDMsCVRTLAlzeXNfdGdraWxsLAkidGdraWxsIiB9LAkJLyogMjExICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCSJ3YWl0cGlkIiB9LAkJLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJInN3YXBvZmYiIH0sCQkvKiAyMTMgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkic3lzaW5mbyIgfSwJCS8qIDIxNCAqLwotCXsgNSwJMCwJc3lzX2lwYywJImlwYyIgfSwJCS8qIDIxNSAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCSJzaWdyZXR1cm4iIH0sCQkvKiAyMTYgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCSJjbG9uZSIgfSwJCS8qIDIxNyAqLwotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCSJtb2RpZnlfbGR0IiB9LAkJLyogMjE4ICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCSJhZGp0aW1leCIgfSwJCS8qIDIxOSAqLwotCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywic2lncHJvY21hc2siIH0sCS8qIDIyMCAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsImNyZWF0ZV9tb2R1bGUiIH0sCS8qIDIyMSAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsImRlbGV0ZV9tb2R1bGUiIH0sCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLCJnZXRfa2VybmVsX3N5bXMifSwJLyogMjIzICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJImdldHBnaWQiIH0sCQkvKiAyMjQgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkiYmRmbHVzaCIgfSwJCS8qIDIyNSAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkic3lzZnMiIH0sCQkvKiAyMjYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwiYWZzX3N5c2NhbGwiIH0sCS8qIDIyNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkic2V0ZnN1aWQiIH0sCQkvKiAyMjggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJInNldGZzZ2lkIiB9LAkJLyogMjI5ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkic2VsZWN0IiB9LAkJLyogMjMwICovCi0JeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyMzEgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJInN0YXQiIH0sCQkvKiAyMzIgKi8KLQl7IDEsCTAsCXN5c19zdGltZSwJInN0aW1lIiB9LAkJLyogMjMzICovCi0JeyAzLAlURiwJc3lzX3N0YXRmczY0LAkic3RhdGZzNjQiIH0sCQkvKiAyMzQgKi8KLQl7IDMsCTAsCXN5c19mc3RhdGZzNjQsCSJmc3RhdGZzNjQiIH0sCQkvKiAyMzUgKi8KLQl7IDUsCTAsCXN5c19sbHNlZWssCSJfbGxzZWVrIiB9LAkJLyogMjM2ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCSJtbG9jayIgfSwJCS8qIDIzNyAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCSJtdW5sb2NrIiB9LAkJLyogMjM4ICovCi0JeyAyLAkwLAlzeXNfbWxvY2thbGwsCSJtbG9ja2FsbCIgfSwJCS8qIDIzOSAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCSJtdW5sb2NrYWxsIiB9LAkJLyogMjQwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sInNjaGVkX3NldHBhcmFtIn0sCS8qIDI0MSAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLCJzY2hlZF9nZXRwYXJhbSJ9LAkvKiAyNDIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsInNjaGVkX3NldHNjaGVkdWxlciJ9LC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwic2NoZWRfZ2V0c2NoZWR1bGVyIn0sLyogMjQ0ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsInNjaGVkX3lpZWxkIiB9LAkvKiAyNDUgKi8KLQl7IDEsMCxzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LC8qIDI0NiAqLwotCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sLyogMjQ3ICovCi0JeyAyLAkwLHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LC8qIDI0OCAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJIm5hbm9zbGVlcCIgfSwJCS8qIDI0OSAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJIm1yZW1hcCIgfSwJCS8qIDI1MCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJIl9zeXNjdGwiIH0sCQkvKiAyNTEgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCSJnZXRzaWQiIH0sCQkvKiAyNTIgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCSJmZGF0YXN5bmMiIH0sCQkvKiAyNTMgKi8KLQl7IDMsCTAsCXByaW50YXJncywJIm5mc3NlcnZjdGwiIH0sCQkvKiAyNTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJImFwbGliIiB9LAkJLyogMjU1ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwiY2xvY2tfc2V0dGltZSIgfSwJLyogMjU2ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwiY2xvY2tfZ2V0dGltZSIgfSwJLyogMjU3ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLCJjbG9ja19nZXRyZXMiIH0sCS8qIDI1OCAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwiY2xvY2tfbmFub3NsZWVwIiB9LC8qIDI1OSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LCJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyNjAgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjYxICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwidGltZXJfc2V0dGltZSIgfSwJLyogMjYyICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwidGltZXJfZ2V0dGltZSIgfSwJLyogMjYzICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwidGltZXJfZ2V0b3ZlcnJ1biIgfSwvKiAyNjQgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsInRpbWVyX2RlbGV0ZSIgfSwJLyogMjY1ICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLCJ0aW1lcl9jcmVhdGUiIH0sCS8qIDI2NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2NyIgfSwJCS8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2OCIgfSwJCS8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2OSIgfSwJCS8qIDI2OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MCIgfSwJCS8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MSIgfSwJCS8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MiIgfSwJCS8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MyIgfSwJCS8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NCIgfSwJCS8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NSIgfSwJCS8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NiIgfSwJCS8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NyIgfSwJCS8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3OCIgfSwJCS8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3OSIgfSwJCS8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MCIgfSwJCS8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MSIgfSwJCS8qIDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MiIgfSwJCS8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MyIgfSwJCS8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NCIgfSwJCS8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NSIgfSwJCS8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NiIgfSwJCS8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NyIgfSwJCS8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4OCIgfSwJCS8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4OSIgfSwJCS8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MCIgfSwJCS8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MSIgfSwJCS8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MiIgfSwJCS8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MyIgfSwJCS8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NCIgfSwJCS8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NSIgfSwJCS8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NiIgfSwJCS8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NyIgfSwJCS8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5OCIgfSwJCS8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5OSIgfSwJCS8qIDI5OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMCIgfSwJCS8qIDMwMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMSIgfSwJCS8qIDMwMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMiIgfSwJCS8qIDMwMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMyIgfSwJCS8qIDMwMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNCIgfSwJCS8qIDMwNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNSIgfSwJCS8qIDMwNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNiIgfSwJCS8qIDMwNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNyIgfSwJCS8qIDMwNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwOCIgfSwJCS8qIDMwOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwOSIgfSwJCS8qIDMwOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMCIgfSwJCS8qIDMxMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMSIgfSwJCS8qIDMxMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMiIgfSwJCS8qIDMxMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMyIgfSwJCS8qIDMxMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNCIgfSwJCS8qIDMxNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNSIgfSwJCS8qIDMxNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNiIgfSwJCS8qIDMxNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNyIgfSwJCS8qIDMxNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxOCIgfSwJCS8qIDMxOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxOSIgfSwJCS8qIDMxOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMCIgfSwJCS8qIDMyMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMSIgfSwJCS8qIDMyMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMiIgfSwJCS8qIDMyMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMyIgfSwJCS8qIDMyMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNCIgfSwJCS8qIDMyNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNSIgfSwJCS8qIDMyNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNiIgfSwJCS8qIDMyNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNyIgfSwJCS8qIDMyNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyOCIgfSwJCS8qIDMyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyOSIgfSwJCS8qIDMyOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMCIgfSwJCS8qIDMzMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMSIgfSwJCS8qIDMzMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMiIgfSwJCS8qIDMzMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMyIgfSwJCS8qIDMzMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNCIgfSwJCS8qIDMzNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNSIgfSwJCS8qIDMzNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNiIgfSwJCS8qIDMzNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNyIgfSwJCS8qIDMzNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzOCIgfSwJCS8qIDMzOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzOSIgfSwJCS8qIDMzOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MCIgfSwJCS8qIDM0MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MSIgfSwJCS8qIDM0MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MiIgfSwJCS8qIDM0MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MyIgfSwJCS8qIDM0MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NCIgfSwJCS8qIDM0NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NSIgfSwJCS8qIDM0NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NiIgfSwJCS8qIDM0NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NyIgfSwJCS8qIDM0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0OCIgfSwJCS8qIDM0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0OSIgfSwJCS8qIDM0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MCIgfSwJCS8qIDM1MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MSIgfSwJCS8qIDM1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MiIgfSwJCS8qIDM1MiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3N5c2NhbGwuaCBiL3N0cmFjZS9saW51eC9zeXNjYWxsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYTU5OTMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3N5c2NhbGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDI5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsLmgsdiAxLjQ1IDIwMDUvMDYvMDcgMjM6MjE6Mjggcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImR1bW15LmgiCi0KLS8qIHByaW1hcnkgc3lzY2FsbHMgKi8KLQotaW50IHN5c19zZXR1cCgpLCBzeXNfZXhpdCgpLCBzeXNfZm9yaygpLCBzeXNfcmVhZCgpLCBzeXNfd3JpdGUoKTsKLWludCBzeXNfb3BlbigpLCBzeXNfY2xvc2UoKSwgc3lzX3dhaXRwaWQoKSwgc3lzX2NyZWF0KCksIHN5c19saW5rKCk7Ci1pbnQgc3lzX3VubGluaygpLCBzeXNfZXhlY3ZlKCksIHN5c19jaGRpcigpLCBzeXNfdGltZSgpLCBzeXNfbWtub2QoKTsKLWludCBzeXNfY2htb2QoKSwgc3lzX2Nob3duKCksIHN5c19icmVhaygpLCBzeXNfb2xkc3RhdCgpOwotaW50IHN5c19sc2VlaygpLCBzeXNfZ2V0cGlkKCksIHN5c19tb3VudCgpLCBzeXNfdW1vdW50KCksIHN5c191bW91bnQyKCk7Ci1pbnQgc3lzX3NldHVpZCgpLCBzeXNfZ2V0dWlkKCksIHN5c19zdGltZSgpLCBzeXNfcHRyYWNlKCk7Ci1pbnQgc3lzX2FsYXJtKCksIHN5c19vbGRmc3RhdCgpLCBzeXNfcGF1c2UoKSwgc3lzX3V0aW1lKCk7Ci1pbnQgc3lzX3N0dHkoKSwgc3lzX2d0dHkoKSwgc3lzX2FjY2VzcygpLCBzeXNfbmljZSgpLCBzeXNfZnRpbWUoKTsKLWludCBzeXNfc3luYygpLCBzeXNfa2lsbCgpLCBzeXNfcmVuYW1lKCksIHN5c19ta2RpcigpLCBzeXNfcm1kaXIoKTsKLWludCBzeXNfZHVwKCksIHN5c19waXBlKCksIHN5c190aW1lcygpLCBzeXNfcHJvZigpLCBzeXNfYnJrKCk7Ci1pbnQgc3lzX3NldGdpZCgpLCBzeXNfZ2V0Z2lkKCksIHN5c19zaWduYWwoKSwgc3lzX2dldGV1aWQoKTsKLWludCBzeXNfZ2V0ZWdpZCgpLCBzeXNfYWNjdCgpLCBzeXNfcGh5cygpLCBzeXNfbG9jaygpLCBzeXNfaW9jdGwoKTsKLWludCBzeXNfZmNudGwoKSwgc3lzX21weCgpLCBzeXNfc2V0cGdpZCgpLCBzeXNfdWxpbWl0KCk7Ci1pbnQgc3lzX29sZHVuYW1lKCksIHN5c191bWFzaygpLCBzeXNfY2hyb290KCksIHN5c191c3RhdCgpOwotaW50IHN5c19kdXAyKCksIHN5c19nZXRwcGlkKCksIHN5c19nZXRwZ3JwKCksIHN5c19zZXRzaWQoKTsKLWludCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdnZXRtYXNrKCksIHN5c19zaWdzZXRtYXNrKCk7Ci1pbnQgc3lzX3NldHJldWlkKCksIHN5c19zZXRyZWdpZCgpLCBzeXNfc2lnc3VzcGVuZCgpOwotaW50IHN5c19zaWdwZW5kaW5nKCksIHN5c19zZXRob3N0bmFtZSgpLCBzeXNfc2V0cmxpbWl0KCk7Ci1pbnQgc3lzX2dldHJsaW1pdCgpLCBzeXNfZ2V0cnVzYWdlKCksIHN5c19nZXR0aW1lb2ZkYXkoKTsKLWludCBzeXNfc2V0dGltZW9mZGF5KCksIHN5c19nZXRncm91cHMoKSwgc3lzX3NldGdyb3VwcygpOwotaW50IHN5c19zZXRncm91cHMzMigpLCBzeXNfZ2V0Z3JvdXBzMzIoKTsKLWludCBzeXNfb2xkc2VsZWN0KCksIHN5c19zeW1saW5rKCksIHN5c19vbGRsc3RhdCgpLCBzeXNfcmVhZGxpbmsoKTsKLWludCBzeXNfdXNlbGliKCksIHN5c19zd2Fwb24oKSwgc3lzX3JlYm9vdCgpLCBzeXNfcmVhZGRpcigpOwotaW50IHN5c19tbWFwKCksIHN5c19tdW5tYXAoKSwgc3lzX3RydW5jYXRlKCksIHN5c19mdHJ1bmNhdGUoKTsKLWludCBzeXNfZmNobW9kKCksIHN5c19mY2hvd24oKSwgc3lzX2dldHByaW9yaXR5KCk7Ci1pbnQgc3lzX3NldHByaW9yaXR5KCksIHN5c19wcm9maWwoKSwgc3lzX3N0YXRmcygpLCBzeXNfZnN0YXRmcygpOwotaW50IHN5c19pb3Blcm0oKSwgc3lzX3NvY2tldGNhbGwoKSwgc3lzX3N5c2xvZygpLCBzeXNfc2V0aXRpbWVyKCk7Ci1pbnQgc3lzX2dldGl0aW1lcigpLCBzeXNfc3RhdCgpLCBzeXNfbHN0YXQoKSwgc3lzX2ZzdGF0KCk7Ci1pbnQgc3lzX3VuYW1lKCksIHN5c19pb3BsKCksIHN5c192aGFuZ3VwKCksIHN5c19pZGxlKCksIHN5c192bTg2KCk7Ci1pbnQgc3lzX3dhaXQ0KCksIHN5c19zd2Fwb2ZmKCksIHN5c19pcGMoKSwgc3lzX3NpZ3JldHVybigpOwotaW50IHN5c19mc3luYygpLCBzeXNfY2xvbmUoKSwgc3lzX3NldGRvbWFpbm5hbWUoKSwgc3lzX3N5c2luZm8oKTsKLWludCBzeXNfbW9kaWZ5X2xkdCgpLCBzeXNfYWRqdGltZXgoKSwgc3lzX21wcm90ZWN0KCk7Ci1pbnQgc3lzX3NpZ3Byb2NtYXNrKCksIHN5c19jcmVhdGVfbW9kdWxlKCksIHN5c19pbml0X21vZHVsZSgpOwotaW50IHN5c19kZWxldGVfbW9kdWxlKCksIHN5c19nZXRfa2VybmVsX3N5bXMoKSwgc3lzX3F1b3RhY3RsKCk7Ci1pbnQgc3lzX2dldHBnaWQoKSwgc3lzX2ZjaGRpcigpLCBzeXNfYmRmbHVzaCgpOwotaW50IHN5c19zeXNmcygpLCBzeXNfcGVyc29uYWxpdHkoKSwgc3lzX2Fmc19zeXNjYWxsKCk7Ci1pbnQgc3lzX3NldGZzdWlkKCksIHN5c19zZXRmc2dpZCgpLCBzeXNfbGxzZWVrKCk7Ci1pbnQgc3lzX2dldGRlbnRzKCksIHN5c19mbG9jaygpLCBzeXNfbXN5bmMoKTsKLWludCBzeXNfcmVhZHYoKSwgc3lzX3dyaXRldigpLCBzeXNfc2VsZWN0KCk7Ci1pbnQgc3lzX2dldHNpZCgpLCBzeXNfZmRhdGFzeW5jKCksIHN5c19zeXNjdGwoKTsKLWludCBzeXNfbWxvY2soKSwgc3lzX211bmxvY2soKSwgc3lzX21sb2NrYWxsKCksIHN5c19tdW5sb2NrYWxsKCksIHN5c19tYWR2aXNlKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHBhcmFtKCksIHN5c19zY2hlZF9nZXRwYXJhbSgpOwotaW50IHN5c19zY2hlZF9zZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfeWllbGQoKTsKLWludCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCgpLCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigpOwotaW50IHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKSwgc3lzX25hbm9zbGVlcCgpLCBzeXNfbXJlbWFwKCk7Ci1pbnQgc3lzX3NlbmRtc2coKSwgc3lzX3JlY3Ztc2coKSwgc3lzX3NldHJlc3VpZCgpLCBzeXNfc2V0cmVzZ2lkKCk7Ci1pbnQgc3lzX2dldHJlc3VpZCgpLCBzeXNfZ2V0cmVzZ2lkKCksIHN5c19wcmVhZCgpLCBzeXNfcHdyaXRlKCksIHN5c19nZXRjd2QoKTsKLWludCBzeXNfc2lnYWx0c3RhY2soKSwgc3lzX3J0X3NpZ3Byb2NtYXNrKCksIHN5c19ydF9zaWdhY3Rpb24oKTsKLWludCBzeXNfcnRfc2lncGVuZGluZygpLCBzeXNfcnRfc2lnc3VzcGVuZCgpLCBzeXNfcnRfc2lncXVldWVpbmZvKCk7Ci1pbnQgc3lzX3J0X3NpZ3RpbWVkd2FpdCgpLCBzeXNfcHJjdGwoKSwgc3lzX3BvbGwoKSwgc3lzX3Zmb3JrKCk7Ci1pbnQgc3lzX3NlbmRmaWxlKCksIHN5c19vbGRfbW1hcCgpLCBzeXNfc3RhdDY0KCksIHN5c19sc3RhdDY0KCksIHN5c19mc3RhdDY0KCk7Ci1pbnQgc3lzX3RydW5jYXRlNjQoKSwgc3lzX2Z0cnVuY2F0ZTY0KCksIHN5c19waXZvdHJvb3QoKTsKLWludCBzeXNfZ2V0ZGVudHM2NCgpOwotaW50IHN5c19nZXRwbXNnKCksIHN5c19wdXRwbXNnKCksIHN5c19yZWFkYWhlYWQoKSwgc3lzX3NlbmRmaWxlNjQoKTsKLWludCBzeXNfc2V0eGF0dHIoKSwgc3lzX2ZzZXR4YXR0cigpLCBzeXNfZ2V0eGF0dHIoKSwgc3lzX2ZnZXR4YXR0cigpOwotaW50IHN5c19saXN0eGF0dHIoKSwgc3lzX2ZsaXN0eGF0dHIoKSwgc3lzX3JlbW92ZXhhdHRyKCksIHN5c19mcmVtb3ZleGF0dHIoKTsKLWludCBzeXNfc2NoZWRfc2V0YWZmaW5pdHkoKSwgc3lzX3NjaGVkX2dldGFmZmluaXR5KCksIHN5c19mdXRleCgpOwotaW50IHN5c19zZXRfdGhyZWFkX2FyZWEoKSwgc3lzX2dldF90aHJlYWRfYXJlYSgpLCBzeXNfcmVtYXBfZmlsZV9wYWdlcygpOwotaW50IHN5c190aW1lcl9jcmVhdGUoKSwgc3lzX3RpbWVyX2RlbGV0ZSgpLCBzeXNfdGltZXJfZ2V0b3ZlcnJ1bigpOwotaW50IHN5c190aW1lcl9nZXR0aW1lKCksIHN5c190aW1lcl9zZXR0aW1lKCksIHN5c19jbG9ja19zZXR0aW1lKCk7Ci1pbnQgc3lzX2Nsb2NrX2dldHRpbWUoKSwgc3lzX2Nsb2NrX2dldHJlcygpLCBzeXNfY2xvY2tfbmFub3NsZWVwKCk7Ci1pbnQgc3lzX3NlbXRpbWVkb3AoKSwgc3lzX3N0YXRmczY0KCksIHN5c19mc3RhdGZzNjQoKSwgc3lzX3Rna2lsbCgpOwotaW50IHN5c19tcV9vcGVuKCksIHN5c19tcV90aW1lZHNlbmQoKSwgc3lzX21xX3RpbWVkcmVjZWl2ZSgpOwotaW50IHN5c19tcV9ub3RpZnkoKSwgc3lzX21xX2dldHNldGF0dHIoKTsKLWludCBzeXNfZXBvbGxfY3JlYXRlKCksIHN5c19lcG9sbF9jdGwoKSwgc3lzX2Vwb2xsX3dhaXQoKTsKLWludCBzeXNfd2FpdGlkKCksIHN5c19mYWR2aXNlNjQoKSwgc3lzX2ZhZHZpc2U2NF82NCgpOwotaW50IHN5c19tYmluZCgpLCBzeXNfZ2V0X21lbXBvbGljeSgpLCBzeXNfc2V0X21lbXBvbGljeSgpOwotaW50IHN5c19hcmNoX3ByY3RsKCk7Ci1pbnQgc3lzX2lvX3NldHVwKCksIHN5c19pb19zdWJtaXQoKSwgc3lzX2lvX2NhbmNlbCgpLCBzeXNfaW9fZ2V0ZXZlbnRzKCksIHN5c19pb19kZXN0cm95KCk7Ci0KLS8qIHN5c19zb2NrZXRjYWxsIHN1YmNhbGxzICovCi0KLWludCBzeXNfc29ja2V0KCksIHN5c19iaW5kKCksIHN5c19jb25uZWN0KCksIHN5c19saXN0ZW4oKTsKLWludCBzeXNfYWNjZXB0KCksIHN5c19nZXRzb2NrbmFtZSgpLCBzeXNfZ2V0cGVlcm5hbWUoKSwgc3lzX3NvY2tldHBhaXIoKTsKLWludCBzeXNfc2VuZCgpLCBzeXNfcmVjdigpLCBzeXNfc2VuZHRvKCksIHN5c19yZWN2ZnJvbSgpOwotaW50IHN5c19zaHV0ZG93bigpLCBzeXNfc2V0c29ja29wdCgpLCBzeXNfZ2V0c29ja29wdCgpOwotCi0vKiBuZXcgb25lcyAqLwotaW50IHN5c19xdWVyeV9tb2R1bGUoKTsKLWludCBzeXNfcG9sbCgpOwotaW50IHN5c19taW5jb3JlKCk7Ci0KLS8qIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjYWxscyAqLwotI2lmZGVmIEFMUEhBCi1pbnQgc3lzX29zZl9zZWxlY3QoKTsKLWludCBzeXNfb3NmX2dldHRpbWVvZmRheSgpOwotaW50IHN5c19vc2Zfc2V0dGltZW9mZGF5KCk7Ci1pbnQgc3lzX29zZl9nZXRpdGltZXIoKTsKLWludCBzeXNfb3NmX3NldGl0aW1lcigpOwotaW50IHN5c19vc2ZfZ2V0cnVzYWdlKCk7Ci1pbnQgc3lzX29zZl93YWl0NCgpOwotaW50IHN5c19vc2ZfdXRpbWVzKCk7Ci0jZW5kaWYKLQotCi0jaWZuZGVmIFNZU193YWl0aWQKLSMgaWZkZWYgSTM4NgotIyAgZGVmaW5lIFNZU193YWl0aWQgMjg0Ci0jIGVsaWYgZGVmaW5lZCBBTFBIQQotIyAgZGVmaW5lIFNZU193YWl0aWQgNDM4Ci0jIGVsaWYgZGVmaW5lZCBBUk0KLSMgIGRlZmluZSBTWVNfd2FpdGlkIChOUl9TWVNDQUxMX0JBU0UgKyAyODApCi0jIGVsaWYgZGVmaW5lZCBJQTY0Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAxMjcwCi0jIGVsaWYgZGVmaW5lZCBNNjhLCi0jICBkZWZpbmUgU1lTX3dhaXRpZCAyNzcKLSMgZWxpZiBkZWZpbmVkIFBPV0VSUEMKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI3MgotIyBlbGlmIGRlZmluZWQgUzM5MCB8fCBkZWZpbmVkIFMzOTBYCi0jICBkZWZpbmUgU1lTX3dhaXRpZCAyODEKLSMgZWxpZiBkZWZpbmVkIFNINjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDMxMgotIyBlbGlmIGRlZmluZWQgU0g2NAotIyAgZGVmaW5lIFNZU193YWl0aWQgMzEyCi0jIGVsaWYgZGVmaW5lZCBTSAotIyAgZGVmaW5lIFNZU193YWl0aWQgMjg0Ci0jIGVsaWYgZGVmaW5lZCBTUEFSQyB8fCBkZWZpbmVkIFNQQVJDNjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI3OQotIyBlbGlmIGRlZmluZWQgWDg2XzY0Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAyNDcKLSMgZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKEhQUEEpCi0jIGlmZGVmCUlBNjQKLS8qCi0gKiAgSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQgaGVhZGVyCi0gKiAgZmlsZXMpIGFyZSBkaXNqb2ludCBmcm9tIElBMzIgc3lzY2FsbCBudW1iZXJzLiAgV2UgbmVlZCB0byBkZWZpbmUKLSAqICB0aGUgSUEzMiBzb2NrZXQgY2FsbCBudW1iZXIgaGVyZS4KLSAqLwotIyAgZGVmaW5lIFNZU19zb2NrZXRjYWxsCTEwMgotCi0jICB1bmRlZiBTWVNfc29ja2V0Ci0jICB1bmRlZiBTWVNfYmluZAotIyAgdW5kZWYgU1lTX2Nvbm5lY3QKLSMgIHVuZGVmIFNZU19saXN0ZW4KLSMgIHVuZGVmIFNZU19hY2NlcHQKLSMgIHVuZGVmIFNZU19nZXRzb2NrbmFtZQotIyAgdW5kZWYgU1lTX2dldHBlZXJuYW1lCi0jICB1bmRlZiBTWVNfc29ja2V0cGFpcgotIyAgdW5kZWYgU1lTX3NlbmQKLSMgIHVuZGVmIFNZU19yZWN2Ci0jICB1bmRlZiBTWVNfc2VuZHRvCi0jICB1bmRlZiBTWVNfcmVjdmZyb20KLSMgIHVuZGVmIFNZU19zaHV0ZG93bgotIyAgdW5kZWYgU1lTX3NldHNvY2tvcHQKLSMgIHVuZGVmIFNZU19nZXRzb2Nrb3B0Ci0jICB1bmRlZiBTWVNfc2VuZG1zZwotIyAgdW5kZWYgU1lTX3JlY3Ztc2cKLSMgZW5kaWYgLyogSUE2NCAqLwotIyAgZGVmaW5lIFNZU19zb2NrZXRfc3ViY2FsbAkzMDAKLSNkZWZpbmUgU1lTX3N1Yl9zb2NrZXQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfc3ViX2JpbmQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc3ViX2Nvbm5lY3QJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAzKQotI2RlZmluZSBTWVNfc3ViX2xpc3RlbgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNZU19zdWJfYWNjZXB0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNSkKLSNkZWZpbmUgU1lTX3N1Yl9nZXRzb2NrbmFtZQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNikKLSNkZWZpbmUgU1lTX3N1Yl9nZXRwZWVybmFtZQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNykKLSNkZWZpbmUgU1lTX3N1Yl9zb2NrZXRwYWlyCShTWVNfc29ja2V0X3N1YmNhbGwgKyA4KQotI2RlZmluZSBTWVNfc3ViX3NlbmQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA5KQotI2RlZmluZSBTWVNfc3ViX3JlY3YJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMCkKLSNkZWZpbmUgU1lTX3N1Yl9zZW5kdG8JCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMSkKLSNkZWZpbmUgU1lTX3N1Yl9yZWN2ZnJvbQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTIpCi0jZGVmaW5lIFNZU19zdWJfc2h1dGRvd24JKFNZU19zb2NrZXRfc3ViY2FsbCArIDEzKQotI2RlZmluZSBTWVNfc3ViX3NldHNvY2tvcHQJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE0KQotI2RlZmluZSBTWVNfc3ViX2dldHNvY2tvcHQJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE1KQotI2RlZmluZSBTWVNfc3ViX3NlbmRtc2cJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNikKLSNkZWZpbmUgU1lTX3N1Yl9yZWN2bXNnCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTcpCi0KLSNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMTgKLSNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgSFBQQSkgKi8KLQotLyogc3lzX2lwYyBzdWJjYWxscyAqLwotCi1pbnQgc3lzX3NlbWdldCgpLCBzeXNfc2VtY3RsKCksIHN5c19zZW1vcCgpOwotaW50IHN5c19tc2dzbmQoKSwgc3lzX21zZ3JjdigpLCBzeXNfbXNnZ2V0KCksIHN5c19tc2djdGwoKTsKLWludCBzeXNfc2htYXQoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKSwgc3lzX3NobWN0bCgpOwotCi0jaWYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChIUFBBKQotIyBpZmRlZglJQTY0Ci0gICAvKgotICAgICogSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQKLSAgICAqIGhlYWRlciBmaWxlcykgYXJlIGRpc2pvaW50IGZyb20gSUEzMiBzeXNjYWxsIG51bWJlcnMuICBXZSBuZWVkCi0gICAgKiB0byBkZWZpbmUgdGhlIElBMzIgc29ja2V0IGNhbGwgbnVtYmVyIGhlcmUuICBGb3J0dW5hdGVseSwgdGhpcwotICAgICogc3ltYm9sLCBgU1lTX2lwYycsIGlzIG5vdCB1c2VkIGJ5IGFueSBvZiB0aGUgSUE2NCBjb2RlIHNvCi0gICAgKiByZS1kZWZpbmluZyB0aGlzIHN5bWJvbCB3aWxsIG5vdCBjYXVzZSBhIHByb2JsZW0uCi0gICAqLwotIyAgdW5kZWYgU1lTX2lwYwotIyAgZGVmaW5lIFNZU19pcGMJCTExNwotIyAgdW5kZWYgU1lTX3NlbW9wCi0jICB1bmRlZiBTWVNfc2VtZ2V0Ci0jICB1bmRlZiBTWVNfc2VtY3RsCi0jICB1bmRlZiBTWVNfc2VtdGltZWRvcAotIyAgdW5kZWYgU1lTX21zZ3NuZAotIyAgdW5kZWYgU1lTX21zZ3JjdgotIyAgdW5kZWYgU1lTX21zZ2dldAotIyAgdW5kZWYgU1lTX21zZ2N0bAotIyAgdW5kZWYgU1lTX3NobWF0Ci0jICB1bmRlZiBTWVNfc2htZHQKLSMgIHVuZGVmIFNZU19zaG1nZXQKLSMgIHVuZGVmIFNZU19zaG1jdGwKLSMgZW5kaWYgLyogSUE2NCAqLwotI2RlZmluZSBTWVNfaXBjX3N1YmNhbGwJCSgoU1lTX3NvY2tldF9zdWJjYWxsKSsoU1lTX3NvY2tldF9uc3ViY2FsbHMpKQotI2RlZmluZSBTWVNfc3ViX3NlbW9wCQkoU1lTX2lwY19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX3N1Yl9zZW1nZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTWVNfc3ViX3NlbWN0bAkJKFNZU19pcGNfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNZU19zdWJfc2VtdGltZWRvcAkoU1lTX2lwY19zdWJjYWxsICsgNCkKLSNkZWZpbmUgU1lTX3N1Yl9tc2dzbmQJCShTWVNfaXBjX3N1YmNhbGwgKyAxMSkKLSNkZWZpbmUgU1lTX3N1Yl9tc2dyY3YJCShTWVNfaXBjX3N1YmNhbGwgKyAxMikKLSNkZWZpbmUgU1lTX3N1Yl9tc2dnZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAxMykKLSNkZWZpbmUgU1lTX3N1Yl9tc2djdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAxNCkKLSNkZWZpbmUgU1lTX3N1Yl9zaG1hdAkJKFNZU19pcGNfc3ViY2FsbCArIDIxKQotI2RlZmluZSBTWVNfc3ViX3NobWR0CQkoU1lTX2lwY19zdWJjYWxsICsgMjIpCi0jZGVmaW5lIFNZU19zdWJfc2htZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMjMpCi0jZGVmaW5lIFNZU19zdWJfc2htY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMjQpCi0KLSNkZWZpbmUgU1lTX2lwY19uc3ViY2FsbHMJMjUKLSNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgU1BBUkMgfHwgSFBQQSkgKi8KLQotI2lmIGRlZmluZWQgU1lTX2lwY19zdWJjYWxsICYmICFkZWZpbmVkIFNZU19pcGMKLSMgZGVmaW5lIFNZU19pcGMgU1lTX2lwY19zdWJjYWxsCi0jZW5kaWYKLSNpZiBkZWZpbmVkIFNZU19zb2NrZXRfc3ViY2FsbCAmJiAhZGVmaW5lZCBTWVNfc29ja2V0Y2FsbAotIyBkZWZpbmUgU1lTX3NvY2tldGNhbGwgU1lTX3NvY2tldF9zdWJjYWxsCi0jZW5kaWYKLQotI2lmZGVmIElBNjQKLSAgLyoKLSAgICogSUE2NCBzeXNjYWxsIG51bWJlcnMgKHRoZSBvbmx5IG9uZXMgYXZhaWxhYmxlIGZyb20gc3RhbmRhcmQgaGVhZGVyCi0gICAqIGZpbGVzKSBhcmUgZGlzam9pbnQgZnJvbSBJQTMyIHN5c2NhbGwgbnVtYmVycy4gIFdlIG5lZWQgdG8gZGVmaW5lCi0gICAqIHNvbWUgSUEzMiBzcGVjaWZpYyBzeXNjYWxscyBoZXJlLgotICAgKi8KLSMgZGVmaW5lIFNZU19mb3JrCTIKLSMgZGVmaW5lIFNZU192Zm9yawkxOTAKLSMgZGVmaW5lIFNZUzMyX2V4aXQJMQotIyBkZWZpbmUgU1lTX3dhaXRwaWQJNwotIyBkZWZpbmUgU1lTMzJfd2FpdDQJMTE0Ci0jIGRlZmluZSBTWVMzMl9leGVjdmUJMTEKLSNlbmRpZiAvKiBJQTY0ICovCi0KLSNpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKElBNjQpCi1pbnQgc3lzX2dldHBhZ2VzaXplKCk7Ci0jZW5kaWYKLQotI2lmZGVmIEFMUEhBCi1pbnQgb3NmX3N0YXRmcygpLCBvc2ZfZnN0YXRmcygpOwotI2VuZGlmCi0KLSNpZmRlZiBJQTY0Ci1pbnQgc3lzX2dldHBtc2coKSwgc3lzX3B1dHBtc2coKTsJLyogU1RSRUFNUyBzdHVmZiAqLwotI2VuZGlmCi0KLSNpZmRlZiBNSVBTCi1pbnQgc3lzX3N5c21pcHMoKTsKLSNlbmRpZgotCi1pbnQgc3lzX3NldHBncnAoKSwgc3lzX2dldGhvc3RuYW1lKCksIHN5c19nZXRkdGFibGVzaXplKCksIHN5c191dGltZXMoKTsKLWludCBzeXNfY2FwZ2V0KCksIHN5c19jYXBzZXQoKTsKLQotI2lmZGVmIE02OEsKLWludCBzeXNfY2FjaGVmbHVzaCgpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg1MDVmZS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMzQgMjAwNS8wNi8wNyAyMzoyMToyNCByb2xhbmQgRXhwICQKLSAqLwotCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiLCBTWVNfZXhpdCB9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIsIFNZU19mb3JrIH0sIC8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiLCBTWVNfcmVhZCB9LCAvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiLCBTWVNfd3JpdGUgfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIsIFNZU193YWl0NCB9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiLCBTWVNfZXhlY3ZlIH0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLSNpZmRlZiBNNjhLCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTYgKi8KLSNlbHNlCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTYgKi8KLSNlbmRpZgotCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogMTcgKi8KLQl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCi0JeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KLQl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLwotCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KLQl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCi0JeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KLQl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZF9nZXRybGltaXQiCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KLQl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCi0JeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KLQl7IDYsCTAsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIJfSwgLyogOTAgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA5MyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCi0JeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDEwMCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDEwMSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIsIFNZU19zb2NrZXRjYWxsIH0sIC8qIDEwMiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLwotCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KLQl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLwotCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLwotCXsgMSwJMCwJc3lzX3ZtODZvbGQsCQkidm04Nm9sZCIJfSwgLyogMTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IiwgU1lTX3dhaXQ0IH0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KLQl7IDYsCTAsCXN5c19pcGMsCQkiaXBjIiwgU1lTX2lwYyB9LCAvKiAxMTcgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDExOCAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgl9LCAvKiAxMTkgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiLCBTWVNfY2xvbmUgfSwgLyogMTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCi0jaWZkZWYgTTY4SwotCXsgNCwJMCwJc3lzX2NhY2hlZmx1c2gsCQkiY2FjaGVmbHVzaCIJfSwgLyogMTIzICovCi0jZWxzZQotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCi0jZW5kaWYKLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDEyNSAqLwotCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogMTI3ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgLyogMTI4ICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDEyOSAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogMTMxICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMzIgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMzMgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCX0sIC8qIDEzNCAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIiwgU1lTX3N5c2ZzIH0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiLCBTWVNfcmVhZHYgfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIsIFNZU193cml0ZXYgfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KLSNpZmRlZiBNNjhLCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIJfSwgLyogMTY2ICovCi0jZWxzZQotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KLSNlbmRpZgotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTY3ICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KLQotCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZDY0IiwgU1lTX3JlYWQgfSwgLyogMTgwICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGU2NCIsIFNZU193cml0ZSB9LCAvKiAxODEgKi8KLSNpZmRlZiBNNjhLCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTgyICovCi0jZWxzZQotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLwotI2VuZGlmCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLwotCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJfSwgLyogMTg4ICovCi0JeyA1LAkwLAlzeXNfcHV0cG1zZywJCSJwdXRwbXNnIgl9LCAvKiAxODkgKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiLCBTWVNfdmZvcmsgfSwgLyogMTkwICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLwotCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLwotCXsgMywJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLwotCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZDMyIgl9LCAvKiAyMTEgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24zMiIJfSwgLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkMzIiCX0sIC8qIDIxNiAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJCSJtaW5jb3JlIgl9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgNCwJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCi0vKlRPRE8qL3sgNSwJMCwJcHJpbnRhcmdzLAkJInNlY3VyaXR5Igl9LCAvKiAyMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDIyNCAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyNSAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI2ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMjI4ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAyMjkgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAyMzAgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMzEgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMyICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzMgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzNCAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNiAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMjM3ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMzggKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGU2NCwJCSJzZW5kZmlsZTY0Igl9LCAvKiAyMzkgKi8KLQl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDI0MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjQxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNDIgKi8KLQl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX2dldF90aHJlYWRfYXJlYSwJImdldF90aHJlYWRfYXJlYSIgfSwgLyogMjQ0ICovCi0JeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0NSAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ2ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNDcgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDggKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyNDkgKi8KLQl7IDUsCVRGLAlzeXNfZmFkdmlzZTY0LAkJImZhZHZpc2U2NCIJfSwgLyogMjUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIsIF9fTlJfZXhpdF9ncm91cCB9LCAvKiAyNTIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiAyNTMgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI1NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDI1NSAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMjU2ICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjU3ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDI1OCAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU5ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI2MCAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNjEgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNjIgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI2MyAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNjQgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjY1ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjYgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjY3ICovCi0JeyAzLAlURiwJc3lzX3N0YXRmczY0LAkJInN0YXRmczY0Igl9LCAvKiAyNjggKi8KLQl7IDMsCVRGLAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJfSwgLyogMjY5ICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDI3MCAqLwotCXsgMiwJVEYsCXN5c191dGltZXMsCQkidXRpbWVzIgl9LCAvKiAyNzEgKi8KLQl7IDYsCVRGLAlzeXNfZmFkdmlzZTY0XzY0LAkiZmFkdmlzZTY0XzY0Igl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgl9LCAvKiAyNzMgKi8KLQl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJc3lzX2dldF9tZW1wb2xpY3ksCSJnZXRfbWVtcG9saWN5Igl9LCAvKiAyNzUgKi8KLQl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMjc2ICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAyNzcgKi8KLQl7IDEsCTAsCXN5c19tcV91bmxpbmssCQkibXFfdW5saW5rIgl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMjgwICovCi0JeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJfSwgLyogMjgxICovCi0JeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAyODMgKi8KLQl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIsIFNZU193YWl0aWQgfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCi0KLSNpZiBTWVNfc29ja2V0X3N1YmNhbGwgIT0gMzAwCi0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMzAwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDMwMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAzMDIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAzMDMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMzA0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDMwNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAzMDYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMzA3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMzA4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIsIFNZU19zdWJfc2VuZCB9LCAvKiAzMDkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IiwgU1lTX3N1Yl9yZWN2IH0sIC8qIDMxMCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIiwgU1lTX3N1Yl9zZW5kdG8gfSwgLyogMzExICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIiwgU1lTX3N1Yl9yZWN2ZnJvbSB9LCAvKiAzMTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDMxMyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDMxNCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDMxNSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDMxNiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDMxNyAqLwotCi0jaWYgU1lTX2lwY19zdWJjYWxsICE9IDMxOAotICNlcnJvciBmaXggbWUKLSNlbmRpZgotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMTggKi8KLQl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzMTkgKi8KLQl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMzIwICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDMyMSAqLwotCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDMyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyOCAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjkgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzMwICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDMzMSAqLwotCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAzMzIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzMzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzggKi8KLQl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzkgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzNDAgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMzQxICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDM0MiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9lcnJub2VudDEuaCBiL3N0cmFjZS9saW51eC94ODZfNjQvZXJybm9lbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4OTQ4MjcuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9lcnJub2VudDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4gICovCi0jaW5jbHVkZSAiLi4vZXJybm9lbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvZ2VudGFiLnBsIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9nZW50YWIucGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNTFiNDMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9nZW50YWIucGwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0jIS91c3IvYmluL3BlcmwgLXcKLSNnZW5lcmF0ZSBzeXNjYWxsIHRhYmxlIGZyb20gYSB0ZW1wbGF0ZSBmaWxlICh1c3VhbGx5IHRoZSBtYXN0ZXIgaTM4NiBzeXNjYWxsCi0jZW50LmgpIGFuZCB0aGUgeDg2XzY0IHVuaXN0ZC5oCi0lY29udiA9ICAoCi0JImV4aXQiID0+ICJfZXhpdCIsCi0pOyAJCi0KLSVrbm93biA9ICgKLQkibW1hcCIgPT4gInN5c19tbWFwIiwKLQkic2NoZWRfeWllbGQiID0+ICJwcmludGFyZ3MiLAkKLSk7IAkKLQotIyBvbmx5IHVzZWQgd2hlbiB0aGUgdGVtcGxhdGUgZmlsZSBoYXMgbm8gZW50cnkKLSVhcmdzID0gKAotCSJhcmNoX3ByY3RsIiA9PiAyLAotCSJ0a2lsbCIgPT4gMiwKLQkiZ2V0dGlkIiA9PiAwLAotCSJyZWFkYWhlYWQiID0+IDMsCi0JIyBzaG91bGQgZGVjb2RlIGFsbCB0aGVzZToKLQkic2V0eGF0dHIiID0+IDUsIAotCSJsc2V0eGF0dHIiID0+IDUsCi0JImZzZXR4YXR0ciIgPT4gNSwKLQkiZ2V0eGF0dHIiID0+IDQsCi0JImxnZXR4YXR0ciIgPT4gNCwKLQkiZmdldHhhdHRyIiA9PiA0LAotCSJsaXN0eGF0dHIiID0+IDMsCi0JImxsaXN0eGF0dHIiID0+IDMsCi0JImZsaXN0eGF0dHIiID0+IDMsCi0JInJlbW92ZXhhdHRyIiA9PiAyLAotCSJscmVtb3ZleGF0dHIiID0+IDIsCi0JImZyZW1vdmV4YXR0ciIgPT4gMiwKLQkibW1hcCIgPT4gNiwKLQkic2NoZWRfeWllbGQiID0+IDAsIAotKTsgCQotCi1vcGVuKEYsJEFSR1ZbMF0pIHx8IGRpZSAiY2Fubm90IG9wZW4gdGVtcGxhdGUgZmlsZSAkQVJHVlswXVxuIjsgCi0KLXdoaWxlICg8Rj4pIHsgCi0JbmV4dCB1bmxlc3MgL3svOyAKLQlzL1wvXCouKlwqXC8vLzsgCi0JKCRuYW1lKSA9IC8iKFteIl0rKSIvOwotCWNob21wOyAKLQkkY2FsbHskbmFtZX0gPSAkXzsgCi19IAotCi1vcGVuKFNMLCAiPnN5c2NhbGxudW0uaCIpIHx8IGRpZSAiY2Fubm90IGNyZWF0ZSBzeXNjYWxsbnVtLmhcbiI7IAotCi0KLQotb3BlbihTLCRBUkdWWzFdKSB8fCBkaWUgImNhbm5vdCBvcGVuIHN5c2NhbGwgZmlsZSAkQVJHVlsxXVxuIjsgIAotd2hpbGUgKDxTPikgeyAKLQkkbmFtZSA9ICIiOyAKLQluZXh0IHVubGVzcyAgKCgkbmFtZSwgJG51bSkgPSAvZGVmaW5lXHMrX19OUl8oXFMrKVxzKyhcZCspLyk7IAotCW5leHQgaWYgJG5hbWUgZXEgIiI7IAotCi0JJG5hbWUgPSAkY29udnskbmFtZX0gaWYgZGVmaW5lZCgkY29udnskbmFtZX0pOyAKLQotCWlmICghZGVmaW5lZCgkY2FsbHskbmFtZX0pKSB7IAotCQl1bmxlc3MgKGRlZmluZWQoJGFyZ3N7JG5hbWV9KSkgeyAKLQkJCXByaW50IFNUREVSUiAidW5rbm93biBjYWxsICRuYW1lICRudW1cbiI7IAotCQkJJG5hID0gMzsgCi0JCX0gZWxzZSB7IAotCQkJJG5hID0gJGFyZ3N7JG5hbWV9OyAKLQkJfSAJCi0JCWlmIChkZWZpbmVkKCRrbm93bnskbmFtZX0pKSB7IAotCQkJJGZ1bmMgPSAka25vd257JG5hbWV9OyAKLQkJfSBlbHNlIHsgCi0JCQkkZnVuYyA9ICJwcmludGFyZ3MiOyAKLQkJfSAJCi0JCXByaW50ICJcdHsgJG5hLFx0MCxcdCRmdW5jLFx0XCIkbmFtZVwiIH0sIC8qICRudW0gKi9cbiI7IAotCX0gZWxzZSB7IAotCQlwcmludCAiJGNhbGx7JG5hbWV9IC8qICRudW0gKi9cbiI7IAotCX0gCi0JcHJpbnQgU0wgIiNkZWZpbmUgU1lTXyRuYW1lICRudW1cbiIKLX0gCi0KLQpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9pb2N0bGVudDEuaCBiL3N0cmFjZS9saW51eC94ODZfNjQvaW9jdGxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0NGIwYWUuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9pb2N0bGVudDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4gICovCi0jaW5jbHVkZSAiLi4vaW9jdGxlbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvc2lnbmFsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjMThkOTguLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8qIE91ciBzZWNvbmQgc2V0IGNvbWVzIGZyb20gdGhlIGkzODYgZmlsZXMuICAqLwotI2luY2x1ZGUgIi4uL3NpZ25hbGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZkOWQ5Ni4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDI1NCArMCwwIEBACi0JeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIgkJfSwgIC8qIDAgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sICAvKiAxICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sICAvKiAyICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAgLyogMyAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAgLyogNCAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgIC8qIDUgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAgLyogNiAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sICAvKiA3ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAgLyogOCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCSJtbWFwIiB9LCAvKiA5ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sICAvKiAxMCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sICAvKiAxMSAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAgLyogMTIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgIC8qIDEzICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgIC8qIDE0ICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgIC8qIDE1ICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAgLyogMTYgKi8KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAgLyogMTcgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgIC8qIDE4ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAgLyogMTkgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAgLyogMjAgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgIC8qIDIxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgIC8qIDIyICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgIC8qIDIzICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCJ9LCAgLyogMjQgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAgLyogMjUgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sICAvKiAyNiAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJfSwgIC8qIDI3ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAgLyogMjggKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgIC8qIDI5ICovCi0JeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgIC8qIDMwICovCi0JeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sICAvKiAzMSAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAgLyogMzIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAgLyogMzMgKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAgLyogMzQgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAgLyogMzUgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAgLyogMzYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sICAvKiAzNyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sICAvKiAzOCAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sICAvKiAzOSAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgIC8qIDQwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sICAvKiA0MSAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sICAvKiA0MiAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAgLyogNDMgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgIC8qIDQ0ICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAgLyogNDUgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAgLyogNDYgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAgLyogNDcgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sICAvKiA0OCAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAgLyogNDkgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgIC8qIDUwICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sICAvKiA1MSAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAgLyogNTIgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAgLyogNTMgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAgLyogNTQgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAgLyogNTUgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAgLyogNTYgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgIC8qIDU3ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJfSwgIC8qIDU4ICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sICAvKiA1OSAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IgkJfSwgIC8qIDYwICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgIC8qIDYxICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sICAvKiA2MiAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgIC8qIDYzICovCi0JeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sICAvKiA2NCAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sICAvKiA2NSAqLwotCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAgLyogNjYgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAgLyogNjcgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgIC8qIDY4ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sICAvKiA2OSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAgLyogNzAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgIC8qIDcxICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAgLyogNzIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sICAvKiA3MyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgIC8qIDc0ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgIC8qIDc1ICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAgLyogNzYgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAgLyogNzcgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgIC8qIDc4ICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sICAvKiA3OSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sICAvKiA4MCAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sICAvKiA4MSAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAgLyogODMgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAgLyogODQgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAgLyogODUgKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sICAvKiA4NyAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sICAvKiA4OCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgIC8qIDg5ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgIC8qIDkxICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgIC8qIDkyICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgIC8qIDkzICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgIC8qIDk0ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAgLyogOTUgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sICAvKiA5NiAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sICAvKiA5NyAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sICAvKiA5OCAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgIC8qIDk5ICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAgLyogMTAwICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgIC8qIDEwMSAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sICAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAgLyogMTAzICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgIC8qIDEwNCAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sICAvKiAxMDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgl9LCAgLyogMTA2ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAgLyogMTA3ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAgLyogMTA4ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAgLyogMTA5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAgLyogMTEwICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAgLyogMTExICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgIC8qIDExMiAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAgLyogMTEzICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sICAvKiAxMTQgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAgLyogMTE1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgIC8qIDExNiAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sICAvKiAxMTcgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAgLyogMTE4ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgIC8qIDExOSAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sICAvKiAxMjAgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sICAvKiAxMjEgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgIC8qIDEyMiAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAgLyogMTIzICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgIC8qIDEyNCAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sICAvKiAxMjUgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAgLyogMTI2ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAgLyogMTI3ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCIJfSwgIC8qIDEyOCAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8iCX0sICAvKiAxMjkgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sICAvKiAxMzAgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgIC8qIDEzMSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sICAvKiAxMzIgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAgLyogMTMzICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sICAvKiAxMzQgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAgLyogMTM1ICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAgLyogMTM2ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sICAvKiAxMzcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sICAvKiAxMzggKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sICAvKiAxMzkgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgIC8qIDE0MSAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0iCX0sICAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIgl9LCAgLyogMTQzICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIgl9LCAgLyogMTQ0ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIgl9LCAgLyogMTQ1ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwJInNjaGVkX2dldF9wcmlvcml0eV9tYXgiCX0sICAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLAkic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiIJfSwgIC8qIDE0NyAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwJInNjaGVkX3JyX2dldF9pbnRlcnZhbCIJfSwgIC8qIDE0OCAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgIC8qIDE0OSAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgIC8qIDE1MCAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAgLyogMTUxICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAgLyogMTUzICovCi0JeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJCSJtb2RpZnlfbGR0Igl9LCAgLyogMTU0ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAgLyogMTU1ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sICAvKiAxNTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sICAvKiAxNTcgKi8KLQl7IDIsCVRQLAlzeXNfYXJjaF9wcmN0bCwJCSJhcmNoX3ByY3RsIgl9LCAgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sICAvKiAxNTkgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAgLyogMTYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sICAvKiAxNjEgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAgLyogMTYyICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sICAvKiAxNjMgKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sICAvKiAxNjQgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAgLyogMTY1ICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiAxNjYgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgIC8qIDE2NyAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgIC8qIDE2OCAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sICAvKiAxNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAgLyogMTcwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sICAvKiAxNzEgKi8KLQl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAgLyogMTcyICovCi0JeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgIC8qIDE3MyAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAgLyogMTc0ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgIC8qIDE3NSAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAgLyogMTc2ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sICAvKiAxNzcgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sICAvKiAxNzggKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgIC8qIDE3OSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sICAvKiAxODAgKi8KLQl7IDUsCTAsCXN5c19nZXRwbXNnLAkJImdldHBtc2ciCX0sIC8qIDE4MSAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJfSwgLyogMTgyICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJfSwgIC8qIDE4MyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInR1eGNhbGwiCX0sIC8qIDE4NCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNlY3VyaXR5Igl9LCAvKiAxODUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDE4NiAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDE4NyAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMTg4ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMTg5ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMTkwICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAxOTEgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAxOTIgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAxOTMgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMTk0ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAxOTUgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDE5NiAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAxOTcgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDE5OCAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMTk5ICovCi0JeyAyLAkwLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIwMCAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sICAvKiAyMDEgKi8KLQl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDIwMiAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjAzICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyMDQgKi8KLQl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAyMDYgKi8KLQl7IDEsCTAsCXN5c19pb19kZXN0cm95LAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDIwNyAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCX0sIC8qIDIwOCAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDIwOSAqLwotCXsgMywJMCwJc3lzX2lvX2NhbmNlbCwJCSJpb19jYW5jZWwiCX0sIC8qIDIxMCAqLwotCXsgMSwJMCwJc3lzX2dldF90aHJlYWRfYXJlYSwJImdldF90aHJlYWRfYXJlYSIgfSwgLyogMjExICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMjEyICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAyMTMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJlcG9sbF9jdGxfb2xkIgl9LCAvKiAyMTQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJlcG9sbF93YWl0X29sZCJ9LCAvKiAyMTUgKi8KLQl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyJ9LCAvKiAyMTYgKi8KLQl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDIxNyAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyJ9LCAvKiAyMTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJyZXN0YXJ0X3N5c2NhbGwifSwgLyogMjE5ICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMjIwICovCi0JeyA0LAlURiwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NCIJfSwgLyogMjIxICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyMjIgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjIzICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDIyNCAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDIyNSAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjI2ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDIyNyAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyMjggKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDIyOSAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyMzAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAyMzEgKi8KLQl7IDUsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDIzMiAqLwotCXsgNSwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDIzMyAqLwotCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgl9LCAvKiAyMzQgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMjM1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMjM2ICovCi0JeyA2LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiAyMzcgKi8KLQl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMjM4ICovCi0JeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCX0sIC8qIDIzOSAqLwotCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogMjQwICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMjQxICovCi0JeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiAyNDIgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiIH0sIC8qIDI0MyAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDI0NCAqLwotCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgl9LCAvKiAyNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJrZXhlY19sb2FkIgl9LCAvKiAyNDYgKi8KLQl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIJfSwgLyogMjQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OCIJfSwgLyogMjQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJfSwgLyogMjQ5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MCIJfSwgLyogMjUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MiIJfSwgLyogMjUyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MyIJfSwgLyogMjUzICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmggYi9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2YmYxNDMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0vKiBPdXIgc2Vjb25kIHNldCBjb21lcyBmcm9tIHRoZSBpMzg2IGZpbGVzLgotICAgT25seSBhIGNvdXBsZSBvZiBjYWxscyB3ZSBjYW5ub3Qgc3VwcG9ydCB3aXRob3V0IHRoZSBpMzg2IGhlYWRlcnMuICAqLwotCi0jZGVmaW5lIHN5c19vbGRzdGF0IHByaW50YXJncwotI2RlZmluZSBzeXNfb2xkZnN0YXQgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19vbGRsc3RhdCBwcmludGFyZ3MKLSNpbmNsdWRlICIuLi9zeXNjYWxsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJlYW0uYyBiL3N0cmVhbS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDI5YzNkLi4wMDAwMDAwCi0tLSBhL3N0cmVhbS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTMwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzdHJlYW0uYyx2IDEuMjQgMjAwNS8wNi8wMSAxOToyMjowNyByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZGVmcy5oIgotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0KLSNpZmRlZiBIQVZFX1BPTExfSAotI2luY2x1ZGUgPHBvbGwuaD4KLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX1BPTExfSAotI2luY2x1ZGUgPHN5cy9wb2xsLmg+Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX1NUUk9QVFNfSAotI2luY2x1ZGUgPHN0cm9wdHMuaD4KLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX0NPTkZfSAotI2luY2x1ZGUgPHN5cy9jb25mLmg+Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX1NZU19TVFJFQU1fSAotI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX1RJSERSX0gKLSNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChIQVZFX1NZU19TVFJFQU1fSCkgfHwgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChGUkVFQlNEKQotCi0jaWZuZGVmIEhBVkVfU1RST1BUU19ICi0jZGVmaW5lIFJTX0hJUFJJIDEKLXN0cnVjdCBzdHJidWYgewotICAgICAgICBpbnQgICAgIG1heGxlbjsgICAgICAgICAgICAgICAgIC8qIG5vLiBvZiBieXRlcyBpbiBidWZmZXIgKi8KLSAgICAgICAgaW50ICAgICBsZW47ICAgICAgICAgICAgICAgICAgICAvKiBuby4gb2YgYnl0ZXMgcmV0dXJuZWQgKi8KLSAgICAgICAgY2hhciAgICAqYnVmOyAgICAgICAgICAgICAgICAgICAvKiBwb2ludGVyIHRvIGRhdGEgKi8KLX07Ci0jZGVmaW5lIE1PUkVDVEwgMQotI2RlZmluZSBNT1JFREFUQSAyCi0jZW5kaWYgLyogIUhBVkVfU1RST1BUU19IICovCi0KLSNpZmRlZiBIQVZFX1NZU19USVVTRVJfSAotI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KLSNpbmNsdWRlIDxzeXMvc29ja21vZC5oPgotI2luY2x1ZGUgPHN5cy90aW1vZC5oPgotI2VuZGlmIC8qIEhBVkVfU1lTX1RJVVNFUl9IICovCi0KLSNpZm5kZWYgRlJFRUJTRAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1zZ2ZsYWdzW10gPSB7Ci0JeyBSU19ISVBSSSwJIlJTX0hJUFJJIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLXN0YXRpYyB2b2lkCi1wcmludHN0cmJ1Zih0Y3AsIHNicCwgZ2V0dGluZykKLXN0cnVjdCB0Y2IgKnRjcDsKLXN0cnVjdCBzdHJidWYgKnNicDsKLWludCBnZXR0aW5nOwotewotCWlmIChzYnAtPm1heGxlbiA9PSAtMSAmJiBnZXR0aW5nKQotCQl0cHJpbnRmKCJ7bWF4bGVuPS0xfSIpOwotCWVsc2UgewotCQl0cHJpbnRmKCJ7Iik7Ci0JCWlmIChnZXR0aW5nKQotCQkJdHByaW50ZigibWF4bGVuPSVkLCAiLCBzYnAtPm1heGxlbik7Ci0JCXRwcmludGYoImxlbj0lZCwgYnVmPSIsIHNicC0+bGVuKTsKLQkJcHJpbnRzdHIodGNwLCAodW5zaWduZWQgbG9uZykgc2JwLT5idWYsIHNicC0+bGVuKTsKLQkJdHByaW50ZigifSIpOwotCX0KLX0KLQotc3RhdGljIHZvaWQKLXByaW50c3RyYnVmYXJnKHRjcCwgYXJnLCBnZXR0aW5nKQotc3RydWN0IHRjYiAqdGNwOwotaW50IGFyZzsKLWludCBnZXR0aW5nOwotewotCXN0cnVjdCBzdHJidWYgYnVmOwotCi0JaWYgKGFyZyA9PSAwKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAodW1vdmUodGNwLCBhcmcsICZidWYpIDwgMCkKLQkJdHByaW50Zigiey4uLn0iKTsKLQllbHNlCi0JCXByaW50c3RyYnVmKHRjcCwgJmJ1ZiwgZ2V0dGluZyk7Ci0JdHByaW50ZigiLCAiKTsKLX0KLQotaW50Ci1zeXNfcHV0bXNnKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgaTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCS8qIGZkICovCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCS8qIGNvbnRyb2wgYW5kIGRhdGEgKi8KLQkJZm9yIChpID0gMTsgaSA8IDM7IGkrKykKLQkJCXByaW50c3RyYnVmYXJnKHRjcCwgdGNwLT51X2FyZ1tpXSwgMCk7Ci0JCS8qIGZsYWdzICovCi0JCXByaW50ZmxhZ3MobXNnZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJSU18/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldG1zZyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaW50IGksIGZsYWdzOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJLyogZmQgKi8KLQkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJSNseCwgJSNseCwgJSNseCIsCi0JCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQkvKiBjb250cm9sIGFuZCBkYXRhICovCi0JCWZvciAoaSA9IDE7IGkgPCAzOyBpKyspCi0JCQlwcmludHN0cmJ1ZmFyZyh0Y3AsIHRjcC0+dV9hcmdbaV0sIDEpOwotCQkvKiBwb2ludGVyIHRvIGZsYWdzICovCi0JCWlmICh0Y3AtPnVfYXJnWzNdID09IDApCi0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJmZsYWdzKSA8IDApCi0JCQl0cHJpbnRmKCJbP10iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCJbIik7Ci0JCQlwcmludGZsYWdzKG1zZ2ZsYWdzLCBmbGFncywgIlJTXz8/PyIpOwotCQkJdHByaW50ZigiXSIpOwotCQl9Ci0JCS8qIGRlY29kZSByZXR1cm4gdmFsdWUgKi8KLQkJc3dpdGNoICh0Y3AtPnVfcnZhbCkgewotCQljYXNlIE1PUkVDVEw6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJNT1JFQ1RMIjsKLQkJCWJyZWFrOwotCQljYXNlIE1PUkVDVEx8TU9SRURBVEE6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJNT1JFQ1RMfE1PUkVEQVRBIjsKLQkJCWJyZWFrOwotCQljYXNlIE1PUkVEQVRBOgotCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTCI7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXRjcC0+YXV4c3RyID0gTlVMTDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOwotfQotCi0jaWYgZGVmaW5lZCBTWVNfcHV0cG1zZyB8fCBkZWZpbmVkIFNZU19nZXRwbXNnCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcG1zZ2ZsYWdzW10gPSB7Ci0jaWZkZWYgTVNHX0hJUFJJCi0JeyBNU0dfSElQUkksCSJNU0dfSElQUkkiCX0sCi0jZW5kaWYKLSNpZmRlZiBNU0dfQU5ECi0JeyBNU0dfQU5ZLAkiTVNHX0FOWSIJfSwKLSNlbmRpZgotI2lmZGVmIE1TR19CQU5ECi0JeyBNU0dfQkFORCwJIk1TR19CQU5EIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0jZW5kaWYKLQotI2lmZGVmIFNZU19wdXRwbXNnCi1pbnQKLXN5c19wdXRwbXNnKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgaTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCS8qIGZkICovCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCS8qIGNvbnRyb2wgYW5kIGRhdGEgKi8KLQkJZm9yIChpID0gMTsgaSA8IDM7IGkrKykKLQkJCXByaW50c3RyYnVmYXJnKHRjcCwgdGNwLT51X2FyZ1tpXSwgMCk7Ci0JCS8qIGJhbmQgKi8KLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzNdKTsKLQkJLyogZmxhZ3MgKi8KLQkJcHJpbnRmbGFncyhwbXNnZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJNU0dfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIFNZU19wdXRwbXNnICovCi0KLSNpZmRlZiBTWVNfZ2V0cG1zZwotaW50Ci1zeXNfZ2V0cG1zZyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaW50IGksIGZsYWdzOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJLyogZmQgKi8KLQkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJSNseCwgJSNseCwgJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMV0sCi0JCQkJdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQkvKiBjb250cm9sIGFuZCBkYXRhICovCi0JCWZvciAoaSA9IDE7IGkgPCAzOyBpKyspCi0JCQlwcmludHN0cmJ1ZmFyZyh0Y3AsIHRjcC0+dV9hcmdbaV0sIDEpOwotCQkvKiBwb2ludGVyIHRvIGJhbmQgKi8KLQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzNdLCAiJWQiKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJLyogcG9pbnRlciB0byBmbGFncyAqLwotCQlpZiAodGNwLT51X2FyZ1s0XSA9PSAwKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZmbGFncykgPCAwKQotCQkJdHByaW50ZigiWz9dIik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiWyIpOwotCQkJcHJpbnRmbGFncyhwbXNnZmxhZ3MsIGZsYWdzLCAiTVNHXz8/PyIpOwotCQkJdHByaW50ZigiXSIpOwotCQl9Ci0JCS8qIGRlY29kZSByZXR1cm4gdmFsdWUgKi8KLQkJc3dpdGNoICh0Y3AtPnVfcnZhbCkgewotCQljYXNlIE1PUkVDVEw6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJNT1JFQ1RMIjsKLQkJCWJyZWFrOwotCQljYXNlIE1PUkVDVEx8TU9SRURBVEE6Ci0JCQl0Y3AtPmF1eHN0ciA9ICJNT1JFQ1RMfE1PUkVEQVRBIjsKLQkJCWJyZWFrOwotCQljYXNlIE1PUkVEQVRBOgotCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTCI7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXRjcC0+YXV4c3RyID0gTlVMTDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOwotfQotI2VuZGlmIC8qIFNZU19nZXRwbXNnICovCi0KLSNlbmRpZiAvKiAhRlJFRUJTRCAqLwotCi0KLSNpZmRlZiBIQVZFX1NZU19QT0xMX0gKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHBvbGxmbGFnc1tdID0gewotI2lmZGVmIFBPTExJTgotCXsgUE9MTElOLAkiUE9MTElOIgl9LAotCXsgUE9MTFBSSSwJIlBPTExQUkkiCX0sCi0JeyBQT0xMT1VULAkiUE9MTE9VVCIJfSwKLSNpZmRlZiBQT0xMUkROT1JNCi0JeyBQT0xMUkROT1JNLAkiUE9MTFJETk9STSIJfSwKLSNlbmRpZgotI2lmZGVmIFBPTExXUk5PUk0KLQl7IFBPTExXUk5PUk0sCSJQT0xMV1JOT1JNIgl9LAotI2VuZGlmCi0jaWZkZWYgUE9MTFJEQkFORAotCXsgUE9MTFJEQkFORCwJIlBPTExSREJBTkQiCX0sCi0jZW5kaWYKLSNpZmRlZiBQT0xMV1JCQU5ECi0JeyBQT0xMV1JCQU5ELAkiUE9MTFdSQkFORCIJfSwKLSNlbmRpZgotCXsgUE9MTEVSUiwJIlBPTExFUlIiCX0sCi0JeyBQT0xMSFVQLAkiUE9MTEhVUCIJfSwKLQl7IFBPTExOVkFMLAkiUE9MTE5WQUwiCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfcG9sbCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IHBvbGxmZCBmZHM7Ci0JdW5zaWduZWQgbmZkczsKLQl1bnNpZ25lZCBsb25nIHNpemUsIHN0YXJ0LCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKLQlpbnQgZmFpbGVkID0gMDsKLQotCWlmIChlbnRlcmluZyh0Y3ApKQotCQlyZXR1cm4gMDsKLQotCW5mZHMgPSB0Y3AtPnVfYXJnWzFdOwotCXNpemUgPSBzaXplb2YoZmRzKSAqIG5mZHM7Ci0Jc3RhcnQgPSB0Y3AtPnVfYXJnWzBdOwotCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKLQlpZiAobmZkcyA9PSAwIHx8IHNpemUgLyBzaXplb2YoZmRzKSAhPSBuZmRzIHx8IGVuZCA8IHN0YXJ0KSB7Ci0JCXRwcmludGYoIiUjbHgsICVkLCAlbGQiLAotCQkJdGNwLT51X2FyZ1swXSwgbmZkcywgdGNwLT51X2FyZ1syXSk7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoYWJicmV2KHRjcCkpIHsKLQkJYWJicmV2X2VuZCA9IHN0YXJ0ICsgbWF4X3N0cmxlbiAqIHNpemVvZihmZHMpOwotCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQotCQkJYWJicmV2X2VuZCA9IGVuZDsKLQl9IGVsc2UgewotCQlhYmJyZXZfZW5kID0gZW5kOwotCX0KLQl0cHJpbnRmKCJbIik7Ci0JZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGZkcykpIHsKLQkJaWYgKGN1ciA+IHN0YXJ0KQotCQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7Ci0JCQl0cHJpbnRmKCIuLi4iKTsKLQkJCWJyZWFrOwotCQl9Ci0JCWlmICh1bW92ZW4odGNwLCBjdXIsIHNpemVvZiBmZHMsIChjaGFyICopICZmZHMpIDwgMCkgewotCQkJdHByaW50ZigiPyIpOwotCQkJZmFpbGVkID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWlmIChmZHMuZmQgPCAwKSB7Ci0JCQl0cHJpbnRmKCJ7ZmQ9JWR9IiwgZmRzLmZkKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCXRwcmludGYoIntmZD0lZCwgZXZlbnRzPSIsIGZkcy5mZCk7Ci0JCXByaW50ZmxhZ3MocG9sbGZsYWdzLCBmZHMuZXZlbnRzLCAiUE9MTD8/PyIpOwotCQlpZiAoIXN5c2Vycm9yKHRjcCkgJiYgZmRzLnJldmVudHMpIHsKLQkJCXRwcmludGYoIiwgcmV2ZW50cz0iKTsKLQkJCXByaW50ZmxhZ3MocG9sbGZsYWdzLCBmZHMucmV2ZW50cywgIlBPTEw/Pz8iKTsKLQkJfQotCQl0cHJpbnRmKCJ9Iik7Ci0JfQotCXRwcmludGYoIl0iKTsKLQlpZiAoZmFpbGVkKQotCQl0cHJpbnRmKCIgJSNseCIsIHN0YXJ0KTsKLQl0cHJpbnRmKCIsICVkLCAiLCBuZmRzKTsKLSNpZmRlZiBJTkZUSU0KLQlpZiAodGNwLT51X2FyZ1syXSA9PSBJTkZUSU0pCi0JCXRwcmludGYoIklORlRJTSIpOwotCWVsc2UKLSNlbmRpZgotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzJdKTsKLQlyZXR1cm4gMDsKLX0KLQotCi0jZWxzZSAvKiAhSEFWRV9TWVNfUE9MTF9IICovCi1pbnQKLXN5c19wb2xsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICAJcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKExJTlVYKSAmJiAhZGVmaW5lZChGUkVFQlNEKQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3RyZWFtX2ZsdXNoX29wdGlvbnNbXSA9IHsKLQl7IEZMVVNIUiwJIkZMVVNIUiIJfSwKLQl7IEZMVVNIVywJIkZMVVNIVyIJfSwKLQl7IEZMVVNIUlcsCSJGTFVTSFJXIgl9LAotI2lmZGVmIEZMVVNIQkFORAotCXsgRkxVU0hCQU5ELAkiRkxVU0hCQU5EIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJlYW1fc2V0c2lnX2ZsYWdzW10gPSB7Ci0JeyBTX0lOUFVULAkiU19JTlBVVCIJfSwKLQl7IFNfSElQUkksCSJTX0hJUFJJIgl9LAotCXsgU19PVVRQVVQsCSJTX09VVFBVVCIJfSwKLQl7IFNfTVNHLAkiU19NU0ciCQl9LAotI2lmZGVmIFNfRVJST1IKLQl7IFNfRVJST1IsCSJTX0VSUk9SIgl9LAotI2VuZGlmCi0jaWZkZWYgU19IQU5HVVAKLQl7IFNfSEFOR1VQLAkiU19IQU5HVVAiCX0sCi0jZW5kaWYKLSNpZmRlZiBTX1JETk9STQotCXsgU19SRE5PUk0sCSJTX1JETk9STSIJfSwKLSNlbmRpZgotI2lmZGVmIFNfV1JOT1JNCi0JeyBTX1dSTk9STSwJIlNfV1JOT1JNIgl9LAotI2VuZGlmCi0jaWZkZWYgU19SREJBTkQKLQl7IFNfUkRCQU5ELAkiU19SREJBTkQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTX1dSQkFORAotCXsgU19XUkJBTkQsCSJTX1dSQkFORCIJfSwKLSNlbmRpZgotI2lmZGVmIFNfQkFORFVSRwotCXsgU19CQU5EVVJHLAkiU19CQU5EVVJHIgl9LAotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJlYW1fcmVhZF9vcHRpb25zW10gPSB7Ci0JeyBSTk9STSwJIlJOT1JNIgkJfSwKLQl7IFJNU0dELAkiUk1TR0QiCQl9LAotCXsgUk1TR04sCSJSTVNHTiIJCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJlYW1fcmVhZF9mbGFnc1tdID0gewotI2lmZGVmIFJQUk9UREFUCi0JeyBSUFJPVERBVCwJIlJQUk9UREFUIgl9LAotI2VuZGlmCi0jaWZkZWYgUlBST1RESVMKLQl7IFJQUk9URElTLAkiUlBST1RESVMiCX0sCi0jZW5kaWYKLSNpZmRlZiBSUFJPVE5PUk0KLQl7IFJQUk9UTk9STSwJIlJQUk9UTk9STSIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jaWZuZGVmIFJNT0RFTUFTSwotI2RlZmluZSBSTU9ERU1BU0sgKH4wKQotI2VuZGlmCi0KLSNpZmRlZiBJX1NXUk9QVAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN0cmVhbV93cml0ZV9mbGFnc1tdID0gewotCXsgU05EWkVSTywJIlNORFpFUk8iCX0sCi0JeyBTTkRQSVBFLAkiU05EUElQRSIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLSNlbmRpZiAvKiBJX1NXUk9QVCAqLwotCi0jaWZkZWYgSV9BVE1BUksKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJlYW1fYXRtYXJrX29wdGlvbnNbXSA9IHsKLQl7IEFOWU1BUkssCSJBTllNQVJLIgl9LAotCXsgTEFTVE1BUkssCSJMQVNUTUFSSyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLSNlbmRpZiAvKiBJX0FUTUFSSyAqLwotCi0jaWZkZWYgVElfQklORAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHRyYW5zcG9ydF91c2VyX29wdGlvbnNbXSA9IHsKLQl7IFRfQ09OTl9SRVEsCSJUX0NPTk5fUkVRIgl9LAotCXsgVF9DT05OX1JFUywJIlRfQ09OTl9SRVMiCX0sCi0JeyBUX0RJU0NPTl9SRVEsCSJUX0RJU0NPTl9SRVEiCX0sCi0JeyBUX0RBVEFfUkVRLAkiVF9EQVRBX1JFUSIJfSwKLQl7IFRfRVhEQVRBX1JFUSwJIlRfRVhEQVRBX1JFUSIJfSwKLQl7IFRfSU5GT19SRVEsCSJUX0lORk9fUkVRIgl9LAotCXsgVF9CSU5EX1JFUSwJIlRfQklORF9SRVEiCX0sCi0JeyBUX1VOQklORF9SRVEsCSJUX1VOQklORF9SRVEiCX0sCi0JeyBUX1VOSVREQVRBX1JFUSwiVF9VTklUREFUQV9SRVEifSwKLQl7IFRfT1BUTUdNVF9SRVEsIlRfT1BUTUdNVF9SRVEiCX0sCi0JeyBUX09SRFJFTF9SRVEsCSJUX09SRFJFTF9SRVEiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0cmFuc3BvcnRfdXNlcl9mbGFncyBbXSA9IHsKLQl7IDAsCQkiMCIJCX0sCi0JeyBUX01PUkUsCSJUX01PUkUiCX0sCi0JeyBUX0VYUEVESVRFRCwJIlRfRVhQRURJVEVEIgl9LAotCXsgVF9ORUdPVElBVEUsCSJUX05FR09USUFURSIJfSwKLQl7IFRfQ0hFQ0ssCSJUX0NIRUNLIgl9LAotCXsgVF9ERUZBVUxULAkiVF9ERUZBVUxUIgl9LAotCXsgVF9TVUNDRVNTLAkiVF9TVUNDRVNTIgl9LAotCXsgVF9GQUlMVVJFLAkiVF9GQUlMVVJFIgl9LAotCXsgVF9DVVJSRU5ULAkiVF9DVVJSRU5UIgl9LAotCXsgVF9QQVJUU1VDQ0VTUywiVF9QQVJUU1VDQ0VTUyIJfSwKLQl7IFRfUkVBRE9OTFksCSJUX1JFQURPTkxZIgl9LAotCXsgVF9OT1RTVVBQT1JULAkiVF9OT1RTVVBQT1JUIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLSNpZmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgeHRpX2xldmVsIFtdID0gewotCXsgWFRJX0dFTkVSSUMsCSJYVElfR0VORVJJQyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHh0aV9nZW5lcmljIFtdID0gewotCXsgWFRJX0RFQlVHLAkiWFRJX0RFQlVHIgl9LAotCXsgWFRJX0xJTkdFUiwJIlhUSV9MSU5HRVIiCX0sCi0JeyBYVElfUkNWQlVGLAkiWFRJX1JDVkJVRiIJfSwKLQl7IFhUSV9SQ1ZMT1dBVCwJIlhUSV9SQ1ZMT1dBVCIJfSwKLQl7IFhUSV9TTkRCVUYsCSJYVElfU05EQlVGIgl9LAotCXsgWFRJX1NORExPV0FULAkiWFRJX1NORExPV0FUIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0KLQotdm9pZAotcHJpbnRfeHRpX29wdG1nbXQgKHRjcCwgYWRkciwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLXsKLQlpbnQgYyA9IDA7Ci0Jc3RydWN0IHRfb3B0aGRyIGhkcjsKLQotCXdoaWxlIChsZW4gPj0gKGludCkgc2l6ZW9mIGhkcikgewotCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmaGRyKSA8IDApIGJyZWFrOwotCQlpZiAoYysrKSB7Ci0JCQl0cHJpbnRmICgiLCAiKTsKLQkJfQotCQllbHNlIGlmIChsZW4gPiBoZHIubGVuICsgc2l6ZW9mIGhkcikgewotCQkJdHByaW50ZiAoIlsiKTsKLQkJfQotCQl0cHJpbnRmICgie2xldmVsPSIpOwotCQlwcmludHh2YWwgKHh0aV9sZXZlbCwgaGRyLmxldmVsLCAiPz8/Iik7Ci0JCXRwcmludGYgKCIsIG5hbWU9Iik7Ci0JCXN3aXRjaCAoaGRyLmxldmVsKSB7Ci0JCSAgICBjYXNlIFhUSV9HRU5FUklDOgotCQkJcHJpbnR4dmFsICh4dGlfZ2VuZXJpYywgaGRyLm5hbWUsICJYVElfPz8/Iik7Ci0JCQlicmVhazsKLQkJICAgIGRlZmF1bHQ6Ci0JCQl0cHJpbnRmICgiJWxkIiwgaGRyLm5hbWUpOwotCQkJYnJlYWs7Ci0JCX0KLQkJdHByaW50ZiAoIiwgc3RhdHVzPSIpOwotCQlwcmludHh2YWwgKHRyYW5zcG9ydF91c2VyX2ZsYWdzLCAgaGRyLnN0YXR1cywgIlRfPz8/Iik7Ci0JCWFkZHIgKz0gc2l6ZW9mIGhkcjsKLQkJbGVuIC09IHNpemVvZiBoZHI7Ci0JCWlmICgoaGRyLmxlbiAtPSBzaXplb2YgaGRyKSA+IDApIHsKLQkJCWlmIChoZHIubGVuID4gbGVuKSBicmVhazsKLQkJCXRwcmludGYgKCIsIHZhbD0iKTsKLQkJCWlmIChsZW4gPT0gc2l6ZW9mIChpbnQpKQotCQkJCXByaW50bnVtICh0Y3AsIGFkZHIsICIlZCIpOwotCQkJZWxzZQotCQkJCXByaW50c3RyICh0Y3AsIGFkZHIsIGhkci5sZW4pOwotCQkJYWRkciArPSBoZHIubGVuOwotCQkJbGVuIC09IGhkci5sZW47Ci0JCX0KLQkJdHByaW50ZiAoIn0iKTsKLQl9Ci0JaWYgKGxlbiA+IDApIHsKLQkJaWYgKGMrKykgdHByaW50ZiAoIiwgIik7Ci0JCXByaW50c3RyICh0Y3AsIGFkZHIsIGxlbik7Ci0JfQotCWlmIChjID4gMSkgdHByaW50ZiAoIl0iKTsKLX0KLQotI2VuZGlmCi0KLQotc3RhdGljIHZvaWQKLXByaW50X29wdG1nbXQgKHRjcCwgYWRkciwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLXsKLQkvKiBXZSBkb24ndCBrbm93IGhvdyB0byB0ZWxsIGlmIFRMSSAoc29ja2V0KSBvciBYVEkKLQkgICBvcHRtZ210IGlzIGJlaW5nIHVzZWQgeWV0LCBhc3N1bWUgVExJLiAqLwotI2lmIGRlZmluZWQgKEhBVkVfU1RSVUNUX09QVEhEUikKLQlwcmludF9zb2NrX29wdG1nbXQgKHRjcCwgYWRkciwgbGVuKTsKLSNlbGlmIGRlZmluZWQgKEhBVkVfU1RSVUNUX1RfT1BUSERSKQotCXByaW50X3h0aV9vcHRtZ210ICh0Y3AsIGFkZHIsIGxlbik7Ci0jZWxzZQotCXByaW50c3RyICh0Y3AsIGFkZHIsIGxlbik7Ci0jZW5kaWYKLX0KLQotCi0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNlcnZpY2VfdHlwZSBbXSA9IHsKLQl7IFRfQ09UUywJIlRfQ09UUyIJfSwKLQl7IFRfQ09UU19PUkQsCSJUX0NPVFNfT1JEIgl9LAotCXsgVF9DTFRTLAkiVF9DTFRTIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdHNfc3RhdGUgW10gPSB7Ci0JeyBUU19VTkJORCwJIlRTX1VOQk5EIgl9LAotCXsgVFNfV0FDS19CUkVRLAkiVFNfV0FDS19CUkVRIgl9LAotCXsgVFNfV0FDS19VUkVRLAkiVFNfV0FDS19VUkVRIgl9LAotCXsgVFNfSURMRSwJIlRTX0lETEUiCX0sCi0JeyBUU19XQUNLX09QVFJFUSwiVFNfV0FDS19PUFRSRVEifSwKLQl7IFRTX1dBQ0tfQ1JFUSwJIlRTX1dBQ0tfQ1JFUSIJfSwKLQl7IFRTX1dDT05fQ1JFUSwJIlRTX1dDT05fQ1JFUSIJfSwKLQl7IFRTX1dSRVNfQ0lORCwJIlRTX1dSRVNfQ0lORCIJfSwKLQl7IFRTX1dBQ0tfQ1JFUywJIlRTX1dBQ0tfQ1JFUyIJfSwKLQl7IFRTX0RBVEFfWEZFUiwJIlRTX0RBVEFfWEZFUiIJfSwKLQl7IFRTX1dJTkRfT1JEUkVMLCJUU19XSU5EX09SRFJFTCJ9LAotCXsgVFNfV1JFUV9PUkRSRUwsIlRTX1dSRVFfT1JEUkVMIn0sCi0JeyBUU19XQUNLX0RSRVE2LCJUU19XQUNLX0RSRVE2Igl9LAotCXsgVFNfV0FDS19EUkVRNywiVFNfV0FDS19EUkVRNyIJfSwKLQl7IFRTX1dBQ0tfRFJFUTksIlRTX1dBQ0tfRFJFUTkiCX0sCi0JeyBUU19XQUNLX0RSRVExMCwiVFNfV0FDS19EUkVRMTAifSwKLQl7IFRTX1dBQ0tfRFJFUTExLCJUU19XQUNLX0RSRVExMSJ9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvdmlkZXJfZmxhZ3MgW10gPSB7Ci0JeyAwLAkJIjAiCQl9LAotCXsgU0VORFpFUk8sCSJTRU5EWkVSTyIJfSwKLQl7IEVYUElOTElORSwJIkVYUElOTElORSIJfSwKLQl7IFhQRzRfMSwJIlhQRzRfMSIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdGxpX2Vycm9ycyBbXSA9IHsKLQl7IFRCQURBRERSLAkiVEJBREFERFIiCX0sCi0JeyBUQkFET1BULAkiVEJBRE9QVCIJfSwKLQl7IFRBQ0NFUywJIlRBQ0NFUyIJfSwKLQl7IFRCQURGLAkiVEJBREYiCQl9LAotCXsgVE5PQUREUiwJIlROT0FERFIiCX0sCi0JeyBUT1VUU1RBVEUsCSJUT1VUU1RBVEUiCX0sCi0JeyBUQkFEU0VRLAkiVEJBRFNFUSIJfSwKLQl7IFRTWVNFUlIsCSJUU1lTRVJSIgl9LAotCXsgVExPT0ssCSJUTE9PSyIJCX0sCi0JeyBUQkFEREFUQSwJIlRCQUREQVRBIgl9LAotCXsgVEJVRk9WRkxXLAkiVEJVRk9WRkxXIgl9LAotCXsgVEZMT1csCSJURkxPVyIJCX0sCi0JeyBUTk9EQVRBLAkiVE5PREFUQSIJfSwKLQl7IFROT0RJUywJIlROT0RJUyIJfSwKLQl7IFROT1VERVJSLAkiVE5PVURFUlIiCX0sCi0JeyBUQkFERkxBRywJIlRCQURGTEFHIgl9LAotCXsgVE5PUkVMLAkiVE5PUkVMIgl9LAotCXsgVE5PVFNVUFBPUlQsCSJUTk9UU1VQUE9SVCIJfSwKLQl7IFRTVEFURUNITkcsCSJUU1RBVEVDSE5HIgl9LAotCXsgVE5PU1RSVUNUWVBFLAkiVE5PU1RSVUNUWVBFIgl9LAotCXsgVEJBRE5BTUUsCSJUQkFETkFNRSIJfSwKLQl7IFRCQURRTEVOLAkiVEJBRFFMRU4iCX0sCi0JeyBUQUREUkJVU1ksCSJUQUREUkJVU1kiCX0sCi0JeyBUSU5ET1VULAkiVElORE9VVCIJfSwKLQl7IFRQUk9WTUlTTUFUQ0gsIlRQUk9WTUlTTUFUQ0giCX0sCi0JeyBUUkVTUUxFTiwJIlRSRVNRTEVOIgl9LAotCXsgVFJFU0FERFIsCSJUUkVTQUREUiIJfSwKLQl7IFRRRlVMTCwJIlRRRlVMTCIJfSwKLQl7IFRQUk9UTywJIlRQUk9UTyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotCi1zdGF0aWMgaW50Ci1wcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLCBleHBlY3QsIGFkZHIsIGxlbikKLXN0cnVjdCB0Y2IgKnRjcDsKLWludCBleHBlY3Q7Ci1sb25nIGFkZHI7Ci1pbnQgbGVuOwotewotCXVuaW9uIFRfcHJpbWl0aXZlcyBtOwotCWludCBjID0gMDsKLQotCWlmIChsZW4gPCBzaXplb2YgbS50eXBlKSBnb3RvIGR1bXA7Ci0KLQlpZiAodW1vdmUgKHRjcCwgYWRkciwgJm0udHlwZSkgPCAwKSBnb3RvIGR1bXA7Ci0KLSNkZWZpbmUgR0VUKHR5cGUsIHN0cnVjdCkJXAotCWRvIHsJCQkJCQkJXAotCQlpZiAobGVuIDwgc2l6ZW9mIG0uc3RydWN0KSBnb3RvIGR1bXA7CQlcCi0JCWlmICh1bW92ZSAodGNwLCBhZGRyLCAmbS5zdHJ1Y3QpIDwgMCkgZ290byBkdW1wO1wKLQkJdHByaW50ZiAoInsiKTsJCQkJCVwKLQkJaWYgKGV4cGVjdCAhPSB0eXBlKSB7CQkJCVwKLQkJCSsrYzsJCQkJCVwKLQkJCXRwcmludGYgKCN0eXBlKTsJCQlcCi0JCX0JCQkJCQlcCi0JfQkJCQkJCQlcCi0Jd2hpbGUgKDApCi0KLSNkZWZpbmUgQ09NTUEoKSBcCi0JZG8geyBpZiAoYysrKSB0cHJpbnRmICgiLCAiKTsgfSB3aGlsZSAoMCkKLQotCi0jZGVmaW5lIFNUUlVDVChzdHJ1Y3QsIGVsZW0sIHByaW50KQkJCQkJXAotCWRvIHsJCQkJCQkJCVwKLQkJQ09NTUEgKCk7CQkJCQkJXAotCQlpZiAobS5zdHJ1Y3QuZWxlbSMjX2xlbmd0aCA8IDAgfHwJCQlcCi0JCSAgICBtLnN0cnVjdC5lbGVtIyNfb2Zmc2V0IDwgc2l6ZW9mIG0uc3RydWN0IHx8CQlcCi0JCSAgICBtLnN0cnVjdC5lbGVtIyNfb2Zmc2V0ICsgbS5zdHJ1Y3QuZWxlbSMjX2xlbmd0aCA+IGxlbikgXAotCQl7CQkJCQkJCVwKLQkJCXRwcmludGYgKCNlbGVtICJfbGVuZ3RoPSVsZCwgIiAjZWxlbSAiX29mZnNldD0lbGQiLFwKLQkJCQltLnN0cnVjdC5lbGVtIyNfbGVuZ3RoLAkJCVwKLQkJCQltLnN0cnVjdC5lbGVtIyNfb2Zmc2V0KTsJCVwKLQkJfQkJCQkJCQlcCi0JCWVsc2UgewkJCQkJCQlcCi0JCQl0cHJpbnRmICgjZWxlbSAiPSIpOwkJCQlcCi0JCQlwcmludCAodGNwLAkJCQkJXAotCQkJCSBhZGRyICsgbS5zdHJ1Y3QuZWxlbSMjX29mZnNldCwJCVwKLQkJCQkgbS5zdHJ1Y3QuZWxlbSMjX2xlbmd0aCk7CQlcCi0JCX0JCQkJCQkJXAotCX0JCQkJCQkJCVwKLQl3aGlsZSAoMCkKLQotI2RlZmluZSBBRERSKHN0cnVjdCwgZWxlbSkgU1RSVUNUIChzdHJ1Y3QsIGVsZW0sIHByaW50c3RyKQotCi0Jc3dpdGNoIChtLnR5cGUpIHsKLSNpZmRlZiBUX0NPTk5fUkVRCi0JICAgIGNhc2UgVF9DT05OX1JFUToJLyogY29ubmVjdCByZXF1ZXN0ICAgKi8KLQkJR0VUIChUX0NPTk5fUkVRLCBjb25uX3JlcSk7Ci0JCUFERFIgKGNvbm5fcmVxLCBERVNUKTsKLQkJQUREUiAoY29ubl9yZXEsIE9QVCk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9DT05OX1JFUwotCSAgICBjYXNlIFRfQ09OTl9SRVM6CS8qIGNvbm5lY3QgcmVzcG9uc2UgICAqLwotCQlHRVQgKFRfQ09OTl9SRVMsIGNvbm5fcmVzKTsKLSNpZmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUgotCQlDT01NQSAoKTsKLQkJdHByaW50ZiAoIlFVRVVFPSVwIiwgbS5jb25uX3Jlcy5RVUVVRV9wdHIpOwotI2VsaWYgZGVmaW5lZCBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX0FDQ0VQVE9SX0lECi0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiQUNDRVBUT1I9JSNseCIsIG0uY29ubl9yZXMuQUNDRVBUT1JfaWQpOwotI2VuZGlmCi0JCUFERFIgKGNvbm5fcmVzLCBPUFQpOwotCQlDT01NQSAoKTsKLQkJdHByaW50ZiAoIlNFUT0lbGQiLCBtLmNvbm5fcmVzLlNFUV9udW1iZXIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfRElTQ09OX1JFUQotCSAgICBjYXNlIFRfRElTQ09OX1JFUToJLyogZGlzY29ubmVjdCByZXF1ZXN0ICovCi0JCUdFVCAoVF9ESVNDT05fUkVRLCBkaXNjb25fcmVxKTsKLQkJQ09NTUEgKCk7Ci0JCXRwcmludGYgKCJTRVE9JWxkIiwgbS5kaXNjb25fcmVxLlNFUV9udW1iZXIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfREFUQV9SRVEKLQkgICAgY2FzZSBUX0RBVEFfUkVROgkvKiBkYXRhIHJlcXVlc3QgICAgICAgKi8KLQkJR0VUIChUX0RBVEFfUkVRLCBkYXRhX3JlcSk7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiTU9SRT0lbGQiLCBtLmRhdGFfcmVxLk1PUkVfZmxhZyk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9FWERBVEFfUkVRCi0JICAgIGNhc2UgVF9FWERBVEFfUkVROgkvKiBleHBlZGl0ZWQgZGF0YSByZXEgKi8KLQkJR0VUIChUX0VYREFUQV9SRVEsIGV4ZGF0YV9yZXEpOwotCQlDT01NQSAoKTsKLQkJdHByaW50ZiAoIk1PUkU9JWxkIiwgbS5leGRhdGFfcmVxLk1PUkVfZmxhZyk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9JTkZPX1JFUQotCSAgICBjYXNlIFRfSU5GT19SRVE6CS8qIGluZm9ybWF0aW9uIHJlcSAgICAqLwotCQlHRVQgKFRfSU5GT19SRVEsIGluZm9fcmVxKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX0JJTkRfUkVRCi0JICAgIGNhc2UgVF9CSU5EX1JFUToJLyogYmluZCByZXF1ZXN0ICAgICAgICovCi0jaWZkZWYgT19UX0JJTkRfUkVRCi0JICAgIGNhc2UgT19UX0JJTkRfUkVROgkvKiBVZ2x5IHh0aS90bGkgaGFjayAqLwotI2VuZGlmCi0JCUdFVCAoVF9CSU5EX1JFUSwgYmluZF9yZXEpOwotCQlBRERSIChiaW5kX3JlcSwgQUREUik7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiQ09OSU5EPSVsZCIsIG0uYmluZF9yZXEuQ09OSU5EX251bWJlcik7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9VTkJJTkRfUkVRCi0JICAgIGNhc2UgVF9VTkJJTkRfUkVROgkvKiB1bmJpbmQgcmVxdWVzdCAgICAgKi8KLQkJR0VUIChUX1VOQklORF9SRVEsIHVuYmluZF9yZXEpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfVU5JVERBVEFfUkVRCi0JICAgIGNhc2UgVF9VTklUREFUQV9SRVE6CS8qIHVuaXRkYXRhIHJlcXVzZXQgICAqLwotCQlHRVQgKFRfVU5JVERBVEFfUkVRLCB1bml0ZGF0YV9yZXEpOwotCQlBRERSICh1bml0ZGF0YV9yZXEsIERFU1QpOwotCQlBRERSICh1bml0ZGF0YV9yZXEsIE9QVCk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9PUFRNR01UX1JFUQotCSAgICBjYXNlIFRfT1BUTUdNVF9SRVE6CS8qIG1hbmFnZSBvcHQgcmVxICAgICAqLwotCQlHRVQgKFRfT1BUTUdNVF9SRVEsIG9wdG1nbXRfcmVxKTsKLQkJQ09NTUEgKCk7Ci0JCXRwcmludGYgKCJNR01UPSIpOwotCQlwcmludGZsYWdzICh0cmFuc3BvcnRfdXNlcl9mbGFncywgbS5vcHRtZ210X3JlcS5NR01UX2ZsYWdzLAotCQkJICAgICJUXz8/PyIpOwotCQlTVFJVQ1QgKG9wdG1nbXRfcmVxLCBPUFQsIHByaW50X29wdG1nbXQpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfT1JEUkVMX1JFUQotCSAgICBjYXNlIFRfT1JEUkVMX1JFUToJLyogb3JkZXJseSByZWwgcmVxICAgICovCi0JCUdFVCAoVF9PUkRSRUxfUkVRLCBvcmRyZWxfcmVxKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX0NPTk5fSU5ECi0JICAgIGNhc2UgVF9DT05OX0lORDoJLyogY29ubmVjdCBpbmRpY2F0aW9uICovCi0JCUdFVCAoVF9DT05OX0lORCwgY29ubl9pbmQpOwotCQlBRERSIChjb25uX2luZCwgU1JDKTsKLQkJQUREUiAoY29ubl9pbmQsIE9QVCk7Ci0JCXRwcmludGYgKCIsIFNFUT0lbGQiLCBtLmNvbm5faW5kLlNFUV9udW1iZXIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfQ09OTl9DT04KLQkgICAgY2FzZSBUX0NPTk5fQ09OOgkvKiBjb25uZWN0IGNvcmZpcm0gICAgKi8KLQkJR0VUIChUX0NPTk5fQ09OLCBjb25uX2Nvbik7Ci0JCUFERFIgKGNvbm5fY29uLCBSRVMpOwotCQlBRERSIChjb25uX2NvbiwgT1BUKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX0RJU0NPTl9JTkQKLQkgICAgY2FzZSBUX0RJU0NPTl9JTkQ6CS8qIGRpc2NvbiBpbmRpY2F0aW9uICAqLwotCQlHRVQgKFRfRElTQ09OX0lORCwgZGlzY29uX2luZCk7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiRElTQ09OPSVsZCwgU0VRPSVsZCIsCi0JCQkgbS5kaXNjb25faW5kLkRJU0NPTl9yZWFzb24sIG0uZGlzY29uX2luZC5TRVFfbnVtYmVyKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX0RBVEFfSU5ECi0JICAgIGNhc2UgVF9EQVRBX0lORDoJLyogZGF0YSBpbmRpY2F0aW9uICAgICovCi0JCUdFVCAoVF9EQVRBX0lORCwgZGF0YV9pbmQpOwotCQlDT01NQSAoKTsKLQkJdHByaW50ZiAoIk1PUkU9JWxkIiwgbS5kYXRhX2luZC5NT1JFX2ZsYWcpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfRVhEQVRBX0lORAotCSAgICBjYXNlIFRfRVhEQVRBX0lORDoJLyogZXhwZWRpdGVkIGRhdGEgaW5kICovCi0JCUdFVCAoVF9FWERBVEFfSU5ELCBleGRhdGFfaW5kKTsKLQkJQ09NTUEgKCk7Ci0JCXRwcmludGYgKCJNT1JFPSVsZCIsIG0uZXhkYXRhX2luZC5NT1JFX2ZsYWcpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfSU5GT19BQ0sKLQkgICAgY2FzZSBUX0lORk9fQUNLOgkvKiBpbmZvIGFjayAgICAgICAgICAgKi8KLQkJR0VUIChUX0lORk9fQUNLLCBpbmZvX2Fjayk7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiVFNEVT0lbGQsIEVUU0RVPSVsZCwgQ0RBVEE9JWxkLCBEREFUQT0lbGQsICIKLQkJCSAiQUREUj0lbGQsIE9QVD0lbGQsIFRJRFU9JWxkLCBTRVJWPSIsCi0JCQkgbS5pbmZvX2Fjay5UU0RVX3NpemUsIG0uaW5mb19hY2suRVRTRFVfc2l6ZSwKLQkJCSBtLmluZm9fYWNrLkNEQVRBX3NpemUsIG0uaW5mb19hY2suRERBVEFfc2l6ZSwKLQkJCSBtLmluZm9fYWNrLkFERFJfc2l6ZSwgbS5pbmZvX2Fjay5PUFRfc2l6ZSwKLQkJCSBtLmluZm9fYWNrLlRJRFVfc2l6ZSk7Ci0JCXByaW50eHZhbCAoc2VydmljZV90eXBlLCBtLmluZm9fYWNrLlNFUlZfdHlwZSwgIlRfPz8/Iik7Ci0JCXRwcmludGYgKCIsIENVUlJFTlQ9Iik7Ci0JCXByaW50eHZhbCAodHNfc3RhdGUsIG0uaW5mb19hY2suQ1VSUkVOVF9zdGF0ZSwgIlRTXz8/PyIpOwotCQl0cHJpbnRmICgiLCBQUk9WSURFUj0iKTsKLQkJcHJpbnRmbGFncyAocHJvdmlkZXJfZmxhZ3MsIG0uaW5mb19hY2suUFJPVklERVJfZmxhZywgIj8/PyIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfQklORF9BQ0sKLQkgICAgY2FzZSBUX0JJTkRfQUNLOgkvKiBiaW5kIGFjayAgICAgICAgICAgKi8KLQkJR0VUIChUX0JJTkRfQUNLLCBiaW5kX2Fjayk7Ci0JCUFERFIgKGJpbmRfYWNrLCBBRERSKTsKLQkJdHByaW50ZiAoIiwgQ09OSU5EPSVsZCIsIG0uYmluZF9hY2suQ09OSU5EX251bWJlcik7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgVF9FUlJPUl9BQ0sKLQkgICAgY2FzZSBUX0VSUk9SX0FDSzoJLyogZXJyb3IgYWNrICAgICAgICAgICovCi0JCUdFVCAoVF9FUlJPUl9BQ0ssIGVycm9yX2Fjayk7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiRVJST1I9Iik7Ci0JCXByaW50eHZhbCAodHJhbnNwb3J0X3VzZXJfb3B0aW9ucywKLQkJCSAgIG0uZXJyb3JfYWNrLkVSUk9SX3ByaW0sICJUSV8/Pz8iKTsKLQkJdHByaW50ZiAoIiwgVExJPSIpOwotCQlwcmludHh2YWwgKHRsaV9lcnJvcnMsIG0uZXJyb3JfYWNrLlRMSV9lcnJvciwgIlQ/Pz8iKTsKLQkJdHByaW50ZiAoIlVOSVg9JXMiLCBzdHJlcnJvciAobS5lcnJvcl9hY2suVU5JWF9lcnJvcikpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfT0tfQUNLCi0JICAgIGNhc2UgVF9PS19BQ0s6CS8qIG9rIGFjayAgICAgICAgICAgICAqLwotCQlHRVQgKFRfT0tfQUNLLCBva19hY2spOwotCQlDT01NQSAoKTsKLQkJdHByaW50ZiAoIkNPUlJFQ1Q9Iik7Ci0JCXByaW50eHZhbCAodHJhbnNwb3J0X3VzZXJfb3B0aW9ucywKLQkJCSAgIG0ub2tfYWNrLkNPUlJFQ1RfcHJpbSwgIlRJXz8/PyIpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfVU5JVERBVEFfSU5ECi0JICAgIGNhc2UgVF9VTklUREFUQV9JTkQ6CS8qIHVuaXRkYXRhIGluZCAgICAgICAqLwotCQlHRVQgKFRfVU5JVERBVEFfSU5ELCB1bml0ZGF0YV9pbmQpOwotCQlBRERSICh1bml0ZGF0YV9pbmQsIFNSQyk7Ci0JCUFERFIgKHVuaXRkYXRhX2luZCwgT1BUKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX1VERVJST1JfSU5ECi0JICAgIGNhc2UgVF9VREVSUk9SX0lORDoJLyogdW5pdGRhdGEgZXJyb3IgaW5kICovCi0JCUdFVCAoVF9VREVSUk9SX0lORCwgdWRlcnJvcl9pbmQpOwotCQlBRERSICh1ZGVycm9yX2luZCwgREVTVCk7Ci0JCUFERFIgKHVkZXJyb3JfaW5kLCBPUFQpOwotCQl0cHJpbnRmICgiLCBFUlJPUj0lbGQiLCBtLnVkZXJyb3JfaW5kLkVSUk9SX3R5cGUpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfT1BUTUdNVF9BQ0sKLQkgICAgY2FzZSBUX09QVE1HTVRfQUNLOgkvKiBtYW5hZ2Ugb3B0IGFjayAgICAgKi8KLQkJR0VUIChUX09QVE1HTVRfQUNLLCBvcHRtZ210X2Fjayk7Ci0JCUNPTU1BICgpOwotCQl0cHJpbnRmICgiTUdNVD0iKTsKLQkJcHJpbnRmbGFncyAodHJhbnNwb3J0X3VzZXJfZmxhZ3MsIG0ub3B0bWdtdF9hY2suTUdNVF9mbGFncywKLQkJCSAgICAiVF8/Pz8iKTsKLQkJU1RSVUNUIChvcHRtZ210X2FjaywgT1BULCBwcmludF9vcHRtZ210KTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX09SRFJFTF9JTkQKLQljYXNlIFRfT1JEUkVMX0lORDoJLyogb3JkZXJseSByZWwgaW5kICAgICovCi0JCUdFVCAoVF9PUkRSRUxfSU5ELCBvcmRyZWxfaW5kKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBUX0FERFJfUkVRCi0JICAgIGNhc2UgVF9BRERSX1JFUToJLyogYWRkcmVzcyByZXEgICAgICAgICovCi0JCUdFVCAoVF9BRERSX1JFUSwgYWRkcl9yZXEpOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFRfQUREUl9BQ0sKLQkgICAgY2FzZSBUX0FERFJfQUNLOgkvKiBhZGRyZXNzIHJlc3BvbnNlICAgKi8KLQkJR0VUIChUX0FERFJfQUNLLCBhZGRyX2Fjayk7Ci0JCUFERFIgKGFkZHJfYWNrLCBMT0NBRERSKTsKLQkJQUREUiAoYWRkcl9hY2ssIFJFTUFERFIpOwotCQlicmVhazsKLSNlbmRpZgotCSAgICBkZWZhdWx0OgotCSAgICBkdW1wOgotCQljID0gLTE7Ci0JCXByaW50c3RyKHRjcCwgYWRkciwgbGVuKTsKLQkJYnJlYWs7Ci0JfQotCi0JaWYgKGMgPj0gMCkgdHByaW50ZiAoIn0iKTsKLQotI3VuZGVmIEFERFIKLSN1bmRlZiBDT01NQQotI3VuZGVmIFNUUlVDVAotCi0JcmV0dXJuIDA7Ci19Ci0KLQotI2VuZGlmIC8qIFRJX0JJTkQgKi8KLQotCi1zdGF0aWMgaW50Ci1pbnRlcm5hbF9zdHJlYW1faW9jdGwodGNwLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgYXJnOwotewotCXN0cnVjdCBzdHJpb2N0bCBzaTsKLQlzdHJ1Y3QgaW9jdGxlbnQgKmlvcDsKLQlpbnQgaW5fYW5kX291dDsKLQlpbnQgdGltb2QgPSAwOwotI2lmZGVmIFNJX0dFVFVEQVRBCi0Jc3RydWN0IHNpX3VkYXRhIHVkYXRhOwotI2VuZGlmIC8qIFNJX0dFVFVEQVRBICovCi0KLQlpZiAoIWFyZykKLQkJcmV0dXJuIDA7Ci0JaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc2kpIDwgMCkgewotCQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJcmV0dXJuIDE7Ci0JfQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWlvcCA9IGlvY3RsX2xvb2t1cChzaS5pY19jbWQpOwotCQlpZiAoaW9wKSB7Ci0JCQl0cHJpbnRmKCIsIHtpY19jbWQ9JXMiLCBpb3AtPnN5bWJvbCk7Ci0JCQl3aGlsZSAoKGlvcCA9IGlvY3RsX25leHRfbWF0Y2goaW9wKSkpCi0JCQkJdHByaW50ZigiIG9yICVzIiwgaW9wLT5zeW1ib2wpOwotCQl9IGVsc2UKLQkJCXRwcmludGYoIiwge2ljX2NtZD0lI3giLCBzaS5pY19jbWQpOwotCQlpZiAoc2kuaWNfdGltb3V0ID09IElORlRJTSkKLQkJCXRwcmludGYoIiwgaWNfdGltb3V0PUlORlRJTSwgIik7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiBpY190aW1vdXQ9JWQsICIsIHNpLmljX3RpbW91dCk7Ci0JfQotCWluX2FuZF9vdXQgPSAxOwotCXN3aXRjaCAoc2kuaWNfY21kKSB7Ci0jaWZkZWYgU0lfR0VUVURBVEEKLQljYXNlIFNJX0dFVFVEQVRBOgotCQlpbl9hbmRfb3V0ID0gMDsKLQkJYnJlYWs7Ci0jZW5kaWYgLyogU0lfR0VUVURBVEEgKi8KLQl9Ci0JaWYgKGluX2FuZF9vdXQpIHsKLQkJaWYgKGVudGVyaW5nKHRjcCkpCi0JCQl0cHJpbnRmKCIvKiBpbiAqLyAiKTsKLQkJZWxzZQotCQkJdHByaW50ZigiLCAvKiBvdXQgKi8gIik7Ci0JfQotCWlmIChpbl9hbmRfb3V0IHx8IGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoImljX2xlbj0lZCwgaWNfZHA9Iiwgc2kuaWNfbGVuKTsKLQlzd2l0Y2ggKHNpLmljX2NtZCkgewotI2lmZGVmIFRJX0JJTkQKLQljYXNlIFRJX0JJTkQ6Ci0JCS8qIGluIFRfQklORF9SRVEsIG91dCBUX0JJTkRfQUNLICovCi0JCSsrdGltb2Q7Ci0JCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfQklORF9SRVEsCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfQklORF9BQ0ssCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJYnJlYWs7Ci0jZW5kaWYgLyogVElfQklORCAqLwotI2lmZGVmIFRJX1VOQklORAotCWNhc2UgVElfVU5CSU5EOgotCQkvKiBpbiBUX1VOQklORF9SRVEsIG91dCBUX09LX0FDSyAqLwotCQkrK3RpbW9kOwotCQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQkJcHJpbnRfdHJhbnNwb3J0X21lc3NhZ2UgKHRjcCwKLQkJCQkJCSBUX1VOQklORF9SRVEsCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfT0tfQUNLLAotCQkJCQkJIHNpLmljX2RwLCBzaS5pY19sZW4pOwotCQl9Ci0JCWJyZWFrOwotI2VuZGlmIC8qIFRJX1VOQklORCAqLwotI2lmZGVmIFRJX0dFVElORk8KLQljYXNlIFRJX0dFVElORk86Ci0JCS8qIGluIFRfSU5GT19SRVEsIG91dCBUX0lORk9fQUNLICovCi0JCSsrdGltb2Q7Ci0JCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfSU5GT19SRVEsCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfSU5GT19BQ0ssCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJYnJlYWs7Ci0jZW5kaWYgLyogVElfR0VUSU5GTyAqLwotI2lmZGVmIFRJX09QVE1HTVQKLQljYXNlIFRJX09QVE1HTVQ6Ci0JCS8qIGluIFRfT1BUTUdNVF9SRVEsIG91dCBUX09QVE1HTVRfQUNLICovCi0JCSsrdGltb2Q7Ci0JCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfT1BUTUdNVF9SRVEsCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAotCQkJCQkJIFRfT1BUTUdNVF9BQ0ssCi0JCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCX0KLQkJYnJlYWs7Ci0jZW5kaWYgLyogVElfT1BUTUdNVCAqLwotI2lmZGVmIFNJX0dFVFVEQVRBCi0JY2FzZSBTSV9HRVRVREFUQToKLQkJaWYgKGVudGVyaW5nKHRjcCkpCi0JCQlicmVhazsKLSNpZiAwCi0JCXRwcmludGYoInN0cnVjdCBzaV91ZGF0YSAiKTsKLSNlbmRpZgotCQlpZiAodW1vdmUodGNwLCAoaW50KSBzaS5pY19kcCwgJnVkYXRhKSA8IDApCi0JCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoInt0aWR1c2l6ZT0lZCwgYWRkcnNpemU9JWQsICIsCi0JCQkJdWRhdGEudGlkdXNpemUsIHVkYXRhLmFkZHJzaXplKTsKLQkJCXRwcmludGYoIm9wdHNpemU9JWQsIGV0c2R1c2l6ZT0lZCwgIiwKLQkJCQl1ZGF0YS5vcHRzaXplLCB1ZGF0YS5ldHNkdXNpemUpOwotCQkJdHByaW50Zigic2VydnR5cGU9JWQsIHNvX3N0YXRlPSVkLCAiLAotCQkJCXVkYXRhLnNlcnZ0eXBlLCB1ZGF0YS5zb19zdGF0ZSk7Ci0JCQl0cHJpbnRmKCJzb19vcHRpb25zPSVkIiwgdWRhdGEuc29fb3B0aW9ucyk7Ci0jaWYgMAotCQkJdHByaW50ZigiLCB0c2R1c2l6ZT0lZCIsIHVkYXRhLnRzZHVzaXplKTsKLSNlbmRpZgotCQkJdHByaW50ZigifSIpOwotCQl9Ci0JCWJyZWFrOwotI2VuZGlmIC8qIFNJX0dFVFVEQVRBICovCi0JZGVmYXVsdDoKLQkJcHJpbnRzdHIodGNwLCAobG9uZykgc2kuaWNfZHAsIHNpLmljX2xlbik7Ci0JCWJyZWFrOwotCX0KLQlpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIn0iKTsKLQkJaWYgKHRpbW9kICYmIHRjcC0+dV9ydmFsKSB7Ci0JCQl0Y3AtPmF1eHN0ciA9IHhsb29rdXAgKHRsaV9lcnJvcnMsIHRjcC0+dV9ydmFsKTsKLQkJCXJldHVybiBSVkFMX1NUUiArIDE7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMTsKLX0KLQotaW50Ci1zdHJlYW1faW9jdGwodGNwLCBjb2RlLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgY29kZSwgYXJnOwotewotI2lmZGVmIElfTElTVAotCWludCBpOwotI2VuZGlmCi0JaW50IHZhbDsKLSNpZmRlZiBJX0ZMVVNIQkFORAotCXN0cnVjdCBiYW5kaW5mbyBiaTsKLSNlbmRpZgotCXN0cnVjdCBzdHJwZWVrIHNwOwotCXN0cnVjdCBzdHJmZGluc2VydCBzZmk7Ci0Jc3RydWN0IHN0cnJlY3ZmZCBzcmY7Ci0jaWZkZWYgSV9MSVNUCi0Jc3RydWN0IHN0cl9saXN0IHNsOwotI2VuZGlmCi0KLQkvKiBJX1NUUiBpcyBhIHNwZWNpYWwgY2FzZSBiZWNhdXNlIHRoZSBkYXRhIGlzIHJlYWQgJiB3cml0dGVuLiAqLwotCWlmIChjb2RlID09IElfU1RSKQotCQlyZXR1cm4gaW50ZXJuYWxfc3RyZWFtX2lvY3RsKHRjcCwgYXJnKTsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJcmV0dXJuIDA7Ci0KLQlzd2l0Y2ggKGNvZGUpIHsKLQljYXNlIElfUFVTSDoKLQljYXNlIElfTE9PSzoKLQljYXNlIElfRklORDoKLQkJLyogYXJnIGlzIGEgc3RyaW5nICovCi0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50cGF0aCh0Y3AsIGFyZyk7Ci0JCXJldHVybiAxOwotCWNhc2UgSV9QT1A6Ci0JCS8qIGRvZXNuJ3QgdGFrZSBhbiBhcmd1bWVudCAqLwotCQlyZXR1cm4gMTsKLQljYXNlIElfRkxVU0g6Ci0JCS8qIGFyZ3VtZW50IGlzIGFuIG9wdGlvbiAqLwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHh2YWwoc3RyZWFtX2ZsdXNoX29wdGlvbnMsIGFyZywgIkZMVVNIPz8/Iik7Ci0JCXJldHVybiAxOwotI2lmZGVmIElfRkxVU0hCQU5ECi0JY2FzZSBJX0ZMVVNIQkFORDoKLQkJLyogYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgYmFuZGluZm8gc3RydWN0ICovCi0JCWlmICh1bW92ZSh0Y3AsIGFyZywgJmJpKSA8IDApCi0JCQl0cHJpbnRmKCIsIHsuLi59Iik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiLCB7YmlfcHJpPSVkLCBiaV9mbGFnPSIsIGJpLmJpX3ByaSk7Ci0JCQlwcmludGZsYWdzKHN0cmVhbV9mbHVzaF9vcHRpb25zLCBiaS5iaV9mbGFnLCAiRkxVU0g/Pz8iKTsKLQkJCXRwcmludGYoIn0iKTsKLQkJfQotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBJX0ZMVVNIQkFORCAqLwotCWNhc2UgSV9TRVRTSUc6Ci0JCS8qIGFyZ3VtZW50IGlzIGEgc2V0IG9mIGZsYWdzICovCi0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3Moc3RyZWFtX3NldHNpZ19mbGFncywgYXJnLCAiU18/Pz8iKTsKLQkJcmV0dXJuIDE7Ci0JY2FzZSBJX0dFVFNJRzoKLQkJLyogYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgc2V0IG9mIGZsYWdzICovCi0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJcmV0dXJuIDA7Ci0JCXRwcmludGYoIiwgWyIpOwotCQlpZiAodW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKLQkJCXRwcmludGYoIj8iKTsKLQkJZWxzZQotCQkJcHJpbnRmbGFncyhzdHJlYW1fc2V0c2lnX2ZsYWdzLCB2YWwsICJTXz8/PyIpOwotCQl0cHJpbnRmKCJdIik7Ci0JCXJldHVybiAxOwotCWNhc2UgSV9QRUVLOgotCQkvKiBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSBzdHJwZWVrIHN0cnVjdHVyZSAqLwotCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhYXJnKQotCQkJcmV0dXJuIDA7Ci0JCWlmICh1bW92ZSh0Y3AsIGFyZywgJnNwKSA8IDApIHsKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJCXJldHVybiAxOwotCQl9Ci0JCXRwcmludGYoIiwge2N0bGJ1Zj0iKTsKLQkJcHJpbnRzdHJidWYodGNwLCAmc3AuY3RsYnVmLCAxKTsKLQkJdHByaW50ZigiLCBkYXRhYnVmPSIpOwotCQlwcmludHN0cmJ1Zih0Y3AsICZzcC5kYXRhYnVmLCAxKTsKLQkJdHByaW50ZigiLCBmbGFncz0iKTsKLQkJcHJpbnRmbGFncyhtc2dmbGFncywgc3AuZmxhZ3MsICJSU18/Pz8iKTsKLQkJdHByaW50ZigifSIpOwotCQlyZXR1cm4gMTsKLQljYXNlIElfU1JET1BUOgotCQkvKiBhcmd1bWVudCBpcyBhbiBvcHRpb24gd2l0aCBmbGFncyAqLwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHh2YWwoc3RyZWFtX3JlYWRfb3B0aW9ucywgYXJnICYgUk1PREVNQVNLLCAiUj8/PyIpOwotCQlhZGRmbGFncyhzdHJlYW1fcmVhZF9mbGFncywgYXJnICYgflJNT0RFTUFTSyk7Ci0JCXJldHVybiAxOwotCWNhc2UgSV9HUkRPUFQ6Ci0JCS8qIGFyZ3VtZW50IGlzIGFuIHBvaW50ZXIgdG8gYW4gb3B0aW9uIHdpdGggZmxhZ3MgKi8KLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQkJdHByaW50ZigiLCBbIik7Ci0JCWlmICh1bW92ZSh0Y3AsIGFyZywgJnZhbCkgPCAwKQotCQkJdHByaW50ZigiPyIpOwotCQllbHNlIHsKLQkJCXByaW50eHZhbChzdHJlYW1fcmVhZF9vcHRpb25zLAotCQkJCSAgYXJnICYgUk1PREVNQVNLLCAiUj8/PyIpOwotCQkJYWRkZmxhZ3Moc3RyZWFtX3JlYWRfZmxhZ3MsIGFyZyAmIH5STU9ERU1BU0spOwotCQl9Ci0JCXRwcmludGYoIl0iKTsKLQkJcmV0dXJuIDE7Ci0JY2FzZSBJX05SRUFEOgotI2lmZGVmIElfR0VUQkFORAotCWNhc2UgSV9HRVRCQU5EOgotI2VuZGlmCi0jaWZkZWYgSV9TRVRDTFRJTUUKLQljYXNlIElfU0VUQ0xUSU1FOgotI2VuZGlmCi0jaWZkZWYgSV9HRVRDTFRJTUUKLQljYXNlIElfR0VUQ0xUSU1FOgotI2VuZGlmCi0JCS8qIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIGRlY2ltYWwgaW50ZWdlciAqLwotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXJldHVybiAwOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludG51bSh0Y3AsIGFyZywgIiVkIik7Ci0JCXJldHVybiAxOwotCWNhc2UgSV9GRElOU0VSVDoKLQkJLyogYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgc3RyZmRpbnNlcnQgc3RydWN0dXJlICovCi0JCWlmIChzeXNlcnJvcih0Y3ApIHx8ICFhcmcpCi0JCQlyZXR1cm4gMDsKLQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc2ZpKSA8IDApIHsKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJCXJldHVybiAxOwotCQl9Ci0JCXRwcmludGYoIiwge2N0bGJ1Zj0iKTsKLQkJcHJpbnRzdHJidWYodGNwLCAmc2ZpLmN0bGJ1ZiwgMSk7Ci0JCXRwcmludGYoIiwgZGF0YWJ1Zj0iKTsKLQkJcHJpbnRzdHJidWYodGNwLCAmc2ZpLmRhdGFidWYsIDEpOwotCQl0cHJpbnRmKCIsIGZsYWdzPSIpOwotCQlwcmludGZsYWdzKG1zZ2ZsYWdzLCBzZmkuZmxhZ3MsICJSU18/Pz8iKTsKLQkJdHByaW50ZigiLCBmaWxlZGVzPSVkLCBvZmZzZXQ9JWR9Iiwgc2ZpLmZpbGRlcywgc2ZpLm9mZnNldCk7Ci0JCXJldHVybiAxOwotI2lmZGVmIElfU1dST1BUCi0JY2FzZSBJX1NXUk9QVDoKLQkJLyogYXJndW1lbnQgaXMgYSBzZXQgb2YgZmxhZ3MgKi8KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhzdHJlYW1fd3JpdGVfZmxhZ3MsIGFyZywgIlNORD8/PyIpOwotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBJX1NXUk9QVCAqLwotI2lmZGVmIElfR1dST1BUCi0JY2FzZSBJX0dXUk9QVDoKLQkJLyogYXJndW1lbnQgaXMgYW4gcG9pbnRlciB0byBhbiBvcHRpb24gd2l0aCBmbGFncyAqLwotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXJldHVybiAwOwotCQl0cHJpbnRmKCIsIFsiKTsKLQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCi0JCQl0cHJpbnRmKCI/Iik7Ci0JCWVsc2UKLQkJCXByaW50ZmxhZ3Moc3RyZWFtX3dyaXRlX2ZsYWdzLCBhcmcsICJTTkQ/Pz8iKTsKLQkJdHByaW50ZigiXSIpOwotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBJX0dXUk9QVCAqLwotCWNhc2UgSV9TRU5ERkQ6Ci0jaWZkZWYgSV9DS0JBTkQKLQljYXNlIElfQ0tCQU5EOgotI2VuZGlmCi0jaWZkZWYgSV9DQU5QVVQKLQljYXNlIElfQ0FOUFVUOgotI2VuZGlmCi0JY2FzZSBJX0xJTks6Ci0JY2FzZSBJX1VOTElOSzoKLQljYXNlIElfUExJTks6Ci0JY2FzZSBJX1BVTkxJTks6Ci0JCS8qIGFyZ3VtZW50IGlzIGEgZGVjaW1hbCBpbnRlZ2VyICovCi0JCXRwcmludGYoIiwgJWQiLCBhcmcpOwotCQlyZXR1cm4gMTsKLQljYXNlIElfUkVDVkZEOgotCQkvKiBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSBzdHJyZWN2ZmQgc3RydWN0dXJlICovCi0JCWlmIChzeXNlcnJvcih0Y3ApIHx8ICFhcmcpCi0JCQlyZXR1cm4gMDsKLQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc3JmKSA8IDApIHsKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJCXJldHVybiAxOwotCQl9Ci0JCXRwcmludGYoIiwge2ZkPSVkLCB1aWQ9JWx1LCBnaWQ9JWx1fSIsIHNyZi5mZCwKLQkJCSh1bnNpZ25lZCBsb25nKSBzcmYudWlkLCAodW5zaWduZWQgbG9uZykgc3JmLmdpZCk7Ci0JCXJldHVybiAxOwotI2lmZGVmIElfTElTVAotCWNhc2UgSV9MSVNUOgotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXJldHVybiAwOwotCQlpZiAoYXJnID09IDApIHsKLQkJCXRwcmludGYoIiwgTlVMTCIpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc2wpIDwgMCkgewotCQkJdHByaW50ZigiLCB7Li4ufSIpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQkJdHByaW50ZigiLCB7c2xfbm1vZHM9JWQsIHNsX21vZGxpc3Q9WyIsIHNsLnNsX25tb2RzKTsKLQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9ydmFsOyBpKyspIHsKLQkJCWlmIChpKQotCQkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludHBhdGgodGNwLCAoaW50KSBzbC5zbF9tb2RsaXN0W2ldLmxfbmFtZSk7Ci0JCX0KLQkJdHByaW50ZigiXX0iKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYgLyogSV9MSVNUICovCi0jaWZkZWYgSV9BVE1BUksKLQljYXNlIElfQVRNQVJLOgotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHh2YWwoc3RyZWFtX2F0bWFya19vcHRpb25zLCBhcmcsICI/Pz9NQVJLIik7Ci0JCXJldHVybiAxOwotI2VuZGlmIC8qIElfQVRNQVJLICovCi0JZGVmYXVsdDoKLQkJcmV0dXJuIDA7Ci0JfQotfQotCi0jZW5kaWYgLyogIUxJTlVYICYmICFGUkVFQlNEICovCi0KLSNlbmRpZiAvKiBIQVZFX1NZU19TVFJFQU1fSCB8fCBMSU5VWCB8fCBGUkVFQlNEICovCmRpZmYgLS1naXQgYS9zeXNjYWxsLWFuZHJvaWQuaCBiL3N5c2NhbGwtYW5kcm9pZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTY0YjE0Li4wMDAwMDAwCi0tLSBhL3N5c2NhbGwtYW5kcm9pZC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjkzICswLDAgQEAKLS8qIEdlbmVyYXRlZCBhdCBsaWJjIGJ1aWxkIHRpbWUgZnJvbSBrZXJuZWwgc3lzY2FsbCBsaXN0LiAgKi8KLQotI2lmbmRlZiBfU1lTQ0FMTF9ICi0vLyMgZXJyb3IgIk5ldmVyIHVzZSA8Yml0cy9zeXNjYWxsLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPiBpbnN0ZWFkLiIKLSNlbmRpZgotCi0jZGVmaW5lIFNZU19fbGxzZWVrIF9fTlJfX2xsc2VlawotI2RlZmluZSBTWVNfX25ld3NlbGVjdCBfX05SX19uZXdzZWxlY3QKLSNkZWZpbmUgU1lTX19zeXNjdGwgX19OUl9fc3lzY3RsCi0jZGVmaW5lIFNZU19hY2Nlc3MgX19OUl9hY2Nlc3MKLSNkZWZpbmUgU1lTX2FjY3QgX19OUl9hY2N0Ci0jZGVmaW5lIFNZU19hZGRfa2V5IF9fTlJfYWRkX2tleQotI2RlZmluZSBTWVNfYWRqdGltZXggX19OUl9hZGp0aW1leAotI2RlZmluZSBTWVNfYWZzX3N5c2NhbGwgX19OUl9hZnNfc3lzY2FsbAotI2RlZmluZSBTWVNfYWxhcm0gX19OUl9hbGFybQotI2RlZmluZSBTWVNfYmRmbHVzaCBfX05SX2JkZmx1c2gKLSNkZWZpbmUgU1lTX2JyZWFrIF9fTlJfYnJlYWsKLSNkZWZpbmUgU1lTX2JyayBfX05SX2JyawotI2RlZmluZSBTWVNfY2FwZ2V0IF9fTlJfY2FwZ2V0Ci0jZGVmaW5lIFNZU19jYXBzZXQgX19OUl9jYXBzZXQKLSNkZWZpbmUgU1lTX2NoZGlyIF9fTlJfY2hkaXIKLSNkZWZpbmUgU1lTX2NobW9kIF9fTlJfY2htb2QKLSNkZWZpbmUgU1lTX2Nob3duIF9fTlJfY2hvd24KLSNkZWZpbmUgU1lTX2Nob3duMzIgX19OUl9jaG93bjMyCi0jZGVmaW5lIFNZU19jaHJvb3QgX19OUl9jaHJvb3QKLSNkZWZpbmUgU1lTX2Nsb2NrX2dldHJlcyBfX05SX2Nsb2NrX2dldHJlcwotI2RlZmluZSBTWVNfY2xvY2tfZ2V0dGltZSBfX05SX2Nsb2NrX2dldHRpbWUKLSNkZWZpbmUgU1lTX2Nsb2NrX25hbm9zbGVlcCBfX05SX2Nsb2NrX25hbm9zbGVlcAotI2RlZmluZSBTWVNfY2xvY2tfc2V0dGltZSBfX05SX2Nsb2NrX3NldHRpbWUKLSNkZWZpbmUgU1lTX2Nsb25lIF9fTlJfY2xvbmUKLSNkZWZpbmUgU1lTX2Nsb3NlIF9fTlJfY2xvc2UKLSNkZWZpbmUgU1lTX2NyZWF0IF9fTlJfY3JlYXQKLSNkZWZpbmUgU1lTX2NyZWF0ZV9tb2R1bGUgX19OUl9jcmVhdGVfbW9kdWxlCi0jZGVmaW5lIFNZU19kZWxldGVfbW9kdWxlIF9fTlJfZGVsZXRlX21vZHVsZQotI2RlZmluZSBTWVNfZHVwIF9fTlJfZHVwCi0jZGVmaW5lIFNZU19kdXAyIF9fTlJfZHVwMgotI2RlZmluZSBTWVNfZXBvbGxfY3JlYXRlIF9fTlJfZXBvbGxfY3JlYXRlCi0jZGVmaW5lIFNZU19lcG9sbF9jdGwgX19OUl9lcG9sbF9jdGwKLSNkZWZpbmUgU1lTX2Vwb2xsX3dhaXQgX19OUl9lcG9sbF93YWl0Ci0jZGVmaW5lIFNZU19leGVjdmUgX19OUl9leGVjdmUKLSNkZWZpbmUgU1lTX2V4aXQgX19OUl9leGl0Ci0jZGVmaW5lIFNZU19leGl0X2dyb3VwIF9fTlJfZXhpdF9ncm91cAotI2RlZmluZSBTWVNfZmFkdmlzZTY0IF9fTlJfZmFkdmlzZTY0Ci0jZGVmaW5lIFNZU19mYWR2aXNlNjRfNjQgX19OUl9mYWR2aXNlNjRfNjQKLSNkZWZpbmUgU1lTX2ZjaGRpciBfX05SX2ZjaGRpcgotI2RlZmluZSBTWVNfZmNobW9kIF9fTlJfZmNobW9kCi0jZGVmaW5lIFNZU19mY2hvd24gX19OUl9mY2hvd24KLSNkZWZpbmUgU1lTX2ZjaG93bjMyIF9fTlJfZmNob3duMzIKLSNkZWZpbmUgU1lTX2ZjbnRsIF9fTlJfZmNudGwKLSNkZWZpbmUgU1lTX2ZjbnRsNjQgX19OUl9mY250bDY0Ci0jZGVmaW5lIFNZU19mZGF0YXN5bmMgX19OUl9mZGF0YXN5bmMKLSNkZWZpbmUgU1lTX2ZnZXR4YXR0ciBfX05SX2ZnZXR4YXR0cgotI2RlZmluZSBTWVNfZmxpc3R4YXR0ciBfX05SX2ZsaXN0eGF0dHIKLSNkZWZpbmUgU1lTX2Zsb2NrIF9fTlJfZmxvY2sKLSNkZWZpbmUgU1lTX2ZvcmsgX19OUl9mb3JrCi0jZGVmaW5lIFNZU19mcmVtb3ZleGF0dHIgX19OUl9mcmVtb3ZleGF0dHIKLSNkZWZpbmUgU1lTX2ZzZXR4YXR0ciBfX05SX2ZzZXR4YXR0cgotI2RlZmluZSBTWVNfZnN0YXQgX19OUl9mc3RhdAotI2RlZmluZSBTWVNfZnN0YXQ2NCBfX05SX2ZzdGF0NjQKLSNkZWZpbmUgU1lTX2ZzdGF0ZnMgX19OUl9mc3RhdGZzCi0jZGVmaW5lIFNZU19mc3RhdGZzNjQgX19OUl9mc3RhdGZzNjQKLSNkZWZpbmUgU1lTX2ZzeW5jIF9fTlJfZnN5bmMKLSNkZWZpbmUgU1lTX2Z0aW1lIF9fTlJfZnRpbWUKLSNkZWZpbmUgU1lTX2Z0cnVuY2F0ZSBfX05SX2Z0cnVuY2F0ZQotI2RlZmluZSBTWVNfZnRydW5jYXRlNjQgX19OUl9mdHJ1bmNhdGU2NAotI2RlZmluZSBTWVNfZnV0ZXggX19OUl9mdXRleAotI2RlZmluZSBTWVNfZ2V0X2tlcm5lbF9zeW1zIF9fTlJfZ2V0X2tlcm5lbF9zeW1zCi0jZGVmaW5lIFNZU19nZXRfbWVtcG9saWN5IF9fTlJfZ2V0X21lbXBvbGljeQotI2RlZmluZSBTWVNfZ2V0X3RocmVhZF9hcmVhIF9fTlJfZ2V0X3RocmVhZF9hcmVhCi0jZGVmaW5lIFNZU19nZXRjd2QgX19OUl9nZXRjd2QKLSNkZWZpbmUgU1lTX2dldGRlbnRzIF9fTlJfZ2V0ZGVudHMKLSNkZWZpbmUgU1lTX2dldGRlbnRzNjQgX19OUl9nZXRkZW50czY0Ci0jZGVmaW5lIFNZU19nZXRlZ2lkIF9fTlJfZ2V0ZWdpZAotI2RlZmluZSBTWVNfZ2V0ZWdpZDMyIF9fTlJfZ2V0ZWdpZDMyCi0jZGVmaW5lIFNZU19nZXRldWlkIF9fTlJfZ2V0ZXVpZAotI2RlZmluZSBTWVNfZ2V0ZXVpZDMyIF9fTlJfZ2V0ZXVpZDMyCi0jZGVmaW5lIFNZU19nZXRnaWQgX19OUl9nZXRnaWQKLSNkZWZpbmUgU1lTX2dldGdpZDMyIF9fTlJfZ2V0Z2lkMzIKLSNkZWZpbmUgU1lTX2dldGdyb3VwcyBfX05SX2dldGdyb3VwcwotI2RlZmluZSBTWVNfZ2V0Z3JvdXBzMzIgX19OUl9nZXRncm91cHMzMgotI2RlZmluZSBTWVNfZ2V0aXRpbWVyIF9fTlJfZ2V0aXRpbWVyCi0jZGVmaW5lIFNZU19nZXRwZ2lkIF9fTlJfZ2V0cGdpZAotI2RlZmluZSBTWVNfZ2V0cGdycCBfX05SX2dldHBncnAKLSNkZWZpbmUgU1lTX2dldHBpZCBfX05SX2dldHBpZAotLy8jZGVmaW5lIFNZU19nZXRwbXNnIF9fTlJfZ2V0cG1zZwotI2RlZmluZSBTWVNfZ2V0cHBpZCBfX05SX2dldHBwaWQKLSNkZWZpbmUgU1lTX2dldHByaW9yaXR5IF9fTlJfZ2V0cHJpb3JpdHkKLSNkZWZpbmUgU1lTX2dldHJlc2dpZCBfX05SX2dldHJlc2dpZAotI2RlZmluZSBTWVNfZ2V0cmVzZ2lkMzIgX19OUl9nZXRyZXNnaWQzMgotI2RlZmluZSBTWVNfZ2V0cmVzdWlkIF9fTlJfZ2V0cmVzdWlkCi0jZGVmaW5lIFNZU19nZXRyZXN1aWQzMiBfX05SX2dldHJlc3VpZDMyCi0jZGVmaW5lIFNZU19nZXRybGltaXQgX19OUl9nZXRybGltaXQKLSNkZWZpbmUgU1lTX2dldHJ1c2FnZSBfX05SX2dldHJ1c2FnZQotI2RlZmluZSBTWVNfZ2V0c2lkIF9fTlJfZ2V0c2lkCi0jZGVmaW5lIFNZU19nZXR0aWQgX19OUl9nZXR0aWQKLSNkZWZpbmUgU1lTX2dldHRpbWVvZmRheSBfX05SX2dldHRpbWVvZmRheQotI2RlZmluZSBTWVNfZ2V0dWlkIF9fTlJfZ2V0dWlkCi0jZGVmaW5lIFNZU19nZXR1aWQzMiBfX05SX2dldHVpZDMyCi0jZGVmaW5lIFNZU19nZXR4YXR0ciBfX05SX2dldHhhdHRyCi0jZGVmaW5lIFNZU19ndHR5IF9fTlJfZ3R0eQotI2RlZmluZSBTWVNfaWRsZSBfX05SX2lkbGUKLSNkZWZpbmUgU1lTX2luaXRfbW9kdWxlIF9fTlJfaW5pdF9tb2R1bGUKLSNkZWZpbmUgU1lTX2lvX2NhbmNlbCBfX05SX2lvX2NhbmNlbAotI2RlZmluZSBTWVNfaW9fZGVzdHJveSBfX05SX2lvX2Rlc3Ryb3kKLSNkZWZpbmUgU1lTX2lvX2dldGV2ZW50cyBfX05SX2lvX2dldGV2ZW50cwotI2RlZmluZSBTWVNfaW9fc2V0dXAgX19OUl9pb19zZXR1cAotI2RlZmluZSBTWVNfaW9fc3VibWl0IF9fTlJfaW9fc3VibWl0Ci0jZGVmaW5lIFNZU19pb2N0bCBfX05SX2lvY3RsCi0jZGVmaW5lIFNZU19pb3Blcm0gX19OUl9pb3Blcm0KLSNkZWZpbmUgU1lTX2lvcGwgX19OUl9pb3BsCi0jZGVmaW5lIFNZU19pcGMgX19OUl9pcGMKLSNkZWZpbmUgU1lTX2tleWN0bCBfX05SX2tleWN0bAotI2RlZmluZSBTWVNfa2lsbCBfX05SX2tpbGwKLSNkZWZpbmUgU1lTX2xjaG93biBfX05SX2xjaG93bgotI2RlZmluZSBTWVNfbGNob3duMzIgX19OUl9sY2hvd24zMgotI2RlZmluZSBTWVNfbGdldHhhdHRyIF9fTlJfbGdldHhhdHRyCi0jZGVmaW5lIFNZU19saW5rIF9fTlJfbGluawotI2RlZmluZSBTWVNfbGlzdHhhdHRyIF9fTlJfbGlzdHhhdHRyCi0jZGVmaW5lIFNZU19sbGlzdHhhdHRyIF9fTlJfbGxpc3R4YXR0cgotI2RlZmluZSBTWVNfbG9jayBfX05SX2xvY2sKLSNkZWZpbmUgU1lTX2xvb2t1cF9kY29va2llIF9fTlJfbG9va3VwX2Rjb29raWUKLSNkZWZpbmUgU1lTX2xyZW1vdmV4YXR0ciBfX05SX2xyZW1vdmV4YXR0cgotI2RlZmluZSBTWVNfbHNlZWsgX19OUl9sc2VlawotI2RlZmluZSBTWVNfbHNldHhhdHRyIF9fTlJfbHNldHhhdHRyCi0jZGVmaW5lIFNZU19sc3RhdCBfX05SX2xzdGF0Ci0jZGVmaW5lIFNZU19sc3RhdDY0IF9fTlJfbHN0YXQ2NAotI2RlZmluZSBTWVNfbWFkdmlzZSBfX05SX21hZHZpc2UKLSNkZWZpbmUgU1lTX21hZHZpc2UxIF9fTlJfbWFkdmlzZTEKLSNkZWZpbmUgU1lTX21iaW5kIF9fTlJfbWJpbmQKLSNkZWZpbmUgU1lTX21pbmNvcmUgX19OUl9taW5jb3JlCi0jZGVmaW5lIFNZU19ta2RpciBfX05SX21rZGlyCi0jZGVmaW5lIFNZU19ta25vZCBfX05SX21rbm9kCi0jZGVmaW5lIFNZU19tbG9jayBfX05SX21sb2NrCi0jZGVmaW5lIFNZU19tbG9ja2FsbCBfX05SX21sb2NrYWxsCi0jZGVmaW5lIFNZU19tbWFwIF9fTlJfbW1hcAotI2RlZmluZSBTWVNfbW1hcDIgX19OUl9tbWFwMgotI2RlZmluZSBTWVNfbW9kaWZ5X2xkdCBfX05SX21vZGlmeV9sZHQKLSNkZWZpbmUgU1lTX21vdW50IF9fTlJfbW91bnQKLSNkZWZpbmUgU1lTX21wcm90ZWN0IF9fTlJfbXByb3RlY3QKLSNkZWZpbmUgU1lTX21weCBfX05SX21weAotI2RlZmluZSBTWVNfbXFfZ2V0c2V0YXR0ciBfX05SX21xX2dldHNldGF0dHIKLSNkZWZpbmUgU1lTX21xX25vdGlmeSBfX05SX21xX25vdGlmeQotI2RlZmluZSBTWVNfbXFfb3BlbiBfX05SX21xX29wZW4KLSNkZWZpbmUgU1lTX21xX3RpbWVkcmVjZWl2ZSBfX05SX21xX3RpbWVkcmVjZWl2ZQotI2RlZmluZSBTWVNfbXFfdGltZWRzZW5kIF9fTlJfbXFfdGltZWRzZW5kCi0jZGVmaW5lIFNZU19tcV91bmxpbmsgX19OUl9tcV91bmxpbmsKLSNkZWZpbmUgU1lTX21yZW1hcCBfX05SX21yZW1hcAotI2RlZmluZSBTWVNfbXN5bmMgX19OUl9tc3luYwotI2RlZmluZSBTWVNfbXVubG9jayBfX05SX211bmxvY2sKLSNkZWZpbmUgU1lTX211bmxvY2thbGwgX19OUl9tdW5sb2NrYWxsCi0jZGVmaW5lIFNZU19tdW5tYXAgX19OUl9tdW5tYXAKLSNkZWZpbmUgU1lTX25hbm9zbGVlcCBfX05SX25hbm9zbGVlcAotI2RlZmluZSBTWVNfbmZzc2VydmN0bCBfX05SX25mc3NlcnZjdGwKLSNkZWZpbmUgU1lTX25pY2UgX19OUl9uaWNlCi0jZGVmaW5lIFNZU19vbGRmc3RhdCBfX05SX29sZGZzdGF0Ci0jZGVmaW5lIFNZU19vbGRsc3RhdCBfX05SX29sZGxzdGF0Ci0jZGVmaW5lIFNZU19vbGRvbGR1bmFtZSBfX05SX29sZG9sZHVuYW1lCi0jZGVmaW5lIFNZU19vbGRzdGF0IF9fTlJfb2xkc3RhdAotI2RlZmluZSBTWVNfb2xkdW5hbWUgX19OUl9vbGR1bmFtZQotI2RlZmluZSBTWVNfb3BlbiBfX05SX29wZW4KLSNkZWZpbmUgU1lTX3BhdXNlIF9fTlJfcGF1c2UKLSNkZWZpbmUgU1lTX3BlcnNvbmFsaXR5IF9fTlJfcGVyc29uYWxpdHkKLSNkZWZpbmUgU1lTX3BpcGUgX19OUl9waXBlCi0jZGVmaW5lIFNZU19waXZvdF9yb290IF9fTlJfcGl2b3Rfcm9vdAotI2RlZmluZSBTWVNfcG9sbCBfX05SX3BvbGwKLSNkZWZpbmUgU1lTX3ByY3RsIF9fTlJfcHJjdGwKLSNkZWZpbmUgU1lTX3ByZWFkNjQgX19OUl9wcmVhZDY0Ci0jZGVmaW5lIFNZU19wcm9mIF9fTlJfcHJvZgotI2RlZmluZSBTWVNfcHJvZmlsIF9fTlJfcHJvZmlsCi0jZGVmaW5lIFNZU19wdHJhY2UgX19OUl9wdHJhY2UKLS8vI2RlZmluZSBTWVNfcHV0cG1zZyBfX05SX3B1dHBtc2cKLSNkZWZpbmUgU1lTX3B3cml0ZTY0IF9fTlJfcHdyaXRlNjQKLSNkZWZpbmUgU1lTX3F1ZXJ5X21vZHVsZSBfX05SX3F1ZXJ5X21vZHVsZQotI2RlZmluZSBTWVNfcXVvdGFjdGwgX19OUl9xdW90YWN0bAotI2RlZmluZSBTWVNfcmVhZCBfX05SX3JlYWQKLSNkZWZpbmUgU1lTX3JlYWRhaGVhZCBfX05SX3JlYWRhaGVhZAotI2RlZmluZSBTWVNfcmVhZGRpciBfX05SX3JlYWRkaXIKLSNkZWZpbmUgU1lTX3JlYWRsaW5rIF9fTlJfcmVhZGxpbmsKLSNkZWZpbmUgU1lTX3JlYWR2IF9fTlJfcmVhZHYKLSNkZWZpbmUgU1lTX3JlYm9vdCBfX05SX3JlYm9vdAotI2RlZmluZSBTWVNfcmVtYXBfZmlsZV9wYWdlcyBfX05SX3JlbWFwX2ZpbGVfcGFnZXMKLSNkZWZpbmUgU1lTX3JlbW92ZXhhdHRyIF9fTlJfcmVtb3ZleGF0dHIKLSNkZWZpbmUgU1lTX3JlbmFtZSBfX05SX3JlbmFtZQotI2RlZmluZSBTWVNfcmVxdWVzdF9rZXkgX19OUl9yZXF1ZXN0X2tleQotI2RlZmluZSBTWVNfcmVzdGFydF9zeXNjYWxsIF9fTlJfcmVzdGFydF9zeXNjYWxsCi0jZGVmaW5lIFNZU19ybWRpciBfX05SX3JtZGlyCi0jZGVmaW5lIFNZU19ydF9zaWdhY3Rpb24gX19OUl9ydF9zaWdhY3Rpb24KLSNkZWZpbmUgU1lTX3J0X3NpZ3BlbmRpbmcgX19OUl9ydF9zaWdwZW5kaW5nCi0jZGVmaW5lIFNZU19ydF9zaWdwcm9jbWFzayBfX05SX3J0X3NpZ3Byb2NtYXNrCi0jZGVmaW5lIFNZU19ydF9zaWdxdWV1ZWluZm8gX19OUl9ydF9zaWdxdWV1ZWluZm8KLSNkZWZpbmUgU1lTX3J0X3NpZ3JldHVybiBfX05SX3J0X3NpZ3JldHVybgotI2RlZmluZSBTWVNfcnRfc2lnc3VzcGVuZCBfX05SX3J0X3NpZ3N1c3BlbmQKLSNkZWZpbmUgU1lTX3J0X3NpZ3RpbWVkd2FpdCBfX05SX3J0X3NpZ3RpbWVkd2FpdAotI2RlZmluZSBTWVNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9tYXgKLSNkZWZpbmUgU1lTX3NjaGVkX2dldF9wcmlvcml0eV9taW4gX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluCi0jZGVmaW5lIFNZU19zY2hlZF9nZXRhZmZpbml0eSBfX05SX3NjaGVkX2dldGFmZmluaXR5Ci0jZGVmaW5lIFNZU19zY2hlZF9nZXRwYXJhbSBfX05SX3NjaGVkX2dldHBhcmFtCi0jZGVmaW5lIFNZU19zY2hlZF9nZXRzY2hlZHVsZXIgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIKLSNkZWZpbmUgU1lTX3NjaGVkX3JyX2dldF9pbnRlcnZhbCBfX05SX3NjaGVkX3JyX2dldF9pbnRlcnZhbAotI2RlZmluZSBTWVNfc2NoZWRfc2V0YWZmaW5pdHkgX19OUl9zY2hlZF9zZXRhZmZpbml0eQotI2RlZmluZSBTWVNfc2NoZWRfc2V0cGFyYW0gX19OUl9zY2hlZF9zZXRwYXJhbQotI2RlZmluZSBTWVNfc2NoZWRfc2V0c2NoZWR1bGVyIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyCi0jZGVmaW5lIFNZU19zY2hlZF95aWVsZCBfX05SX3NjaGVkX3lpZWxkCi0jZGVmaW5lIFNZU19zZWxlY3QgX19OUl9zZWxlY3QKLSNkZWZpbmUgU1lTX3NlbmRmaWxlIF9fTlJfc2VuZGZpbGUKLSNkZWZpbmUgU1lTX3NlbmRmaWxlNjQgX19OUl9zZW5kZmlsZTY0Ci0jZGVmaW5lIFNZU19zZXRfbWVtcG9saWN5IF9fTlJfc2V0X21lbXBvbGljeQotI2RlZmluZSBTWVNfc2V0X3RocmVhZF9hcmVhIF9fTlJfc2V0X3RocmVhZF9hcmVhCi0jZGVmaW5lIFNZU19zZXRfdGlkX2FkZHJlc3MgX19OUl9zZXRfdGlkX2FkZHJlc3MKLSNkZWZpbmUgU1lTX3NldGRvbWFpbm5hbWUgX19OUl9zZXRkb21haW5uYW1lCi0jZGVmaW5lIFNZU19zZXRmc2dpZCBfX05SX3NldGZzZ2lkCi0jZGVmaW5lIFNZU19zZXRmc2dpZDMyIF9fTlJfc2V0ZnNnaWQzMgotI2RlZmluZSBTWVNfc2V0ZnN1aWQgX19OUl9zZXRmc3VpZAotI2RlZmluZSBTWVNfc2V0ZnN1aWQzMiBfX05SX3NldGZzdWlkMzIKLSNkZWZpbmUgU1lTX3NldGdpZCBfX05SX3NldGdpZAotI2RlZmluZSBTWVNfc2V0Z2lkMzIgX19OUl9zZXRnaWQzMgotI2RlZmluZSBTWVNfc2V0Z3JvdXBzIF9fTlJfc2V0Z3JvdXBzCi0jZGVmaW5lIFNZU19zZXRncm91cHMzMiBfX05SX3NldGdyb3VwczMyCi0jZGVmaW5lIFNZU19zZXRob3N0bmFtZSBfX05SX3NldGhvc3RuYW1lCi0jZGVmaW5lIFNZU19zZXRpdGltZXIgX19OUl9zZXRpdGltZXIKLSNkZWZpbmUgU1lTX3NldHBnaWQgX19OUl9zZXRwZ2lkCi0jZGVmaW5lIFNZU19zZXRwcmlvcml0eSBfX05SX3NldHByaW9yaXR5Ci0jZGVmaW5lIFNZU19zZXRyZWdpZCBfX05SX3NldHJlZ2lkCi0jZGVmaW5lIFNZU19zZXRyZWdpZDMyIF9fTlJfc2V0cmVnaWQzMgotI2RlZmluZSBTWVNfc2V0cmVzZ2lkIF9fTlJfc2V0cmVzZ2lkCi0jZGVmaW5lIFNZU19zZXRyZXNnaWQzMiBfX05SX3NldHJlc2dpZDMyCi0jZGVmaW5lIFNZU19zZXRyZXN1aWQgX19OUl9zZXRyZXN1aWQKLSNkZWZpbmUgU1lTX3NldHJlc3VpZDMyIF9fTlJfc2V0cmVzdWlkMzIKLSNkZWZpbmUgU1lTX3NldHJldWlkIF9fTlJfc2V0cmV1aWQKLSNkZWZpbmUgU1lTX3NldHJldWlkMzIgX19OUl9zZXRyZXVpZDMyCi0jZGVmaW5lIFNZU19zZXRybGltaXQgX19OUl9zZXRybGltaXQKLSNkZWZpbmUgU1lTX3NldHNpZCBfX05SX3NldHNpZAotI2RlZmluZSBTWVNfc2V0dGltZW9mZGF5IF9fTlJfc2V0dGltZW9mZGF5Ci0jZGVmaW5lIFNZU19zZXR1aWQgX19OUl9zZXR1aWQKLSNkZWZpbmUgU1lTX3NldHVpZDMyIF9fTlJfc2V0dWlkMzIKLSNkZWZpbmUgU1lTX3NldHhhdHRyIF9fTlJfc2V0eGF0dHIKLSNkZWZpbmUgU1lTX3NnZXRtYXNrIF9fTlJfc2dldG1hc2sKLSNkZWZpbmUgU1lTX3NpZ2FjdGlvbiBfX05SX3NpZ2FjdGlvbgotI2RlZmluZSBTWVNfc2lnYWx0c3RhY2sgX19OUl9zaWdhbHRzdGFjawotI2RlZmluZSBTWVNfc2lnbmFsIF9fTlJfc2lnbmFsCi0jZGVmaW5lIFNZU19zaWdwZW5kaW5nIF9fTlJfc2lncGVuZGluZwotI2RlZmluZSBTWVNfc2lncHJvY21hc2sgX19OUl9zaWdwcm9jbWFzawotI2RlZmluZSBTWVNfc2lncmV0dXJuIF9fTlJfc2lncmV0dXJuCi0jZGVmaW5lIFNZU19zaWdzdXNwZW5kIF9fTlJfc2lnc3VzcGVuZAotI2RlZmluZSBTWVNfc29ja2V0Y2FsbCBfX05SX3NvY2tldGNhbGwKLSNkZWZpbmUgU1lTX3NzZXRtYXNrIF9fTlJfc3NldG1hc2sKLSNkZWZpbmUgU1lTX3N0YXQgX19OUl9zdGF0Ci0jZGVmaW5lIFNZU19zdGF0NjQgX19OUl9zdGF0NjQKLSNkZWZpbmUgU1lTX3N0YXRmcyBfX05SX3N0YXRmcwotI2RlZmluZSBTWVNfc3RhdGZzNjQgX19OUl9zdGF0ZnM2NAotI2RlZmluZSBTWVNfc3RpbWUgX19OUl9zdGltZQotI2RlZmluZSBTWVNfc3R0eSBfX05SX3N0dHkKLSNkZWZpbmUgU1lTX3N3YXBvZmYgX19OUl9zd2Fwb2ZmCi0jZGVmaW5lIFNZU19zd2Fwb24gX19OUl9zd2Fwb24KLSNkZWZpbmUgU1lTX3N5bWxpbmsgX19OUl9zeW1saW5rCi0jZGVmaW5lIFNZU19zeW5jIF9fTlJfc3luYwotI2RlZmluZSBTWVNfc3lzX2tleGVjX2xvYWQgX19OUl9zeXNfa2V4ZWNfbG9hZAotI2RlZmluZSBTWVNfc3lzZnMgX19OUl9zeXNmcwotI2RlZmluZSBTWVNfc3lzaW5mbyBfX05SX3N5c2luZm8KLSNkZWZpbmUgU1lTX3N5c2xvZyBfX05SX3N5c2xvZwotI2RlZmluZSBTWVNfdGdraWxsIF9fTlJfdGdraWxsCi0jZGVmaW5lIFNZU190aW1lIF9fTlJfdGltZQotI2RlZmluZSBTWVNfdGltZXJfY3JlYXRlIF9fTlJfdGltZXJfY3JlYXRlCi0jZGVmaW5lIFNZU190aW1lcl9kZWxldGUgX19OUl90aW1lcl9kZWxldGUKLSNkZWZpbmUgU1lTX3RpbWVyX2dldG92ZXJydW4gX19OUl90aW1lcl9nZXRvdmVycnVuCi0jZGVmaW5lIFNZU190aW1lcl9nZXR0aW1lIF9fTlJfdGltZXJfZ2V0dGltZQotI2RlZmluZSBTWVNfdGltZXJfc2V0dGltZSBfX05SX3RpbWVyX3NldHRpbWUKLSNkZWZpbmUgU1lTX3RpbWVzIF9fTlJfdGltZXMKLSNkZWZpbmUgU1lTX3RraWxsIF9fTlJfdGtpbGwKLSNkZWZpbmUgU1lTX3RydW5jYXRlIF9fTlJfdHJ1bmNhdGUKLSNkZWZpbmUgU1lTX3RydW5jYXRlNjQgX19OUl90cnVuY2F0ZTY0Ci0jZGVmaW5lIFNZU191Z2V0cmxpbWl0IF9fTlJfdWdldHJsaW1pdAotI2RlZmluZSBTWVNfdWxpbWl0IF9fTlJfdWxpbWl0Ci0jZGVmaW5lIFNZU191bWFzayBfX05SX3VtYXNrCi0jZGVmaW5lIFNZU191bW91bnQgX19OUl91bW91bnQKLSNkZWZpbmUgU1lTX3Vtb3VudDIgX19OUl91bW91bnQyCi0jZGVmaW5lIFNZU191bmFtZSBfX05SX3VuYW1lCi0jZGVmaW5lIFNZU191bmxpbmsgX19OUl91bmxpbmsKLSNkZWZpbmUgU1lTX3VzZWxpYiBfX05SX3VzZWxpYgotI2RlZmluZSBTWVNfdXN0YXQgX19OUl91c3RhdAotI2RlZmluZSBTWVNfdXRpbWUgX19OUl91dGltZQotI2RlZmluZSBTWVNfdXRpbWVzIF9fTlJfdXRpbWVzCi0jZGVmaW5lIFNZU192Zm9yayBfX05SX3Zmb3JrCi0jZGVmaW5lIFNZU192aGFuZ3VwIF9fTlJfdmhhbmd1cAotI2RlZmluZSBTWVNfdm04NiBfX05SX3ZtODYKLSNkZWZpbmUgU1lTX3ZtODZvbGQgX19OUl92bTg2b2xkCi0jZGVmaW5lIFNZU192c2VydmVyIF9fTlJfdnNlcnZlcgotI2RlZmluZSBTWVNfd2FpdDQgX19OUl93YWl0NAotI2RlZmluZSBTWVNfd2FpdGlkIF9fTlJfd2FpdGlkCi0vL0FORFJPSUQKLS8vI2RlZmluZSBTWVNfd2FpdHBpZCBfX05SX3dhaXRwaWQKLSNkZWZpbmUgU1lTX3dyaXRlIF9fTlJfd3JpdGUKLSNkZWZpbmUgU1lTX3dyaXRldiBfX05SX3dyaXRldgpkaWZmIC0tZ2l0IGEvc3lzY2FsbC5jIGIvc3lzY2FsbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTU4ZTFiLi4wMDAwMDAwCi0tLSBhL3N5c2NhbGwuYworKysgL2Rldi9udWxsCkBAIC0xLDI3MzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCi0gKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKLSAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsLmMsdiAxLjc5IDIwMDUvMDYvMDggMjA6NDU6Mjggcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxzeXMvdXNlci5oPgotI2VuZGlmCi0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLQotI2lmIEhBVkVfQVNNX1JFR19ICi0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICBkZWZpbmUgZnBxIGtlcm5lbF9mcHEKLSMgIGRlZmluZSBmcSBrZXJuZWxfZnEKLSMgIGRlZmluZSBmcHUga2VybmVsX2ZwdQotI2VuZGlmCi0jaW5jbHVkZSA8YXNtL3JlZy5oPgotI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotIyAgdW5kZWYgZnBxCi0jICB1bmRlZiBmcQotIyAgdW5kZWYgZnB1Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9TWVNfUkVHX0gKLSNpbmNsdWRlIDxzeXMvcmVnLmg+Ci0jaWZuZGVmIFBUUkFDRV9QRUVLVVNSCi0jIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChIQVZFX0xJTlVYX1BUUkFDRV9IKQotI3VuZGVmIFBUUkFDRV9TWVNDQUxMCi0jIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKLSMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCi0jIGVuZGlmCi0jIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKLSMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCi0jIGVuZGlmCi0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jIHVuZGVmIGlhNjRfZnByZWcKLSMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKLSMgZGVmaW5lIHJfcGMgcl90cGMKLSMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKLSMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKLSMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKLSMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKLSNlbmRpZiAvKiBMSU5VWCAmJiBTUEFSQzY0ICovCi0KLSNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKElBNjQpCi0jIGluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPgotIyBpbmNsdWRlIDxhc20vcnNlLmg+Ci0jZW5kaWYKLQotI2RlZmluZSBOUl9TWVNDQUxMX0JBU0UgMAotI2lmZGVmIExJTlVYCi0jaWZuZGVmIEVSRVNUQVJUU1lTCi0jZGVmaW5lIEVSRVNUQVJUU1lTCTUxMgotI2VuZGlmCi0jaWZuZGVmIEVSRVNUQVJUTk9JTlRSCi0jZGVmaW5lIEVSRVNUQVJUTk9JTlRSCTUxMwotI2VuZGlmCi0jaWZuZGVmIEVSRVNUQVJUTk9IQU5ECi0jZGVmaW5lIEVSRVNUQVJUTk9IQU5ECTUxNAkvKiByZXN0YXJ0IGlmIG5vIGhhbmRsZXIuLiAqLwotI2VuZGlmCi0jaWZuZGVmIEVOT0lPQ1RMQ01ECi0jZGVmaW5lIEVOT0lPQ1RMQ01ECTUxNQkvKiBObyBpb2N0bCBjb21tYW5kICovCi0jZW5kaWYKLSNpZm5kZWYgRVJFU1RBUlRfUkVTVEFSVEJMT0NLCi0jZGVmaW5lIEVSRVNUQVJUX1JFU1RBUlRCTE9DSyA1MTYJLyogcmVzdGFydCBieSBjYWxsaW5nIHN5c19yZXN0YXJ0X3N5c2NhbGwgKi8KLSNlbmRpZgotI2lmbmRlZiBOU0lHCi0jZGVmaW5lIE5TSUcgMzIKLSNlbmRpZgotI2lmZGVmIEFSTQotI3VuZGVmIE5TSUcKLSNkZWZpbmUgTlNJRyAzMgotI3VuZGVmIE5SX1NZU0NBTExfQkFTRQotI2RlZmluZSBOUl9TWVNDQUxMX0JBU0UgX19OUl9TWVNDQUxMX0JBU0UKLSNlbmRpZgotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpbmNsdWRlICJzeXNjYWxsLWFuZHJvaWQuaCIKLSNpbmNsdWRlICJzeXNjYWxsLmgiCi0KLS8qIERlZmluZSB0aGVzZSBzaG9ydGhhbmQgbm90YXRpb25zIHRvIHNpbXBsaWZ5IHRoZSBzeXNjYWxsZW50IGZpbGVzLiAqLwotI2RlZmluZSBURiBUUkFDRV9GSUxFCi0jZGVmaW5lIFRJIFRSQUNFX0lQQwotI2RlZmluZSBUTiBUUkFDRV9ORVRXT1JLCi0jZGVmaW5lIFRQIFRSQUNFX1BST0NFU1MKLSNkZWZpbmUgVFMgVFJBQ0VfU0lHTkFMCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzZW50IHN5c2VudDBbXSA9IHsKLSNpbmNsdWRlICJzeXNjYWxsZW50LmgiCi19Owotc3RhdGljIGNvbnN0IGludCBuc3lzY2FsbHMwID0gc2l6ZW9mIHN5c2VudDAgLyBzaXplb2Ygc3lzZW50MFswXTsKLQotI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzZW50IHN5c2VudDFbXSA9IHsKLSNpbmNsdWRlICJzeXNjYWxsZW50MS5oIgotfTsKLXN0YXRpYyBjb25zdCBpbnQgbnN5c2NhbGxzMSA9IHNpemVvZiBzeXNlbnQxIC8gc2l6ZW9mIHN5c2VudDFbMF07Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLwotCi0jaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMwotc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNlbnQgc3lzZW50MltdID0gewotI2luY2x1ZGUgInN5c2NhbGxlbnQyLmgiCi19Owotc3RhdGljIGNvbnN0IGludCBuc3lzY2FsbHMyID0gc2l6ZW9mIHN5c2VudDIgLyBzaXplb2Ygc3lzZW50MlswXTsKLSNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCi0KLWNvbnN0IHN0cnVjdCBzeXNlbnQgKnN5c2VudDsKLWludCBuc3lzY2FsbHM7Ci0KLS8qIE5vdyB1bmRlZiB0aGVtIHNpbmNlIHNob3J0IGRlZmluZXMgY2F1c2Ugd2lja2VkIG5hbWVzcGFjZSBwb2xsdXRpb24uICovCi0jdW5kZWYgVEYKLSN1bmRlZiBUSQotI3VuZGVmIFROCi0jdW5kZWYgVFAKLSN1bmRlZiBUUwotCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXJybm9lbnQwW10gPSB7Ci0jaW5jbHVkZSAiZXJybm9lbnQuaCIKLX07Ci1zdGF0aWMgY29uc3QgaW50IG5lcnJub3MwID0gc2l6ZW9mIGVycm5vZW50MCAvIHNpemVvZiBlcnJub2VudDBbMF07Ci0KLSNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXJybm9lbnQxW10gPSB7Ci0jaW5jbHVkZSAiZXJybm9lbnQxLmgiCi19Owotc3RhdGljIGNvbnN0IGludCBuZXJybm9zMSA9IHNpemVvZiBlcnJub2VudDEgLyBzaXplb2YgZXJybm9lbnQxWzBdOwotI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KLQotI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKLXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBlcnJub2VudDJbXSA9IHsKLSNpbmNsdWRlICJlcnJub2VudDIuaCIKLX07Ci1zdGF0aWMgY29uc3QgaW50IG5lcnJub3MyID0gc2l6ZW9mIGVycm5vZW50MiAvIHNpemVvZiBlcnJub2VudDJbMF07Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLwotCi1jb25zdCBjaGFyICpjb25zdCAqZXJybm9lbnQ7Ci1pbnQgbmVycm5vczsKLQotaW50IGN1cnJlbnRfcGVyc29uYWxpdHk7Ci0KLWludAotc2V0X3BlcnNvbmFsaXR5KHBlcnNvbmFsaXR5KQotaW50IHBlcnNvbmFsaXR5OwotewotCXN3aXRjaCAocGVyc29uYWxpdHkpIHsKLQljYXNlIDA6Ci0JCWVycm5vZW50ID0gZXJybm9lbnQwOwotCQluZXJybm9zID0gbmVycm5vczA7Ci0JCXN5c2VudCA9IHN5c2VudDA7Ci0JCW5zeXNjYWxscyA9IG5zeXNjYWxsczA7Ci0JCWlvY3RsZW50ID0gaW9jdGxlbnQwOwotCQluaW9jdGxlbnRzID0gbmlvY3RsZW50czA7Ci0JCXNpZ25hbGVudCA9IHNpZ25hbGVudDA7Ci0JCW5zaWduYWxzID0gbnNpZ25hbHMwOwotCQlicmVhazsKLQotI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKLQljYXNlIDE6Ci0JCWVycm5vZW50ID0gZXJybm9lbnQxOwotCQluZXJybm9zID0gbmVycm5vczE7Ci0JCXN5c2VudCA9IHN5c2VudDE7Ci0JCW5zeXNjYWxscyA9IG5zeXNjYWxsczE7Ci0JCWlvY3RsZW50ID0gaW9jdGxlbnQxOwotCQluaW9jdGxlbnRzID0gbmlvY3RsZW50czE7Ci0JCXNpZ25hbGVudCA9IHNpZ25hbGVudDE7Ci0JCW5zaWduYWxzID0gbnNpZ25hbHMxOwotCQlicmVhazsKLSNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyICovCi0KLSNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzCi0JY2FzZSAyOgotCQllcnJub2VudCA9IGVycm5vZW50MjsKLQkJbmVycm5vcyA9IG5lcnJub3MyOwotCQlzeXNlbnQgPSBzeXNlbnQyOwotCQluc3lzY2FsbHMgPSBuc3lzY2FsbHMyOwotCQlpb2N0bGVudCA9IGlvY3RsZW50MjsKLQkJbmlvY3RsZW50cyA9IG5pb2N0bGVudHMyOwotCQlzaWduYWxlbnQgPSBzaWduYWxlbnQyOwotCQluc2lnbmFscyA9IG5zaWduYWxzMjsKLQkJYnJlYWs7Ci0jZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLwotCi0JZGVmYXVsdDoKLQkJcmV0dXJuIC0xOwotCX0KLQotCWN1cnJlbnRfcGVyc29uYWxpdHkgPSBwZXJzb25hbGl0eTsKLQlyZXR1cm4gMDsKLX0KLQotaW50IHF1YWxfZmxhZ3NbTUFYX1FVQUxTXTsKLQotCi1zdHJ1Y3QgY2FsbF9jb3VudHMgewotCXN0cnVjdCB0aW1ldmFsIHRpbWU7Ci0JaW50IGNhbGxzLCBlcnJvcnM7Ci19OwotCi1zdGF0aWMgc3RydWN0IGNhbGxfY291bnRzICpjb3VudHM7Ci0KLXN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBzaG9ydGVzdCA9IHsgMTAwMDAwMCwgMCB9OwotCi1zdGF0aWMgaW50IHF1YWxfc3lzY2FsbCgpLCBxdWFsX3NpZ25hbCgpLCBxdWFsX2ZhdWx0KCksIHF1YWxfZGVzYygpOwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyB7Ci0JaW50IGJpdGZsYWc7Ci0JY2hhciAqb3B0aW9uX25hbWU7Ci0JaW50ICgqcXVhbGlmeSkoKTsKLQljaGFyICphcmd1bWVudF9uYW1lOwotfSBxdWFsX29wdGlvbnNbXSA9IHsKLQl7IFFVQUxfVFJBQ0UsCSJ0cmFjZSIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9UUkFDRSwJInQiLAkJcXVhbF9zeXNjYWxsLAkic3lzdGVtIGNhbGwiCX0sCi0JeyBRVUFMX0FCQlJFViwJImFiYnJldiIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9BQkJSRVYsCSJhIiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9WRVJCT1NFLAkidmVyYm9zZSIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9WRVJCT1NFLAkidiIsCQlxdWFsX3N5c2NhbGwsCSJzeXN0ZW0gY2FsbCIJfSwKLQl7IFFVQUxfUkFXLAkicmF3IiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9SQVcsCSJ4IiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAotCXsgUVVBTF9TSUdOQUwsCSJzaWduYWwiLAlxdWFsX3NpZ25hbCwJInNpZ25hbCIJfSwKLQl7IFFVQUxfU0lHTkFMLAkic2lnbmFscyIsCXF1YWxfc2lnbmFsLAkic2lnbmFsIgl9LAotCXsgUVVBTF9TSUdOQUwsCSJzIiwJCXF1YWxfc2lnbmFsLAkic2lnbmFsIgl9LAotCXsgUVVBTF9GQVVMVCwJImZhdWx0IiwJcXVhbF9mYXVsdCwJImZhdWx0IgkJfSwKLQl7IFFVQUxfRkFVTFQsCSJmYXVsdHMiLAlxdWFsX2ZhdWx0LAkiZmF1bHQiCQl9LAotCXsgUVVBTF9GQVVMVCwJIm0iLAkJcXVhbF9mYXVsdCwJImZhdWx0IgkJfSwKLQl7IFFVQUxfUkVBRCwJInJlYWQiLAkJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKLQl7IFFVQUxfUkVBRCwJInJlYWRzIiwJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKLQl7IFFVQUxfUkVBRCwJInIiLAkJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKLQl7IFFVQUxfV1JJVEUsCSJ3cml0ZSIsCXF1YWxfZGVzYywJImRlc2NyaXB0b3IiCX0sCi0JeyBRVUFMX1dSSVRFLAkid3JpdGVzIiwJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKLQl7IFFVQUxfV1JJVEUsCSJ3IiwJCXF1YWxfZGVzYywJImRlc2NyaXB0b3IiCX0sCi0JeyAwLAkJTlVMTCwJCU5VTEwsCQlOVUxMCQl9LAotfTsKLQotc3RhdGljIHZvaWQKLXF1YWxpZnlfb25lKG4sIG9wdCwgbm90KQotCWludCBuOwotCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKLQlpbnQgbm90OwotewotCWlmIChub3QpCi0JCXF1YWxfZmxhZ3Nbbl0gJj0gfm9wdC0+Yml0ZmxhZzsKLQllbHNlCi0JCXF1YWxfZmxhZ3Nbbl0gfD0gb3B0LT5iaXRmbGFnOwotfQotCi1zdGF0aWMgaW50Ci1xdWFsX3N5c2NhbGwocywgb3B0LCBub3QpCi0JY2hhciAqczsKLQljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7Ci0JaW50IG5vdDsKLXsKLQlpbnQgaTsKLQlpbnQgcmMgPSAtMTsKLQotCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHM7IGkrKykgewotCQlpZiAoc3RyY21wKHMsIHN5c2VudFtpXS5zeXNfbmFtZSkgPT0gMCkgewotCQkJcXVhbGlmeV9vbmUoaSwgb3B0LCBub3QpOwotCQkJcmMgPSAwOwotCQl9Ci0JfQotCXJldHVybiByYzsKLX0KLQotc3RhdGljIGludAotcXVhbF9zaWduYWwocywgb3B0LCBub3QpCi0JY2hhciAqczsKLQljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7Ci0JaW50IG5vdDsKLXsKLQlpbnQgaTsKLQljaGFyIGJ1ZlszMl07Ci0KLSAgCWlmIChzICYmICpzICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnMpKSB7Ci0gCQlpbnQgc2lnbm8gPSBhdG9pKHMpOwotIAkJaWYgKHNpZ25vIDwgMCB8fCBzaWdubyA+PSBNQVhfUVVBTFMpCi0gCQkJcmV0dXJuIC0xOwotIAkJcXVhbGlmeV9vbmUoc2lnbm8sIG9wdCwgbm90KTsKLSAJCXJldHVybiAwOwotCX0KLQlpZiAoc3RybGVuKHMpID49IHNpemVvZiBidWYpCi0JCXJldHVybiAtMTsKLQlzdHJjcHkoYnVmLCBzKTsKLQlzID0gYnVmOwotCWZvciAoaSA9IDA7IHNbaV07IGkrKykKLQkJc1tpXSA9IHRvdXBwZXIoKHVuc2lnbmVkIGNoYXIpKHNbaV0pKTsKLQlpZiAoc3RybmNtcChzLCAiU0lHIiwgMykgPT0gMCkKLQkJcyArPSAzOwotCWZvciAoaSA9IDA7IGkgPD0gTlNJRzsgaSsrKQotCQlpZiAoc3RyY21wKHMsIHNpZ25hbWUoaSkgKyAzKSA9PSAwKSB7Ci0JCQlxdWFsaWZ5X29uZShpLCBvcHQsIG5vdCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludAotcXVhbF9mYXVsdChzLCBvcHQsIG5vdCkKLQljaGFyICpzOwotCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKLQlpbnQgbm90OwotewotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludAotcXVhbF9kZXNjKHMsIG9wdCwgbm90KQotCWNoYXIgKnM7Ci0JY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyAqb3B0OwotCWludCBub3Q7Ci17Ci0JaWYgKHMgJiYgKnMgJiYgaXNkaWdpdCgodW5zaWduZWQgY2hhcikqcykpIHsKLQkJaW50IGRlc2MgPSBhdG9pKHMpOwotCQlpZiAoZGVzYyA8IDAgfHwgZGVzYyA+PSBNQVhfUVVBTFMpCi0JCQlyZXR1cm4gLTE7Ci0JCXF1YWxpZnlfb25lKGRlc2MsIG9wdCwgbm90KTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludAotbG9va3VwX2NsYXNzKHMpCi0JY2hhciAqczsKLXsKLQlpZiAoc3RyY21wKHMsICJmaWxlIikgPT0gMCkKLQkJcmV0dXJuIFRSQUNFX0ZJTEU7Ci0JaWYgKHN0cmNtcChzLCAiaXBjIikgPT0gMCkKLQkJcmV0dXJuIFRSQUNFX0lQQzsKLQlpZiAoc3RyY21wKHMsICJuZXR3b3JrIikgPT0gMCkKLQkJcmV0dXJuIFRSQUNFX05FVFdPUks7Ci0JaWYgKHN0cmNtcChzLCAicHJvY2VzcyIpID09IDApCi0JCXJldHVybiBUUkFDRV9QUk9DRVNTOwotCWlmIChzdHJjbXAocywgInNpZ25hbCIpID09IDApCi0JCXJldHVybiBUUkFDRV9TSUdOQUw7Ci0JcmV0dXJuIC0xOwotfQotCi12b2lkCi1xdWFsaWZ5KHMpCi1jaGFyICpzOwotewotCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKLQlpbnQgbm90OwotCWNoYXIgKnA7Ci0JaW50IGksIG47Ci0KLQlvcHQgPSAmcXVhbF9vcHRpb25zWzBdOwotCWZvciAoaSA9IDA7IChwID0gcXVhbF9vcHRpb25zW2ldLm9wdGlvbl9uYW1lKTsgaSsrKSB7Ci0JCW4gPSBzdHJsZW4ocCk7Ci0JCWlmIChzdHJuY21wKHMsIHAsIG4pID09IDAgJiYgc1tuXSA9PSAnPScpIHsKLQkJCW9wdCA9ICZxdWFsX29wdGlvbnNbaV07Ci0JCQlzICs9IG4gKyAxOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0Jbm90ID0gMDsKLQlpZiAoKnMgPT0gJyEnKSB7Ci0JCW5vdCA9IDE7Ci0JCXMrKzsKLQl9Ci0JaWYgKHN0cmNtcChzLCAibm9uZSIpID09IDApIHsKLQkJbm90ID0gMSAtIG5vdDsKLQkJcyA9ICJhbGwiOwotCX0KLQlpZiAoc3RyY21wKHMsICJhbGwiKSA9PSAwKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBNQVhfUVVBTFM7IGkrKykgewotCQkJaWYgKG5vdCkKLQkJCQlxdWFsX2ZsYWdzW2ldICY9IH5vcHQtPmJpdGZsYWc7Ci0JCQllbHNlCi0JCQkJcXVhbF9mbGFnc1tpXSB8PSBvcHQtPmJpdGZsYWc7Ci0JCX0KLQkJcmV0dXJuOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX1FVQUxTOyBpKyspIHsKLQkJaWYgKG5vdCkKLQkJCXF1YWxfZmxhZ3NbaV0gfD0gb3B0LT5iaXRmbGFnOwotCQllbHNlCi0JCQlxdWFsX2ZsYWdzW2ldICY9IH5vcHQtPmJpdGZsYWc7Ci0JfQotCWZvciAocCA9IHN0cnRvayhzLCAiLCIpOyBwOyBwID0gc3RydG9rKE5VTEwsICIsIikpIHsKLQkJaWYgKG9wdC0+Yml0ZmxhZyA9PSBRVUFMX1RSQUNFICYmIChuID0gbG9va3VwX2NsYXNzKHApKSA+IDApIHsKLQkJCWZvciAoaSA9IDA7IGkgPCBNQVhfUVVBTFM7IGkrKykgewotCQkJCWlmIChzeXNlbnRbaV0uc3lzX2ZsYWdzICYgbikgewotCQkJCQlpZiAobm90KQotCQkJCQkJcXVhbF9mbGFnc1tpXSAmPSB+b3B0LT5iaXRmbGFnOwotCQkJCQllbHNlCi0JCQkJCQlxdWFsX2ZsYWdzW2ldIHw9IG9wdC0+Yml0ZmxhZzsKLQkJCQl9Ci0JCQl9Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAob3B0LT5xdWFsaWZ5KHAsIG9wdCwgbm90KSkgewotCQkJZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IGludmFsaWQgJXMgYCVzJ1xuIiwKLQkJCQlvcHQtPmFyZ3VtZW50X25hbWUsIHApOwotCQkJZXhpdCgxKTsKLQkJfQotCX0KLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkCi1kdW1waW8odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChzeXNlcnJvcih0Y3ApKQotCQlyZXR1cm47Ci0JaWYgKHRjcC0+dV9hcmdbMF0gPCAwIHx8IHRjcC0+dV9hcmdbMF0gPj0gTUFYX1FVQUxTKQotCQlyZXR1cm47Ci0Jc3dpdGNoIChrbm93bl9zY25vKHRjcCkpIHsKLQljYXNlIFNZU19yZWFkOgotI2lmZGVmIFNZU19wcmVhZDY0Ci0JY2FzZSBTWVNfcHJlYWQ2NDoKLSNlbmRpZgotI2lmIGRlZmluZWQgU1lTX3ByZWFkICYmIFNZU19wcmVhZDY0ICE9IFNZU19wcmVhZAotCWNhc2UgU1lTX3ByZWFkOgotI2VuZGlmCi0jaWZkZWYgU1lTX3JlY3YKLQljYXNlIFNZU19yZWN2OgotI2VsaWYgZGVmaW5lZCBTWVNfc3ViX3JlY3YKLQljYXNlIFNZU19zdWJfcmVjdjoKLSNlbmRpZgotI2lmZGVmIFNZU19yZWN2ZnJvbQotCWNhc2UgU1lTX3JlY3Zmcm9tOgotI2VsaWYgZGVmaW5lZCBTWVNfc3ViX3JlY3Zmcm9tCi0JY2FzZSBTWVNfc3ViX3JlY3Zmcm9tOgotI2VuZGlmCi0JCWlmIChxdWFsX2ZsYWdzW3RjcC0+dV9hcmdbMF1dICYgUVVBTF9SRUFEKQotCQkJZHVtcHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJYnJlYWs7Ci0JY2FzZSBTWVNfd3JpdGU6Ci0jaWZkZWYgU1lTX3B3cml0ZTY0Ci0JY2FzZSBTWVNfcHdyaXRlNjQ6Ci0jZW5kaWYKLSNpZiBkZWZpbmVkIFNZU19wd3JpdGUgJiYgU1lTX3B3cml0ZTY0ICE9IFNZU19wd3JpdGUKLQljYXNlIFNZU19wd3JpdGU6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfc2VuZAotCWNhc2UgU1lTX3NlbmQ6Ci0jZWxpZiBkZWZpbmVkIFNZU19zdWJfc2VuZAotCWNhc2UgU1lTX3N1Yl9zZW5kOgotI2VuZGlmCi0jaWZkZWYgU1lTX3NlbmR0bwotCWNhc2UgU1lTX3NlbmR0bzoKLSNlbGlmIGRlZmluZWQgU1lTX3N1Yl9zZW5kdG8KLQljYXNlIFNZU19zdWJfc2VuZHRvOgotI2VuZGlmCi0JCWlmIChxdWFsX2ZsYWdzW3RjcC0+dV9hcmdbMF1dICYgUVVBTF9XUklURSkKLQkJCWR1bXBzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLQkJYnJlYWs7Ci0jaWZkZWYgU1lTX3JlYWR2Ci0gICAgICAgIGNhc2UgU1lTX3JlYWR2OgotICAgICAgICAgICAgICAgIGlmIChxdWFsX2ZsYWdzW3RjcC0+dV9hcmdbMF1dICYgUVVBTF9SRUFEKQotICAgICAgICAgICAgICAgICAgICAgICAgZHVtcGlvdih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWZkZWYgU1lTX3dyaXRldgotICAgICAgICBjYXNlIFNZU193cml0ZXY6Ci0KLSAgICAgICAgICAgICAgICBpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfV1JJVEUpCi0gICAgICAgICAgICAgICAgICAgICAgICBkdW1waW92KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQl9Ci19Ci0KLSNpZm5kZWYgRlJFRUJTRAotZW51bSBzdWJjYWxsX3N0eWxlIHsgc2hpZnRfc3R5bGUsIGRlcmVmX3N0eWxlLCBtYXNrX3N0eWxlLCBkb29yX3N0eWxlIH07Ci0jZWxzZSAvKiBGUkVFQlNEICovCi1lbnVtIHN1YmNhbGxfc3R5bGUgeyBzaGlmdF9zdHlsZSwgZGVyZWZfc3R5bGUsIG1hc2tfc3R5bGUsIGRvb3Jfc3R5bGUsIHRhYmxlX3N0eWxlIH07Ci0KLXN0cnVjdCBzdWJjYWxsIHsKLSAgaW50IGNhbGw7Ci0gIGludCBuc3ViY2FsbHM7Ci0gIGludCBzdWJjYWxsc1s1XTsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ViY2FsbCBzdWJjYWxsc190YWJsZVtdID0gewotICB7IFNZU19zaG1zeXMsIDUsIHsgU1lTX3NobWF0LCBTWVNfc2htY3RsLCBTWVNfc2htZHQsIFNZU19zaG1nZXQsIFNZU19zaG1jdGwgfSB9LAotI2lmZGVmIFNZU19zZW1jb25maWcKLSAgeyBTWVNfc2Vtc3lzLCA0LCB7IFNZU19fX3NlbWN0bCwgU1lTX3NlbWdldCwgU1lTX3NlbW9wLCBTWVNfc2VtY29uZmlnIH0gfSwKLSNlbHNlCi0gIHsgU1lTX3NlbXN5cywgMywgeyBTWVNfX19zZW1jdGwsIFNZU19zZW1nZXQsIFNZU19zZW1vcCB9IH0sCi0jZW5kaWYKLSAgeyBTWVNfbXNnc3lzLCA0LCB7IFNZU19tc2djdGwsIFNZU19tc2dnZXQsIFNZU19tc2dzbmQsIFNZU19tc2dyY3YgfSB9LAotfTsKLSNlbmRpZiAvKiBGUkVFQlNEICovCi0KLSNpZiAhKGRlZmluZWQoTElOVVgpICYmICggZGVmaW5lZChBTFBIQSkgfHwgZGVmaW5lZChNSVBTKSApKQotCi1zdGF0aWMgY29uc3QgaW50IHNvY2tldF9tYXAgW10gPSB7Ci0JICAgICAgIC8qIFNZU19TT0NLRVQgICAgICAqLyA5NywKLQkgICAgICAgLyogU1lTX0JJTkQgICAgICAgICovIDEwNCwKLQkgICAgICAgLyogU1lTX0NPTk5FQ1QgICAgICovIDk4LAotCSAgICAgICAvKiBTWVNfTElTVEVOICAgICAgKi8gMTA2LAotCSAgICAgICAvKiBTWVNfQUNDRVBUICAgICAgKi8gOTksCi0JICAgICAgIC8qIFNZU19HRVRTT0NLTkFNRSAqLyAxNTAsCi0JICAgICAgIC8qIFNZU19HRVRQRUVSTkFNRSAqLyAxNDEsCi0JICAgICAgIC8qIFNZU19TT0NLRVRQQUlSICAqLyAxMzUsCi0JICAgICAgIC8qIFNZU19TRU5EICAgICAgICAqLyAxMDEsCi0JICAgICAgIC8qIFNZU19SRUNWICAgICAgICAqLyAxMDIsCi0JICAgICAgIC8qIFNZU19TRU5EVE8gICAgICAqLyAxMzMsCi0JICAgICAgIC8qIFNZU19SRUNWRlJPTSAgICAqLyAxMjUsCi0JICAgICAgIC8qIFNZU19TSFVURE9XTiAgICAqLyAxMzQsCi0JICAgICAgIC8qIFNZU19TRVRTT0NLT1BUICAqLyAxMDUsCi0JICAgICAgIC8qIFNZU19HRVRTT0NLT1BUICAqLyAxMTgsCi0JICAgICAgIC8qIFNZU19TRU5ETVNHICAgICAqLyAxMTQsCi0JICAgICAgIC8qIFNZU19SRUNWTVNHICAgICAqLyAxMTMKLX07Ci0KLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLXN0YXRpYyB2b2lkCi1zcGFyY19zb2NrZXRfZGVjb2RlICh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jdm9sYXRpbGUgbG9uZyBhZGRyOwotCXZvbGF0aWxlIGludCBpLCBuOwotCi0JaWYgKHRjcC0+dV9hcmcgWzBdIDwgMSB8fCB0Y3AtPnVfYXJnIFswXSA+IHNpemVvZihzb2NrZXRfbWFwKS9zaXplb2YoaW50KSsxKXsKLQkJcmV0dXJuOwotCX0KLQl0Y3AtPnNjbm8gPSBzb2NrZXRfbWFwIFt0Y3AtPnVfYXJnIFswXS0xXTsKLQluID0gdGNwLT51X25hcmdzID0gc3lzZW50IFt0Y3AtPnNjbm9dLm5hcmdzOwotCWFkZHIgPSB0Y3AtPnVfYXJnIFsxXTsKLQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKXsKLQkgICAgICAgIGludCBhcmc7Ci0JCWlmICh1bW92ZW4gKHRjcCwgYWRkciwgc2l6ZW9mIChhcmcpLCAodm9pZCAqKSAmYXJnKSA8IDApCi0JCQlhcmcgPSAwOwotCQl0Y3AtPnVfYXJnIFtpXSA9IGFyZzsKLQkJYWRkciArPSBzaXplb2YgKGFyZyk7Ci0JfQotfQotI2VuZGlmCi0KLXN0YXRpYyB2b2lkCi1kZWNvZGVfc3ViY2FsbCh0Y3AsIHN1YmNhbGwsIG5zdWJjYWxscywgc3R5bGUpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1pbnQgc3ViY2FsbDsKLWludCBuc3ViY2FsbHM7Ci1lbnVtIHN1YmNhbGxfc3R5bGUgc3R5bGU7Ci17Ci0JbG9uZyBhZGRyLCBtYXNrLCBhcmc7Ci0JaW50IGk7Ci0KLQlzd2l0Y2ggKHN0eWxlKSB7Ci0JY2FzZSBzaGlmdF9zdHlsZToKLQkJaWYgKHRjcC0+dV9hcmdbMF0gPCAwIHx8IHRjcC0+dV9hcmdbMF0gPj0gbnN1YmNhbGxzKQotCQkJcmV0dXJuOwotCQl0Y3AtPnNjbm8gPSBzdWJjYWxsICsgdGNwLT51X2FyZ1swXTsKLQkJaWYgKHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQotCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWVsc2UKLQkJCXRjcC0+dV9uYXJncy0tOwotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCi0JCQl0Y3AtPnVfYXJnW2ldID0gdGNwLT51X2FyZ1tpICsgMV07Ci0JCWJyZWFrOwotCWNhc2UgZGVyZWZfc3R5bGU6Ci0JCWlmICh0Y3AtPnVfYXJnWzBdIDwgMCB8fCB0Y3AtPnVfYXJnWzBdID49IG5zdWJjYWxscykKLQkJCXJldHVybjsKLQkJdGNwLT5zY25vID0gc3ViY2FsbCArIHRjcC0+dV9hcmdbMF07Ci0JCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwotCQlmb3IgKGkgPSAwOyBpIDwgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7IGkrKykgewotCQkJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmFyZykgPCAwKQotCQkJCWFyZyA9IDA7Ci0JCQl0Y3AtPnVfYXJnW2ldID0gYXJnOwotCQkJYWRkciArPSBzaXplb2YoYXJnKTsKLQkJfQotCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJYnJlYWs7Ci0JY2FzZSBtYXNrX3N0eWxlOgotCQltYXNrID0gKHRjcC0+dV9hcmdbMF0gPj4gOCkgJiAweGZmOwotCQlmb3IgKGkgPSAwOyBtYXNrOyBpKyspCi0JCQltYXNrID4+PSAxOwotCQlpZiAoaSA+PSBuc3ViY2FsbHMpCi0JCQlyZXR1cm47Ci0JCXRjcC0+dV9hcmdbMF0gJj0gMHhmZjsKLQkJdGNwLT5zY25vID0gc3ViY2FsbCArIGk7Ci0JCWlmIChzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCQlicmVhazsKLQljYXNlIGRvb3Jfc3R5bGU6Ci0JCS8qCi0JCSAqIE9oLCB5dWNrLiAgVGhlIGNhbGwgY29kZSBpcyB0aGUgKnNpeHRoKiBhcmd1bWVudC4KLQkJICogKGRvbid0IHlvdSBtZWFuIHRoZSAqbGFzdCogYXJndW1lbnQ/IC0gSkgpCi0JCSAqLwotCQlpZiAodGNwLT51X2FyZ1s1XSA8IDAgfHwgdGNwLT51X2FyZ1s1XSA+PSBuc3ViY2FsbHMpCi0JCQlyZXR1cm47Ci0JCXRjcC0+c2NubyA9IHN1YmNhbGwgKyB0Y3AtPnVfYXJnWzVdOwotCQlpZiAoc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJZWxzZQotCQkJdGNwLT51X25hcmdzLS07Ci0JCWJyZWFrOwotI2lmZGVmIEZSRUVCU0QKLQljYXNlIHRhYmxlX3N0eWxlOgotCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN1YmNhbGxzX3RhYmxlKSAvIHNpemVvZihzdHJ1Y3Qgc3ViY2FsbCk7IGkrKykKLQkJCWlmIChzdWJjYWxsc190YWJsZVtpXS5jYWxsID09IHRjcC0+c2NubykgYnJlYWs7Ci0JCWlmIChpIDwgc2l6ZW9mKHN1YmNhbGxzX3RhYmxlKSAvIHNpemVvZihzdHJ1Y3Qgc3ViY2FsbCkgJiYKLQkJICAgIHRjcC0+dV9hcmdbMF0gPj0gMCAmJiB0Y3AtPnVfYXJnWzBdIDwgc3ViY2FsbHNfdGFibGVbaV0ubnN1YmNhbGxzKSB7Ci0JCQl0Y3AtPnNjbm8gPSBzdWJjYWxsc190YWJsZVtpXS5zdWJjYWxsc1t0Y3AtPnVfYXJnWzBdXTsKLQkJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKLQkJCQl0Y3AtPnVfYXJnW2ldID0gdGNwLT51X2FyZ1tpICsgMV07Ci0JCX0KLQkJYnJlYWs7Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCX0KLX0KLSNlbmRpZgotCi1zdHJ1Y3QgdGNiICp0Y3BfbGFzdCA9IE5VTEw7Ci0KLXN0YXRpYyBpbnQKLWludGVybmFsX3N5c2NhbGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCS8qCi0JICogV2UgbXVzdCBhbHdheXMgdHJhY2UgYSBmZXcgY3JpdGljYWwgc3lzdGVtIGNhbGxzIGluIG9yZGVyIHRvCi0JICogY29ycmVjdGx5IHN1cHBvcnQgZm9sbG93aW5nIGZvcmtzIGluIHRoZSBwcmVzZW5jZSBvZiB0cmFjaW5nCi0JICogcXVhbGlmaWVycy4KLQkgKi8KLQlzd2l0Y2ggKGtub3duX3Njbm8odGNwKSkgewotI2lmZGVmIFNZU19mb3JrCi0JY2FzZSBTWVNfZm9yazoKLSNlbmRpZgotI2lmZGVmIFNZU192Zm9yawotCWNhc2UgU1lTX3Zmb3JrOgotI2VuZGlmCi0jaWZkZWYgU1lTX2ZvcmsxCi0JY2FzZSBTWVNfZm9yazE6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfZm9ya2FsbAotCWNhc2UgU1lTX2ZvcmthbGw6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmZvcmsxCi0JY2FzZSBTWVNfcmZvcmsxOgotI2VuZGlmCi0jaWZkZWYgU1lTX3Jmb3JrYWxsCi0JY2FzZSBTWVNfcmZvcmthbGw6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmZvcmsKLQljYXNlIFNZU19yZm9yazoKLSNlbmRpZgotCQlpbnRlcm5hbF9mb3JrKHRjcCk7Ci0JCWJyZWFrOwotI2lmZGVmIFNZU19jbG9uZQotCWNhc2UgU1lTX2Nsb25lOgotCQlpbnRlcm5hbF9jbG9uZSh0Y3ApOwotCQlicmVhazsKLSNlbmRpZgotI2lmZGVmIFNZU19jbG9uZTIKLQljYXNlIFNZU19jbG9uZTI6Ci0JCWludGVybmFsX2Nsb25lKHRjcCk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgU1lTX2V4ZWN2Ci0JY2FzZSBTWVNfZXhlY3Y6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfZXhlY3ZlCi0JY2FzZSBTWVNfZXhlY3ZlOgotI2VuZGlmCi0jaWZkZWYgU1lTX3JleGVjdmUKLQljYXNlIFNZU19yZXhlY3ZlOgotI2VuZGlmCi0JCWludGVybmFsX2V4ZWModGNwKTsKLQkJYnJlYWs7Ci0KLSNpZmRlZiBTWVNfd2FpdAotCWNhc2UgU1lTX3dhaXQ6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfd2FpdDQKLQljYXNlIFNZU193YWl0NDoKLSNlbmRpZgotI2lmZGVmIFNZUzMyX3dhaXQ0Ci0JY2FzZSBTWVMzMl93YWl0NDoKLSNlbmRpZgotI2lmZGVmIFNZU193YWl0cGlkCi0JY2FzZSBTWVNfd2FpdHBpZDoKLSNlbmRpZgotI2lmZGVmIFNZU193YWl0c3lzCi0JY2FzZSBTWVNfd2FpdHN5czoKLSNlbmRpZgotCQlpbnRlcm5hbF93YWl0KHRjcCwgMik7Ci0JCWJyZWFrOwotI2lmZGVmIFNZU193YWl0aWQKLQljYXNlIFNZU193YWl0aWQ6Ci0JCWludGVybmFsX3dhaXQodGNwLCAzKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLQotI2lmZGVmIFNZU19leGl0Ci0JY2FzZSBTWVNfZXhpdDoKLSNlbmRpZgotI2lmZGVmIFNZUzMyX2V4aXQKLQljYXNlIFNZUzMyX2V4aXQ6Ci0jZW5kaWYKLSNpZmRlZiBfX05SX2V4aXRfZ3JvdXAKLQljYXNlIF9fTlJfZXhpdF9ncm91cDoKLSNlbmRpZgotI2lmZGVmIElBNjQKLQljYXNlIDI1MjogLyogSUEtMzIgX19OUl9leGl0X2dyb3VwICovCi0jZW5kaWYKLQkJaW50ZXJuYWxfZXhpdCh0Y3ApOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLQotI2lmZGVmIExJTlVYCi0jaWYgZGVmaW5lZCAoSTM4NikKLQlzdGF0aWMgbG9uZyBlYXg7Ci0jZWxpZiBkZWZpbmVkIChJQTY0KQotCWxvbmcgcjgsIHIxMCwgcHNyOwotCWxvbmcgaWEzMiA9IDA7Ci0jZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotCXN0YXRpYyBsb25nIHJlc3VsdCxmbGFnczsKLSNlbGlmIGRlZmluZWQgKE02OEspCi0Jc3RhdGljIGludCBkMDsKLSNlbGlmIGRlZmluZWQgKEFSTSkKLQlzdGF0aWMgc3RydWN0IHB0X3JlZ3MgcmVnczsKLSNlbGlmIGRlZmluZWQgKEFMUEhBKQotCXN0YXRpYyBsb25nIHIwOwotCXN0YXRpYyBsb25nIGEzOwotI2VsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0Jc3RhdGljIHN0cnVjdCByZWdzIHJlZ3M7Ci0Jc3RhdGljIHVuc2lnbmVkIGxvbmcgdHJhcDsKLSNlbGlmIGRlZmluZWQoTUlQUykKLQlzdGF0aWMgbG9uZyBhMzsKLQlzdGF0aWMgbG9uZyByMjsKLSNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQlzdGF0aWMgbG9uZyBncHIyOwotCXN0YXRpYyBsb25nIHBjOwotCXN0YXRpYyBsb25nIHN5c2NhbGxfbW9kZTsKLSNlbGlmIGRlZmluZWQoSFBQQSkKLQlzdGF0aWMgbG9uZyByMjg7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIHN0YXRpYyBsb25nIHIwOwotI2VsaWYgZGVmaW5lZChTSDY0KQotICAgICAgIHN0YXRpYyBsb25nIHI5OwotI2VsaWYgZGVmaW5lZChYODZfNjQpCi0gICAgICAgc3RhdGljIGxvbmcgcmF4OwotI2VuZGlmCi0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBGUkVFQlNECi0Jc3RydWN0IHJlZyByZWdzOwotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLQotaW50Ci1nZXRfc2Nubyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JbG9uZyBzY25vID0gMDsKLSNpZm5kZWYgVVNFX1BST0NGUwotCWludCBwaWQgPSB0Y3AtPnBpZDsKLSNlbmRpZiAvKiAhUFJPQ0ZTICovCi0KLSNpZmRlZiBMSU5VWAotI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQlpZiAodGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7Ci0JCS8qCi0JCSAqIFdoZW4gdGhlIGV4ZWN2ZSBzeXN0ZW0gY2FsbCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LCB0aGUKLQkJICogbmV3IHByb2Nlc3Mgc3RpbGwgaGFzIC1FTk9TWVMgKG9sZCBzdHlsZSkgb3IgX19OUl9leGVjdmUKLQkJICogKG5ldyBzdHlsZSkgaW4gZ3ByMi4gIFdlIGNhbm5vdCByZWNvdmVyIHRoZSBzY25vIGFnYWluCi0JCSAqIGJ5IGRpc2Fzc2VtYmx5LCBiZWNhdXNlIHRoZSBpbWFnZSB0aGF0IGV4ZWN1dGVkIHRoZQotCQkgKiBzeXNjYWxsIGlzIGdvbmUgbm93LiAgRm9ydHVuYXRlbHksIHdlIGRvbid0IHdhbnQgaXQuICBXZQotCQkgKiBsZWF2ZSB0aGUgZmxhZyBzZXQgc28gdGhhdCBzeXNjYWxsX2ZpeHVwIGNhbiBmYWtlIHRoZQotCQkgKiByZXN1bHQuCi0JCSAqLwotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpCi0JCQlyZXR1cm4gMTsKLQkJLyoKLQkJICogVGhpcyBpcyB0aGUgU0lHVFJBUCBhZnRlciBleGVjdmUuICBXZSBjYW5ub3QgdHJ5IHRvIHJlYWQKLQkJICogdGhlIHN5c3RlbSBjYWxsIGhlcmUgZWl0aGVyLgotCQkgKi8KLQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7Ci0JCXJldHVybiAwOwotCX0KLQotCWlmICh1cGVlayhwaWQsIFBUX0dQUjIsICZzeXNjYWxsX21vZGUpIDwgMCkKLQkJCXJldHVybiAtMTsKLQotCWlmIChzeXNjYWxsX21vZGUgIT0gLUVOT1NZUykgewotCQkvKgotIAkJICogU2luY2Uga2VybmVsIHZlcnNpb24gMi41LjQ0IHRoZSBzY25vIGdldHMgcGFzc2VkIGluIGdwcjIuCi0JCSAqLwotCQlzY25vID0gc3lzY2FsbF9tb2RlOwotCX0gZWxzZSB7Ci0JICAgICAgIAkvKgotCQkgKiBPbGQgc3R5bGUgb2YgInBhc3NpbmciIHRoZSBzY25vIHZpYSB0aGUgU1ZDIGluc3RydWN0aW9uLgotCQkgKi8KLQotCQlsb25nIG9wY29kZSwgb2Zmc2V0X3JlZywgdG1wOwotCQl2b2lkICogc3ZjX2FkZHI7Ci0JCWludCBncHJfb2Zmc2V0WzE2XSA9IHtQVF9HUFIwLCAgUFRfR1BSMSwgIFBUX09SSUdHUFIyLCBQVF9HUFIzLAotCQkJCSAgICAgIFBUX0dQUjQsICBQVF9HUFI1LCAgUFRfR1BSNiwgICAgIFBUX0dQUjcsCi0JCQkJICAgICAgUFRfR1BSOCwgIFBUX0dQUjksICBQVF9HUFIxMCwgICAgUFRfR1BSMTEsCi0JCQkJICAgICAgUFRfR1BSMTIsIFBUX0dQUjEzLCBQVF9HUFIxNCwgICAgUFRfR1BSMTV9OwotCi0JCWlmICh1cGVlayhwaWQsIFBUX1BTV0FERFIsICZwYykgPCAwKQotCQkJcmV0dXJuIC0xOwotCQllcnJubyA9IDA7Ci0JCW9wY29kZSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKGNoYXIgKikocGMtc2l6ZW9mKGxvbmcpKSwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJwZWVrdGV4dChwYy1vbmV3b3JkKSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0KLQkJLyoKLQkJICogIFdlIGhhdmUgdG8gY2hlY2sgaWYgdGhlIFNWQyBnb3QgZXhlY3V0ZWQgZGlyZWN0bHkgb3IgdmlhIGFuCi0JCSAqICBFWEVDVVRFIGluc3RydWN0aW9uLiBJbiBjYXNlIG9mIEVYRUNVVEUgaXQgaXMgbmVjZXNzYXJ5IHRvIGRvCi0JCSAqICBpbnN0cnVjdGlvbiBkZWNvZGluZyB0byBkZXJpdmUgdGhlIHN5c3RlbSBjYWxsIG51bWJlci4KLQkJICogIFVuZm9ydHVuYXRlbHkgdGhlIG9wY29kZSBzaXplcyBvZiBFWEVDVVRFIGFuZCBTVkMgYXJlIGRpZmZlcmVudGx5LAotCQkgKiAgc28gdGhhdCB0aGlzIGRvZXNuJ3Qgd29yayBpZiBhIFNWQyBvcGNvZGUgaXMgcGFydCBvZiBhbiBFWEVDVVRFCi0JCSAqICBvcGNvZGUuIFNpbmNlIHRoZXJlIGlzIG5vIHdheSB0byBmaW5kIG91dCB0aGUgb3Bjb2RlIHNpemUgdGhpcwotCQkgKiAgaXMgdGhlIGJlc3Qgd2UgY2FuIGRvLi4uCi0JCSAqLwotCi0JCWlmICgob3Bjb2RlICYgMHhmZjAwKSA9PSAweDBhMDApIHsKLQkJCS8qIFNWQyBvcGNvZGUgKi8KLQkJCXNjbm8gPSBvcGNvZGUgJiAweGZmOwotCQl9Ci0JCWVsc2UgewotCQkJLyogU1ZDIGdvdCBleGVjdXRlZCBieSBFWEVDVVRFIGluc3RydWN0aW9uICovCi0KLQkJCS8qCi0JCQkgKiAgRG8gaW5zdHJ1Y3Rpb24gZGVjb2Rpbmcgb2YgRVhFQ1VURS4gSWYgeW91IHJlYWxseSB3YW50IHRvCi0JCQkgKiAgdW5kZXJzdGFuZCB0aGlzLCByZWFkIHRoZSBQcmluY2lwbGVzIG9mIE9wZXJhdGlvbnMuCi0JCQkgKi8KLQkJCXN2Y19hZGRyID0gKHZvaWQgKikgKG9wY29kZSAmIDB4ZmZmKTsKLQotCQkJdG1wID0gMDsKLQkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMDBmMDAwMCkgPj4gMTY7Ci0JCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQotCQkJCXJldHVybiAtMTsKLQkJCXN2Y19hZGRyICs9IHRtcDsKLQotCQkJdG1wID0gMDsKLQkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMDAwZjAwMCkgPj4gMTI7Ci0JCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQotCQkJCXJldHVybiAtMTsKLQkJCXN2Y19hZGRyICs9IHRtcDsKLQotCQkJc2NubyA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgc3ZjX2FkZHIsIDApOwotCQkJaWYgKGVycm5vKQotCQkJCXJldHVybiAtMTsKLSNpZiBkZWZpbmVkKFMzOTBYKQotCQkJc2NubyA+Pj0gNDg7Ci0jZWxzZQotCQkJc2NubyA+Pj0gMTY7Ci0jZW5kaWYKLQkJCXRtcCA9IDA7Ci0JCQlvZmZzZXRfcmVnID0gKG9wY29kZSAmIDB4MDBmMDAwMDApID4+IDIwOwotCQkJaWYgKG9mZnNldF9yZWcgJiYgKHVwZWVrKHBpZCwgZ3ByX29mZnNldFtvZmZzZXRfcmVnXSwgJnRtcCkgPCAwKSkKLQkJCQlyZXR1cm4gLTE7Ci0KLQkJCXNjbm8gPSAoc2NubyB8IHRtcCkgJiAweGZmOwotCQl9Ci0JfQotI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKLQlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjAsICZzY25vKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLwotCQlpZiAoc2NubyA9PSAwICYmICh0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpKSB7Ci0JCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotI2VsaWYgZGVmaW5lZCAoSTM4NikKLQlpZiAodXBlZWsocGlkLCA0Kk9SSUdfRUFYLCAmc2NubykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChYODZfNjQpCi0JaWYgKHVwZWVrKHBpZCwgOCpPUklHX1JBWCwgJnNjbm8pIDwgMCkKLQkJcmV0dXJuIC0xOwotCi0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JICAJc3RhdGljIGludCBjdXJycGVycz0tMTsKLQkJbG9uZyB2YWw7Ci0KLQkJLyogQ2hlY2sgQ1MgcmVnaXN0ZXIgdmFsdWUuIE9uIHg4Ni02NCBsaW51eCBpdCBpczoKLQkJICogCTB4MzMJZm9yIGxvbmcgbW9kZSAoNjQgYml0KQotCQkgKiAJMHgyMwlmb3IgY29tcGF0aWJpbGl0eSBtb2RlICgzMiBiaXQpCi0JCSAqIEl0IHRha2VzIG9ubHkgb25lIHB0cmFjZSBhbmQgdGh1cyBkb2Vzbid0IG5lZWQKLQkJICogdG8gYmUgY2FjaGVkLgotCQkgKi8KLQkJaWYgKHVwZWVrKHBpZCwgOCpDUywgJnZhbCkgPCAwKQotCQkJcmV0dXJuIC0xOwotCQlzd2l0Y2godmFsKQotCQl7Ci0JCQljYXNlIDB4MjM6IGN1cnJwZXJzID0gMTsgYnJlYWs7Ci0JCQljYXNlIDB4MzM6IGN1cnJwZXJzID0gMDsgYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJCWZwcmludGYoc3RkZXJyLCAiVW5rbm93biB2YWx1ZSBDUz0weCUwMlggd2hpbGUgIgotCQkJCQkgImRldGVjdGluZyBwZXJzb25hbGl0eSBvZiBwcm9jZXNzICIKLQkJCQkJICJQSUQ9JWRcbiIsIChpbnQpdmFsLCBwaWQpOwotCQkJCWN1cnJwZXJzID0gY3VycmVudF9wZXJzb25hbGl0eTsKLQkJCQlicmVhazsKLQkJfQotI2lmIDAKLQkJLyogVGhpcyB2ZXJzaW9uIGFuYWx5emVzIHRoZSBvcGNvZGUgb2YgYSBzeXNjYWxsIGluc3RydWN0aW9uLgotCQkgKiAoaW50IDB4ODAgb24gaTM4NiB2cy4gc3lzY2FsbCBvbiB4ODYtNjQpCi0JCSAqIEl0IHdvcmtzLCBidXQgaXMgdG9vIGNvbXBsaWNhdGVkLgotCQkgKi8KLQkJdW5zaWduZWQgbG9uZyB2YWwsIHJpcCwgaTsKLQotCQlpZih1cGVlayhwaWQsIDgqUklQLCAmcmlwKTwwKQotCQkJcGVycm9yKCJ1cGVlayhSSVApIik7Ci0KLQkJLyogc2l6ZW9mKHN5c2NhbGwpID09IHNpemVvZihpbnQgMHg4MCkgPT0gMiAqLwotCQlyaXAtPTI7Ci0JCWVycm5vID0gMDsKLQotCQljYWxsID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCxwaWQsKGNoYXIgKilyaXAsMCk7Ci0JCWlmIChlcnJubykKLQkJCXByaW50ZigicHRyYWNlX3BlZWt0ZXh0IGZhaWxlZDogJXNcbiIsCi0JCQkJCXN0cmVycm9yKGVycm5vKSk7Ci0JCXN3aXRjaCAoY2FsbCAmIDB4ZmZmZikKLQkJewotCQkJLyogeDg2LTY0OiBzeXNjYWxsID0gMHgwZiAweDA1ICovCi0JCQljYXNlIDB4MDUwZjogY3VycnBlcnMgPSAwOyBicmVhazsKLQkJCS8qIGkzODY6IGludCAweDgwID0gMHhjZCAweDgwICovCi0JCQljYXNlIDB4ODBjZDogY3VycnBlcnMgPSAxOyBicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJY3VycnBlcnMgPSBjdXJyZW50X3BlcnNvbmFsaXR5OwotCQkJCWZwcmludGYoc3RkZXJyLAotCQkJCQkiVW5rbm93biBzeXNjYWxsIG9wY29kZSAoMHglMDRYKSB3aGlsZSAiCi0JCQkJCSJkZXRlY3RpbmcgcGVyc29uYWxpdHkgb2YgcHJvY2VzcyAiCi0JCQkJCSJQSUQ9JWRcbiIsIChpbnQpY2FsbCwgcGlkKTsKLQkJCQlicmVhazsKLQkJfQotI2VuZGlmCi0JCWlmKGN1cnJwZXJzICE9IGN1cnJlbnRfcGVyc29uYWxpdHkpCi0JCXsKLQkJCWNoYXIgKm5hbWVzW109eyI2NCBiaXQiLCAiMzIgYml0In07Ci0JCQlzZXRfcGVyc29uYWxpdHkoY3VycnBlcnMpOwotCQkJcHJpbnRmKCJbIFByb2Nlc3MgUElEPSVkIHJ1bnMgaW4gJXMgbW9kZS4gXVxuIiwKLQkJCQkJcGlkLCBuYW1lc1tjdXJyZW50X3BlcnNvbmFsaXR5XSk7Ci0JCX0KLQl9Ci0jZWxpZiBkZWZpbmVkKElBNjQpCi0jCWRlZmluZSBJQTY0X1BTUl9JUwkoKGxvbmcpMSA8PCAzNCkKLQlpZiAodXBlZWsgKHBpZCwgUFRfQ1JfSVBTUiwgJnBzcikgPj0gMCkKLQkJaWEzMiA9IChwc3IgJiBJQTY0X1BTUl9JUykgIT0gMDsKLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkJaWYgKGlhMzIpIHsKLQkJCWlmICh1cGVlayhwaWQsIFBUX1IxLCAmc2NubykgPCAwKQkvKiBvcmlnIGVheCAqLwotCQkJCXJldHVybiAtMTsKLQkJfSBlbHNlIHsKLQkJCWlmICh1cGVlayAocGlkLCBQVF9SMTUsICZzY25vKSA8IDApCi0JCQkJcmV0dXJuIC0xOwotCQl9Ci0JCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgewotCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0gZWxzZSB7Ci0JCS8qIHN5c2NhbGwgaW4gcHJvZ3Jlc3MgKi8KLQkJaWYgKHVwZWVrIChwaWQsIFBUX1I4LCAmcjgpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJaWYgKHVwZWVrIChwaWQsIFBUX1IxMCwgJnIxMCkgPCAwKQotCQkJcmV0dXJuIC0xOwotCX0KLSNlbGlmIGRlZmluZWQgKEFSTSkKLQkvKgotCSAqIFJlYWQgY29tcGxldGUgcmVnaXN0ZXIgc2V0IGluIG9uZSBnby4KLQkgKi8KLQlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCBwaWQsIE5VTEwsICh2b2lkICopJnJlZ3MpID09IC0xKQotCQlyZXR1cm4gLTE7Ci0KLQkvKgotCSAqIFdlIG9ubHkgbmVlZCB0byBncmFiIHRoZSBzeXNjYWxsIG51bWJlciBvbiBzeXNjYWxsIGVudHJ5LgotCSAqLwotCWlmIChyZWdzLkFSTV9pcCA9PSAwKSB7Ci0JCS8qCi0JCSAqIE5vdGU6IHdlIG9ubHkgZGVhbCB3aXRoIG9ubHkgMzItYml0IENQVXMgaGVyZS4KLQkJICovCi0JCWlmIChyZWdzLkFSTV9jcHNyICYgMHgyMCkgewotCQkJLyoKLQkJCSAqIEdldCB0aGUgVGh1bWItbW9kZSBzeXN0ZW0gY2FsbCBudW1iZXIKLQkJCSAqLwotCQkJc2NubyA9IHJlZ3MuQVJNX3I3OwotCQl9IGVsc2UgewotCQkJLyoKLQkJCSAqIEdldCB0aGUgQVJNLW1vZGUgc3lzdGVtIGNhbGwgbnVtYmVyCi0JCQkgKi8KLQkJCWVycm5vID0gMDsKLQkJCXNjbm8gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCBwaWQsICh2b2lkICopKHJlZ3MuQVJNX3BjIC0gNCksIE5VTEwpOwotCQkJaWYgKGVycm5vKQotCQkJCXJldHVybiAtMTsKLQotCQkJaWYgKHNjbm8gPT0gMCAmJiAodGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSkgewotCQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOwotCQkJCXJldHVybiAwOwotCQkJfQotCi0JCQkvKiBIYW5kbGUgdGhlIEVBQkkgc3lzY2FsbCBjb252ZW50aW9uLiAgV2UgZG8gbm90Ci0JCQkgICBib3RoZXIgY29udmVydGluZyBzdHJ1Y3R1cmVzIGJldHdlZW4gdGhlIHR3bwotCQkJICAgQUJJcywgYnV0IGJhc2ljIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIHdvcmsgZXZlbgotCQkJICAgaWYgc3RyYWNlIGFuZCB0aGUgdHJhY2VkIHByb2dyYW0gaGF2ZSBkaWZmZXJlbnQKLQkJCSAgIEFCSXMuICAqLwotCQkJaWYgKHNjbm8gPT0gMHhlZjAwMDAwMCkgewotCQkJCXNjbm8gPSByZWdzLkFSTV9yNzsKLQkJCX0gZWxzZSB7Ci0JCQkJaWYgKChzY25vICYgMHgwZmYwMDAwMCkgIT0gMHgwZjkwMDAwMCkgewotCQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwIDB4JTA4bHhcbiIsCi0JCQkJCQlzY25vKTsKLQkJCQkJcmV0dXJuIC0xOwotCQkJCX0KLQotCQkJCS8qCi0JCQkJICogRml4dXAgdGhlIHN5c2NhbGwgbnVtYmVyCi0JCQkJICovCi0JCQkJc2NubyAmPSAweDAwMGZmZmZmOwotCQkJfQotCQl9Ci0KLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgInBpZCAlZCBzdHJheSBzeXNjYWxsIGVudHJ5XG4iLCB0Y3AtPnBpZCk7Ci0JCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgInBpZCAlZCBzdHJheSBzeXNjYWxsIGV4aXRcbiIsIHRjcC0+cGlkKTsKLQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKLQkJfQotCX0KLSNlbGlmIGRlZmluZWQgKE02OEspCi0JaWYgKHVwZWVrKHBpZCwgNCpQVF9PUklHX0QwLCAmc2NubykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChNSVBTKQotCWlmICh1cGVlayhwaWQsIFJFR19BMywgJmEzKSA8IDApCi0JICAJcmV0dXJuIC0xOwotCi0JaWYoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkgIAlpZiAodXBlZWsocGlkLCBSRUdfVjAsICZzY25vKSA8IDApCi0JCSAgCXJldHVybiAtMTsKLQotCQlpZiAoc2NubyA8IDAgfHwgc2NubyA+IG5zeXNjYWxscykgewotCQkJaWYoYTMgPT0gMCB8fCBhMyA9PSAtMSkgewotCQkJCWlmKGRlYnVnKQotCQkJCQlmcHJpbnRmIChzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IHYwID0gJWxkXG4iLCBzY25vKTsKLQkJCQlyZXR1cm4gMDsKLQkJCX0KLQkJfQotCX0gZWxzZSB7Ci0JICAJaWYgKHVwZWVrKHBpZCwgUkVHX1YwLCAmcjIpIDwgMCkKLQkgICAgCQlyZXR1cm4gLTE7Ci0JfQotI2VsaWYgZGVmaW5lZCAoQUxQSEEpCi0JaWYgKHVwZWVrKHBpZCwgUkVHX0EzLCAmYTMpIDwgMCkKLQkJcmV0dXJuIC0xOwotCi0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCWlmICh1cGVlayhwaWQsIFJFR19SMCwgJnNjbm8pIDwgMCkKLQkJCXJldHVybiAtMTsKLQotCQkvKiBDaGVjayBpZiB3ZSByZXR1cm4gZnJvbSBleGVjdmUuICovCi0JCWlmIChzY25vID09IDAgJiYgdGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7Ci0JCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJLyoKLQkJICogRG8gc29tZSBzYW5pdHkgY2hlY2tzIHRvIGZpZ3VyZSBvdXQgaWYgaXQncwotCQkgKiByZWFsbHkgYSBzeXNjYWxsIGVudHJ5Ci0JCSAqLwotCQlpZiAoc2NubyA8IDAgfHwgc2NubyA+IG5zeXNjYWxscykgewotCQkJaWYgKGEzID09IDAgfHwgYTMgPT0gLTEpIHsKLQkJCQlpZiAoZGVidWcpCi0JCQkJCWZwcmludGYgKHN0ZGVyciwgInN0cmF5IHN5c2NhbGwgZXhpdDogcjAgPSAlbGRcbiIsIHNjbm8pOwotCQkJCXJldHVybiAwOwotCQkJfQotCQl9Ci0JfQotCWVsc2UgewotCQlpZiAodXBlZWsocGlkLCBSRUdfUjAsICZyMCkgPCAwKQotCQkJcmV0dXJuIC0xOwotCX0KLSNlbGlmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotCS8qIEV2ZXJ5dGhpbmcgd2UgbmVlZCBpcyBpbiB0aGUgY3VycmVudCByZWdpc3RlciBzZXQuICovCi0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUyxwaWQsKGNoYXIgKikmcmVncywwKSA8IDApCi0JCXJldHVybiAtMTsKLQotICAgICAgICAvKiBJZiB3ZSBhcmUgZW50ZXJpbmcsIHRoZW4gZGlzYXNzZW1ibGUgdGhlIHN5c2NhbGwgdHJhcC4gKi8KLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkJLyogUmV0cmlldmUgdGhlIHN5c2NhbGwgdHJhcCBpbnN0cnVjdGlvbi4gKi8KLQkJZXJybm8gPSAwOwotCQl0cmFwID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCxwaWQsKGNoYXIgKilyZWdzLnJfcGMsMCk7Ci0jaWYgZGVmaW5lZChTUEFSQzY0KQotCQl0cmFwID4+PSAzMjsKLSNlbmRpZgotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0KLQkJLyogRGlzYXNzZW1ibGUgdGhlIHRyYXAgdG8gc2VlIHdoYXQgcGVyc29uYWxpdHkgdG8gdXNlLiAqLwotCQlzd2l0Y2ggKHRyYXApIHsKLQkJY2FzZSAweDkxZDAyMDEwOgotCQkJLyogTGludXgvU1BBUkMgc3lzY2FsbCB0cmFwLiAqLwotCQkJc2V0X3BlcnNvbmFsaXR5KDApOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHg5MWQwMjA2ZDoKLQkJCS8qIExpbnV4L1NQQVJDNjQgc3lzY2FsbCB0cmFwLiAqLwotCQkJc2V0X3BlcnNvbmFsaXR5KDIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHg5MWQwMjAwMDoKLQkJCS8qIFN1bk9TIHN5c2NhbGwgdHJhcC4gKHBlcnMgMSkgKi8KLQkJCWZwcmludGYoc3RkZXJyLCJzeXNjYWxsOiBTdW5PUyBubyBzdXBwb3J0XG4iKTsKLQkJCXJldHVybiAtMTsKLQkJY2FzZSAweDkxZDAyMDA4OgotCQkJLyogU29sYXJpcyAyLnggc3lzY2FsbCB0cmFwLiAocGVyIDIpICovCi0JCQlzZXRfcGVyc29uYWxpdHkoMSk7Ci0JCQlicmVhazsKLQkJY2FzZSAweDkxZDAyMDA5OgotCQkJLyogTmV0QlNEL0ZyZWVCU0Qgc3lzY2FsbCB0cmFwLiAqLwotCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IE5ldEJTRC9GcmVlQlNEIG5vdCBzdXBwb3J0ZWRcbiIpOwotCQkJcmV0dXJuIC0xOwotCQljYXNlIDB4OTFkMDIwMjc6Ci0JCQkvKiBTb2xhcmlzIDIueCBnZXR0aW1lb2ZkYXkgKi8KLQkJCXNldF9wZXJzb25hbGl0eSgxKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJLyogVW5rbm93biBzeXNjYWxsIHRyYXAuICovCi0JCQlpZih0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpIHsKLQkJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLQkJCQlyZXR1cm4gMDsKLQkJCX0KLSNpZiBkZWZpbmVkIChTUEFSQzY0KQotCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwICUwOGx4ICUwMTZseFxuIiwgdHJhcCwgcmVncy5yX3RwYyk7Ci0jZWxzZQotCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwICUwOHggJTA4eFxuIiwgdHJhcCwgcmVncy5yX3BjKTsKLSNlbmRpZgotCQkJcmV0dXJuIC0xOwotCQl9Ci0KLQkJLyogRXh0cmFjdCB0aGUgc3lzdGVtIGNhbGwgbnVtYmVyIGZyb20gdGhlIHJlZ2lzdGVycy4gKi8KLQkJaWYgKHRyYXAgPT0gMHg5MWQwMjAyNykKLQkJCXNjbm8gPSAxNTY7Ci0JCWVsc2UKLQkJCXNjbm8gPSByZWdzLnJfZzE7Ci0JCWlmIChzY25vID09IDApIHsKLQkJCXNjbm8gPSByZWdzLnJfbzA7Ci0JCQltZW1tb3ZlICgmcmVncy5yX28wLCAmcmVncy5yX28xLCA3KnNpemVvZihyZWdzLnJfbzApKTsKLQkJfQotCX0KLSNlbGlmIGRlZmluZWQoSFBQQSkKLQlpZiAodXBlZWsocGlkLCBQVF9HUjIwLCAmc2NubykgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KLQkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpKSB7Ci0JCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICAvKgotICAgICAgICAqIEluIHRoZSBuZXcgc3lzY2FsbCBBQkksIHRoZSBzeXN0ZW0gY2FsbCBudW1iZXIgaXMgaW4gUjMuCi0gICAgICAgICovCi0gICAgICAgaWYgKHVwZWVrKHBpZCwgNCooUkVHX1JFRzArMyksICZzY25vKSA8IDApCi0gICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICBpZiAoc2NubyA8IDApIHsKLSAgICAgICAgICAgLyogT2RkIGFzIGl0IG1heSBzZWVtLCBhIGdsaWJjIGJ1ZyBoYXMgYmVlbiBrbm93biB0byBjYXVzZQotICAgICAgICAgICAgICBnbGliYyB0byBpc3N1ZSBib2d1cyBuZWdhdGl2ZSBzeXNjYWxsIG51bWJlcnMuICBTbyBmb3IKLSAgICAgICAgICAgICAgb3VyIHB1cnBvc2VzLCBtYWtlIHN0cmFjZSBwcmludCB3aGF0IGl0ICpzaG91bGQqIGhhdmUgYmVlbiAqLwotICAgICAgICAgICBsb25nIGNvcnJlY3Rfc2NubyA9IChzY25vICYgMHhmZik7Ci0gICAgICAgICAgIGlmIChkZWJ1ZykKLSAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICJEZXRlY3RlZCBnbGliYyBidWc6IGJvZ3VzIHN5c3RlbSBjYWxsIG51bWJlciA9ICVsZCwgIgotCQkgICAiY29ycmVjdGluZyB0byAlbGRcbiIsCi0gICAgICAgICAgICAgICAgICAgc2NubywKLSAgICAgICAgICAgICAgICAgICBjb3JyZWN0X3Njbm8pOwotICAgICAgICAgICBzY25vID0gY29ycmVjdF9zY25vOwotICAgICAgIH0KLQotCi0gICAgICAgaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0gICAgICAgICAgICAgICAvKiBDaGVjayBpZiB3ZSByZXR1cm4gZnJvbSBleGVjdmUuICovCi0gICAgICAgICAgICAgICBpZiAoc2NubyA9PSAwICYmIHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgewotICAgICAgICAgICAgICAgICAgICAgICB0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgfQotI2VsaWYgZGVmaW5lZChTSDY0KQotCWlmICh1cGVlayhwaWQsIFJFR19TWVNDQUxMLCAmc2NubykgPCAwKQotCQlyZXR1cm4gLTE7Ci0gICAgICAgIHNjbm8gJj0gMHhGRkZGOwotCi0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgewotCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0KLSNlbmRpZiAvKiBTSDY0ICovCi0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBTVU5PUzQKLQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfYXJnWzddKSwgJnNjbm8pIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICAgLyogbmV3IHN5c2NhbGwgQUJJIHJldHVybnMgcmVzdWx0IGluIFIwICovCi0gICAgICAgIGlmICh1cGVlayhwaWQsIDQqUkVHX1JFRzAsIChsb25nICopJnIwKSA8IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChTSDY0KQotICAgICAgICAvKiBBQkkgZGVmaW5lcyByZXN1bHQgcmV0dXJuZWQgaW4gcjkgKi8KLSAgICAgICAgaWYgKHVwZWVrKHBpZCwgUkVHX0dFTkVSQUwoOSksIChsb25nICopJnI5KSA8IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotCi0jZW5kaWYKLSNpZmRlZiBVU0VfUFJPQ0ZTCi0jaWZkZWYgSEFWRV9QUl9TWVNDQUxMCi0Jc2NubyA9IHRjcC0+c3RhdHVzLlBSX1NZU0NBTEw7Ci0jZWxzZSAvKiAhSEFWRV9QUl9TWVNDQUxMICovCi0jaWZuZGVmIEZSRUVCU0QKLQlzY25vID0gdGNwLT5zdGF0dXMuUFJfV0hBVDsKLSNlbHNlIC8qIEZSRUVCU0QgKi8KLQlpZiAocHJlYWQodGNwLT5wZmRfcmVnLCAmcmVncywgc2l6ZW9mKHJlZ3MpLCAwKSA8IDApIHsKLQkgICAgICAgIHBlcnJvcigicHJlYWQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLQlzd2l0Y2ggKHJlZ3Mucl9lYXgpIHsKLQljYXNlIFNZU19zeXNjYWxsOgotCWNhc2UgU1lTX19fc3lzY2FsbDoKLSAgICAJICAgICAgICBwcmVhZCh0Y3AtPnBmZCwgJnNjbm8sIHNpemVvZihzY25vKSwgcmVncy5yX2VzcCArIHNpemVvZihpbnQpKTsKLQkgICAgICAgIGJyZWFrOwotCWRlZmF1bHQ6Ci0JICAgICAgICBzY25vID0gcmVncy5yX2VheDsKLQkgICAgICAgIGJyZWFrOwotCX0KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0jZW5kaWYgLyogIUhBVkVfUFJfU1lTQ0FMTCAqLwotI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpCi0JCXRjcC0+c2NubyA9IHNjbm87Ci0JcmV0dXJuIDE7Ci19Ci0KLQotbG9uZwota25vd25fc2Nubyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JbG9uZyBzY25vID0gdGNwLT5zY25vOwotCWlmIChzY25vID49IDAgJiYgc2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbc2Nub10ubmF0aXZlX3Njbm8gIT0gMCkKLQkJc2NubyA9IHN5c2VudFtzY25vXS5uYXRpdmVfc2NubzsKLQllbHNlCi0JCXNjbm8gKz0gTlJfU1lTQ0FMTF9CQVNFOwotCXJldHVybiBzY25vOwotfQotCi1zdGF0aWMgaW50Ci1zeXNjYWxsX2ZpeHVwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSNpZm5kZWYgVVNFX1BST0NGUwotCWludCBwaWQgPSB0Y3AtPnBpZDsKLSNlbHNlIC8qIFVTRV9QUk9DRlMgKi8KLQlpbnQgc2NubyA9IGtub3duX3Njbm8odGNwKTsKLQotCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgewotCQlpZiAodGNwLT5zdGF0dXMuUFJfV0hZICE9IFBSX1NZU0VOVFJZKSB7Ci0JCQlpZiAoCi0JCQkgICAgc2NubyA9PSBTWVNfZm9yawotI2lmZGVmIFNZU192Zm9yawotCQkJICAgIHx8IHNjbm8gPT0gU1lTX3Zmb3JrCi0jZW5kaWYgLyogU1lTX3Zmb3JrICovCi0jaWZkZWYgU1lTX2ZvcmsxCi0JCQkgICAgfHwgc2NubyA9PSBTWVNfZm9yazEKLSNlbmRpZiAvKiBTWVNfZm9yazEgKi8KLSNpZmRlZiBTWVNfZm9ya2FsbAotCQkJICAgIHx8IHNjbm8gPT0gU1lTX2ZvcmthbGwKLSNlbmRpZiAvKiBTWVNfZm9ya2FsbCAqLwotI2lmZGVmIFNZU19yZm9yazEKLQkJCSAgICB8fCBzY25vID09IFNZU19yZm9yazEKLSNlbmRpZiAvKiBTWVNfZm9yazEgKi8KLSNpZmRlZiBTWVNfcmZvcmthbGwKLQkJCSAgICB8fCBzY25vID09IFNZU19yZm9ya2FsbAotI2VuZGlmIC8qIFNZU19yZm9ya2FsbCAqLwotCQkJICAgICkgewotCQkJCS8qIFdlIGFyZSByZXR1cm5pbmcgaW4gdGhlIGNoaWxkLCBmYWtlIGl0LiAqLwotCQkJCXRjcC0+c3RhdHVzLlBSX1dIWSA9IFBSX1NZU0VOVFJZOwotCQkJCXRyYWNlX3N5c2NhbGwodGNwKTsKLQkJCQl0Y3AtPnN0YXR1cy5QUl9XSFkgPSBQUl9TWVNFWElUOwotCQkJfQotCQkJZWxzZSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiBtaXNzaW5nIGVudHJ5XG4iKTsKLQkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7Ci0JCQl9Ci0JCX0KLQl9Ci0JZWxzZSB7Ci0JCWlmICh0Y3AtPnN0YXR1cy5QUl9XSFkgIT0gUFJfU1lTRVhJVCkgewotCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiBtaXNzaW5nIGV4aXRcbiIpOwotCQkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKLQkJfQotCX0KLSNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCi0jaWZkZWYgU1VOT1M0Ci0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCWlmIChzY25vID09IDApIHsKLQkJCWZwcmludGYoc3RkZXJyLCAic3lzY2FsbDogbWlzc2luZyBlbnRyeVxuIik7Ci0JCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7Ci0JCX0KLQl9Ci0JZWxzZSB7Ci0JCWlmIChzY25vICE9IDApIHsKLQkJCWlmIChkZWJ1ZykgewotCQkJCS8qCi0JCQkJICogVGhpcyBoYXBwZW5zIHdoZW4gYSBzaWduYWwgaGFuZGxlcgotCQkJCSAqIGZvciBhIHNpZ25hbCB3aGljaCBpbnRlcnJ1cHRlZCBhCi0JCQkJICogYSBzeXN0ZW0gY2FsbCBtYWtlcyBhbm90aGVyIHN5c3RlbSBjYWxsLgotCQkJCSAqLwotCQkJCWZwcmludGYoc3RkZXJyLCAic3lzY2FsbDogbWlzc2luZyBleGl0XG4iKTsKLQkJCX0KLQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7Ci0JCX0KLQl9Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkIChJMzg2KQotCWlmICh1cGVlayhwaWQsIDQqRUFYLCAmZWF4KSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoZWF4ICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IGVheCA9ICVsZFxuIiwgZWF4KTsKLQkJcmV0dXJuIDA7Ci0JfQotI2VsaWYgZGVmaW5lZCAoWDg2XzY0KQotCWlmICh1cGVlayhwaWQsIDgqUkFYLCAmcmF4KSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKQotCQlyYXggPSAobG9uZyBpbnQpKGludClyYXg7IC8qIHNpZ24gZXh0ZW5kIGZyb20gMzIgYml0cyAqLwotCWlmIChyYXggIT0gLUVOT1NZUyAmJiAhKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgewotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgInN0cmF5IHN5c2NhbGwgZXhpdDogcmF4ID0gJWxkXG4iLCByYXgpOwotCQlyZXR1cm4gMDsKLQl9Ci0jZWxpZiBkZWZpbmVkIChTMzkwKSB8fCBkZWZpbmVkIChTMzkwWCkKLQlpZiAodXBlZWsocGlkLCBQVF9HUFIyLCAmZ3ByMikgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKHN5c2NhbGxfbW9kZSAhPSAtRU5PU1lTKQotCQlzeXNjYWxsX21vZGUgPSB0Y3AtPnNjbm87Ci0JaWYgKGdwcjIgIT0gc3lzY2FsbF9tb2RlICYmICEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLCAic3RyYXkgc3lzY2FsbCBleGl0OiBncHIyID0gJWxkXG4iLCBncHIyKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWVsc2UgaWYgKCgodGNwLT5mbGFncyAmIChUQ0JfSU5TWVNDQUxMfFRDQl9XQUlURVhFQ1ZFKSkKLQkJICA9PSAoVENCX0lOU1lTQ0FMTHxUQ0JfV0FJVEVYRUNWRSkpCi0JCSAmJiAoZ3ByMiA9PSAtRU5PU1lTIHx8IGdwcjIgPT0gdGNwLT5zY25vKSkgewotCQkvKgotCQkgKiBGYWtlIGEgcmV0dXJuIHZhbHVlIG9mIHplcm8uICBXZSBsZWF2ZSB0aGUgVENCX1dBSVRFWEVDVkUKLQkJICogZmxhZyBzZXQgZm9yIHRoZSBwb3N0LWV4ZWN2ZSBTSUdUUkFQIHRvIHNlZSBhbmQgcmVzZXQuCi0JCSAqLwotCQlncHIyID0gMDsKLQl9Ci0jZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotIyBkZWZpbmUgU09fTUFTSyAweDEwMDAwMDAwCi0JaWYgKHVwZWVrKHBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX0NDUiwgJmZsYWdzKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjMsICZyZXN1bHQpIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChmbGFncyAmIFNPX01BU0spCi0JCXJlc3VsdCA9IC1yZXN1bHQ7Ci0jZWxpZiBkZWZpbmVkIChNNjhLKQotCWlmICh1cGVlayhwaWQsIDQqUFRfRDAsICZkMCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKGQwICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IGQwID0gJWxkXG4iLCBkMCk7Ci0JCXJldHVybiAwOwotCX0KLSNlbGlmIGRlZmluZWQgKEFSTSkKLQkvKgotCSAqIE5vdGhpbmcgcmVxdWlyZWQKLQkgKi8KLSNlbGlmIGRlZmluZWQgKEhQUEEpCi0JaWYgKHVwZWVrKHBpZCwgUFRfR1IyOCwgJnIyOCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKElBNjQpCi0JaWYgKHVwZWVrKHBpZCwgUFRfUjEwLCAmcjEwKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAodXBlZWsocGlkLCBQVF9SOCwgJnI4KSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoaWEzMiAmJiByOCAhPSAtRU5PU1lTICYmICEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLCAic3RyYXkgc3lzY2FsbCBleGl0OiByOCA9ICVsZFxuIiwgcjgpOwotCQlyZXR1cm4gMDsKLQl9Ci0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWCAqLwotCXJldHVybiAxOwotfQotCi1zdGF0aWMgaW50Ci1nZXRfZXJyb3IodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCB1X2Vycm9yID0gMDsKLSNpZmRlZiBMSU5VWAotI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQkJaWYgKGdwcjIgJiYgKHVuc2lnbmVkKSAtZ3ByMiA8IG5lcnJub3MpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gLWdwcjI7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IGdwcjI7Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2Vsc2UgLyogIVMzOTAgJiYgIVMzOTBYICovCi0jaWZkZWYgSTM4NgotCQlpZiAoZWF4IDwgMCAmJiAtZWF4IDwgbmVycm5vcykgewotCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCXVfZXJyb3IgPSAtZWF4OwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSBlYXg7Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBYODZfNjQKLQkJaWYgKHJheCA8IDAgJiYgLXJheCA8IG5lcnJub3MpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gLXJheDsKLQkJfQotCQllbHNlIHsKLQkJCXRjcC0+dV9ydmFsID0gcmF4OwotCQkJdV9lcnJvciA9IDA7Ci0JCX0KLSNlbHNlCi0jaWZkZWYgSUE2NAotCQlpZiAoaWEzMikgewotCQkJaW50IGVycjsKLQotCQkJZXJyID0gKGludClyODsKLQkJCWlmIChlcnIgPCAwICYmIC1lcnIgPCBuZXJybm9zKSB7Ci0JCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCQl1X2Vycm9yID0gLWVycjsKLQkJCX0KLQkJCWVsc2UgewotCQkJCXRjcC0+dV9ydmFsID0gZXJyOwotCQkJCXVfZXJyb3IgPSAwOwotCQkJfQotCQl9IGVsc2UgewotCQkJaWYgKHIxMCkgewotCQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQkJdV9lcnJvciA9IHI4OwotCQkJfSBlbHNlIHsKLQkJCQl0Y3AtPnVfcnZhbCA9IHI4OwotCQkJCXVfZXJyb3IgPSAwOwotCQkJfQotCQl9Ci0jZWxzZSAvKiAhSUE2NCAqLwotI2lmZGVmIE1JUFMKLQkJaWYgKGEzKSB7Ci0JCSAgCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gcjI7Ci0JCX0gZWxzZSB7Ci0JCSAgCXRjcC0+dV9ydmFsID0gcjI7Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2Vsc2UKLSNpZmRlZiBQT1dFUlBDCi0JCWlmIChyZXN1bHQgJiYgKHVuc2lnbmVkIGxvbmcpIC1yZXN1bHQgPCBuZXJybm9zKSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IC1yZXN1bHQ7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHJlc3VsdDsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZWxzZSAvKiAhUE9XRVJQQyAqLwotI2lmZGVmIE02OEsKLQkJaWYgKGQwICYmICh1bnNpZ25lZCkgLWQwIDwgbmVycm5vcykgewotCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCXVfZXJyb3IgPSAtZDA7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IGQwOwotCQkJdV9lcnJvciA9IDA7Ci0JCX0KLSNlbHNlIC8qICFNNjhLICovCi0jaWZkZWYgQVJNCi0JCWlmIChyZWdzLkFSTV9yMCAmJiAodW5zaWduZWQpIC1yZWdzLkFSTV9yMCA8IG5lcnJub3MpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gLXJlZ3MuQVJNX3IwOwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSByZWdzLkFSTV9yMDsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZWxzZSAvKiAhQVJNICovCi0jaWZkZWYgQUxQSEEKLQkJaWYgKGEzKSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IHIwOwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSByMDsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZWxzZSAvKiAhQUxQSEEgKi8KLSNpZmRlZiBTUEFSQwotCQlpZiAocmVncy5yX3BzciAmIFBTUl9DKSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IHJlZ3Mucl9vMDsKLQkJfQotCQllbHNlIHsKLQkJCXRjcC0+dV9ydmFsID0gcmVncy5yX28wOwotCQkJdV9lcnJvciA9IDA7Ci0JCX0KLSNlbHNlIC8qICFTUEFSQyAqLwotI2lmZGVmIFNQQVJDNjQKLQkJaWYgKHJlZ3Mucl90c3RhdGUgJiAweDExMDAwMDAwMDBVTCkgewotCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCXVfZXJyb3IgPSByZWdzLnJfbzA7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHJlZ3Mucl9vMDsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZWxzZSAvKiAhU1BBUkM2NCAqLwotI2lmZGVmIEhQUEEKLQkJaWYgKHIyOCAmJiAodW5zaWduZWQpIC1yMjggPCBuZXJybm9zKSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IC1yMjg7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHIyODsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZWxzZQotI2lmZGVmIFNICi0gICAgICAgICAgICAgICAvKiBpbnRlcnByZXQgUjAgYXMgcmV0dXJuIHZhbHVlIG9yIGVycm9yIG51bWJlciAqLwotICAgICAgICAgICAgICAgaWYgKHIwICYmICh1bnNpZ25lZCkgLXIwIDwgbmVycm5vcykgewotICAgICAgICAgICAgICAgICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOwotICAgICAgICAgICAgICAgICAgICAgICB1X2Vycm9yID0gLXIwOwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gcjA7Ci0gICAgICAgICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAwOwotICAgICAgICAgICAgICAgfQotI2Vsc2UKLSNpZmRlZiBTSDY0Ci0gICAgICAgICAgICAgICAgLyogaW50ZXJwcmV0IHJlc3VsdCBhcyByZXR1cm4gdmFsdWUgb3IgZXJyb3IgbnVtYmVyICovCi0gICAgICAgICAgICAgICAgaWYgKHI5ICYmICh1bnNpZ25lZCkgLXI5IDwgbmVycm5vcykgewotCSAgICAgICAgICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOwotCSAgICAgICAgICAgICAgICB1X2Vycm9yID0gLXI5OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gcjk7Ci0JICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAwOwotICAgICAgICAgICAgICAgIH0KLSNlbmRpZiAvKiBTSDY0ICovCi0jZW5kaWYgLyogU0ggKi8KLSNlbmRpZiAvKiBIUFBBICovCi0jZW5kaWYgLyogU1BBUkMgKi8KLSNlbmRpZiAvKiBTUEFSQzY0ICovCi0jZW5kaWYgLyogQUxQSEEgKi8KLSNlbmRpZiAvKiBBUk0gKi8KLSNlbmRpZiAvKiBNNjhLICovCi0jZW5kaWYgLyogUE9XRVJQQyAqLwotI2VuZGlmIC8qIE1JUFMgKi8KLSNlbmRpZiAvKiBJQTY0ICovCi0jZW5kaWYgLyogWDg2XzY0ICovCi0jZW5kaWYgLyogSTM4NiAqLwotI2VuZGlmIC8qIFMzOTAgfHwgUzM5MFggKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotCQkvKiBnZXQgZXJyb3IgY29kZSBmcm9tIHVzZXIgc3RydWN0ICovCi0JCWlmICh1cGVlayhwaWQsIHVvZmYodV9lcnJvciksICZ1X2Vycm9yKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCXVfZXJyb3IgPj49IDI0OyAvKiB1X2Vycm9yIGlzIGEgY2hhciAqLwotCi0JCS8qIGdldCBzeXN0ZW0gY2FsbCByZXR1cm4gdmFsdWUgKi8KLQkJaWYgKHVwZWVrKHBpZCwgdW9mZih1X3J2YWwxKSwgJnRjcC0+dV9ydmFsKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0jaWZkZWYgU1ZSNAotI2lmZGVmIFNQQVJDCi0JCS8qIEp1ZGljaW91cyBndWVzc2luZyBnb2VzIGEgbG9uZyB3YXkuICovCi0JCWlmICh0Y3AtPnN0YXR1cy5wcl9yZWdbUl9QU1JdICYgMHgxMDAwMDApIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gdGNwLT5zdGF0dXMucHJfcmVnW1JfTzBdOwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSB0Y3AtPnN0YXR1cy5wcl9yZWdbUl9PMF07Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2VuZGlmIC8qIFNQQVJDICovCi0jaWZkZWYgSTM4NgotCQkvKiBXYW5uYSBrbm93IGhvdyB0byBraWxsIGFuIGhvdXIgc2luZ2xlLXN0ZXBwaW5nPyAqLwotCQlpZiAodGNwLT5zdGF0dXMuUFJfUkVHW0VGTF0gJiAweDEpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gdGNwLT5zdGF0dXMuUFJfUkVHW0VBWF07Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tFQVhdOwotI2lmZGVmIEhBVkVfTE9OR19MT05HCi0JCQl0Y3AtPnVfbHJ2YWwgPQotCQkJCSgodW5zaWduZWQgbG9uZyBsb25nKSB0Y3AtPnN0YXR1cy5QUl9SRUdbRURYXSA8PCAzMikgKwotCQkJCXRjcC0+c3RhdHVzLlBSX1JFR1tFQVhdOwotI2VuZGlmCi0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2VuZGlmIC8qIEkzODYgKi8KLSNpZmRlZiBYODZfNjQKLQkJLyogV2FubmEga25vdyBob3cgdG8ga2lsbCBhbiBob3VyIHNpbmdsZS1zdGVwcGluZz8gKi8KLQkJaWYgKHRjcC0+c3RhdHVzLlBSX1JFR1tFRkxBR1NdICYgMHgxKSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IHRjcC0+c3RhdHVzLlBSX1JFR1tSQVhdOwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSB0Y3AtPnN0YXR1cy5QUl9SRUdbUkFYXTsKLQkJCXVfZXJyb3IgPSAwOwotCQl9Ci0jZW5kaWYgLyogWDg2XzY0ICovCi0jaWZkZWYgTUlQUwotCQlpZiAodGNwLT5zdGF0dXMucHJfcmVnW0NUWF9BM10pIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gdGNwLT5zdGF0dXMucHJfcmVnW0NUWF9WMF07Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHRjcC0+c3RhdHVzLnByX3JlZ1tDVFhfVjBdOwotCQkJdV9lcnJvciA9IDA7Ci0JCX0KLSNlbmRpZiAvKiBNSVBTICovCi0jZW5kaWYgLyogU1ZSNCAqLwotI2lmZGVmIEZSRUVCU0QKLQkJaWYgKHJlZ3Mucl9lZmxhZ3MgJiBQU0xfQykgewotIAkJICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOwotCQkgICAgICAgIHVfZXJyb3IgPSByZWdzLnJfZWF4OwotCQl9IGVsc2UgewotCQkgICAgICAgIHRjcC0+dV9ydmFsID0gcmVncy5yX2VheDsKLQkJCXRjcC0+dV9scnZhbCA9Ci0JCQkgICgodW5zaWduZWQgbG9uZyBsb25nKSByZWdzLnJfZWR4IDw8IDMyKSArICByZWdzLnJfZWF4OwotCQkgICAgICAgIHVfZXJyb3IgPSAwOwotCQl9Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCXRjcC0+dV9lcnJvciA9IHVfZXJyb3I7Ci0JcmV0dXJuIDE7Ci19Ci0KLWludAotZm9yY2VfcmVzdWx0KHRjcCwgZXJyb3IsIHJ2YWwpCi0Jc3RydWN0IHRjYiAqdGNwOwotCWludCBlcnJvcjsKLQlsb25nIHJ2YWw7Ci17Ci0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0JZ3ByMiA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKilQVF9HUFIyLCBncHIyKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbHNlIC8qICFTMzkwICYmICFTMzkwWCAqLwotI2lmZGVmIEkzODYKLQllYXggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7Ci0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKEVBWCAqIDQpLCBlYXgpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBYODZfNjQKLQlyYXggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7Ci0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJBWCAqIDgpLCByYXgpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2Vsc2UKLSNpZmRlZiBJQTY0Ci0JaWYgKGlhMzIpIHsKLQkJcjggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7Ci0JCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9SOCksIHI4KSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JfQotCWVsc2UgewotCQlpZiAoZXJyb3IpIHsKLQkJCXI4ID0gZXJyb3I7Ci0JCQlyMTAgPSAtMTsKLQkJfQotCQllbHNlIHsKLQkJCXI4ID0gcnZhbDsKLQkJCXIxMCA9IDA7Ci0JCX0KLQkJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX1I4KSwgcjgpIDwgMCB8fAotCQkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfUjEwKSwgcjEwKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JfQotI2Vsc2UgLyogIUlBNjQgKi8KLSNpZmRlZiBNSVBTCi0JaWYgKGVycm9yKSB7Ci0JCXIyID0gZXJyb3I7Ci0JCWEzID0gLTE7Ci0JfQotCWVsc2UgewotCQlyMiA9IHJ2YWw7Ci0JCWEzID0gMDsKLQl9Ci0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19BMyksIGEzKSA8IDAgfHwKLQkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX1YwKSwgcjIpIDwgMCkKLQkgICAgCXJldHVybiAtMTsKLSNlbHNlCi0jaWZkZWYgUE9XRVJQQwotCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX0NDUiwgJmZsYWdzKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoZXJyb3IpIHsKLQkJZmxhZ3MgfD0gU09fTUFTSzsKLQkJcmVzdWx0ID0gZXJyb3I7Ci0JfQotCWVsc2UgewotCQlmbGFncyAmPSB+U09fTUFTSzsKLQkJcmVzdWx0ID0gcnZhbDsKLQl9Ci0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9DQ1IpLCBmbGFncykgPCAwIHx8Ci0JICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMyksIHJlc3VsdCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhUE9XRVJQQyAqLwotI2lmZGVmIE02OEsKLQlkMCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCpQVF9EMCksIGQwKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbHNlIC8qICFNNjhLICovCi0jaWZkZWYgQVJNCi0gICAgICAgcmVncy5BUk1fcjAgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7Ci0gICAgICAgaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqMCksIHJlZ3MuQVJNX3IwKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbHNlIC8qICFBUk0gKi8KLSNpZmRlZiBBTFBIQQotCWlmIChlcnJvcikgewotCQlhMyA9IC0xOwotCQlyMCA9IGVycm9yOwotCX0KLQllbHNlIHsKLQkJYTMgPSAwOwotCQlyMCA9IHJ2YWw7Ci0JfQotCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfQTMpLCBhMykgPCAwIHx8Ci0JICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19SMCksIHIwKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbHNlIC8qICFBTFBIQSAqLwotI2lmZGVmIFNQQVJDCi0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChlcnJvcikgewotCQlyZWdzLnJfcHNyIHw9IFBTUl9DOwotCQlyZWdzLnJfbzAgPSBlcnJvcjsKLQl9Ci0JZWxzZSB7Ci0JCXJlZ3Mucl9wc3IgJj0gflBTUl9DOwotCQlyZWdzLnJfbzAgPSBydmFsOwotCX0KLQlpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhU1BBUkMgKi8KLSNpZmRlZiBTUEFSQzY0Ci0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChlcnJvcikgewotCQlyZWdzLnJfdHN0YXRlIHw9IDB4MTEwMDAwMDAwMFVMOwotCQlyZWdzLnJfbzAgPSBlcnJvcjsKLQl9Ci0JZWxzZSB7Ci0JCXJlZ3Mucl90c3RhdGUgJj0gfjB4MTEwMDAwMDAwMFVMOwotCQlyZWdzLnJfbzAgPSBydmFsOwotCX0KLQlpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhU1BBUkM2NCAqLwotI2lmZGVmIEhQUEEKLQlyMjggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7Ci0JaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX0dSMjgpLCByMjgpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2Vsc2UKLSNpZmRlZiBTSAotCXIwID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwotCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KlJFR19SRUcwKSwgcjApIDwgMCkKLQkJcmV0dXJuIC0xOwotI2Vsc2UKLSNpZmRlZiBTSDY0Ci0gICAgICAgIHI5ID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwotCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKVJFR19HRU5FUkFMKDkpLCByOSkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZW5kaWYgLyogU0g2NCAqLwotI2VuZGlmIC8qIFNIICovCi0jZW5kaWYgLyogSFBQQSAqLwotI2VuZGlmIC8qIFNQQVJDICovCi0jZW5kaWYgLyogU1BBUkM2NCAqLwotI2VuZGlmIC8qIEFMUEhBICovCi0jZW5kaWYgLyogQVJNICovCi0jZW5kaWYgLyogTTY4SyAqLwotI2VuZGlmIC8qIFBPV0VSUEMgKi8KLSNlbmRpZiAvKiBNSVBTICovCi0jZW5kaWYgLyogSUE2NCAqLwotI2VuZGlmIC8qIFg4Nl82NCAqLwotI2VuZGlmIC8qIEkzODYgKi8KLSNlbmRpZiAvKiBTMzkwIHx8IFMzOTBYICovCi0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBTVU5PUzQKLQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKil1b2ZmKHVfZXJyb3IpLAotCQkgICBlcnJvciA8PCAyNCkgPCAwIHx8Ci0JICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopdW9mZih1X3J2YWwxKSwgcnZhbCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0jaWZkZWYgU1ZSNAotCS8qIFhYWCBubyBjbHVlICovCi0JcmV0dXJuIC0xOwotI2VuZGlmIC8qIFNWUjQgKi8KLSNpZmRlZiBGUkVFQlNECi0JaWYgKHByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCkgPCAwKSB7Ci0JICAgICAgICBwZXJyb3IoInByZWFkIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0JaWYgKGVycm9yKSB7Ci0JCXJlZ3Mucl9lZmxhZ3MgfD0gUFNMX0M7Ci0JCXJlZ3Mucl9lYXggPSBlcnJvcjsKLQl9Ci0JZWxzZSB7Ci0JCXJlZ3Mucl9lZmxhZ3MgJj0gflBTTF9DOwotCQlyZWdzLnJfZWF4ID0gcnZhbDsKLQl9Ci0JaWYgKHB3cml0ZSh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApIDwgMCkgewotCSAgICAgICAgcGVycm9yKCJwd3JpdGUiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0KLQkvKiBBbGwgYnJhbmNoZXMgcmVhY2ggaGVyZSBvbiBzdWNjZXNzIChvbmx5KS4gICovCi0JdGNwLT51X2Vycm9yID0gZXJyb3I7Ci0JdGNwLT51X3J2YWwgPSBydmFsOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci1zeXNjYWxsX2VudGVyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSNpZm5kZWYgVVNFX1BST0NGUwotCWludCBwaWQgPSB0Y3AtPnBpZDsKLSNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwotI2lmZGVmIExJTlVYCi0jaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQotCXsKLQkJaW50IGk7Ci0JCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJZWxzZQotICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCxpPT0wID8gUFRfT1JJR0dQUjI6UFRfR1BSMitpKnNpemVvZihsb25nKSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0JCX0KLQl9Ci0jZWxpZiBkZWZpbmVkIChBTFBIQSkKLQl7Ci0JCWludCBpOwotCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQotCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKLQkJCS8qIFdUQTogaWYgc2NubyBpcyBvdXQtb2YtYm91bmRzIHRoaXMgd2lsbCBib21iLiBBZGQgcmFuZ2UtY2hlY2sKLQkJCSAqIGZvciBzY25vIHNvbWV3aGVyZSBhYm92ZSBoZXJlIQotCQkJICovCi0JCQlpZiAodXBlZWsocGlkLCBSRUdfQTAraSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0JCX0KLQl9Ci0jZWxpZiBkZWZpbmVkIChJQTY0KQotCXsKLQkJaWYgKCFpYTMyKSB7Ci0JCQl1bnNpZ25lZCBsb25nICpvdXQwLCAqcmJzX2VuZCwgY2ZtLCBzb2YsIHNvbCwgaTsKLQkJCS8qIGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGgga2VybmVsIDwgMi40LjQuLi4gKi8KLSMJCQlpZm5kZWYgUFRfUkJTX0VORAotIwkJCSAgZGVmaW5lIFBUX1JCU19FTkQJUFRfQVJfQlNQCi0jCQkJZW5kaWYKLQotCQkJaWYgKHVwZWVrKHBpZCwgUFRfUkJTX0VORCwgKGxvbmcgKikgJnJic19lbmQpIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0JCQlpZiAodXBlZWsocGlkLCBQVF9DRk0sIChsb25nICopICZjZm0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0KLQkJCXNvZiA9IChjZm0gPj4gMCkgJiAweDdmOwotCQkJc29sID0gKGNmbSA+PiA3KSAmIDB4N2Y7Ci0JCQlvdXQwID0gaWE2NF9yc2Vfc2tpcF9yZWdzKHJic19lbmQsIC1zb2YgKyBzb2wpOwotCi0JCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzCi0JCQkgICAgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCQllbHNlCi0JCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyArK2kpIHsKLQkJCQlpZiAodW1vdmVuKHRjcCwgKHVuc2lnbmVkIGxvbmcpIGlhNjRfcnNlX3NraXBfcmVncyhvdXQwLCBpKSwKLQkJCQkJICAgc2l6ZW9mKGxvbmcpLCAoY2hhciAqKSAmdGNwLT51X2FyZ1tpXSkgPCAwKQotCQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0JCX0gZWxzZSB7Ci0JCQlpbnQgaTsKLQotCQkJaWYgKC8qIEVCWCA9IG91dDAgKi8KLQkJCSAgICB1cGVlayhwaWQsIFBUX1IxMSwgKGxvbmcgKikgJnRjcC0+dV9hcmdbMF0pIDwgMAotCQkJICAgIC8qIEVDWCA9IG91dDEgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1I5LCAgKGxvbmcgKikgJnRjcC0+dV9hcmdbMV0pIDwgMAotCQkJICAgIC8qIEVEWCA9IG91dDIgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1IxMCwgKGxvbmcgKikgJnRjcC0+dV9hcmdbMl0pIDwgMAotCQkJICAgIC8qIEVTSSA9IG91dDMgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1IxNCwgKGxvbmcgKikgJnRjcC0+dV9hcmdbM10pIDwgMAotCQkJICAgIC8qIEVESSA9IG91dDQgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1IxNSwgKGxvbmcgKikgJnRjcC0+dV9hcmdbNF0pIDwgMAotCQkJICAgIC8qIEVCUCA9IG91dDUgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1IxMywgKGxvbmcgKikgJnRjcC0+dV9hcmdbNV0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0KLQkJCWZvciAoaSA9IDA7IGkgPCA2OyArK2kpCi0JCQkJLyogdHJ1bmNhdGUgYXdheSBJVkUgc2lnbi1leHRlbnNpb24gKi8KLQkJCQl0Y3AtPnVfYXJnW2ldICY9IDB4ZmZmZmZmZmY7Ci0KLQkJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMKLQkJCSAgICAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJCWVsc2UKLQkJCQl0Y3AtPnVfbmFyZ3MgPSA1OwotCQl9Ci0JfQotI2VsaWYgZGVmaW5lZCAoTUlQUykKLQl7Ci0JICAJbG9uZyBzcDsKLQkgIAlpbnQgaSwgbmFyZ3M7Ci0KLQkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJCW5hcmdzID0gdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWVsc2UKLSAgICAgCSAgICAgICAgCW5hcmdzID0gdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCWlmKG5hcmdzID4gNCkgewotCQkgIAlpZih1cGVlayhwaWQsIFJFR19TUCwgJnNwKSA8IDApCi0JCQkgIAlyZXR1cm4gLTE7Ci0JCQlmb3IoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJCSAgCWlmICh1cGVlayhwaWQsIFJFR19BMCArIGksICZ0Y3AtPnVfYXJnW2ldKTwwKQotCQkJCSAgCXJldHVybiAtMTsKLQkJCX0KLQkJCXVtb3Zlbih0Y3AsIHNwKzE2LCAobmFyZ3MtNCkgKiBzaXplb2YodGNwLT51X2FyZ1swXSksCi0JCQkgICAgICAgKGNoYXIgKikodGNwLT51X2FyZyArIDQpKTsKLQkJfSBlbHNlIHsKLQkJICAJZm9yKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykgewotCQkJICAJaWYgKHVwZWVrKHBpZCwgUkVHX0EwICsgaSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQkgIAlyZXR1cm4gLTE7Ci0JCQl9Ci0JCX0KLQl9Ci0jZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotI2lmbmRlZiBQVF9PUklHX1IzCi0jZGVmaW5lIFBUX09SSUdfUjMgMzQKLSNlbmRpZgotCXsKLQkJaW50IGk7Ci0JCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJZWxzZQotICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCwgKGk9PTApID8KLQkJCQkoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX09SSUdfUjMpIDoKLQkJCQkoKGkrUFRfUjMpKnNpemVvZih1bnNpZ25lZCBsb25nKSksCi0JCQkJCSZ0Y3AtPnVfYXJnW2ldKSA8IDApCi0JCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotI2VsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0JewotCQlpbnQgaTsKLQotCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQotCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCi0JCQl0Y3AtPnVfYXJnW2ldID0gKigoJnJlZ3Mucl9vMCkgKyBpKTsKLQl9Ci0jZWxpZiBkZWZpbmVkIChIUFBBKQotCXsKLQkJaW50IGk7Ci0KLQkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCQllbHNlCi0gICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKLQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7Ci0JCQlpZiAodXBlZWsocGlkLCBQVF9HUjI2LTQqaSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0JCX0KLQl9Ci0jZWxpZiBkZWZpbmVkKEFSTSkKLQl7Ci0JCWludCBpOwotCi0JCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJZWxzZQotCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKLQkJCXRjcC0+dV9hcmdbaV0gPSByZWdzLnVyZWdzW2ldOwotIAl9Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIHsKLSAgICAgICAgICAgICAgIGludCBpOwotICAgICAgICAgICAgICAgc3RhdGljIGludCBzeXNjYWxsX3JlZ3NbXSA9IHsKLSAgICAgICAgICAgICAgICAgICBSRUdfUkVHMCs0LCBSRUdfUkVHMCs1LCBSRUdfUkVHMCs2LCBSRUdfUkVHMCs3LAotICAgICAgICAgICAgICAgICAgIFJFR19SRUcwLCBSRUdfUkVHMCsxLCBSRUdfUkVHMCsyCi0gICAgICAgICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgICAgdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0gICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVwZWVrKHBpZCwgNCpzeXNjYWxsX3JlZ3NbaV0sICZ0Y3AtPnVfYXJnW2ldKSA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZWxpZiBkZWZpbmVkKFNINjQpCi0JewotCQlpbnQgaTsKLSAgICAgICAgICAgICAgICAvKiBSZWdpc3RlcnMgdXNlZCBieSBTSDUgTGludXggc3lzdGVtIGNhbGxzIGZvciBwYXJhbWV0ZXJzICovCi0JCXN0YXRpYyBpbnQgc3lzY2FsbF9yZWdzW10gPSB7IDIsIDMsIDQsIDUsIDYsIDcgfTsKLQotCQkvKgotCQkgKiBUT0RPOiBzaG91bGQgYWxzbyBjaGVjayB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGVuY29kZWQKLQkJICogICAgICAgaW4gdGhlIHRyYXAgbnVtYmVyIG1hdGNoZXMgdGhlIG51bWJlciBzdHJhY2UgZXhwZWN0cy4KLQkJICovCi0JCS8qCi0JCSAgICBhc3NlcnQoc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgPAotCQkgICAgCXNpemVvZihzeXNjYWxsX3JlZ3MpL3NpemVvZihzeXNjYWxsX3JlZ3NbMF0pKTsKLQkJICovCi0KLQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCwgUkVHX0dFTkVSQUwoc3lzY2FsbF9yZWdzW2ldKSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQlyZXR1cm4gLTE7Ci0JCX0KLQl9Ci0KLSNlbGlmIGRlZmluZWQoWDg2XzY0KQotCXsKLQkJaW50IGk7Ci0JCXN0YXRpYyBpbnQgYXJncmVnW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTXVtNQVhfQVJHU10gPSB7Ci0JCQl7UkRJLFJTSSxSRFgsUjEwLFI4LFI5fSwJLyogeDg2LTY0IEFCSSAqLwotCQkJe1JCWCxSQ1gsUkRYLFJTSSxSREksUkJQfQkvKiBpMzg2IEFCSSAqLwotCQl9OwotCi0JCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQkJZWxzZQotICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7Ci0JCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCwgYXJncmVnW2N1cnJlbnRfcGVyc29uYWxpdHldW2ldKjgsICZ0Y3AtPnVfYXJnW2ldKSA8IDApCi0JCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotI2Vsc2UgLyogT3RoZXIgYXJjaGl0ZWN0dXJlIChsaWtlIGkzODYpICgzMmJpdHMgc3BlY2lmaWMpICovCi0JewotCQlpbnQgaTsKLQkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCQllbHNlCi0gICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKLQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7Ci0JCQlpZiAodXBlZWsocGlkLCBpKjQsICZ0Y3AtPnVfYXJnW2ldKSA8IDApCi0JCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotI2VuZGlmCi0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBTVU5PUzQKLQl7Ci0JCWludCBpOwotCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQotCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKLQkJCXN0cnVjdCB1c2VyICp1OwotCi0JCQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfYXJnWzBdKSArCi0JCQkgICAgKGkqc2l6ZW9mKHUtPnVfYXJnWzBdKSksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCi0JCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotI2VuZGlmIC8qIFNVTk9TNCAqLwotI2lmZGVmIFNWUjQKLSNpZmRlZiBNSVBTCi0JLyoKLQkgKiBTR0kgaXMgYnJva2VuOiBldmVuIHRob3VnaCBpdCBoYXMgcHJfc3lzYXJnLCBpdCBkb2Vzbid0Ci0JICogc2V0IHRoZW0gb24gc3lzdGVtIGNhbGwgZW50cnkuICBHZXQgYSBjbHVlLgotCSAqLwotCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCWVsc2UKLQkJdGNwLT51X25hcmdzID0gdGNwLT5zdGF0dXMucHJfbnN5c2FyZzsKLQlpZiAodGNwLT51X25hcmdzID4gNCkgewotCQltZW1jcHkodGNwLT51X2FyZywgJnRjcC0+c3RhdHVzLnByX3JlZ1tDVFhfQTBdLAotCQkJNCpzaXplb2YodGNwLT51X2FyZ1swXSkpOwotCQl1bW92ZW4odGNwLCB0Y3AtPnN0YXR1cy5wcl9yZWdbQ1RYX1NQXSArIDE2LAotCQkJKHRjcC0+dV9uYXJncyAtIDQpKnNpemVvZih0Y3AtPnVfYXJnWzBdKSwgKGNoYXIgKikgKHRjcC0+dV9hcmcgKyA0KSk7Ci0JfQotCWVsc2UgewotCQltZW1jcHkodGNwLT51X2FyZywgJnRjcC0+c3RhdHVzLnByX3JlZ1tDVFhfQTBdLAotCQkJdGNwLT51X25hcmdzKnNpemVvZih0Y3AtPnVfYXJnWzBdKSk7Ci0JfQotI2VsaWYgVU5JWFdBUkUgPj0gMgotCS8qCi0JICogTGlrZSBTR0ksIFVuaXhXYXJlIGRvZXNuJ3Qgc2V0IHByX3N5c2FyZyB1bnRpbCBzeXN0ZW0gY2FsbCBleGl0Ci0JICovCi0JaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKLQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7Ci0JZWxzZQotCQl0Y3AtPnVfbmFyZ3MgPSB0Y3AtPnN0YXR1cy5wcl9sd3AucHJfbnN5c2FyZzsKLQl1bW92ZW4odGNwLCB0Y3AtPnN0YXR1cy5QUl9SRUdbVUVTUF0gKyA0LAotCQl0Y3AtPnVfbmFyZ3Mqc2l6ZW9mKHRjcC0+dV9hcmdbMF0pLCAoY2hhciAqKSB0Y3AtPnVfYXJnKTsKLSNlbGlmIGRlZmluZWQgKEhBVkVfUFJfU1lTQ0FMTCkKLQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQotCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKLQllbHNlCi0JCXRjcC0+dV9uYXJncyA9IHRjcC0+c3RhdHVzLnByX25zeXNhcmc7Ci0JewotCQlpbnQgaTsKLQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKQotCQkJdGNwLT51X2FyZ1tpXSA9IHRjcC0+c3RhdHVzLnByX3N5c2FyZ1tpXTsKLQl9Ci0jZWxpZiBkZWZpbmVkIChJMzg2KQotCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCi0JCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCWVsc2UKLQkJdGNwLT51X25hcmdzID0gNTsKLQl1bW92ZW4odGNwLCB0Y3AtPnN0YXR1cy5QUl9SRUdbVUVTUF0gKyA0LAotCQl0Y3AtPnVfbmFyZ3Mqc2l6ZW9mKHRjcC0+dV9hcmdbMF0pLCAoY2hhciAqKSB0Y3AtPnVfYXJnKTsKLSNlbHNlCi0JSSBET05UIEtOT1cgV0hBVCBUTyBETwotI2VuZGlmIC8qICFIQVZFX1BSX1NZU0NBTEwgKi8KLSNlbmRpZiAvKiBTVlI0ICovCi0jaWZkZWYgRlJFRUJTRAotCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYKLQkgICAgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgPiB0Y3AtPnN0YXR1cy52YWwpCi0JCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotCWVsc2UKLQkgIAl0Y3AtPnVfbmFyZ3MgPSB0Y3AtPnN0YXR1cy52YWw7Ci0JaWYgKHRjcC0+dV9uYXJncyA8IDApCi0JCXRjcC0+dV9uYXJncyA9IDA7Ci0JaWYgKHRjcC0+dV9uYXJncyA+IE1BWF9BUkdTKQotCQl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKLQlzd2l0Y2gocmVncy5yX2VheCkgewotCWNhc2UgU1lTX19fc3lzY2FsbDoKLQkJcHJlYWQodGNwLT5wZmQsICZ0Y3AtPnVfYXJnLCB0Y3AtPnVfbmFyZ3MgKiBzaXplb2YodW5zaWduZWQgbG9uZyksCi0JCSAgICAgIHJlZ3Mucl9lc3AgKyBzaXplb2YoaW50KSArIHNpemVvZihxdWFkX3QpKTsKLQkgIGJyZWFrOwotICAgICAgICBjYXNlIFNZU19zeXNjYWxsOgotCQlwcmVhZCh0Y3AtPnBmZCwgJnRjcC0+dV9hcmcsIHRjcC0+dV9uYXJncyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwKLQkJICAgICAgcmVncy5yX2VzcCArIDIgKiBzaXplb2YoaW50KSk7Ci0JICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLQkJcHJlYWQodGNwLT5wZmQsICZ0Y3AtPnVfYXJnLCB0Y3AtPnVfbmFyZ3MgKiBzaXplb2YodW5zaWduZWQgbG9uZyksCi0JCSAgICAgIHJlZ3Mucl9lc3AgKyBzaXplb2YoaW50KSk7Ci0JICBicmVhazsKLQl9Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotCXJldHVybiAxOwotfQotCi1pbnQKLXRyYWNlX3N5c2NhbGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWludCBzeXNfcmVzOwotCXN0cnVjdCB0aW1ldmFsIHR2OwotCWludCByZXM7Ci0KLQkvKiBNZWFzdXJlIHRoZSBleGl0IHRpbWUgYXMgZWFybHkgYXMgcG9zc2libGUgdG8gYXZvaWQgZXJyb3JzLiAqLwotCWlmIChkdGltZSAmJiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKQotCQlnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKLQotCXJlcyA9IGdldF9zY25vKHRjcCk7Ci0JaWYgKHJlcyAhPSAxKQotCQlyZXR1cm4gcmVzOwotCi0JcmVzID0gc3lzY2FsbF9maXh1cCh0Y3ApOwotCWlmIChyZXMgIT0gMSkKLQkJcmV0dXJuIHJlczsKLQotCWlmICh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkgewotCQlsb25nIHVfZXJyb3I7Ci0JCXJlcyA9IGdldF9lcnJvcih0Y3ApOwotCQlpZiAocmVzICE9IDEpCi0JCQlyZXR1cm4gcmVzOwotCi0JCWludGVybmFsX3N5c2NhbGwodGNwKTsKLQkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJgotCQkgICAgIShxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1RSQUNFKSkgewotCQkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfUkVQUklOVCkgewotCQkJcHJpbnRsZWFkZXIodGNwKTsKLQkJCXRwcmludGYoIjwuLi4gIik7Ci0JCQlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwKQotCQkJCXRwcmludGYoInN5c2NhbGxfJWx1IiwgdGNwLT5zY25vKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIlcyIsIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19uYW1lKTsKLQkJCXRwcmludGYoIiByZXN1bWVkPiAiKTsKLQkJfQotCi0JCWlmIChjZmxhZyAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgdGNwLT5zY25vID49IDApIHsKLQkJCWlmIChjb3VudHMgPT0gTlVMTCkgewotCQkJCWNvdW50cyA9IGNhbGxvYyhzaXplb2YgKmNvdW50cywgbnN5c2NhbGxzKTsKLQkJCQlpZiAoY291bnRzID09IE5VTEwpIHsKLQkJCQkJZnByaW50ZihzdGRlcnIsICJcCi1zdHJhY2U6IG91dCBvZiBtZW1vcnkgZm9yIGNhbGwgY291bnRzXG4iKTsKLQkJCQkJZXhpdCgxKTsKLQkJCQl9Ci0JCQl9Ci0KLQkJCWNvdW50c1t0Y3AtPnNjbm9dLmNhbGxzKys7Ci0JCQlpZiAodGNwLT51X2Vycm9yKQotCQkJCWNvdW50c1t0Y3AtPnNjbm9dLmVycm9ycysrOwotCQkJdHZfc3ViKCZ0diwgJnR2LCAmdGNwLT5ldGltZSk7Ci0jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUwotI2lmZGVmIExJTlVYCi0JCQlpZiAodHZfY21wKCZ0diwgJnRjcC0+ZHRpbWUpID4gMCkgewotCQkJCXN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBvbmVfdGljazsKLQkJCQlpZiAob25lX3RpY2sudHZfdXNlYyA9PSAwKSB7Ci0JCQkJCS8qIEluaXRpYWxpemUgaXQuICAqLwotCQkJCQlzdHJ1Y3QgaXRpbWVydmFsIGl0OwotCQkJCQltZW1zZXQoJml0LCAwLCBzaXplb2YgaXQpOwotCQkJCQlpdC5pdF9pbnRlcnZhbC50dl91c2VjID0gMTsKLQkJCQkJc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAmaXQsIE5VTEwpOwotCQkJCQlnZXRpdGltZXIoSVRJTUVSX1JFQUwsICZpdCk7Ci0JCQkJCW9uZV90aWNrID0gaXQuaXRfaW50ZXJ2YWw7Ci0JCQkJfQotCi0JCQkJaWYgKHR2X256KCZ0Y3AtPmR0aW1lKSkKLQkJCQkJdHYgPSB0Y3AtPmR0aW1lOwotCQkJCWVsc2UgaWYgKHR2X2NtcCgmdHYsICZvbmVfdGljaykgPiAwKSB7Ci0JCQkJCWlmICh0dl9jbXAoJnNob3J0ZXN0LCAmb25lX3RpY2spIDwgMCkKLQkJCQkJCXR2ID0gc2hvcnRlc3Q7Ci0JCQkJCWVsc2UKLQkJCQkJCXR2ID0gb25lX3RpY2s7Ci0JCQkJfQotCQkJfQotI2VuZGlmIC8qIExJTlVYICovCi0jZW5kaWYKLQkJCWlmICh0dl9jbXAoJnR2LCAmc2hvcnRlc3QpIDwgMCkKLQkJCQlzaG9ydGVzdCA9IHR2OwotCQkJdHZfYWRkKCZjb3VudHNbdGNwLT5zY25vXS50aW1lLAotCQkJCSZjb3VudHNbdGNwLT5zY25vXS50aW1lLCAmdHYpOwotCQkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJaWYgKHRjcC0+c2NubyA+PSBuc3lzY2FsbHMgfHwgdGNwLT5zY25vIDwgMAotCQkgICAgfHwgKHF1YWxfZmxhZ3NbdGNwLT5zY25vXSAmIFFVQUxfUkFXKSkKLQkJCXN5c19yZXMgPSBwcmludGFyZ3ModGNwKTsKLQkJZWxzZSB7Ci0JCQlpZiAobm90X2ZhaWxpbmdfb25seSAmJiB0Y3AtPnVfZXJyb3IpCi0JCQkJcmV0dXJuIDA7CS8qIGlnbm9yZSBmYWlsZWQgc3lzY2FsbHMgKi8KLQkJCXN5c19yZXMgPSAoKnN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jKSh0Y3ApOwotCQl9Ci0JCXVfZXJyb3IgPSB0Y3AtPnVfZXJyb3I7Ci0JCXRwcmludGYoIikgIik7Ci0JCXRhYnRvKGFjb2x1bW4pOwotCQlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwIHx8Ci0JCSAgICBxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1JBVykgewotCQkJaWYgKHVfZXJyb3IpCi0JCQkJdHByaW50ZigiPSAtMSAoZXJybm8gJWxkKSIsIHVfZXJyb3IpOwotCQkJZWxzZQotCQkJCXRwcmludGYoIj0gJSNseCIsIHRjcC0+dV9ydmFsKTsKLQkJfQotCQllbHNlIGlmICghKHN5c19yZXMgJiBSVkFMX05PTkUpICYmIHVfZXJyb3IpIHsKLQkJCXN3aXRjaCAodV9lcnJvcikgewotI2lmZGVmIExJTlVYCi0JCQljYXNlIEVSRVNUQVJUU1lTOgotCQkJCXRwcmludGYoIj0gPyBFUkVTVEFSVFNZUyAoVG8gYmUgcmVzdGFydGVkKSIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBFUkVTVEFSVE5PSU5UUjoKLQkJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlROT0lOVFIgKFRvIGJlIHJlc3RhcnRlZCkiKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgRVJFU1RBUlROT0hBTkQ6Ci0JCQkJdHByaW50ZigiPSA/IEVSRVNUQVJUTk9IQU5EIChUbyBiZSByZXN0YXJ0ZWQpIik7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIEVSRVNUQVJUX1JFU1RBUlRCTE9DSzoKLQkJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlRfUkVTVEFSVEJMT0NLIChUbyBiZSByZXN0YXJ0ZWQpIik7Ci0JCQkJYnJlYWs7Ci0jZW5kaWYgLyogTElOVVggKi8KLQkJCWRlZmF1bHQ6Ci0JCQkJdHByaW50ZigiPSAtMSAiKTsKLQkJCQlpZiAodV9lcnJvciA8IDApCi0JCQkJCXRwcmludGYoIkU/Pz8gKGVycm5vICVsZCkiLCB1X2Vycm9yKTsKLQkJCQllbHNlIGlmICh1X2Vycm9yIDwgbmVycm5vcykKLQkJCQkJdHByaW50ZigiJXMgKCVzKSIsIGVycm5vZW50W3VfZXJyb3JdLAotCQkJCQkJc3RyZXJyb3IodV9lcnJvcikpOwotCQkJCWVsc2UKLQkJCQkJdHByaW50ZigiRVJSTk9fJWxkICglcykiLCB1X2Vycm9yLAotCQkJCQkJc3RyZXJyb3IodV9lcnJvcikpOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCWVsc2UgewotCQkJaWYgKHN5c19yZXMgJiBSVkFMX05PTkUpCi0JCQkJdHByaW50ZigiPSA/Iik7Ci0JCQllbHNlIHsKLQkJCQlzd2l0Y2ggKHN5c19yZXMgJiBSVkFMX01BU0spIHsKLQkJCQljYXNlIFJWQUxfSEVYOgotCQkJCQl0cHJpbnRmKCI9ICUjbHgiLCB0Y3AtPnVfcnZhbCk7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgUlZBTF9PQ1RBTDoKLQkJCQkJdHByaW50ZigiPSAlI2xvIiwgdGNwLT51X3J2YWwpOwotCQkJCQlicmVhazsKLQkJCQljYXNlIFJWQUxfVURFQ0lNQUw6Ci0JCQkJCXRwcmludGYoIj0gJWx1IiwgdGNwLT51X3J2YWwpOwotCQkJCQlicmVhazsKLQkJCQljYXNlIFJWQUxfREVDSU1BTDoKLQkJCQkJdHByaW50ZigiPSAlbGQiLCB0Y3AtPnVfcnZhbCk7Ci0JCQkJCWJyZWFrOwotI2lmZGVmIEhBVkVfTE9OR19MT05HCi0JCQkJY2FzZSBSVkFMX0xIRVg6Ci0JCQkJCXRwcmludGYoIj0gJSNsbHgiLCB0Y3AtPnVfbHJ2YWwpOwotCQkJCQlicmVhazsKLQkJCQljYXNlIFJWQUxfTE9DVEFMOgotCQkJCQl0cHJpbnRmKCI9ICUjbGxvIiwgdGNwLT51X2xydmFsKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBSVkFMX0xVREVDSU1BTDoKLQkJCQkJdHByaW50ZigiPSAlbGx1IiwgdGNwLT51X2xydmFsKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBSVkFMX0xERUNJTUFMOgotCQkJCQl0cHJpbnRmKCI9ICVsbGQiLCB0Y3AtPnVfbHJ2YWwpOwotCQkJCQlicmVhazsKLSNlbmRpZgotCQkJCWRlZmF1bHQ6Ci0JCQkJCWZwcmludGYoc3RkZXJyLAotCQkJCQkJImludmFsaWQgcnZhbCBmb3JtYXRcbiIpOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0JCQlpZiAoKHN5c19yZXMgJiBSVkFMX1NUUikgJiYgdGNwLT5hdXhzdHIpCi0JCQkJdHByaW50ZigiICglcykiLCB0Y3AtPmF1eHN0cik7Ci0JCX0KLQkJaWYgKGR0aW1lKSB7Ci0JCQl0dl9zdWIoJnR2LCAmdHYsICZ0Y3AtPmV0aW1lKTsKLQkJCXRwcmludGYoIiA8JWxkLiUwNmxkPiIsCi0JCQkJKGxvbmcpIHR2LnR2X3NlYywgKGxvbmcpIHR2LnR2X3VzZWMpOwotCQl9Ci0JCXByaW50dHJhaWxlcih0Y3ApOwotCi0JCWR1bXBpbyh0Y3ApOwotCQlpZiAoZmZsdXNoKHRjcC0+b3V0ZikgPT0gRU9GKQotCQkJcmV0dXJuIC0xOwotCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQkvKiBFbnRlcmluZyBzeXN0ZW0gY2FsbCAqLwotCXJlcyA9IHN5c2NhbGxfZW50ZXIodGNwKTsKLQlpZiAocmVzICE9IDEpCi0JCXJldHVybiByZXM7Ci0KLQlzd2l0Y2ggKGtub3duX3Njbm8odGNwKSkgewotI2lmZGVmIExJTlVYCi0jaWYgIWRlZmluZWQgKEFMUEhBKSAmJiAhZGVmaW5lZChTUEFSQykgJiYgIWRlZmluZWQoU1BBUkM2NCkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoSFBQQSkgJiYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAvL0FORFJPSUQKLQljYXNlIFNZU19zb2NrZXRjYWxsOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zb2NrZXRfc3ViY2FsbCwKLQkJCVNZU19zb2NrZXRfbnN1YmNhbGxzLCBkZXJlZl9zdHlsZSk7Ci0JCWJyZWFrOwotCWNhc2UgU1lTX2lwYzoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfaXBjX3N1YmNhbGwsCi0JCQlTWVNfaXBjX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOwotCQlicmVhazsKLSNlbmRpZiAvKiAhQUxQSEEgJiYgIU1JUFMgJiYgIVNQQVJDICYmICFTUEFSQzY0ICYmICFIUFBBICovCi0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0JY2FzZSBTWVNfc29ja2V0Y2FsbDoKLQkJc3BhcmNfc29ja2V0X2RlY29kZSAodGNwKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNWUjQKLSNpZmRlZiBTWVNfcGdycHN5c19zdWJjYWxsCi0JY2FzZSBTWVNfcGdycHN5czoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfcGdycHN5c19zdWJjYWxsLAotCQkJU1lTX3BncnBzeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotI2VuZGlmIC8qIFNZU19wZ3Jwc3lzX3N1YmNhbGwgKi8KLSNpZmRlZiBTWVNfc2lnY2FsbF9zdWJjYWxsCi0JY2FzZSBTWVNfc2lnY2FsbDoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc2lnY2FsbF9zdWJjYWxsLAotCQkJU1lTX3NpZ2NhbGxfbnN1YmNhbGxzLCBtYXNrX3N0eWxlKTsKLQkJYnJlYWs7Ci0jZW5kaWYgLyogU1lTX3NpZ2NhbGxfc3ViY2FsbCAqLwotCWNhc2UgU1lTX21zZ3N5czoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfbXNnc3lzX3N1YmNhbGwsCi0JCQlTWVNfbXNnc3lzX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOwotCQlicmVhazsKLQljYXNlIFNZU19zaG1zeXM6Ci0JCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3NobXN5c19zdWJjYWxsLAotCQkJU1lTX3NobXN5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKLQkJYnJlYWs7Ci0JY2FzZSBTWVNfc2Vtc3lzOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zZW1zeXNfc3ViY2FsbCwKLQkJCVNZU19zZW1zeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotI2lmIDAgLyogYnJva2VuICovCi0JY2FzZSBTWVNfdXRzc3lzOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU191dHNzeXNfc3ViY2FsbCwKLQkJCVNZU191dHNzeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotI2VuZGlmCi0JY2FzZSBTWVNfc3lzZnM6Ci0JCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3N5c2ZzX3N1YmNhbGwsCi0JCQlTWVNfc3lzZnNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotCWNhc2UgU1lTX3NwY2FsbDoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc3BjYWxsX3N1YmNhbGwsCi0JCQlTWVNfc3BjYWxsX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOwotCQlicmVhazsKLSNpZmRlZiBTWVNfY29udGV4dF9zdWJjYWxsCi0JY2FzZSBTWVNfY29udGV4dDoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfY29udGV4dF9zdWJjYWxsLAotCQkJU1lTX2NvbnRleHRfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotI2VuZGlmIC8qIFNZU19jb250ZXh0X3N1YmNhbGwgKi8KLSNpZmRlZiBTWVNfZG9vcl9zdWJjYWxsCi0JY2FzZSBTWVNfZG9vcjoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfZG9vcl9zdWJjYWxsLAotCQkJU1lTX2Rvb3JfbnN1YmNhbGxzLCBkb29yX3N0eWxlKTsKLQkJYnJlYWs7Ci0jZW5kaWYgLyogU1lTX2Rvb3Jfc3ViY2FsbCAqLwotI2lmZGVmIFNZU19rYWlvX3N1YmNhbGwKLQljYXNlIFNZU19rYWlvOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19rYWlvX3N1YmNhbGwsCi0JCQlTWVNfa2Fpb19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNlbmRpZiAvKiBTVlI0ICovCi0jaWZkZWYgRlJFRUJTRAotCWNhc2UgU1lTX21zZ3N5czoKLQljYXNlIFNZU19zaG1zeXM6Ci0JY2FzZSBTWVNfc2Vtc3lzOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIDAsIDAsIHRhYmxlX3N0eWxlKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTVU5PUzQKLQljYXNlIFNZU19zZW1zeXM6Ci0JCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3NlbXN5c19zdWJjYWxsLAotCQkJU1lTX3NlbXN5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKLQkJYnJlYWs7Ci0JY2FzZSBTWVNfbXNnc3lzOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19tc2dzeXNfc3ViY2FsbCwKLQkJCVNZU19tc2dzeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotCWNhc2UgU1lTX3NobXN5czoKLQkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc2htc3lzX3N1YmNhbGwsCi0JCQlTWVNfc2htc3lzX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOwotCQlicmVhazsKLSNlbmRpZgotCX0KLQotCWludGVybmFsX3N5c2NhbGwodGNwKTsKLQlpZiAodGNwLT5zY25vID49MCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgIShxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1RSQUNFKSkgewotCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChjZmxhZykgewotCQlnZXR0aW1lb2ZkYXkoJnRjcC0+ZXRpbWUsIE5VTEwpOwotCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7Ci0JCXJldHVybiAwOwotCX0KLQotCXByaW50bGVhZGVyKHRjcCk7Ci0JdGNwLT5mbGFncyAmPSB+VENCX1JFUFJJTlQ7Ci0JdGNwX2xhc3QgPSB0Y3A7Ci0JaWYgKHRjcC0+c2NubyA+PSBuc3lzY2FsbHMgfHwgdGNwLT5zY25vIDwgMCkKLQkJdHByaW50Zigic3lzY2FsbF8lbHUoIiwgdGNwLT5zY25vKTsKLQllbHNlCi0JCXRwcmludGYoIiVzKCIsIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19uYW1lKTsKLQlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwIHx8Ci0JICAgICgocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9SQVcpICYmIHRjcC0+c2NubyAhPSBTWVNfZXhpdCkpCi0JCXN5c19yZXMgPSBwcmludGFyZ3ModGNwKTsKLQllbHNlCi0JCXN5c19yZXMgPSAoKnN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jKSh0Y3ApOwotCWlmIChmZmx1c2godGNwLT5vdXRmKSA9PSBFT0YpCi0JCXJldHVybiAtMTsKLQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7Ci0JLyogTWVhc3VyZSB0aGUgZW50cmFuY2UgdGltZSBhcyBsYXRlIGFzIHBvc3NpYmxlIHRvIGF2b2lkIGVycm9ycy4gKi8KLQlpZiAoZHRpbWUpCi0JCWdldHRpbWVvZmRheSgmdGNwLT5ldGltZSwgTlVMTCk7Ci0JcmV0dXJuIHN5c19yZXM7Ci19Ci0KLWludAotcHJpbnRhcmdzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpbnQgaTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCi0JCQl0cHJpbnRmKCIlcyUjbHgiLCBpID8gIiwgIiA6ICIiLCB0Y3AtPnVfYXJnW2ldKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWxvbmcKLWdldHJ2YWwyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlsb25nIHZhbCA9IC0xOwotCi0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQlzdHJ1Y3QgcmVncyByZWdzOwotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsdGNwLT5waWQsKGNoYXIgKikmcmVncywwKSA8IDApCi0JCXJldHVybiAtMTsKLQl2YWwgPSByZWdzLnJfbzE7Ci0jZWxpZiBkZWZpbmVkKFNIKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCooUkVHX1JFRzArMSksICZ2YWwpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfUjksICZ2YWwpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VuZGlmIC8qIFNQQVJDIHx8IFNQQVJDNjQgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0JaWYgKHVwZWVrKHRjcC0+cGlkLCB1b2ZmKHVfcnZhbDIpLCAmdmFsKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmZGVmIFNWUjQKLSNpZmRlZiBTUEFSQwotCXZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tSX08xXTsKLSNlbmRpZiAvKiBTUEFSQyAqLwotI2lmZGVmIEkzODYKLQl2YWwgPSB0Y3AtPnN0YXR1cy5QUl9SRUdbRURYXTsKLSNlbmRpZiAvKiBJMzg2ICovCi0jaWZkZWYgWDg2XzY0Ci0JdmFsID0gdGNwLT5zdGF0dXMuUFJfUkVHW1JEWF07Ci0jZW5kaWYgLyogWDg2XzY0ICovCi0jaWZkZWYgTUlQUwotCXZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tDVFhfVjFdOwotI2VuZGlmIC8qIE1JUFMgKi8KLSNlbmRpZiAvKiBTVlI0ICovCi0jaWZkZWYgRlJFRUJTRAotCXN0cnVjdCByZWcgcmVnczsKLQlwcmVhZCh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApOwotCXZhbCA9IHJlZ3Mucl9lZHg7Ci0jZW5kaWYKLQlyZXR1cm4gdmFsOwotfQotCi0vKgotICogQXBwYXJlbnRseSwgaW5kaXJlY3Qgc3lzdGVtIGNhbGxzIGhhdmUgYWxyZWFkeSBiZSBjb252ZXJ0ZWQgYnkgcHRyYWNlKDIpLAotICogc28gaWYgeW91IHNlZSAiaW5kaXIiIHRoaXMgcHJvZ3JhbSBoYXMgZ29uZSBhc3RyYXkuCi0gKi8KLWludAotc3lzX2luZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgaSwgc2NubywgbmFyZ3M7Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpZiAoKHNjbm8gPSB0Y3AtPnVfYXJnWzBdKSA+IG5zeXNjYWxscykgewotCQkJZnByaW50ZihzdGRlcnIsICJCb2d1cyBzeXNjYWxsOiAldVxuIiwgc2Nubyk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQluYXJncyA9IHN5c2VudFtzY25vXS5uYXJnczsKLQkJdHByaW50ZigiJXMiLCBzeXNlbnRbc2Nub10uc3lzX25hbWUpOwotCQlmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKLQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbaSsxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci10aW1lX2NtcChhLCBiKQotdm9pZCAqYTsKLXZvaWQgKmI7Ci17Ci0JcmV0dXJuIC10dl9jbXAoJmNvdW50c1sqKChpbnQgKikgYSldLnRpbWUsICZjb3VudHNbKigoaW50ICopIGIpXS50aW1lKTsKLX0KLQotc3RhdGljIGludAotc3lzY2FsbF9jbXAoYSwgYikKLXZvaWQgKmE7Ci12b2lkICpiOwotewotCXJldHVybiBzdHJjbXAoc3lzZW50WyooKGludCAqKSBhKV0uc3lzX25hbWUsCi0JCXN5c2VudFsqKChpbnQgKikgYildLnN5c19uYW1lKTsKLX0KLQotc3RhdGljIGludAotY291bnRfY21wKGEsIGIpCi12b2lkICphOwotdm9pZCAqYjsKLXsKLQlpbnQgbSA9IGNvdW50c1sqKChpbnQgKikgYSldLmNhbGxzLCBuID0gY291bnRzWyooKGludCAqKSBiKV0uY2FsbHM7Ci0KLQlyZXR1cm4gKG0gPCBuKSA/IDEgOiAobSA+IG4pID8gLTEgOiAwOwotfQotCi1zdGF0aWMgaW50ICgqc29ydGZ1bikoKTsKLXN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBvdmVyaGVhZCA9IHsgLTEsIC0xIH07Ci0KLXZvaWQKLXNldF9zb3J0Ynkoc29ydGJ5KQotY2hhciAqc29ydGJ5OwotewotCWlmIChzdHJjbXAoc29ydGJ5LCAidGltZSIpID09IDApCi0JCXNvcnRmdW4gPSB0aW1lX2NtcDsKLQllbHNlIGlmIChzdHJjbXAoc29ydGJ5LCAiY2FsbHMiKSA9PSAwKQotCQlzb3J0ZnVuID0gY291bnRfY21wOwotCWVsc2UgaWYgKHN0cmNtcChzb3J0YnksICJuYW1lIikgPT0gMCkKLQkJc29ydGZ1biA9IHN5c2NhbGxfY21wOwotCWVsc2UgaWYgKHN0cmNtcChzb3J0YnksICJub3RoaW5nIikgPT0gMCkKLQkJc29ydGZ1biA9IE5VTEw7Ci0JZWxzZSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiaW52YWxpZCBzb3J0Ynk6IGAlcydcbiIsIHNvcnRieSk7Ci0JCWV4aXQoMSk7Ci0JfQotfQotCi12b2lkIHNldF9vdmVyaGVhZChuKQotaW50IG47Ci17Ci0Jb3ZlcmhlYWQudHZfc2VjID0gbiAvIDEwMDAwMDA7Ci0Jb3ZlcmhlYWQudHZfdXNlYyA9IG4gJSAxMDAwMDAwOwotfQotCi12b2lkCi1jYWxsX3N1bW1hcnkob3V0ZikKLUZJTEUgKm91dGY7Ci17Ci0JaW50IGksIGo7Ci0JaW50IGNhbGxfY3VtLCBlcnJvcl9jdW07Ci0Jc3RydWN0IHRpbWV2YWwgdHZfY3VtLCBkdHY7Ci0JZG91YmxlIHBlcmNlbnQ7Ci0JY2hhciAqZGFzaGVzID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iOwotCWNoYXIgZXJyb3Jfc3RyWzE2XTsKLQotCWludCAqc29ydGVkX2NvdW50ID0gbWFsbG9jKG5zeXNjYWxscyAqIHNpemVvZihpbnQpKTsKLQotCWNhbGxfY3VtID0gZXJyb3JfY3VtID0gdHZfY3VtLnR2X3NlYyA9IHR2X2N1bS50dl91c2VjID0gMDsKLQlpZiAob3ZlcmhlYWQudHZfc2VjID09IC0xKSB7Ci0JCXR2X211bCgmb3ZlcmhlYWQsICZzaG9ydGVzdCwgOCk7Ci0JCXR2X2Rpdigmb3ZlcmhlYWQsICZvdmVyaGVhZCwgMTApOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspIHsKLQkJc29ydGVkX2NvdW50W2ldID0gaTsKLQkJaWYgKGNvdW50cyA9PSBOVUxMIHx8IGNvdW50c1tpXS5jYWxscyA9PSAwKQotCQkJY29udGludWU7Ci0JCXR2X211bCgmZHR2LCAmb3ZlcmhlYWQsIGNvdW50c1tpXS5jYWxscyk7Ci0JCXR2X3N1YigmY291bnRzW2ldLnRpbWUsICZjb3VudHNbaV0udGltZSwgJmR0dik7Ci0JCWNhbGxfY3VtICs9IGNvdW50c1tpXS5jYWxsczsKLQkJZXJyb3JfY3VtICs9IGNvdW50c1tpXS5lcnJvcnM7Ci0JCXR2X2FkZCgmdHZfY3VtLCAmdHZfY3VtLCAmY291bnRzW2ldLnRpbWUpOwotCX0KLQlpZiAoY291bnRzICYmIHNvcnRmdW4pCi0JCXFzb3J0KCh2b2lkICopIHNvcnRlZF9jb3VudCwgbnN5c2NhbGxzLCBzaXplb2YoaW50KSwgc29ydGZ1bik7Ci0JZnByaW50ZihvdXRmLCAiJTYuNnMgJTExLjExcyAlMTEuMTFzICU5LjlzICU5LjlzICVzXG4iLAotCQkiJSB0aW1lIiwgInNlY29uZHMiLCAidXNlY3MvY2FsbCIsCi0JCSJjYWxscyIsICJlcnJvcnMiLCAic3lzY2FsbCIpOwotCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS4xMXMgJTExLjExcyAlOS45cyAlOS45cyAlLTE2LjE2c1xuIiwKLQkJZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcyk7Ci0JaWYgKGNvdW50cykgewotCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspIHsKLQkJCWogPSBzb3J0ZWRfY291bnRbaV07Ci0JCQlpZiAoY291bnRzW2pdLmNhbGxzID09IDApCi0JCQkJY29udGludWU7Ci0JCQl0dl9kaXYoJmR0diwgJmNvdW50c1tqXS50aW1lLCBjb3VudHNbal0uY2FsbHMpOwotCQkJaWYgKGNvdW50c1tqXS5lcnJvcnMpCi0JCQkJc3ByaW50ZihlcnJvcl9zdHIsICIlZCIsIGNvdW50c1tqXS5lcnJvcnMpOwotCQkJZWxzZQotCQkJCWVycm9yX3N0clswXSA9ICdcMCc7Ci0JCQlwZXJjZW50ID0gKDEwMC4wICogdHZfZmxvYXQoJmNvdW50c1tqXS50aW1lKQotCQkJCSAgIC8gdHZfZmxvYXQoJnR2X2N1bSkpOwotCQkJZnByaW50ZihvdXRmLCAiJTYuMmYgJTRsZC4lMDZsZCAlMTFsZCAlOWQgJTkuOXMgJXNcbiIsCi0JCQkJcGVyY2VudCwgKGxvbmcpIGNvdW50c1tqXS50aW1lLnR2X3NlYywKLQkJCQkobG9uZykgY291bnRzW2pdLnRpbWUudHZfdXNlYywKLQkJCQkobG9uZykgMTAwMDAwMCAqIGR0di50dl9zZWMgKyBkdHYudHZfdXNlYywKLQkJCQljb3VudHNbal0uY2FsbHMsCi0JCQkJZXJyb3Jfc3RyLCBzeXNlbnRbal0uc3lzX25hbWUpOwotCQl9Ci0JfQotCWZyZWUoc29ydGVkX2NvdW50KTsKLQotCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS4xMXMgJTExLjExcyAlOS45cyAlOS45cyAlLTE2LjE2c1xuIiwKLQkJZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcyk7Ci0JaWYgKGVycm9yX2N1bSkKLQkJc3ByaW50ZihlcnJvcl9zdHIsICIlZCIsIGVycm9yX2N1bSk7Ci0JZWxzZQotCQllcnJvcl9zdHJbMF0gPSAnXDAnOwotCWZwcmludGYob3V0ZiwgIiU2LjZzICU0bGQuJTA2bGQgJTExLjExcyAlOWQgJTkuOXMgJXNcbiIsCi0JCSIxMDAuMDAiLCAobG9uZykgdHZfY3VtLnR2X3NlYywgKGxvbmcpIHR2X2N1bS50dl91c2VjLCAiIiwKLQkJY2FsbF9jdW0sIGVycm9yX3N0ciwgInRvdGFsIik7Ci0KLX0KZGlmZiAtLWdpdCBhL3N5c2NhbGxlbnQuc2ggYi9zeXNjYWxsZW50LnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjA4NzAxLi4wMDAwMDAwCi0tLSBhL3N5c2NhbGxlbnQuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0jIS9iaW4vc2gKLSMgQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0jIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIwkkSWQ6IHN5c2NhbGxlbnQuc2gsdiAxLjMgMjAwMy8wMy8zMSAwMTowMzozNCByb2xhbmQgRXhwICQKLQotY2F0ICR7MSsiJEAifSB8Ci0Jc2VkIC1uICdzL14jWyAJXSpkZWZpbmVbIAldWyAJXSpTWVNfXChbXiAJXSpcKVsgCV0qW14wLTldKlwoWzAtOV0qXCkuKiQvXDEgXDIvcAotcy9eI1sgCV0qZGVmaW5lWyAJXVsgCV0qX19OUl9cKFteIAldKlwpWyAJXSpbXjAtOV0qXChbMC05XSpcKS4qJC9cMSBcMi9wCi1zL14jWyBdKmRlZmluZVsgXVsgXSpfX05SX1woW14gXSpcKVsgXSpbXjAtOSgpXSooX19OUl9MaW51eCArIFwoWzAtOV0qXCkpJC9cMSBcMi9wJyB8Ci0Jc29ydCArMW4gfCB1bmlxIHwKLQlhd2sgJwotCUJFR0lOIHsKLQkJdGFicyA9ICJcdFx0XHRcdFx0XHRcdFx0IgotCQljYWxsID0gLTE7Ci0JfQotCXsKLQkJd2hpbGUgKCsrY2FsbCA8ICQyKSB7Ci0JCQlmID0gInByaW50YXJncyIKLQkJCW4gPSAiU1lTXyIgY2FsbAotCQkJcyA9ICJcdHsgLTEsXHQwLFx0IgotCQkJcyA9IHMgZiAiLCIKLQkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAyNC84IC0gaW50KChsZW5ndGgoZikgKyAxKS84KSkKLQkJCXMgPSBzICJcIiIgbiAiXCIiCi0JCQlzID0gcyBzdWJzdHIodGFicywgMSwgMTYvOCAtIGludCgobGVuZ3RoKG4pICsgMikvOCkpCi0JCQlzID0gcyAifSwgLyogIiBjYWxsICIgKi8iCi0JCQlwcmludCBzCi0JCX0KLQkJZiA9ICJzeXNfIiAkMQotCQluID0gJDEKLQkJcyA9ICJcdHsgLTEsXHQwLFx0IgotCQlzID0gcyBmICIsIgotCQlzID0gcyBzdWJzdHIodGFicywgMSwgMjQvOCAtIGludCgobGVuZ3RoKGYpICsgMSkvOCkpCi0JCXMgPSBzICJcIiIgbiAiXCIiCi0JCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAyKS84KSkKLQkJcyA9IHMgIn0sIC8qICIgY2FsbCAiICovIgotCQlwcmludCBzCi0JfQotCUVORCB7Ci0JCWxpbWl0ID0gY2FsbCArIDEwMAotCQl3aGlsZSAoKytjYWxsIDwgbGltaXQpIHsKLQkJCWYgPSAicHJpbnRhcmdzIgotCQkJbiA9ICJTWVNfIiBjYWxsCi0JCQlzID0gIlx0eyAtMSxcdDAsXHQiCi0JCQlzID0gcyBmICIsIgotCQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDI0LzggLSBpbnQoKGxlbmd0aChmKSArIDEpLzgpKQotCQkJcyA9IHMgIlwiIiBuICJcIiIKLQkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAyKS84KSkKLQkJCXMgPSBzICJ9LCAvKiAiIGNhbGwgIiAqLyIKLQkJCXByaW50IHMKLQkJfQotCX0KLQknCmRpZmYgLS1naXQgYS9zeXN0ZW0uYyBiL3N5c3RlbS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGViNWJlLi4wMDAwMDAwCi0tLSBhL3N5c3RlbS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjI0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzdGVtLmMsdiAxLjM3IDIwMDUvMDYvMDEgMTk6MjI6MDYgcm9sYW5kIEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImRlZnMuaCIKLQotI2lmZGVmIExJTlVYCi0KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSN1bmRlZiBfX3VudXNlZAotI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy9tb3VudC5oPgotI2RlZmluZSBDVExfUFJPQyA0Ci0KLSNlbHNlCi0jZGVmaW5lIF9MSU5VWF9TT0NLRVRfSAotI2RlZmluZSBfTElOVVhfRlNfSAotCi0jZGVmaW5lIE1TX1JET05MWQkgMQkvKiBNb3VudCByZWFkLW9ubHkgKi8KLSNkZWZpbmUgTVNfTk9TVUlECSAyCS8qIElnbm9yZSBzdWlkIGFuZCBzZ2lkIGJpdHMgKi8KLSNkZWZpbmUgTVNfTk9ERVYJIDQJLyogRGlzYWxsb3cgYWNjZXNzIHRvIGRldmljZSBzcGVjaWFsIGZpbGVzICovCi0jZGVmaW5lIE1TX05PRVhFQwkgOAkvKiBEaXNhbGxvdyBwcm9ncmFtIGV4ZWN1dGlvbiAqLwotI2RlZmluZSBNU19TWU5DSFJPTk9VUwkxNgkvKiBXcml0ZXMgYXJlIHN5bmNlZCBhdCBvbmNlICovCi0jZGVmaW5lIE1TX1JFTU9VTlQJMzIJLyogQWx0ZXIgZmxhZ3Mgb2YgYSBtb3VudGVkIEZTICovCi0jZGVmaW5lIE1TX01BTkRMT0NLCTY0CS8qIEFsbG93IG1hbmRhdG9yeSBsb2NrcyBvbiBhbiBGUyAqLwotI2RlZmluZSBNU19ESVJTWU5DCTEyOAkvKiBEaXJlY3RvcnkgbW9kaWZpY2F0aW9ucyBhcmUgc3luY2hyb25vdXMgKi8KLSNkZWZpbmUgTVNfTk9BVElNRQkxMDI0CS8qIERvIG5vdCB1cGRhdGUgYWNjZXNzIHRpbWVzLiAqLwotI2RlZmluZSBNU19OT0RJUkFUSU1FCTIwNDgJLyogRG8gbm90IHVwZGF0ZSBkaXJlY3RvcnkgYWNjZXNzIHRpbWVzICovCi0jZGVmaW5lIE1TX0JJTkQJCTQwOTYKLSNkZWZpbmUgTVNfTU9WRQkJODE5MgotI2RlZmluZSBNU19SRUMJCTE2Mzg0Ci0jZGVmaW5lIE1TX1ZFUkJPU0UJMzI3NjgKLSNkZWZpbmUgTVNfUE9TSVhBQ0wJKDE8PDE2KQkvKiBWRlMgZG9lcyBub3QgYXBwbHkgdGhlIHVtYXNrICovCi0jZGVmaW5lIE1TX0FDVElWRQkoMTw8MzApCi0jZGVmaW5lIE1TX05PVVNFUgkoMTw8MzEpCi0jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotCi0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLQotI2lmZGVmIFNZU19jYXBnZXQKLSNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+Ci0jZW5kaWYKLQotI2lmZGVmIFNZU19jYWNoZWZsdXNoCi0jaW5jbHVkZSA8YXNtL2NhY2hlY3RsLmg+Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfTElOVVhfVVNUTkFNRV9ICi0jaW5jbHVkZSA8bGludXgvdXRzbmFtZS5oPgotI2VuZGlmCi0KLSNpZmRlZiBNSVBTCi0jaW5jbHVkZSA8YXNtL3N5c21pcHMuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb3VudF9mbGFnc1tdID0gewotCXsgTVNfUkRPTkxZLAkiTVNfUkRPTkxZIgl9LAotCXsgTVNfTk9TVUlELAkiTVNfTk9TVUlEIgl9LAotCXsgTVNfTk9ERVYsCSJNU19OT0RFViIJfSwKLQl7IE1TX05PRVhFQywJIk1TX05PRVhFQyIJfSwKLQl7IE1TX1NZTkNIUk9OT1VTLCJNU19TWU5DSFJPTk9VUyJ9LAotCXsgTVNfUkVNT1VOVCwJIk1TX1JFTU9VTlQiCX0sCi0JeyBNU19NQU5ETE9DSywJIk1TX01BTkRMT0NLIgl9LAotCXsgTVNfTk9BVElNRSwJIk1TX05PQVRJTUUiCX0sCi0JeyBNU19OT0RJUkFUSU1FLCJNU19OT0RJUkFUSU1FIgl9LAotCXsgTVNfQklORCwJIk1TX0JJTkQiCX0sCi0JeyBNU19NT1ZFLAkiTVNfTU9WRSIJfSwKLQl7IE1TX1JFQywJIk1TX1JFQyIJfSwKLQl7IE1TX1ZFUkJPU0UsCSJNU19WRVJCT1NFIgl9LAotCXsgTVNfUE9TSVhBQ0wsCSJNU19QT1NJWEFDTCIJfSwKLQl7IE1TX0FDVElWRSwJIk1TX0FDVElWRSIJfSwKLQl7IE1TX05PVVNFUiwJIk1TX05PVVNFUiIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfbW91bnQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKCh0Y3AtPnVfYXJnWzNdICYgKE1TX0JJTkR8TVNfTU9WRXxNU19SRU1PVU5UKSkgPT0gMCkKLQkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MobW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNU18/Pz8iKTsKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s0XSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c191bW91bnQyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gJiAxKQotCQkJdHByaW50ZigiTU5UX0ZPUkNFIik7Ci0JCWVsc2UKLQkJCXRwcmludGYoIjAiKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIFRoZXNlIGFyZSBub3QgbWFjcm9zLCBidXQgZW51bXMuICBXZSBqdXN0IGNvcHkgdGhlIHZhbHVlcyBieSBoYW5kCi0gICBmcm9tIExpbnV4IDIuNi45IGhlcmUuICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHBlcnNvbmFsaXR5X29wdGlvbnNbXSA9IHsKLQl7IDAsCQkiUEVSX0xJTlVYIgl9LAotCXsgMHgwMDgwMDAwMCwJIlBFUl9MSU5VWF8zMkJJVCJ9LAotCXsgMHgwNDEwMDAwMSwJIlBFUl9TVlI0Igl9LAotCXsgMHgwNTAwMDAwMiwJIlBFUl9TVlIzIgl9LAotCXsgMHgwNzAwMDAwMywJIlBFUl9TQ09TVlIzIgl9LAotCXsgMHgwNjAwMDAwMywJIlBFUl9PU1I1Igl9LAotCXsgMHgwNTAwMDAwNCwJIlBFUl9XWVNFVjM4NiIJfSwKLQl7IDB4MDQwMDAwMDUsCSJQRVJfSVNDUjQiCX0sCi0JeyAweDAwMDAwMDA2LAkiUEVSX0JTRCIJfSwKLQl7IDB4MDQwMDAwMDYsCSJQRVJfU1VOT1MiCX0sCi0JeyAweDA1MDAwMDA3LAkiUEVSX1hFTklYIgl9LAotCXsgMHgwMDAwMDAwOCwJIlBFUl9MSU5VWDMyIgl9LAotCXsgMHgwODAwMDAwOCwJIlBFUl9MSU5VWDMyXzNHQiJ9LAotCXsgMHgwNDAwMDAwOSwJIlBFUl9JUklYMzIiCX0sCi0JeyAweDA0MDAwMDBhLAkiUEVSX0lSSVhOMzIiCX0sCi0JeyAweDA0MDAwMDBiLAkiUEVSX0lSSVg2NCIJfSwKLQl7IDB4MDAwMDAwMGMsCSJQRVJfUklTQ09TIgl9LAotCXsgMHgwNDAwMDAwZCwJIlBFUl9TT0xBUklTIgl9LAotCXsgMHgwNDEwMDAwZSwJIlBFUl9VVzciCX0sCi0JeyAweDAwMDAwMDBmLAkiUEVSX09TRjQiCX0sCi0JeyAweDAwMDAwMDEwLAkiUEVSX0hQVVgiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLWludAotc3lzX3BlcnNvbmFsaXR5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJcHJpbnR4dmFsKHBlcnNvbmFsaXR5X29wdGlvbnMsIHRjcC0+dV9hcmdbMF0sICJQRVJfPz8/Iik7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBib290ZmxhZ3MxW10gPSB7Ci0JeyBMSU5VWF9SRUJPT1RfTUFHSUMxLAkiTElOVVhfUkVCT09UX01BR0lDMSIJfSwKLQl7IDAsCQkJTlVMTAkJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYm9vdGZsYWdzMltdID0gewotCXsgTElOVVhfUkVCT09UX01BR0lDMiwJIkxJTlVYX1JFQk9PVF9NQUdJQzIiCX0sCi0JeyBMSU5VWF9SRUJPT1RfTUFHSUMyQSwJIkxJTlVYX1JFQk9PVF9NQUdJQzJBIgl9LAotCXsgTElOVVhfUkVCT09UX01BR0lDMkIsCSJMSU5VWF9SRUJPT1RfTUFHSUMyQiIJfSwKLQl7IDAsCQkJTlVMTAkJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYm9vdGZsYWdzM1tdID0gewotCXsgTElOVVhfUkVCT09UX0NNRF9DQURfT0ZGLAkiTElOVVhfUkVCT09UX0NNRF9DQURfT0ZGIgl9LAotCXsgTElOVVhfUkVCT09UX0NNRF9SRVNUQVJULAkiTElOVVhfUkVCT09UX0NNRF9SRVNUQVJUIgl9LAotCXsgTElOVVhfUkVCT09UX0NNRF9IQUxULAkiTElOVVhfUkVCT09UX0NNRF9IQUxUIgkJfSwKLQl7IExJTlVYX1JFQk9PVF9DTURfQ0FEX09OLAkiTElOVVhfUkVCT09UX0NNRF9DQURfT04iCX0sCi0JeyBMSU5VWF9SRUJPT1RfQ01EX1BPV0VSX09GRiwJIkxJTlVYX1JFQk9PVF9DTURfUE9XRVJfT0ZGIgl9LAotCXsgTElOVVhfUkVCT09UX0NNRF9SRVNUQVJUMiwJIkxJTlVYX1JFQk9PVF9DTURfUkVTVEFSVDIiCX0sCi0JeyAwLAkJCQlOVUxMCQkJCX0sCi19OwotCi1pbnQKLXN5c19yZWJvb3QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50ZmxhZ3MoYm9vdGZsYWdzMSwgdGNwLT51X2FyZ1swXSwgIkxJTlVYX1JFQk9PVF9NQUdJQ18/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhib290ZmxhZ3MyLCB0Y3AtPnVfYXJnWzFdLCAiTElOVVhfUkVCT09UX01BR0lDXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKGJvb3RmbGFnczMsIHRjcC0+dV9hcmdbMl0sICJMSU5VWF9SRUJPT1RfQ01EXz8/PyIpOwotCQlpZiAodGNwLT51X2FyZ1syXSA9PSBMSU5VWF9SRUJPT1RfQ01EX1JFU1RBUlQyKSB7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzNdLCAtMSk7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBNNjhLCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2FjaGVmbHVzaF9zY29wZVtdID0gewotI2lmZGVmIEZMVVNIX1NDT1BFX0xJTkUKLQl7IEZMVVNIX1NDT1BFX0xJTkUsCSJGTFVTSF9TQ09QRV9MSU5FIiB9LAotI2VuZGlmCi0jaWZkZWYgRkxVU0hfU0NPUEVfUEFHRQotCXsgRkxVU0hfU0NPUEVfUEFHRSwJIkZMVVNIX1NDT1BFX1BBR0UiIH0sCi0jZW5kaWYKLSNpZmRlZiBGTFVTSF9TQ09QRV9BTEwKLQl7IEZMVVNIX1NDT1BFX0FMTCwJIkZMVVNIX1NDT1BFX0FMTCIgfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2FjaGVmbHVzaF9mbGFnc1tdID0gewotI2lmZGVmIEZMVVNIX0NBQ0hFX0JPVEgKLQl7IEZMVVNIX0NBQ0hFX0JPVEgsCSJGTFVTSF9DQUNIRV9CT1RIIiB9LAotI2VuZGlmCi0jaWZkZWYgRkxVU0hfQ0FDSEVfREFUQQotCXsgRkxVU0hfQ0FDSEVfREFUQSwJIkZMVVNIX0NBQ0hFX0RBVEEiIH0sCi0jZW5kaWYKLSNpZmRlZiBGTFVTSF9DQUNIRV9JTlNOCi0JeyBGTFVTSF9DQUNIRV9JTlNOLAkiRkxVU0hfQ0FDSEVfSU5TTiIgfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMIH0sCi19OwotCi1pbnQKLXN5c19jYWNoZWZsdXNoKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQkvKiBhZGRyICovCi0JCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMF0pOwotCQkvKiBzY29wZSAqLwotCQlwcmludHh2YWwoY2FjaGVmbHVzaF9zY29wZSwgdGNwLT51X2FyZ1sxXSwgIkZMVVNIX1NDT1BFXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQkvKiBmbGFncyAqLwotCQlwcmludGZsYWdzKGNhY2hlZmx1c2hfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJGTFVTSF9DQUNIRV8/Pz8iKTsKLQkJLyogbGVuICovCi0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1szXSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmIC8qIE02OEsgKi8KLQotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpZmRlZiBTVU5PUzQKLQotI2luY2x1ZGUgPHN5cy9yZWJvb3QuaD4KLSNkZWZpbmUgTkZTQ0xJRU5UCi0jZGVmaW5lIExPRlMKLSNkZWZpbmUgUkZTCi0jZGVmaW5lIFBDRlMKLSNpbmNsdWRlIDxzeXMvbW91bnQuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bmZzL2V4cG9ydC5oPgotI2luY2x1ZGUgPHJwYy90eXBlcy5oPgotI2luY2x1ZGUgPHJwYy9hdXRoLmg+Ci0KLS8qQVJHU1VTRUQqLwotaW50Ci1zeXNfc3luYyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBib290ZmxhZ3NbXSA9IHsKLQl7IFJCX0FVVE9CT09ULAkiUkJfQVVUT0JPT1QiCX0sCS8qIGZvciBzeXN0ZW0gYXV0by1ib290aW5nIGl0c2VsZiAqLwotCXsgUkJfQVNLTkFNRSwJIlJCX0FTS05BTUUiCX0sCS8qIGFzayBmb3IgZmlsZSBuYW1lIHRvIHJlYm9vdCBmcm9tICovCi0JeyBSQl9TSU5HTEUsCSJSQl9TSU5HTEUiCX0sCS8qIHJlYm9vdCB0byBzaW5nbGUgdXNlciBvbmx5ICovCi0JeyBSQl9OT1NZTkMsCSJSQl9OT1NZTkMiCX0sCS8qIGRvbnQgc3luYyBiZWZvcmUgcmVib290ICovCi0JeyBSQl9IQUxULAkiUkJfSEFMVCIJfSwJLyogZG9uJ3QgcmVib290LCBqdXN0IGhhbHQgKi8KLQl7IFJCX0lOSVROQU1FLAkiUkJfSU5JVE5BTUUiCX0sCS8qIG5hbWUgZ2l2ZW4gZm9yIC9ldGMvaW5pdCAqLwotCXsgUkJfTk9CT09UUkMsCSJSQl9OT0JPT1RSQyIJfSwJLyogZG9uJ3QgcnVuIC9ldGMvcmMuYm9vdCAqLwotCXsgUkJfREVCVUcsCSJSQl9ERUJVRyIJfSwJLyogYmVpbmcgcnVuIHVuZGVyIGRlYnVnZ2VyICovCi0JeyBSQl9EVU1QLAkiUkJfRFVNUCIJfSwJLyogZHVtcCBzeXN0ZW0gY29yZSAqLwotCXsgUkJfV1JJVEFCTEUsCSJSQl9XUklUQUJMRSIJfSwJLyogbW91bnQgcm9vdCByZWFkL3dyaXRlICovCi0JeyBSQl9TVFJJTkcsCSJSQl9TVFJJTkciCX0sCS8qIHBhc3MgYm9vdCBhcmdzIHRvIHByb20gbW9uaXRvciAqLwotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c19yZWJvb3QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50ZmxhZ3MoYm9vdGZsYWdzLCB0Y3AtPnVfYXJnWzBdLCAiUkJfPz8/Iik7Ci0JCWlmICh0Y3AtPnVfYXJnWzBdICYgUkJfU1RSSU5HKSB7Ci0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfc3lzYWNjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zd2Fwb24odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1swXSwgLTEpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfbmZzX3N2Yyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzb2NrKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW91bnRmbGFnc1tdID0gewotCXsgTV9SRE9OTFksCSJNX1JET05MWSIJfSwKLQl7IE1fTk9TVUlELAkiTV9OT1NVSUQiCX0sCi0JeyBNX05FV1RZUEUsCSJNX05FV1RZUEUiCX0sCi0JeyBNX0dSUElELAkiTV9HUlBJRCIJfSwKLSNpZmRlZglNX1JFTU9VTlQKLQl7IE1fUkVNT1VOVCwJIk1fUkVNT1VOVCIJfSwKLSNlbmRpZgotI2lmZGVmCU1fTk9TVUIKLQl7IE1fTk9TVUIsCSJNX05PU1VCIgl9LAotI2VuZGlmCi0jaWZkZWYJTV9NVUxUSQotCXsgTV9NVUxUSSwJIk1fTVVMVEkiCX0sCi0jZW5kaWYKLSNpZmRlZglNX1NZUzUKLQl7IE1fU1lTNSwJIk1fU1lTNSIJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbmZzZmxhZ3NbXSA9IHsKLQl7IE5GU01OVF9TT0ZULAkJIk5GU01OVF9TT0ZUIgkJfSwKLQl7IE5GU01OVF9XU0laRSwJCSJORlNNTlRfV1NJWkUiCQl9LAotCXsgTkZTTU5UX1JTSVpFLAkJIk5GU01OVF9SU0laRSIJCX0sCi0JeyBORlNNTlRfVElNRU8sCQkiTkZTTU5UX1RJTUVPIgkJfSwKLQl7IE5GU01OVF9SRVRSQU5TLAkiTkZTTU5UX1JFVFJBTlMiCX0sCi0JeyBORlNNTlRfSE9TVE5BTUUsCSJORlNNTlRfSE9TVE5BTUUiCX0sCi0JeyBORlNNTlRfSU5ULAkJIk5GU01OVF9JTlQiCQl9LAotCXsgTkZTTU5UX05PQUMsCQkiTkZTTU5UX05PQUMiCQl9LAotCXsgTkZTTU5UX0FDUkVHTUlOLAkiTkZTTU5UX0FDUkVHTUlOIgl9LAotCXsgTkZTTU5UX0FDUkVHTUFYLAkiTkZTTU5UX0FDUkVHTUFYIgl9LAotCXsgTkZTTU5UX0FDRElSTUlOLAkiTkZTTU5UX0FDRElSTUlOIgl9LAotCXsgTkZTTU5UX0FDRElSTUFYLAkiTkZTTU5UX0FDRElSTUFYIgl9LAotI2lmZGVmCU5GU01OVF9TRUNVUkUKLQl7IE5GU01OVF9TRUNVUkUsCSJORlNNTlRfU0VDVVJFIgkJfSwKLSNlbmRpZgotI2lmZGVmCU5GU01OVF9OT0NUTwotCXsgTkZTTU5UX05PQ1RPLAkJIk5GU01OVF9OT0NUTyIJCX0sCi0jZW5kaWYKLSNpZmRlZglORlNNTlRfUE9TSVgKLQl7IE5GU01OVF9QT1NJWCwJCSJORlNNTlRfUE9TSVgiCQl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotaW50Ci1zeXNfbW91bnQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWNoYXIgdHlwZVs0XTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWlmICghKHRjcC0+dV9hcmdbMl0gJiBNX05FV1RZUEUpIHx8IHVtb3Zlc3RyKHRjcCwKLQkJCQl0Y3AtPnVfYXJnWzBdLCAgc2l6ZW9mIHR5cGUsIHR5cGUpIDwgMCkgewotCQkJdHByaW50ZigiT0xEVFlQRTojJWx4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCX0gZWxzZSB7Ci0JCQl0cHJpbnRmKCJcIiVzXCIsICIsIHR5cGUpOwotCQl9Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1vdW50ZmxhZ3MsIHRjcC0+dV9hcmdbMl0gJiB+TV9ORVdUWVBFLCAiTV8/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQotCQlpZiAoc3RyY21wKHR5cGUsICI0LjIiKSA9PSAwKSB7Ci0JCQlzdHJ1Y3QgdWZzX2FyZ3MgYTsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZhKSA8IDApCi0JCQkJcmV0dXJuIDA7Ci0JCQlwcmludHN0cih0Y3AsIChpbnQpYS5mc3BlYywgLTEpOwotCQl9IGVsc2UgaWYgKHN0cmNtcCh0eXBlLCAibG8iKSA9PSAwKSB7Ci0JCQlzdHJ1Y3QgbG9fYXJncyBhOwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJmEpIDwgMCkKLQkJCQlyZXR1cm4gMDsKLQkJCXByaW50c3RyKHRjcCwgKGludClhLmZzZGlyLCAtMSk7Ci0JCX0gZWxzZSBpZiAoc3RyY21wKHR5cGUsICJuZnMiKSA9PSAwKSB7Ci0JCQlzdHJ1Y3QgbmZzX2FyZ3MgYTsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZhKSA8IDApCi0JCQkJcmV0dXJuIDA7Ci0JCQl0cHJpbnRmKCJbIik7Ci0JCQlwcmludHNvY2sodGNwLCAoaW50KSBhLmFkZHIpOwotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxhZ3MobmZzZmxhZ3MsIGEuZmxhZ3MsICJORlNNTlRfPz8/Iik7Ci0JCQl0cHJpbnRmKCIsIHdzOiV1LHJzOiV1LHRvOiV1LHJlOiV1LCIsCi0JCQkJYS53c2l6ZSwgYS5yc2l6ZSwgYS50aW1lbywgYS5yZXRyYW5zKTsKLQkJCWlmIChhLmZsYWdzICYgTkZTTU5UX0hPU1ROQU1FICYmIGEuaG9zdG5hbWUpCi0JCQkJcHJpbnRzdHIodGNwLCAoaW50KWEuaG9zdG5hbWUsIC0xKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIlI2x4IiwgKHVuc2lnbmVkIGxvbmcpIGEuaG9zdG5hbWUpOwotCQkJdHByaW50ZigiLHJlZy1taW46JXUsbWF4OiV1LGRpci1taW46JXUsbWF4OiV1LCIsCi0JCQkJYS5hY3JlZ21pbiwgYS5hY3JlZ21heCwgYS5hY2Rpcm1pbiwgYS5hY2Rpcm1heCk7Ci0JCQlpZiAoKGEuZmxhZ3MgJiBORlNNTlRfU0VDVVJFKSAmJiBhLm5ldG5hbWUpCi0JCQkJcHJpbnRzdHIodGNwLCAoaW50KSBhLm5ldG5hbWUsIC0xKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIlI2x4IiwgKHVuc2lnbmVkIGxvbmcpIGEubmV0bmFtZSk7Ci0JCQl0cHJpbnRmKCJdIik7Ci0JCX0gZWxzZSBpZiAoc3RyY21wKHR5cGUsICJyZnMiKSA9PSAwKSB7Ci0JCQlzdHJ1Y3QgcmZzX2FyZ3MgYTsKLQkJCXN0cnVjdCB0b2tlbiB0OwotCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJmEpIDwgMCkKLQkJCQlyZXR1cm4gMDsKLQkJCXRwcmludGYoIlsiKTsKLQkJCXByaW50c3RyKHRjcCwgKGludClhLnJtdGZzLCAtMSk7Ci0JCQlpZiAodW1vdmUodGNwLCAoaW50KWEudG9rZW4sICZ0KSA8IDApCi0JCQkJcmV0dXJuIDA7Ci0JCQl0cHJpbnRmKCIsICV1LCAlc10iLCB0LnRfaWQsIHQudF91bmFtZSk7Ci0JCX0gZWxzZSBpZiAoc3RyY21wKHR5cGUsICJwY2ZzIikgPT0gMCkgewotCQkJc3RydWN0IHBjX2FyZ3MgYTsKLQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZhKSA8IDApCi0JCQkJcmV0dXJuIDA7Ci0JCQlwcmludHN0cih0Y3AsIChpbnQpYS5mc3BlYywgLTEpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c191bm1vdW50KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX3Vtb3VudCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIHN5c191bm1vdW50KHRjcCk7Ci19Ci0KLWludAotc3lzX2F1ZGl0c3lzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQkvKiBYWFggLSBubyBpbmZvcm1hdGlvbiBhdmFpbGFibGUgKi8KLQlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBleF9hdXRoX2ZsYWdzW10gPSB7Ci0JeyBBVVRIX1VOSVgsCSJBVVRIX1VOSVgiCX0sCi0JeyBBVVRIX0RFUywJIkFVVEhfREVTIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c19leHBvcnRmcyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IGV4cG9ydCBlOwotCWludCBpOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7Ci0JCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZlKSA8IDApIHsKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXRwcmludGYoIntmbDoldSwgYW5vbjoldSwgIiwgZS5leF9mbGFncywgZS5leF9hbm9uKTsKLQkJcHJpbnR4dmFsKGV4X2F1dGhfZmxhZ3MsIGUuZXhfYXV0aCwgIkFVVEhfPz8/Iik7Ci0JCXRwcmludGYoIiwgcm9vdHM6WyIpOwotCQlpZiAoZS5leF9hdXRoID09IEFVVEhfVU5JWCkgewotCQkJZm9yIChpPTA7IGk8ZS5leF91LmV4dW5peC5yb290YWRkcnMubmFkZHJzOyBpKyspIHsKLQkJCQlwcmludHNvY2sodGNwLAotCQkJCQkoaW50KSZlLmV4X3UuZXh1bml4LnJvb3RhZGRycy5hZGRydmVjW2ldKTsKLQkJCX0KLQkJCXRwcmludGYoIl0sIHdyaXRlcnM6WyIpOwotCQkJZm9yIChpPTA7IGk8ZS5leF93cml0ZWFkZHJzLm5hZGRyczsgaSsrKSB7Ci0JCQkJcHJpbnRzb2NrKHRjcCwKLQkJCQkJKGludCkmZS5leF93cml0ZWFkZHJzLmFkZHJ2ZWNbaV0pOwotCQkJfQotCQkJdHByaW50ZigiXSIpOwotCQl9IGVsc2UgewotCQkJZm9yIChpPTA7IGk8ZS5leF91LmV4ZGVzLm5uYW1lczsgaSsrKSB7Ci0JCQkJcHJpbnRzb2NrKHRjcCwKLQkJCQkJKGludCkmZS5leF91LmV4ZGVzLnJvb3RuYW1lc1tpXSk7Ci0JCQkJdHByaW50ZigiLCAiKTsKLQkJCX0KLQkJCXRwcmludGYoIl0sIHdpbmRvdzoldSIsIGUuZXhfdS5leGRlcy53aW5kb3cpOwotCQl9Ci0JCXRwcmludGYoIn0iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjb25mbGltaXRzW10gPSB7Ci0jaWZkZWYJX1NDX0FSR19NQVgKLQl7IF9TQ19BUkdfTUFYLAkiX1NDX0FSR19NQVgiCX0sCS8qIHNwYWNlIGZvciBhcmd2ICYgZW52cCAqLwotI2VuZGlmCi0jaWZkZWYJX1NDX0NISUxEX01BWAotCXsgX1NDX0NISUxEX01BWCwJIl9TQ19DSElMRF9NQVgiCX0sCS8qIG1heGltdW0gY2hpbGRyZW4gcGVyIHByb2Nlc3M/Pz8gKi8KLSNlbmRpZgotI2lmZGVmCV9TQ19DTEtfVENLCi0JeyBfU0NfQ0xLX1RDSywJIl9TQ19DTEtfVENLIgl9LAkvKiBjbG9jayB0aWNrcy9zZWMgKi8KLSNlbmRpZgotI2lmZGVmCV9TQ19OR1JPVVBTX01BWAotCXsgX1NDX05HUk9VUFNfTUFYLAkiX1NDX05HUk9VUFNfTUFYIgl9LAkvKiBudW1iZXIgb2YgZ3JvdXBzIGlmIG11bHRwbGUgc3VwcC4gKi8KLSNlbmRpZgotI2lmZGVmCV9TQ19PUEVOX01BWAotCXsgX1NDX09QRU5fTUFYLAkiX1NDX09QRU5fTUFYIgl9LAkvKiBtYXggb3BlbiBmaWxlcyBwZXIgcHJvY2VzcyAqLwotI2VuZGlmCi0jaWZkZWYJX1NDX0pPQl9DT05UUk9MCi0JeyBfU0NfSk9CX0NPTlRST0wsCSJfU0NfSk9CX0NPTlRST0wiCX0sCS8qIGRvIHdlIGhhdmUgam9iIGNvbnRyb2wgKi8KLSNlbmRpZgotI2lmZGVmCV9TQ19TQVZFRF9JRFMKLQl7IF9TQ19TQVZFRF9JRFMsCSJfU0NfU0FWRURfSURTIgl9LAkvKiBkbyB3ZSBoYXZlIHNhdmVkIHVpZC9naWRzICovCi0jZW5kaWYKLSNpZmRlZglfU0NfVkVSU0lPTgotCXsgX1NDX1ZFUlNJT04sCSJfU0NfVkVSU0lPTiIJfSwJLyogUE9TSVggdmVyc2lvbiBzdXBwb3J0ZWQgKi8KLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c19zeXNjb25mKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoc3lzY29uZmxpbWl0cywgdGNwLT51X2FyZ1swXSwgIl9TQ18/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcGF0aGNvbmZsaW1pdHNbXSA9IHsKLSNpZmRlZglfUENfTElOS19NQVgKLQl7IF9QQ19MSU5LX01BWCwJIl9QQ19MSU5LX01BWCIJfSwJLyogbWF4IGxpbmtzIHRvIGZpbGUvZGlyICovCi0jZW5kaWYKLSNpZmRlZglfUENfTUFYX0NBTk9OCi0JeyBfUENfTUFYX0NBTk9OLAkiX1BDX01BWF9DQU5PTiIJfSwJLyogbWF4IGxpbmUgbGVuZ3RoICovCi0jZW5kaWYKLSNpZmRlZglfUENfTUFYX0lOUFVUCi0JeyBfUENfTUFYX0lOUFVULAkiX1BDX01BWF9JTlBVVCIJfSwJLyogbWF4ICJwYWNrZXQiIHRvIGEgdHR5IGRldmljZSAqLwotI2VuZGlmCi0jaWZkZWYJX1BDX05BTUVfTUFYCi0JeyBfUENfTkFNRV9NQVgsCSJfUENfTkFNRV9NQVgiCX0sCS8qIG1heCBwYXRobmFtZSBjb21wb25lbnQgbGVuZ3RoICovCi0jZW5kaWYKLSNpZmRlZglfUENfUEFUSF9NQVgKLQl7IF9QQ19QQVRIX01BWCwJIl9QQ19QQVRIX01BWCIJfSwJLyogbWF4IHBhdGhuYW1lIGxlbmd0aCAqLwotI2VuZGlmCi0jaWZkZWYJX1BDX1BJUEVfQlVGCi0JeyBfUENfUElQRV9CVUYsCSJfUENfUElQRV9CVUYiCX0sCS8qIHNpemUgb2YgYSBwaXBlICovCi0jZW5kaWYKLSNpZmRlZglfUENfQ0hPV05fUkVTVFJJQ1RFRAotCXsgX1BDX0NIT1dOX1JFU1RSSUNURUQsCSJfUENfQ0hPV05fUkVTVFJJQ1RFRCIJfSwJLyogY2FuIHdlIGdpdmUgYXdheSBmaWxlcyAqLwotI2VuZGlmCi0jaWZkZWYJX1BDX05PX1RSVU5DCi0JeyBfUENfTk9fVFJVTkMsCSJfUENfTk9fVFJVTkMiCX0sCS8qIHRydW5jIG9yIGVycm9yIG9uID5OQU1FX01BWCAqLwotI2VuZGlmCi0jaWZkZWYJX1BDX1ZESVNBQkxFCi0JeyBfUENfVkRJU0FCTEUsCSJfUENfVkRJU0FCTEUiCX0sCS8qIGJlc3QgY2hhciB0byBzaHV0IG9mZiB0dHkgY19jYyAqLwotI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLQotaW50Ci1zeXNfcGF0aGNvbmYodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1swXSwgLTEpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHh2YWwocGF0aGNvbmZsaW1pdHMsIHRjcC0+dV9hcmdbMV0sICJfUENfPz8/Iik7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19mcGF0aGNvbmYodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50eHZhbChwYXRoY29uZmxpbWl0cywgdGNwLT51X2FyZ1sxXSwgIl9QQ18/Pz8iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBTVU5PUzQgfHwgRlJFRUJTRCAqLwotCi0jaWZkZWYgU1ZSNAotCi0jaWZkZWYgSEFWRV9TWVNfU1lTQ09ORklHX0gKLSNpbmNsdWRlIDxzeXMvc3lzY29uZmlnLmg+Ci0jZW5kaWYgLyogSEFWRV9TWVNfU1lTQ09ORklHX0ggKi8KLQotI2luY2x1ZGUgPHN5cy9tb3VudC5oPgotI2luY2x1ZGUgPHN5cy9zeXN0ZW1pbmZvLmg+Ci0jaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2NvbmZpZ19vcHRpb25zW10gPSB7Ci0jaWZkZWYgX0NPTkZJR19OR1JPVVBTCi0JeyBfQ09ORklHX05HUk9VUFMsCQkiX0NPTkZJR19OR1JPVVBTIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfQ0hJTERfTUFYCi0JeyBfQ09ORklHX0NISUxEX01BWCwJCSJfQ09ORklHX0NISUxEX01BWCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBfQ09ORklHX09QRU5fRklMRVMKLQl7IF9DT05GSUdfT1BFTl9GSUxFUywJCSJfQ09ORklHX09QRU5fRklMRVMiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19QT1NJWF9WRVIKLQl7IF9DT05GSUdfUE9TSVhfVkVSLAkJIl9DT05GSUdfUE9TSVhfVkVSIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfUEFHRVNJWkUKLQl7IF9DT05GSUdfUEFHRVNJWkUsCQkiX0NPTkZJR19QQUdFU0laRSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBfQ09ORklHX0NMS19UQ0sKLQl7IF9DT05GSUdfQ0xLX1RDSywJCSJfQ09ORklHX0NMS19UQ0siCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19YT1BFTl9WRVIKLQl7IF9DT05GSUdfWE9QRU5fVkVSLAkJIl9DT05GSUdfWE9QRU5fVkVSIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfUFJPRl9UQ0sKLQl7IF9DT05GSUdfUFJPRl9UQ0ssCQkiX0NPTkZJR19QUk9GX1RDSyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBfQ09ORklHX05QUk9DX0NPTkYKLQl7IF9DT05GSUdfTlBST0NfQ09ORiwJCSJfQ09ORklHX05QUk9DX0NPTkYiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19OUFJPQ19PTkxOCi0JeyBfQ09ORklHX05QUk9DX09OTE4sCQkiX0NPTkZJR19OUFJPQ19PTkxOIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfQUlPX0xJU1RJT19NQVgKLQl7IF9DT05GSUdfQUlPX0xJU1RJT19NQVgsCSJfQ09ORklHX0FJT19MSVNUSU9fTUFYIgl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19BSU9fTUFYCi0JeyBfQ09ORklHX0FJT19NQVgsCQkiX0NPTkZJR19BSU9fTUFYIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfQUlPX1BSSU9fREVMVEFfTUFYCi0JeyBfQ09ORklHX0FJT19QUklPX0RFTFRBX01BWCwJIl9DT05GSUdfQUlPX1BSSU9fREVMVEFfTUFYIgl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19DT05GSUdfREVMQVlUSU1FUl9NQVgKLQl7IF9DT05GSUdfREVMQVlUSU1FUl9NQVgsCSJfQ09ORklHX0RFTEFZVElNRVJfTUFYIgl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19NUV9PUEVOX01BWAotCXsgX0NPTkZJR19NUV9PUEVOX01BWCwJCSJfQ09ORklHX01RX09QRU5fTUFYIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfTVFfUFJJT19NQVgKLQl7IF9DT05GSUdfTVFfUFJJT19NQVgsCQkiX0NPTkZJR19NUV9QUklPX01BWCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBfQ09ORklHX1JUU0lHX01BWAotCXsgX0NPTkZJR19SVFNJR19NQVgsCQkiX0NPTkZJR19SVFNJR19NQVgiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19TRU1fTlNFTVNfTUFYCi0JeyBfQ09ORklHX1NFTV9OU0VNU19NQVgsCSJfQ09ORklHX1NFTV9OU0VNU19NQVgiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19TRU1fVkFMVUVfTUFYCi0JeyBfQ09ORklHX1NFTV9WQUxVRV9NQVgsCSJfQ09ORklHX1NFTV9WQUxVRV9NQVgiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19TSUdRVUVVRV9NQVgKLQl7IF9DT05GSUdfU0lHUVVFVUVfTUFYLAkJIl9DT05GSUdfU0lHUVVFVUVfTUFYIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfU0lHUlRfTUlOCi0JeyBfQ09ORklHX1NJR1JUX01JTiwJCSJfQ09ORklHX1NJR1JUX01JTiIJCX0sCi0jZW5kaWYKLSNpZmRlZiBfQ09ORklHX1NJR1JUX01BWAotCXsgX0NPTkZJR19TSUdSVF9NQVgsCQkiX0NPTkZJR19TSUdSVF9NQVgiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19USU1FUl9NQVgKLQl7IF9DT05GSUdfVElNRVJfTUFYLAkJIl9DT05GSUdfVElNRVJfTUFYIgkJfSwKLSNlbmRpZgotI2lmZGVmIF9DT05GSUdfQ09ORklHX1BIWVNfUEFHRVMKLQl7IF9DT05GSUdfUEhZU19QQUdFUywJCSJfQ09ORklHX1BIWVNfUEFHRVMiCQl9LAotI2VuZGlmCi0jaWZkZWYgX0NPTkZJR19BVlBIWVNfUEFHRVMKLQl7IF9DT05GSUdfQVZQSFlTX1BBR0VTLAkJIl9DT05GSUdfQVZQSFlTX1BBR0VTIgkJfSwKLSNlbmRpZgotCXsgMCwJCQkJTlVMTAkJCQl9LAotfTsKLQotaW50Ci1zeXNfc3lzY29uZmlnKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJcHJpbnR4dmFsKHN5c2NvbmZpZ19vcHRpb25zLCB0Y3AtPnVfYXJnWzBdLCAiX0NPTkZJR18/Pz8iKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2luZm9fb3B0aW9uc1tdID0gewotCXsgU0lfU1lTTkFNRSwJCSJTSV9TWVNOQU1FIgkJfSwKLQl7IFNJX0hPU1ROQU1FLAkJIlNJX0hPU1ROQU1FIgkJfSwKLQl7IFNJX1JFTEVBU0UsCQkiU0lfUkVMRUFTRSIJCX0sCi0JeyBTSV9WRVJTSU9OLAkJIlNJX1ZFUlNJT04iCQl9LAotCXsgU0lfTUFDSElORSwJCSJTSV9NQUNISU5FIgkJfSwKLQl7IFNJX0FSQ0hJVEVDVFVSRSwJIlNJX0FSQ0hJVEVDVFVSRSIJfSwKLQl7IFNJX0hXX1NFUklBTCwJCSJTSV9IV19TRVJJQUwiCQl9LAotCXsgU0lfSFdfUFJPVklERVIsCSJTSV9IV19QUk9WSURFUiIJfSwKLQl7IFNJX1NSUENfRE9NQUlOLAkiU0lfU1JQQ19ET01BSU4iCX0sCi0jaWZkZWYgU0lfU0VUX0hPU1ROQU1FCi0JeyBTSV9TRVRfSE9TVE5BTUUsCSJTSV9TRVRfSE9TVE5BTUUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTSV9TRVRfU1JQQ19ET01BSU4KLQl7IFNJX1NFVF9TUlBDX0RPTUFJTiwJIlNJX1NFVF9TUlBDX0RPTUFJTiIJfSwKLSNlbmRpZgotI2lmZGVmIFNJX1NFVF9LRVJCX1JFQUxNCi0JeyBTSV9TRVRfS0VSQl9SRUFMTSwJIlNJX1NFVF9LRVJCX1JFQUxNIgl9LAotI2VuZGlmCi0jaWZkZWYgCVNJX0tFUkJfUkVBTE0KLQl7IFNJX0tFUkJfUkVBTE0sCSJTSV9LRVJCX1JFQUxNIgkJfSwKLSNlbmRpZgotCXsgMCwJCQlOVUxMCQkJfSwKLX07Ci0KLWludAotc3lzX3N5c2luZm8odGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChzeXNpbmZvX29wdGlvbnMsIHRjcC0+dV9hcmdbMF0sICJTSV8/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQl9Ci0JZWxzZSB7Ci0JCS8qIFRlY2huaWNhbGx5IHNvbWUgY2FsbHMgd3JpdGUgdmFsdWVzLiAgU28gd2hhdC4gKi8KLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UKLQkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIE1JUFMKLQotI2luY2x1ZGUgPHN5cy9zeXNzZ2kuaD4KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c3NnaV9vcHRpb25zW10gPSB7Ci0JeyBTR0lfU1lTSUQsCQkiU0dJX1NZU0lEIgkJfSwKLSNpZmRlZiBTR0lfUkRVQkxLCi0JeyBTR0lfUkRVQkxLLAkJIlNHSV9SRFVCTEsiCQl9LAotI2VuZGlmCi0JeyBTR0lfVFVORSwJCSJTR0lfVFVORSIJCX0sCi0JeyBTR0lfSURCRywJCSJTR0lfSURCRyIJCX0sCi0JeyBTR0lfSU5WRU5ULAkJIlNHSV9JTlZFTlQiCQl9LAotCXsgU0dJX1JETkFNRSwJCSJTR0lfUkROQU1FIgkJfSwKLQl7IFNHSV9TRVRMRUQsCQkiU0dJX1NFVExFRCIJCX0sCi0JeyBTR0lfU0VUTlZSQU0sCQkiU0dJX1NFVE5WUkFNIgkJfSwKLQl7IFNHSV9HRVROVlJBTSwJCSJTR0lfR0VUTlZSQU0iCQl9LAotCXsgU0dJX1FVRVJZX0ZUSU1FUiwJIlNHSV9RVUVSWV9GVElNRVIiCX0sCi0JeyBTR0lfUVVFUllfQ1lDTEVDTlRSLAkiU0dJX1FVRVJZX0NZQ0xFQ05UUiIJfSwKLQl7IFNHSV9QUk9DU1osCQkiU0dJX1BST0NTWiIJCX0sCi0JeyBTR0lfU0lHQUNUSU9OLAkiU0dJX1NJR0FDVElPTiIJCX0sCi0JeyBTR0lfU0lHUEVORElORywJIlNHSV9TSUdQRU5ESU5HIgl9LAotCXsgU0dJX1NJR1BST0NNQVNLLAkiU0dJX1NJR1BST0NNQVNLIgl9LAotCXsgU0dJX1NJR1NVU1BFTkQsCSJTR0lfU0lHU1VTUEVORCIJfSwKLQl7IFNHSV9TRVRTSUQsCQkiU0dJX1NFVFNJRCIJCX0sCi0JeyBTR0lfU0VUUEdJRCwJCSJTR0lfU0VUUEdJRCIJCX0sCi0JeyBTR0lfU1lTQ09ORiwJCSJTR0lfU1lTQ09ORiIJCX0sCi0JeyBTR0lfV0FJVDQsCQkiU0dJX1dBSVQ0IgkJfSwKLQl7IFNHSV9QQVRIQ09ORiwJCSJTR0lfUEFUSENPTkYiCQl9LAotCXsgU0dJX1JFQURCLAkJIlNHSV9SRUFEQiIJCX0sCi0JeyBTR0lfV1JJVEVCLAkJIlNHSV9XUklURUIiCQl9LAotCXsgU0dJX1NFVEdST1VQUywJIlNHSV9TRVRHUk9VUFMiCQl9LAotCXsgU0dJX0dFVEdST1VQUywJIlNHSV9HRVRHUk9VUFMiCQl9LAotCXsgU0dJX1NFVFRJTUVPRkRBWSwJIlNHSV9TRVRUSU1FT0ZEQVkiCX0sCi0JeyBTR0lfU0VUVElNRVRSSU0sCSJTR0lfU0VUVElNRVRSSU0iCX0sCi0JeyBTR0lfR0VUVElNRVRSSU0sCSJTR0lfR0VUVElNRVRSSU0iCX0sCi0JeyBTR0lfU1BST0ZJTCwJCSJTR0lfU1BST0ZJTCIJCX0sCi0JeyBTR0lfUlVTQUdFLAkJIlNHSV9SVVNBR0UiCQl9LAotCXsgU0dJX1NJR1NUQUNLLAkJIlNHSV9TSUdTVEFDSyIJCX0sCi0JeyBTR0lfU0lHU1RBVFVTLAkiU0dJX1NJR1NUQVRVUyIJCX0sCi0JeyBTR0lfTkVUUFJPQywJCSJTR0lfTkVUUFJPQyIJCX0sCi0JeyBTR0lfU0lHQUxUU1RBQ0ssCSJTR0lfU0lHQUxUU1RBQ0siCX0sCi0JeyBTR0lfQkRGTFVTSENOVCwJIlNHSV9CREZMVVNIQ05UIgl9LAotCXsgU0dJX1NTWU5DLAkJIlNHSV9TU1lOQyIJCX0sCi0JeyBTR0lfTkZTQ05WVCwJCSJTR0lfTkZTQ05WVCIJCX0sCi0JeyBTR0lfR0VUUEdJRCwJCSJTR0lfR0VUUEdJRCIJCX0sCi0JeyBTR0lfR0VUU0lELAkJIlNHSV9HRVRTSUQiCQl9LAotCXsgU0dJX0lPUFJPQkUsCQkiU0dJX0lPUFJPQkUiCQl9LAotCXsgU0dJX0NPTkZJRywJCSJTR0lfQ09ORklHIgkJfSwKLQl7IFNHSV9FTEZNQVAsCQkiU0dJX0VMRk1BUCIJCX0sCi0JeyBTR0lfTUNPTkZJRywJCSJTR0lfTUNPTkZJRyIJCX0sCi0JeyBTR0lfR0VUUExBQkVMLAkiU0dJX0dFVFBMQUJFTCIJCX0sCi0JeyBTR0lfU0VUUExBQkVMLAkiU0dJX1NFVFBMQUJFTCIJCX0sCi0JeyBTR0lfR0VUTEFCRUwsCQkiU0dJX0dFVExBQkVMIgkJfSwKLQl7IFNHSV9TRVRMQUJFTCwJCSJTR0lfU0VUTEFCRUwiCQl9LAotCXsgU0dJX1NBVFJFQUQsCQkiU0dJX1NBVFJFQUQiCQl9LAotCXsgU0dJX1NBVFdSSVRFLAkJIlNHSV9TQVRXUklURSIJCX0sCi0JeyBTR0lfU0FUQ1RMLAkJIlNHSV9TQVRDVEwiCQl9LAotCXsgU0dJX0xPQURBVFRSLAkJIlNHSV9MT0FEQVRUUiIJCX0sCi0JeyBTR0lfVU5MT0FEQVRUUiwJIlNHSV9VTkxPQURBVFRSIgl9LAotI2lmZGVmIFNHSV9SRUNWTE1TRwotCXsgU0dJX1JFQ1ZMTVNHLAkJIlNHSV9SRUNWTE1TRyIJCX0sCi0jZW5kaWYKLQl7IFNHSV9QTEFOR01PVU5ULAkiU0dJX1BMQU5HTU9VTlQiCX0sCi0JeyBTR0lfR0VUUFNPQUNMLAkiU0dJX0dFVFBTT0FDTCIJCX0sCi0JeyBTR0lfU0VUUFNPQUNMLAkiU0dJX1NFVFBTT0FDTCIJCX0sCi0jaWZkZWYgU0dJX0VBR19HRVRfQVRUUgotCXsgU0dJX0VBR19HRVRfQVRUUiwJIlNHSV9FQUdfR0VUX0FUVFIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfRUFHX1NFVF9BVFRSCi0JeyBTR0lfRUFHX1NFVF9BVFRSLAkiU0dJX0VBR19TRVRfQVRUUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9FQUdfR0VUX1BST0NBVFRSCi0JeyBTR0lfRUFHX0dFVF9QUk9DQVRUUiwJIlNHSV9FQUdfR0VUX1BST0NBVFRSIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0VBR19TRVRfUFJPQ0FUVFIKLQl7IFNHSV9FQUdfU0VUX1BST0NBVFRSLAkiU0dJX0VBR19TRVRfUFJPQ0FUVFIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfRlJFVk9LRQotCXsgU0dJX0ZSRVZPS0UsCQkiU0dJX0ZSRVZPS0UiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1NCRV9HRVRfSU5GTwotCXsgU0dJX1NCRV9HRVRfSU5GTywJIlNHSV9TQkVfR0VUX0lORk8iCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfU0JFX0NMUl9JTkZPCi0JeyBTR0lfU0JFX0NMUl9JTkZPLAkiU0dJX1NCRV9DTFJfSU5GTyIJfSwKLSNlbmRpZgotCXsgU0dJX1JNSV9GSVhFQ0MsCSJTR0lfUk1JX0ZJWEVDQyIJfSwKLQl7IFNHSV9SNEtfQ0VSUlMsCSJTR0lfUjRLX0NFUlJTIgkJfSwKLQl7IFNHSV9HRVRfRVZDT05GLAkiU0dJX0dFVF9FVkNPTkYiCX0sCi0JeyBTR0lfTVBDV0FST0ZGLAkiU0dJX01QQ1dBUk9GRiIJCX0sCi0JeyBTR0lfU0VUX0FVVE9QV1JPTiwJIlNHSV9TRVRfQVVUT1BXUk9OIgl9LAotCXsgU0dJX1NQSVBFLAkJIlNHSV9TUElQRSIJCX0sCi0JeyBTR0lfU1lNVEFCLAkJIlNHSV9TWU1UQUIiCQl9LAotI2lmZGVmIFNHSV9TRVRfRlBERUJVRwotCXsgU0dJX1NFVF9GUERFQlVHLAkiU0dJX1NFVF9GUERFQlVHIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1NFVF9GUF9QUkVDSVNFCi0JeyBTR0lfU0VUX0ZQX1BSRUNJU0UsCSJTR0lfU0VUX0ZQX1BSRUNJU0UiCX0sCi0jZW5kaWYKLQl7IFNHSV9UT1NTVFNBVkUsCSJTR0lfVE9TU1RTQVZFIgkJfSwKLQl7IFNHSV9GREhJLAkJIlNHSV9GREhJIgkJfSwKLSNpZmRlZiBTR0lfU0VUX0NPTkZJR19TTU0KLQl7IFNHSV9TRVRfQ09ORklHX1NNTSwJIlNHSV9TRVRfQ09ORklHX1NNTSIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TRVRfRlBfUFJFU0VSVkUKLQl7IFNHSV9TRVRfRlBfUFJFU0VSVkUsCSJTR0lfU0VUX0ZQX1BSRVNFUlZFIgl9LAotI2VuZGlmCi0JeyBTR0lfTUlOUlNTLAkJIlNHSV9NSU5SU1MiCQl9LAotI2lmZGVmIFNHSV9HUklPCi0JeyBTR0lfR1JJTywJCSJTR0lfR1JJTyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfWExWX1NFVF9UQUIKLQl7IFNHSV9YTFZfU0VUX1RBQiwJIlNHSV9YTFZfU0VUX1RBQiIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9YTFZfR0VUX1RBQgotCXsgU0dJX1hMVl9HRVRfVEFCLAkiU0dJX1hMVl9HRVRfVEFCIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVF9GUF9QUkVDSVNFCi0JeyBTR0lfR0VUX0ZQX1BSRUNJU0UsCSJTR0lfR0VUX0ZQX1BSRUNJU0UiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUX0NPTkZJR19TTU0KLQl7IFNHSV9HRVRfQ09ORklHX1NNTSwJIlNHSV9HRVRfQ09ORklHX1NNTSIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9GUF9JTVBSRUNJU0VfU1VQUAotCXsgU0dJX0ZQX0lNUFJFQ0lTRV9TVVBQLCJTR0lfRlBfSU1QUkVDSVNFX1NVUFAiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQ09ORklHX05TTU1fU1VQUAotCXsgU0dJX0NPTkZJR19OU01NX1NVUFAsCSJTR0lfQ09ORklHX05TTU1fU1VQUCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9SVF9UU1RBTVBfQ1JFQVRFCi0JeyBTR0lfUlRfVFNUQU1QX0NSRUFURSwJIlNHSV9SVF9UU1RBTVBfQ1JFQVRFIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1JUX1RTVEFNUF9ERUxFVEUKLQl7IFNHSV9SVF9UU1RBTVBfREVMRVRFLAkiU0dJX1JUX1RTVEFNUF9ERUxFVEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUlRfVFNUQU1QX1NUQVJUCi0JeyBTR0lfUlRfVFNUQU1QX1NUQVJULAkiU0dJX1JUX1RTVEFNUF9TVEFSVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9SVF9UU1RBTVBfU1RPUAotCXsgU0dJX1JUX1RTVEFNUF9TVE9QLAkiU0dJX1JUX1RTVEFNUF9TVE9QIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1JUX1RTVEFNUF9BRERSCi0JeyBTR0lfUlRfVFNUQU1QX0FERFIsCSJTR0lfUlRfVFNUQU1QX0FERFIiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUlRfVFNUQU1QX01BU0sKLQl7IFNHSV9SVF9UU1RBTVBfTUFTSywJIlNHSV9SVF9UU1RBTVBfTUFTSyIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9SVF9UU1RBTVBfRU9CX01PREUKLQl7IFNHSV9SVF9UU1RBTVBfRU9CX01PREUsIlNHSV9SVF9UU1RBTVBfRU9CX01PREUifSwKLSNlbmRpZgotI2lmZGVmIFNHSV9VU0VfRlBfQkNPUFkKLQl7IFNHSV9VU0VfRlBfQkNPUFksCSJTR0lfVVNFX0ZQX0JDT1BZIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVF9VU1QKLQl7IFNHSV9HRVRfVVNULAkJIlNHSV9HRVRfVVNUIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TUEVDVUxBVElWRV9FWEVDCi0JeyBTR0lfU1BFQ1VMQVRJVkVfRVhFQywJIlNHSV9TUEVDVUxBVElWRV9FWEVDIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1hMVl9ORVhUX1JRU1QKLQl7IFNHSV9YTFZfTkVYVF9SUVNULAkiU0dJX1hMVl9ORVhUX1JRU1QiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfWExWX0FUVFJfQ1VSU09SCi0JeyBTR0lfWExWX0FUVFJfQ1VSU09SLAkiU0dJX1hMVl9BVFRSX0NVUlNPUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9YTFZfQVRUUl9HRVQKLQl7IFNHSV9YTFZfQVRUUl9HRVQsCSJTR0lfWExWX0FUVFJfR0VUIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1hMVl9BVFRSX1NFVAotCXsgU0dJX1hMVl9BVFRSX1NFVCwJIlNHSV9YTFZfQVRUUl9TRVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQlRPT0xTSVpFCi0JeyBTR0lfQlRPT0xTSVpFLAkiU0dJX0JUT09MU0laRSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQlRPT0xHRVQKLQl7IFNHSV9CVE9PTEdFVCwJCSJTR0lfQlRPT0xHRVQiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0JUT09MUkVJTklUCi0JeyBTR0lfQlRPT0xSRUlOSVQsCSJTR0lfQlRPT0xSRUlOSVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQ1JFQVRFX1VVSUQKLQl7IFNHSV9DUkVBVEVfVVVJRCwJIlNHSV9DUkVBVEVfVVVJRCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9OT0ZQRQotCXsgU0dJX05PRlBFLAkJIlNHSV9OT0ZQRSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfT0xEX1NPRlRGUAotCXsgU0dJX09MRF9TT0ZURlAsCSJTR0lfT0xEX1NPRlRGUCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9GU19JTlVNQkVSUwotCXsgU0dJX0ZTX0lOVU1CRVJTLAkiU0dJX0ZTX0lOVU1CRVJTIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0ZTX0JVTEtTVEFUCi0JeyBTR0lfRlNfQlVMS1NUQVQsCSJTR0lfRlNfQlVMS1NUQVQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUlRfVFNUQU1QX1dBSVQKLQl7IFNHSV9SVF9UU1RBTVBfV0FJVCwJIlNHSV9SVF9UU1RBTVBfV0FJVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9SVF9UU1RBTVBfVVBEQVRFCi0JeyBTR0lfUlRfVFNUQU1QX1VQREFURSwJIlNHSV9SVF9UU1RBTVBfVVBEQVRFIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1BBVEhfVE9fSEFORExFCi0JeyBTR0lfUEFUSF9UT19IQU5ETEUsCSJTR0lfUEFUSF9UT19IQU5ETEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUEFUSF9UT19GU0hBTkRMRQotCXsgU0dJX1BBVEhfVE9fRlNIQU5ETEUsCSJTR0lfUEFUSF9UT19GU0hBTkRMRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9GRF9UT19IQU5ETEUKLQl7IFNHSV9GRF9UT19IQU5ETEUsCSJTR0lfRkRfVE9fSEFORExFIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX09QRU5fQllfSEFORExFCi0JeyBTR0lfT1BFTl9CWV9IQU5ETEUsCSJTR0lfT1BFTl9CWV9IQU5ETEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUkVBRExJTktfQllfSEFORExFCi0JeyBTR0lfUkVBRExJTktfQllfSEFORExFLCJTR0lfUkVBRExJTktfQllfSEFORExFIn0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUkVBRF9EQU5HSUQKLQl7IFNHSV9SRUFEX0RBTkdJRCwJIlNHSV9SRUFEX0RBTkdJRCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9DT05TVAotCXsgU0dJX0NPTlNULAkJIlNHSV9DT05TVCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfWEZTX0ZTT1BFUkFUSU9OUwotCXsgU0dJX1hGU19GU09QRVJBVElPTlMsCSJTR0lfWEZTX0ZTT1BFUkFUSU9OUyIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TRVRBU0gKLQl7IFNHSV9TRVRBU0gsCQkiU0dJX1NFVEFTSCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUQVNICi0JeyBTR0lfR0VUQVNILAkJIlNHSV9HRVRBU0giCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1NFVFBSSUQKLQl7IFNHSV9TRVRQUklELAkJIlNHSV9TRVRQUklEIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9HRVRQUklECi0JeyBTR0lfR0VUUFJJRCwJCSJTR0lfR0VUUFJJRCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfU0VUU1BJTkZPCi0JeyBTR0lfU0VUU1BJTkZPLAkiU0dJX1NFVFNQSU5GTyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUU1BJTkZPCi0JeyBTR0lfR0VUU1BJTkZPLAkiU0dJX0dFVFNQSU5GTyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfU0hBUkVJSQotCXsgU0dJX1NIQVJFSUksCQkiU0dJX1NIQVJFSUkiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX05FV0FSUkFZU0VTUwotCXsgU0dJX05FV0FSUkFZU0VTUywJIlNHSV9ORVdBUlJBWVNFU1MiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUREZMVFBSSUQKLQl7IFNHSV9HRVRERkxUUFJJRCwJIlNHSV9HRVRERkxUUFJJRCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TRVRfRElTTUlTU0VEX0VYQ19DTlQKLQl7IFNHSV9TRVRfRElTTUlTU0VEX0VYQ19DTlQsIlNHSV9TRVRfRElTTUlTU0VEX0VYQ19DTlQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUX0RJU01JU1NFRF9FWENfQ05UCi0JeyBTR0lfR0VUX0RJU01JU1NFRF9FWENfQ05ULCJTR0lfR0VUX0RJU01JU1NFRF9FWENfQ05UIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0NZQ0xFQ05UUl9TSVpFCi0JeyBTR0lfQ1lDTEVDTlRSX1NJWkUsCSJTR0lfQ1lDTEVDTlRSX1NJWkUiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUVVFUllfRkFTVFRJTUVSCi0JeyBTR0lfUVVFUllfRkFTVFRJTUVSLAkiU0dJX1FVRVJZX0ZBU1RUSU1FUiIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9QSURTSU5BU0gKLQl7IFNHSV9QSURTSU5BU0gsCSJTR0lfUElEU0lOQVNIIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9VTEkKLQl7IFNHSV9VTEksCQkiU0dJX1VMSSIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfTFBHX1NITUdFVAotCXsgU0dJX0xQR19TSE1HRVQsCSJTR0lfTFBHX1NITUdFVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9MUEdfTUFQCi0JeyBTR0lfTFBHX01BUCwJCSJTR0lfTFBHX01BUCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQ0FDSEVGU19TWVMKLQl7IFNHSV9DQUNIRUZTX1NZUywJIlNHSV9DQUNIRUZTX1NZUyIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9ORlNOT1RJRlkKLQl7IFNHSV9ORlNOT1RJRlksCSJTR0lfTkZTTk9USUZZIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9MT0NLRFNZUwotCXsgU0dJX0xPQ0tEU1lTLAkJIlNHSV9MT0NLRFNZUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfRVZFTlRDVFIKLQl7IFNHSV9FVkVOVENUUiwJCSJTR0lfRVZFTlRDVFIiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVFBSVVNBR0UKLQl7IFNHSV9HRVRQUlVTQUdFLAkiU0dJX0dFVFBSVVNBR0UiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUFJPQ01BU0tfTE9DQVRJT04KLQl7IFNHSV9QUk9DTUFTS19MT0NBVElPTiwiU0dJX1BST0NNQVNLX0xPQ0FUSU9OIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX1VOVVNFRAotCXsgU0dJX1VOVVNFRCwJCSJTR0lfVU5VU0VEIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9DS1BUX1NZUwotCXsgU0dJX0NLUFRfU1lTLAkJIlNHSV9DS1BUX1NZUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfQ0tQVF9TWVMKLQl7IFNHSV9DS1BUX1NZUywJCSJTR0lfQ0tQVF9TWVMiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVEdSUFBJRAotCXsgU0dJX0dFVEdSUFBJRCwJIlNHSV9HRVRHUlBQSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVFNFU1BJRAotCXsgU0dJX0dFVFNFU1BJRCwJIlNHSV9HRVRTRVNQSUQiCQl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0VOVU1BU0hTCi0JeyBTR0lfRU5VTUFTSFMsCQkiU0dJX0VOVU1BU0hTIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TRVRBU01BQ0hJRAotCXsgU0dJX1NFVEFTTUFDSElELAkiU0dJX1NFVEFTTUFDSElEIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0dFVEFTTUFDSElECi0JeyBTR0lfR0VUQVNNQUNISUQsCSJTR0lfR0VUQVNNQUNISUQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfR0VUQVJTRVNTCi0JeyBTR0lfR0VUQVJTRVNTLAkiU0dJX0dFVEFSU0VTUyIJCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfSk9JTkFSUkFZU0VTUwotCXsgU0dJX0pPSU5BUlJBWVNFU1MsCSJTR0lfSk9JTkFSUkFZU0VTUyIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TUFJPQ19LSUxMCi0JeyBTR0lfU1BST0NfS0lMTCwJIlNHSV9TUFJPQ19LSUxMIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0RCQV9DT05GSUcKLQl7IFNHSV9EQkFfQ09ORklHLAkiU0dJX0RCQV9DT05GSUciCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfUkVMRUFTRV9OQU1FCi0JeyBTR0lfUkVMRUFTRV9OQU1FLAkiU0dJX1JFTEVBU0VfTkFNRSIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TWU5DSF9DQUNIRV9IQU5ETEVSCi0JeyBTR0lfU1lOQ0hfQ0FDSEVfSEFORExFUiwiU0dJX1NZTkNIX0NBQ0hFX0hBTkRMRVIifSwKLSNlbmRpZgotI2lmZGVmIFNHSV9TV0FTSF9JTklUCi0JeyBTR0lfU1dBU0hfSU5JVCwJIlNHSV9TV0FTSF9JTklUIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX05VTUFfTUlHUl9QQUdFCi0JeyBTR0lfTlVNQV9NSUdSX1BBR0UsCSJTR0lfTlVNQV9NSUdSX1BBR0UiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfTlVNQV9NSUdSX1BBR0VfQUxUCi0JeyBTR0lfTlVNQV9NSUdSX1BBR0VfQUxULCJTR0lfTlVNQV9NSUdSX1BBR0VfQUxUIn0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfS0FJT19VU0VSSU5JVAotCXsgU0dJX0tBSU9fVVNFUklOSVQsCSJTR0lfS0FJT19VU0VSSU5JVCIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9LQUlPX1JFQUQKLQl7IFNHSV9LQUlPX1JFQUQsCSJTR0lfS0FJT19SRUFEIgkJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9LQUlPX1dSSVRFCi0JeyBTR0lfS0FJT19XUklURSwJIlNHSV9LQUlPX1dSSVRFIgl9LAotI2VuZGlmCi0jaWZkZWYgU0dJX0tBSU9fU1VTUEVORAotCXsgU0dJX0tBSU9fU1VTUEVORCwJIlNHSV9LQUlPX1NVU1BFTkQiCX0sCi0jZW5kaWYKLSNpZmRlZiBTR0lfS0FJT19TVEFUUwotCXsgU0dJX0tBSU9fU1RBVFMsCSJTR0lfS0FJT19TVEFUUyIJfSwKLSNlbmRpZgotI2lmZGVmIFNHSV9JTklUSUFMX1BUX1NQUk9DCi0JeyBTR0lfSU5JVElBTF9QVF9TUFJPQywJIlNHSV9JTklUSUFMX1BUX1NQUk9DIgl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotaW50Ci1zeXNfc3lzc2dpKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgaTsKLQotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChzeXNzZ2lfb3B0aW9ucywgdGNwLT51X2FyZ1swXSwgIlNHSV8/Pz8iKTsKLQkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7Ci0JCWRlZmF1bHQ6Ci0JCQlmb3IgKGkgPSAxOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCi0JCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1tpXSk7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHJwYy9ycGMuaD4KLXN0cnVjdCBjcmVkOwotc3RydWN0IHVpbzsKLSNpbmNsdWRlIDxzeXMvZnNpZC5oPgotI2luY2x1ZGUgPHN5cy92bm9kZS5oPgotI2luY2x1ZGUgPHN5cy9mcy9uZnMuaD4KLSNpbmNsdWRlIDxzeXMvZnMvbmZzX2NsbnQuaD4KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1vdW50X2ZsYWdzW10gPSB7Ci0JeyBNU19SRE9OTFksCSJNU19SRE9OTFkiCX0sCi0JeyBNU19GU1MsCSJNU19GU1MiCX0sCi0JeyBNU19EQVRBLAkiTVNfREFUQSIJfSwKLQl7IE1TX05PU1VJRCwJIk1TX05PU1VJRCIJfSwKLQl7IE1TX1JFTU9VTlQsCSJNU19SRU1PVU5UIgl9LAotCXsgTVNfTk9UUlVOQywJIk1TX05PVFJVTkMiCX0sCi0JeyBNU19HUlBJRCwJIk1TX0dSUElEIgl9LAotCXsgTVNfTk9ERVYsCSJNU19OT0RFViIJfSwKLQl7IE1TX0JFRk9SRSwJIk1TX0JFRk9SRSIJfSwKLQl7IE1TX0FGVEVSLAkiTVNfQUZURVIiCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBuZnNfZmxhZ3NbXSA9IHsKLQl7IE5GU01OVF9TT0ZULAkJIk5GU01OVF9TT0ZUIgkJfSwKLQl7IE5GU01OVF9XU0laRSwJCSJORlNNTlRfV1NJWkUiCQl9LAotCXsgTkZTTU5UX1JTSVpFLAkJIk5GU01OVF9SU0laRSIJCX0sCi0JeyBORlNNTlRfVElNRU8sCQkiTkZTTU5UX1RJTUVPIgkJfSwKLQl7IE5GU01OVF9SRVRSQU5TLAkiTkZTTU5UX1JFVFJBTlMiCX0sCi0JeyBORlNNTlRfSE9TVE5BTUUsCSJORlNNTlRfSE9TVE5BTUUiCX0sCi0jaWZkZWYgTkZTTU5UX05PSU5UCS8qIElSSVggNiAqLwotCXsgTkZTTU5UX05PSU5ULAkJIk5GU01OVF9OT0lOVCIJCX0sCi0jZW5kaWYKLSNpZmRlZiBORlNNTlRfSU5UCS8qIElSSVggNSAqLwotCXsgTkZTTU5UX0lOVCwJCSJORlNNTlRfSU5UIgkJfSwKLSNlbmRpZgotCXsgTkZTTU5UX05PQUMsCQkiTkZTTU5UX05PQUMiCQl9LAotCXsgTkZTTU5UX0FDUkVHTUlOLAkiTkZTTU5UX0FDUkVHTUlOIgl9LAotCXsgTkZTTU5UX0FDUkVHTUFYLAkiTkZTTU5UX0FDUkVHTUFYIgl9LAotCXsgTkZTTU5UX0FDRElSTUlOLAkiTkZTTU5UX0FDRElSTUlOIgl9LAotCXsgTkZTTU5UX0FDRElSTUFYLAkiTkZTTU5UX0FDRElSTUFYIgl9LAotCXsgTkZTTU5UX1BSSVZBVEUsCSJORlNNTlRfUFJJVkFURSIJfSwKLQl7IE5GU01OVF9TWU1UVEwsCSJORlNNTlRfU1lNVFRMIgkJfSwKLQl7IE5GU01OVF9MT09QQkFDSywJIk5GU01OVF9MT09QQkFDSyIJfSwKLQl7IE5GU01OVF9CQVNFVFlQRSwJIk5GU01OVF9CQVNFVFlQRSIJfSwKLQl7IE5GU01OVF9OQU1FTUFYLAkiTkZTTU5UX05BTUVNQVgiCX0sCi0jaWZkZWYgTkZTTU5UX1NIT1JUVUlECS8qIElSSVggNiAqLwotCXsgTkZTTU5UX1NIT1JUVUlELAkiTkZTTU5UX1NIT1JUVUlEIgl9LAotI2VuZGlmCi0jaWZkZWYgTkZTTU5UX0FTWU5DTkxNCS8qIElSSVggNiAqLwotCXsgTkZTTU5UX0FTWU5DTkxNLAkiTkZTTU5UX0FTWU5DTkxNIgl9LAotI2VuZGlmCi0JeyAwLAkJCU5VTEwJCQl9LAotfTsKLQotaW50Ci1zeXNfbW91bnQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtb3VudF9mbGFncywgdGNwLT51X2FyZ1syXSwgIk1TXz8/PyIpOwotCQlpZiAodGNwLT51X2FyZ1syXSAmIChNU19GU1MgfCBNU19EQVRBKSkgewotCQkJdHByaW50ZigiLCAiKTsKLQkJCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbM10pOwotCQl9Ci0JCWlmICh0Y3AtPnVfYXJnWzJdICYgTVNfREFUQSkgewotCQkJaW50IG5mc190eXBlID0gc3lzZnMoR0VURlNJTkQsIEZTSURfTkZTKTsKLQotCQkJdHByaW50ZigiLCAiKTsKLQkJCWlmICh0Y3AtPnVfYXJnWzNdID09IG5mc190eXBlKSB7Ci0JCQkJc3RydWN0IG5mc19hcmdzIGFyZ3M7Ci0JCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJmFyZ3MpIDwgMCkKLQkJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOwotCQkJCWVsc2UgewotCQkJCQl0cHJpbnRmKCJhZGRyPSIpOwotCQkJCQlwcmludHNvY2sodGNwLCAoaW50KSBhcmdzLmFkZHIpOwotCQkJCQl0cHJpbnRmKCIsIGZsYWdzPSIpOwotCQkJCQlwcmludGZsYWdzKG5mc19mbGFncywgYXJncy5mbGFncywgIk5GU01OVF8/Pz8iKTsKLQkJCQkJdHByaW50ZigiLCBob3N0bmFtZT0iKTsKLQkJCQkJcHJpbnRzdHIodGNwLCAoaW50KSBhcmdzLmhvc3RuYW1lLCAtMSk7Ci0JCQkJCXRwcmludGYoIiwgLi4ufSIpOwotCQkJCX0KLQkJCX0KLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7Ci0JCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbNV0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZWxzZSAvKiAhTUlQUyAqLwotCi0jaWYgVU5JWFdBUkUKLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9mc3R5cC5oPgotI2luY2x1ZGUgPHN5cy9tb3VudC5oPgotI2luY2x1ZGUgPHN5cy94dGkuaD4KLQotI2RlZmluZSBORlNDTElFTlQJMQotI2luY2x1ZGUgPG5mcy9tb3VudC5oPgotCi0jaW5jbHVkZSA8c3lzL2ZzL3Z4X2lvY3RsLmg+Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb3VudF9mbGFnc1tdID0gewotCXsgTVNfUkRPTkxZLAkiTVNfUkRPTkxZIgl9LAotCXsgTVNfRlNTLAkiTVNfRlNTIgl9LAotCXsgTVNfREFUQSwJIk1TX0RBVEEiCX0sCi0JeyBNU19IQURCQUQsCSJNU19IQURCQUQiCX0sCi0JeyBNU19OT1NVSUQsCSJNU19OT1NVSUQiCX0sCi0JeyBNU19SRU1PVU5ULAkiTVNfUkVNT1VOVCIJfSwKLQl7IE1TX05PVFJVTkMsCSJNU19OT1RSVU5DIgl9LAotCXsgTVNfU09GVE1OVCwJIk1TX1NPRlRNTlQiCX0sCi0JeyBNU19TWVNTUEFDRSwJIk1TX1NZU1NQQUNFIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi0jaWZkZWYgVlhfTVNfTUFTSwotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHZ4ZnNfZmxhZ3NbXSA9IHsKLQl7IFZYX01TX05PTE9HLAkJIlZYX01TX05PTE9HIgkJfSwKLQl7IFZYX01TX0JMS0NMRUFSLAkiVlhfTVNfQkxLQ0xFQVIiCX0sCi0JeyBWWF9NU19TTkFQU0hPVCwJIlZYX01TX1NOQVBTSE9UIgl9LAotCXsgVlhfTVNfTk9EQVRBSU5MT0csCSJWWF9NU19OT0RBVEFJTkxPRyIJfSwKLQl7IFZYX01TX0RFTEFZTE9HLAkiVlhfTVNfREVMQVlMT0ciCX0sCi0JeyBWWF9NU19UTVBMT0csCQkiVlhfTVNfVE1QTE9HIgkJfSwKLQl7IFZYX01TX0ZJTEVTRVQsCSJWWF9NU19GSUxFU0VUIgkJfSwKLQotCXsgVlhfTVNfQ0FDSEVfRElSRUNULAkiVlhfTVNfQ0FDSEVfRElSRUNUIgl9LAotCXsgVlhfTVNfQ0FDSEVfRFNZTkMsCSJWWF9NU19DQUNIRV9EU1lOQyIJfSwKLQl7IFZYX01TX0NBQ0hFX0NMT1NFU1lOQywiVlhfTVNfQ0FDSEVfQ0xPU0VTWU5DIgl9LAotCXsgVlhfTVNfQ0FDSEVfVE1QQ0FDSEUsCSJWWF9NU19DQUNIRV9UTVBDQUNIRSIJfSwKLQotCXsgVlhfTVNfT1NZTkNfRElSRUNULAkiVlhfTVNfT1NZTkNfRElSRUNUIgl9LAotCXsgVlhfTVNfT1NZTkNfRFNZTkMsCSJWWF9NU19PU1lOQ19EU1lOQyIJfSwKLQl7IFZYX01TX09TWU5DX0NMT1NFU1lOQywiVlhfTVNfT1NZTkNfQ0xPU0VTWU5DIgl9LAotCXsgVlhfTVNfT1NZTkNfREVMQVksCSJWWF9NU19PU1lOQ19ERUxBWSIJfSwKLQl7IDAsCQkJTlVMTCwJCQl9LAotfTsKLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbmZzX2ZsYWdzW10gPSB7Ci0JeyBORlNNTlRfU09GVCwJCSJORlNNTlRfU09GVCIJCX0sCi0JeyBORlNNTlRfV1NJWkUsCQkiTkZTTU5UX1dTSVpFIgkJfSwKLQl7IE5GU01OVF9SU0laRSwJCSJORlNNTlRfUlNJWkUiCQl9LAotCXsgTkZTTU5UX1RJTUVPLAkJIk5GU01OVF9USU1FTyIJCX0sCi0JeyBORlNNTlRfUkVUUkFOUywJIk5GU01OVF9SRVRSQU5TIgl9LAotCXsgTkZTTU5UX0hPU1ROQU1FLAkiTkZTTU5UX0hPU1ROQU1FIgl9LAotCXsgTkZTTU5UX0lOVCwJCSJORlNNTlRfSU5UIgkJfSwKLQl7IE5GU01OVF9OT0FDLAkJIk5GU01OVF9OT0FDIgkJfSwKLQl7IE5GU01OVF9BQ1JFR01JTiwJIk5GU01OVF9BQ1JFR01JTiIJfSwKLQl7IE5GU01OVF9BQ1JFR01BWCwJIk5GU01OVF9BQ1JFR01BWCIJfSwKLQl7IE5GU01OVF9BQ0RJUk1JTiwJIk5GU01OVF9BQ0RJUk1JTiIJfSwKLQl7IE5GU01OVF9BQ0RJUk1BWCwJIk5GU01OVF9BQ0RJUk1BWCIJfSwKLQl7IE5GU01OVF9TRUNVUkUsCSJORlNNTlRfU0VDVVJFIgkJfSwKLQl7IE5GU01OVF9OT0NUTywJCSJORlNNTlRfTk9DVE8iCQl9LAotCXsgTkZTTU5UX0dSUElELAkJIk5GU01OVF9HUlBJRCIJCX0sCi0JeyBORlNNTlRfUlBDVElNRVNZTkMsCSJORlNNTlRfUlBDVElNRVNZTkMiCX0sCi0JeyBORlNNTlRfTFdQU01BWCwJIk5GU01OVF9MV1BTTUFYIgl9LAotCXsgMCwJCQlOVUxMCQkJfSwKLX07Ci0KLWludAotc3lzX21vdW50KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQljaGFyIGZzdHlwIFtGU1RZUFNaXTsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1vdW50X2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiTVNfPz8/Iik7Ci0JCS8qIFRoZSBkb2Mgc2V6IHRoYXQgdGhlIGZpbGUgc3lzdGVtIHR5cGUgaXMgZ2l2ZW4gYXMgYQotCQkgICBmc2luZGV4LCBhbmQgd2Ugc2hvdWxkIHVzZSBzeXNmcyB0byB3b3JrIG91dCB0aGUgbmFtZS4KLQkJICAgVGhpcyBhcHBlYXJzIHRvIGJlIHVudHJ1ZSBmb3IgVVcuICBNYXliZSBpdCdzIHVudHJ1ZQotCQkgICBmb3IgYWxsIFNWUjQncz8gKi8KLQkJaWYgKHRjcC0+dV9hcmdbMl0gJiAoTVNfRlNTIHwgTVNfREFUQSkpIHsKLQkJCWlmICh1bW92ZXN0cih0Y3AsIHRjcC0+dV9hcmdbM10sIEZTVFlQU1osIGZzdHlwKSA8IDApIHsKLQkJCQkqZnN0eXAgPSAwOwotCQkJCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1szXSk7Ci0JCQl9Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiLCBcIiVzXCIiLCBmc3R5cCk7Ci0JCX0KLQkJaWYgKHRjcC0+dV9hcmdbMl0gJiBNU19EQVRBKSB7Ci0JCQl0cHJpbnRmKCIsICIpOwotI2lmZGVmIFZYX01TX01BU0sKLQkJCS8qIE9uIFVXNyB0aGV5IGRvbid0IGdpdmUgdXMgdGhlIGRlZmluZXMgYW5kIHN0cnVjdHMKLQkJCSAgIHdlIG5lZWQgdG8gc2VlIHdoYXQgaXMgZ29pbmcgb24uICBCdW1tZXIuICovCi0JCQlpZiAoc3RyY21wIChmc3R5cCwgInZ4ZnMiKSA9PSAwKSB7Ci0JCQkJc3RydWN0IHZ4X21vdW50YXJnczUgYXJnczsKLQkJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmYXJncykgPCAwKQotCQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7Ci0JCQkJZWxzZSB7Ci0JCQkJCXRwcmludGYoInsgZmxhZ3M9Iik7Ci0JCQkJCXByaW50ZmxhZ3Modnhmc19mbGFncywgYXJncy5tZmxhZ3MsICJWWF9NU18/Pz8iKTsKLQkJCQkJaWYgKGFyZ3MubWZsYWdzICYgVlhfTVNfU05BUFNIT1QpIHsKLQkJCQkJCXRwcmludGYgKCIsIHNuYXBvZj0iKTsKLQkJCQkJCXByaW50c3RyICh0Y3AsCi0JCQkJCQkJICAobG9uZykgYXJncy5wcmltYXJ5c3BlYywKLQkJCQkJCQkgIC0xKTsKLQkJCQkJCWlmIChhcmdzLnNuYXBzaXplID4gMCkKLQkJCQkJCQl0cHJpbnRmICgiLCBzbmFwc2l6ZT0lbGQiLCBhcmdzLnNuYXBzaXplKTsKLQkJCQkJfQotCQkJCQl0cHJpbnRmKCIgfSIpOwotCQkJCX0KLQkJCX0KLQkJCWVsc2UKLSNlbmRpZgotCQkJaWYgKHN0cmNtcCAoZnN0eXAsICJzcGVjZnMiKSA9PSAwKSB7Ci0JCQkJdHByaW50ZiAoImRldj0iKTsKLQkJCQlwcmludHN0ciAodGNwLCB0Y3AtPnVfYXJnWzRdLCAtMSk7Ci0JCQl9Ci0JCQllbHNlCi0JCQlpZiAoc3RyY21wIChmc3R5cCwgIm5mcyIpID09IDApIHsKLQkJCQlzdHJ1Y3QgbmZzX2FyZ3MgYXJnczsKLQkJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmYXJncykgPCAwKQotCQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7Ci0JCQkJZWxzZSB7Ci0JCQkJCXN0cnVjdCBuZXRidWYgYWRkcjsKLQkJCQkJdHByaW50ZigieyBhZGRyPSIpOwotCQkJCQlpZiAodW1vdmUgKHRjcCwgKGludCkgYXJncy5hZGRyLCAmYWRkcikgPCAwKSB7Ci0JCQkJCQl0cHJpbnRmICgiJSNseCIsIChsb25nKSBhcmdzLmFkZHIpOwotCQkJCQl9Ci0JCQkJCWVsc2UgewotCQkJCQkJcHJpbnRzb2NrKHRjcCwgKGludCkgYWRkci5idWYsIGFkZHIubGVuKTsKLQkJCQkJfQotCQkJCQl0cHJpbnRmKCIsIGZsYWdzPSIpOwotCQkJCQlwcmludGZsYWdzKG5mc19mbGFncywgYXJncy5mbGFncywgIk5GU01OVF8/Pz8iKTsKLQkJCQkJdHByaW50ZigiLCBob3N0bmFtZT0iKTsKLQkJCQkJcHJpbnRzdHIodGNwLCAoaW50KSBhcmdzLmhvc3RuYW1lLCAtMSk7Ci0JCQkJCXRwcmludGYoIiwgLi4ufSIpOwotCQkJCX0KLQkJCX0KLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7Ci0JCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbNV0pOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi0jZWxzZSAvKiAhVU5JWFdBUkUgKi8KLQotaW50Ci1zeXNfbW91bnQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAuLi4iKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogIVVOSVhXQVJFICovCi0KLSNlbmRpZiAvKiAhTUlQUyAqLwotCi0jZW5kaWYgLyogU1ZSNCAqLwotCi0jaWZkZWYgU1lTX2NhcGdldAotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2FwYWJpbGl0aWVzW10gPSB7Ci0JeyAxPDxDQVBfQ0hPV04sCQkiQ0FQX0NIT1dOIgl9LAotCXsgMTw8Q0FQX0RBQ19PVkVSUklERSwJIkNBUF9EQUNfT1ZFUlJJREUifSwKLQl7IDE8PENBUF9EQUNfUkVBRF9TRUFSQ0gsIkNBUF9EQUNfUkVBRF9TRUFSQ0gifSwKLQl7IDE8PENBUF9GT1dORVIsCSJDQVBfRk9XTkVSIgl9LAotCXsgMTw8Q0FQX0ZTRVRJRCwJIkNBUF9GU0VUSUQiCX0sCi0JeyAxPDxDQVBfS0lMTCwJCSJDQVBfS0lMTCIJfSwKLQl7IDE8PENBUF9TRVRHSUQsCSJDQVBfU0VUR0lEIgl9LAotCXsgMTw8Q0FQX1NFVFVJRCwJIkNBUF9TRVRVSUQiCX0sCi0JeyAxPDxDQVBfU0VUUENBUCwJIkNBUF9TRVRQQ0FQIgl9LAotCXsgMTw8Q0FQX0xJTlVYX0lNTVVUQUJMRSwiQ0FQX0xJTlVYX0lNTVVUQUJMRSJ9LAotCXsgMTw8Q0FQX05FVF9CSU5EX1NFUlZJQ0UsIkNBUF9ORVRfQklORF9TRVJWSUNFIn0sCi0JeyAxPDxDQVBfTkVUX0JST0FEQ0FTVCwJIkNBUF9ORVRfQlJPQURDQVNUIn0sCi0JeyAxPDxDQVBfTkVUX0FETUlOLAkiQ0FQX05FVF9BRE1JTiIJfSwKLQl7IDE8PENBUF9ORVRfUkFXLAkiQ0FQX05FVF9SQVciCX0sCi0JeyAxPDxDQVBfSVBDX0xPQ0ssCSJDQVBfSVBDX0xPQ0siCX0sCi0JeyAxPDxDQVBfSVBDX09XTkVSLAkiQ0FQX0lQQ19PV05FUiIJfSwKLQl7IDE8PENBUF9TWVNfTU9EVUxFLAkiQ0FQX1NZU19NT0RVTEUifSwKLQl7IDE8PENBUF9TWVNfUkFXSU8sCSJDQVBfU1lTX1JBV0lPIgl9LAotCXsgMTw8Q0FQX1NZU19DSFJPT1QsCSJDQVBfU1lTX0NIUk9PVCJ9LAotCXsgMTw8Q0FQX1NZU19QVFJBQ0UsCSJDQVBfU1lTX1BUUkFDRSJ9LAotCXsgMTw8Q0FQX1NZU19QQUNDVCwJIkNBUF9TWVNfUEFDQ1QiCX0sCi0JeyAxPDxDQVBfU1lTX0FETUlOLAkiQ0FQX1NZU19BRE1JTiIJfSwKLQl7IDE8PENBUF9TWVNfQk9PVCwJIkNBUF9TWVNfQk9PVCIJfSwKLQl7IDE8PENBUF9TWVNfTklDRSwJIkNBUF9TWVNfTklDRSIJfSwKLQl7IDE8PENBUF9TWVNfUkVTT1VSQ0UsCSJDQVBfU1lTX1JFU09VUkNFIn0sCi0JeyAxPDxDQVBfU1lTX1RJTUUsCSJDQVBfU1lTX1RJTUUiCX0sCi0JeyAxPDxDQVBfU1lTX1RUWV9DT05GSUcsIkNBUF9TWVNfVFRZX0NPTkZJRyJ9LAotCXsgMCwgICAgICAgICAgICAgICAgICAgIE5VTEwgICAgICAgICAgICB9LAotfTsKLQotCi1pbnQKLXN5c19jYXBnZXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0YXRpYyBjYXBfdXNlcl9oZWFkZXJfdCAgICAgICBhcmcwID0gTlVMTDsKLQlzdGF0aWMgY2FwX3VzZXJfZGF0YV90ICAgICAgICAgYXJnMSA9IE5VTEw7Ci0KLQlpZighZW50ZXJpbmcodGNwKSkgewotCQlpZiAoIWFyZzApIHsKLQkJCWlmICgoYXJnMCA9IG1hbGxvYyhzaXplb2YoKmFyZzApKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7Ci0JCQkJdHByaW50ZigiJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQkJCXJldHVybiAtMTsKLQkJCX0KLQkJfQotCQlpZiAoIWFyZzEpIHsKLQkJCWlmICgoYXJnMSA9IG1hbGxvYyhzaXplb2YoKmFyZzEpKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7Ci0JCQkJdHByaW50ZigiJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQkJCXJldHVybiAtMTsKLQkJCX0KLQkJfQotCi0JCWlmICghdGNwLT51X2FyZ1swXSkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKLQkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mKCphcmcwKSwgKGNoYXIgKikgYXJnMCkgPCAwKQotCQkJdHByaW50ZigiPz8/Iik7Ci0JCWVsc2UgewotCQkJdHByaW50ZigiJSN4LCAlZCIsIGFyZzAtPnZlcnNpb24sIGFyZzAtPnBpZCk7Ci0JCX0KLQkJdHByaW50ZigiLCAiKTsKLQkJaWYgKCF0Y3AtPnVfYXJnWzFdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzFdLCBzaXplb2YoKmFyZzEpLCAoY2hhciAqKSBhcmcxKSA8IDApCi0JCQl0cHJpbnRmKCI/Pz8iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCJ7Iik7Ci0JCQlwcmludGZsYWdzKGNhcGFiaWxpdGllcywgYXJnMS0+ZWZmZWN0aXZlLCAiQ0FQXz8/PyIpOwotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50ZmxhZ3MoY2FwYWJpbGl0aWVzLCBhcmcxLT5wZXJtaXR0ZWQsICJDQVBfPz8/Iik7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnRmbGFncyhjYXBhYmlsaXRpZXMsIGFyZzEtPmluaGVyaXRhYmxlLCAiQ0FQXz8/PyIpOwotCQkJdHByaW50ZigifSIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19jYXBzZXQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0YXRpYyBjYXBfdXNlcl9oZWFkZXJfdCAgICAgICBhcmcwID0gTlVMTDsKLQlzdGF0aWMgY2FwX3VzZXJfZGF0YV90ICAgICAgICAgYXJnMSA9IE5VTEw7Ci0KLQlpZihlbnRlcmluZyh0Y3ApKSB7Ci0JCWlmICghYXJnMCkgewotCQkJaWYgKChhcmcwID0gbWFsbG9jKHNpemVvZigqYXJnMCkpKSA9PSBOVUxMKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCQl0cHJpbnRmKCIlI2x4LCAlI2x4IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCQkJcmV0dXJuIC0xOwotCQkJfQotCQl9Ci0JCWlmICghYXJnMSkgewotCQkJaWYgKChhcmcxID0gbWFsbG9jKHNpemVvZigqYXJnMSkpKSA9PSBOVUxMKSB7Ci0JCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCQl0cHJpbnRmKCIlI2x4LCAlI2x4IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCQkJcmV0dXJuIC0xOwotCQkJfQotCQl9Ci0KLQkJaWYgKCF0Y3AtPnVfYXJnWzBdKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCQllbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzBdLCBzaXplb2YoKmFyZzApLCAoY2hhciAqKSBhcmcwKSA8IDApCi0JCQl0cHJpbnRmKCI/Pz8iKTsKLQkJZWxzZSB7Ci0JCQl0cHJpbnRmKCIlI3gsICVkIiwgYXJnMC0+dmVyc2lvbiwgYXJnMC0+cGlkKTsKLQkJfQotCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoIXRjcC0+dV9hcmdbMV0pCi0JCQl0cHJpbnRmKCJOVUxMIik7Ci0JCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UgaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMV0sIHNpemVvZigqYXJnMSksIChjaGFyICopIGFyZzEpIDwgMCkKLQkJCXRwcmludGYoIj8/PyIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoInsiKTsKLQkJCXByaW50ZmxhZ3MoY2FwYWJpbGl0aWVzLCBhcmcxLT5lZmZlY3RpdmUsICJDQVBfPz8/Iik7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnRmbGFncyhjYXBhYmlsaXRpZXMsIGFyZzEtPnBlcm1pdHRlZCwgIkNBUF8/Pz8iKTsKLQkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludGZsYWdzKGNhcGFiaWxpdGllcywgYXJnMS0+aW5oZXJpdGFibGUsICJDQVBfPz8/Iik7Ci0JCQl0cHJpbnRmKCJ9Iik7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0KLWludCBzeXNfY2FwZ2V0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7Ci19Ci0KLWludCBzeXNfY2Fwc2V0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7Ci19Ci0KLSNlbmRpZgotCi0jaWZkZWYgTElOVVgKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfcm9vdFtdID0gewotCXsgQ1RMX0tFUk4sICJDVExfS0VSTiIgfSwKLQl7IENUTF9WTSwgIkNUTF9WTSIgfSwKLQl7IENUTF9ORVQsICJDVExfTkVUIiB9LAotCXsgQ1RMX1BST0MsICJDVExfUFJPQyIgfSwKLQl7IENUTF9GUywgIkNUTF9GUyIgfSwKLQl7IENUTF9ERUJVRywgIkNUTF9ERUJVRyIgfSwKLQl7IENUTF9ERVYsICJDVExfREVWIiB9LAotCXsgMCwgTlVMTCB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzY3RsX2tlcm5bXSA9IHsKLQl7IEtFUk5fT1NUWVBFLCAiS0VSTl9PU1RZUEUiIH0sCi0JeyBLRVJOX09TUkVMRUFTRSwgIktFUk5fT1NSRUxFQVNFIiB9LAotCXsgS0VSTl9PU1JFViwgIktFUk5fT1NSRVYiIH0sCi0JeyBLRVJOX1ZFUlNJT04sICJLRVJOX1ZFUlNJT04iIH0sCi0JeyBLRVJOX1NFQ1VSRU1BU0ssICJLRVJOX1NFQ1VSRU1BU0siIH0sCi0JeyBLRVJOX1BST0YsICJLRVJOX1BST0YiIH0sCi0JeyBLRVJOX05PREVOQU1FLCAiS0VSTl9OT0RFTkFNRSIgfSwKLQl7IEtFUk5fRE9NQUlOTkFNRSwgIktFUk5fRE9NQUlOTkFNRSIgfSwKLSNpZmRlZiBLRVJOX1NFQ1VSRUxWTAotCXsgS0VSTl9TRUNVUkVMVkwsICJLRVJOX1NFQ1VSRUxWTCIgfSwKLSNlbmRpZgotCXsgS0VSTl9QQU5JQywgIktFUk5fUEFOSUMiIH0sCi0jaWZkZWYgS0VSTl9SRUFMUk9PVERFVgotCXsgS0VSTl9SRUFMUk9PVERFViwgIktFUk5fUkVBTFJPT1RERVYiIH0sCi0jZW5kaWYKLSNpZmRlZiBLRVJOX0pBVkFfSU5URVJQUkVURVIKLQl7IEtFUk5fSkFWQV9JTlRFUlBSRVRFUiwgIktFUk5fSkFWQV9JTlRFUlBSRVRFUiIgfSwKLSNlbmRpZgotI2lmZGVmIEtFUk5fSkFWQV9BUFBMRVRWSUVXRVIKLQl7IEtFUk5fSkFWQV9BUFBMRVRWSUVXRVIsICJLRVJOX0pBVkFfQVBQTEVUVklFV0VSIiB9LAotI2VuZGlmCi0JeyBLRVJOX1NQQVJDX1JFQk9PVCwgIktFUk5fU1BBUkNfUkVCT09UIiB9LAotCXsgS0VSTl9DVExBTFRERUwsICJLRVJOX0NUTEFMVERFTCIgfSwKLQl7IEtFUk5fUFJJTlRLLCAiS0VSTl9QUklOVEsiIH0sCi0JeyBLRVJOX05BTUVUUkFOUywgIktFUk5fTkFNRVRSQU5TIiB9LAotCXsgS0VSTl9QUENfSFRBQlJFQ0xBSU0sICJLRVJOX1BQQ19IVEFCUkVDTEFJTSIgfSwKLQl7IEtFUk5fUFBDX1pFUk9QQUdFRCwgIktFUk5fUFBDX1pFUk9QQUdFRCIgfSwKLQl7IEtFUk5fUFBDX1BPV0VSU0FWRV9OQVAsICJLRVJOX1BQQ19QT1dFUlNBVkVfTkFQIiB9LAotCXsgS0VSTl9NT0RQUk9CRSwgIktFUk5fTU9EUFJPQkUiIH0sCi0JeyBLRVJOX1NHX0JJR19CVUZGLCAiS0VSTl9TR19CSUdfQlVGRiIgfSwKLQl7IEtFUk5fQUNDVCwgIktFUk5fQUNDVCIgfSwKLQl7IEtFUk5fUFBDX0wyQ1IsICJLRVJOX1BQQ19MMkNSIiB9LAotCXsgS0VSTl9SVFNJR05SLCAiS0VSTl9SVFNJR05SIiB9LAotCXsgS0VSTl9SVFNJR01BWCwgIktFUk5fUlRTSUdNQVgiIH0sCi0JeyBLRVJOX1NITU1BWCwgIktFUk5fU0hNTUFYIiB9LAotCXsgS0VSTl9NU0dNQVgsICJLRVJOX01TR01BWCIgfSwKLQl7IEtFUk5fTVNHTU5CLCAiS0VSTl9NU0dNTkIiIH0sCi0JeyBLRVJOX01TR1BPT0wsICJLRVJOX01TR1BPT0wiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfdm1bXSA9IHsKLSNpZmRlZiBWTV9TV0FQQ1RMCi0JeyBWTV9TV0FQQ1RMLCAiVk1fU1dBUENUTCIgfSwKLSNlbmRpZgotI2lmZGVmIFZNX1VOVVNFRDEKLQl7IFZNX1VOVVNFRDEsICJWTV9VTlVTRUQxIiB9LAotI2VuZGlmCi0jaWZkZWYgVk1fU1dBUE9VVAotCXsgVk1fU1dBUE9VVCwgIlZNX1NXQVBPVVQiIH0sCi0jZW5kaWYKLSNpZmRlZiBWTV9VTlVTRUQyCi0JeyBWTV9VTlVTRUQyLCAiVk1fVU5VU0VEMiIgfSwKLSNlbmRpZgotI2lmZGVmIFZNX0ZSRUVQRwotCXsgVk1fRlJFRVBHLCAiVk1fRlJFRVBHIiB9LAotI2VuZGlmCi0jaWZkZWYgVk1fVU5VU0VEMwotCXsgVk1fVU5VU0VEMywgIlZNX1VOVVNFRDMiIH0sCi0jZW5kaWYKLSNpZmRlZiBWTV9CREZMVVNICi0JeyBWTV9CREZMVVNILCAiVk1fQkRGTFVTSCIgfSwKLSNlbmRpZgotI2lmZGVmIFZNX1VOVVNFRDQKLQl7IFZNX1VOVVNFRDQsICJWTV9VTlVTRUQ0IiB9LAotI2VuZGlmCi0JeyBWTV9PVkVSQ09NTUlUX01FTU9SWSwgIlZNX09WRVJDT01NSVRfTUVNT1JZIiB9LAotI2lmZGVmIFZNX0JVRkZFUk1FTQotCXsgVk1fQlVGRkVSTUVNLCAiVk1fQlVGRkVSTUVNIiB9LAotI2VuZGlmCi0jaWZkZWYgVk1fVU5VU0VENQotCXsgVk1fVU5VU0VENSwgIlZNX1VOVVNFRDUiIH0sCi0jZW5kaWYKLSNpZmRlZiBWTV9QQUdFQ0FDSEUKLQl7IFZNX1BBR0VDQUNIRSwgIlZNX1BBR0VDQUNIRSIgfSwKLSNlbmRpZgotI2lmZGVmIFZNX1VOVVNFRDcKLQl7IFZNX1VOVVNFRDcsICJWTV9VTlVTRUQ3IiB9LAotI2VuZGlmCi0jaWZkZWYgVk1fUEFHRVJEQUVNT04KLQl7IFZNX1BBR0VSREFFTU9OLCAiVk1fUEFHRVJEQUVNT04iIH0sCi0jZW5kaWYKLSNpZmRlZiBWTV9VTlVTRUQ4Ci0JeyBWTV9VTlVTRUQ4LCAiVk1fVU5VU0VEOCIgfSwKLSNlbmRpZgotI2lmZGVmIFZNX1BHVF9DQUNIRQotCXsgVk1fUEdUX0NBQ0hFLCAiVk1fUEdUX0NBQ0hFIiB9LAotI2VuZGlmCi0jaWZkZWYgVk1fVU5VU0VEOQotCXsgVk1fVU5VU0VEOSwgIlZNX1VOVVNFRDkiIH0sCi0jZW5kaWYKLQl7IFZNX1BBR0VfQ0xVU1RFUiwgIlZNX1BBR0VfQ0xVU1RFUiIgfSwKLQl7IDAsIE5VTEwgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0W10gPSB7Ci0JeyBORVRfQ09SRSwgIk5FVF9DT1JFIiB9LAotCXsgTkVUX0VUSEVSLCAiTkVUX0VUSEVSIiB9LAotCXsgTkVUXzgwMiwgIk5FVF84MDIiIH0sCi0JeyBORVRfVU5JWCwgIk5FVF9VTklYIiB9LAotCXsgTkVUX0lQVjQsICJORVRfSVBWNCIgfSwKLQl7IE5FVF9JUFgsICJORVRfSVBYIiB9LAotCXsgTkVUX0FUQUxLLCAiTkVUX0FUQUxLIiB9LAotCXsgTkVUX05FVFJPTSwgIk5FVF9ORVRST00iIH0sCi0JeyBORVRfQVgyNSwgIk5FVF9BWDI1IiB9LAotCXsgTkVUX0JSSURHRSwgIk5FVF9CUklER0UiIH0sCi0JeyBORVRfUk9TRSwgIk5FVF9ST1NFIiB9LAotCXsgTkVUX0lQVjYsICJORVRfSVBWNiIgfSwKLQl7IE5FVF9YMjUsICJORVRfWDI1IiB9LAotCXsgTkVUX1RSLCAiTkVUX1RSIiB9LAotCXsgTkVUX0RFQ05FVCwgIk5FVF9ERUNORVQiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0X2NvcmVbXSA9IHsKLQl7IE5FVF9DT1JFX1dNRU1fTUFYLCAiTkVUX0NPUkVfV01FTV9NQVgiIH0sCi0JeyBORVRfQ09SRV9STUVNX01BWCwgIk5FVF9DT1JFX1JNRU1fTUFYIiB9LAotCXsgTkVUX0NPUkVfV01FTV9ERUZBVUxULCAiTkVUX0NPUkVfV01FTV9ERUZBVUxUIiB9LAotCXsgTkVUX0NPUkVfUk1FTV9ERUZBVUxULCAiTkVUX0NPUkVfUk1FTV9ERUZBVUxUIiB9LAotCXsgTkVUX0NPUkVfTUFYX0JBQ0tMT0csICJORVRfQ09SRV9NQVhfQkFDS0xPRyIgfSwKLQl7IE5FVF9DT1JFX0ZBU1RST1VURSwgIk5FVF9DT1JFX0ZBU1RST1VURSIgfSwKLQl7IE5FVF9DT1JFX01TR19DT1NULCAiTkVUX0NPUkVfTVNHX0NPU1QiIH0sCi0JeyBORVRfQ09SRV9NU0dfQlVSU1QsICJORVRfQ09SRV9NU0dfQlVSU1QiIH0sCi0JeyBORVRfQ09SRV9PUFRNRU1fTUFYLCAiTkVUX0NPUkVfT1BUTUVNX01BWCIgfSwKLQl7IDAsIE5VTEwgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfdW5peFtdID0gewotCXsgTkVUX1VOSVhfREVTVFJPWV9ERUxBWSwgIk5FVF9VTklYX0RFU1RST1lfREVMQVkiIH0sCi0JeyBORVRfVU5JWF9ERUxFVEVfREVMQVksICJORVRfVU5JWF9ERUxFVEVfREVMQVkiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0X2lwdjRbXSA9IHsKLQl7IE5FVF9JUFY0X0ZPUldBUkQsICJORVRfSVBWNF9GT1JXQVJEIiB9LAotCXsgTkVUX0lQVjRfRFlOQUREUiwgIk5FVF9JUFY0X0RZTkFERFIiIH0sCi0JeyBORVRfSVBWNF9DT05GLCAiTkVUX0lQVjRfQ09ORiIgfSwKLQl7IE5FVF9JUFY0X05FSUdILCAiTkVUX0lQVjRfTkVJR0giIH0sCi0JeyBORVRfSVBWNF9ST1VURSwgIk5FVF9JUFY0X1JPVVRFIiB9LAotCXsgTkVUX0lQVjRfRklCX0hBU0gsICJORVRfSVBWNF9GSUJfSEFTSCIgfSwKLQl7IE5FVF9JUFY0X1RDUF9USU1FU1RBTVBTLCAiTkVUX0lQVjRfVENQX1RJTUVTVEFNUFMiIH0sCi0JeyBORVRfSVBWNF9UQ1BfV0lORE9XX1NDQUxJTkcsICJORVRfSVBWNF9UQ1BfV0lORE9XX1NDQUxJTkciIH0sCi0JeyBORVRfSVBWNF9UQ1BfU0FDSywgIk5FVF9JUFY0X1RDUF9TQUNLIiB9LAotCXsgTkVUX0lQVjRfVENQX1JFVFJBTlNfQ09MTEFQU0UsICJORVRfSVBWNF9UQ1BfUkVUUkFOU19DT0xMQVBTRSIgfSwKLQl7IE5FVF9JUFY0X0RFRkFVTFRfVFRMLCAiTkVUX0lQVjRfREVGQVVMVF9UVEwiIH0sCi0JeyBORVRfSVBWNF9BVVRPQ09ORklHLCAiTkVUX0lQVjRfQVVUT0NPTkZJRyIgfSwKLQl7IE5FVF9JUFY0X05PX1BNVFVfRElTQywgIk5FVF9JUFY0X05PX1BNVFVfRElTQyIgfSwKLQl7IE5FVF9JUFY0X1RDUF9TWU5fUkVUUklFUywgIk5FVF9JUFY0X1RDUF9TWU5fUkVUUklFUyIgfSwKLQl7IE5FVF9JUFY0X0lQRlJBR19ISUdIX1RIUkVTSCwgIk5FVF9JUFY0X0lQRlJBR19ISUdIX1RIUkVTSCIgfSwKLQl7IE5FVF9JUFY0X0lQRlJBR19MT1dfVEhSRVNILCAiTkVUX0lQVjRfSVBGUkFHX0xPV19USFJFU0giIH0sCi0JeyBORVRfSVBWNF9JUEZSQUdfVElNRSwgIk5FVF9JUFY0X0lQRlJBR19USU1FIiB9LAotCXsgTkVUX0lQVjRfVENQX01BWF9LQV9QUk9CRVMsICJORVRfSVBWNF9UQ1BfTUFYX0tBX1BST0JFUyIgfSwKLQl7IE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfVElNRSwgIk5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfVElNRSIgfSwKLQl7IE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfUFJPQkVTLCAiTkVUX0lQVjRfVENQX0tFRVBBTElWRV9QUk9CRVMiIH0sCi0JeyBORVRfSVBWNF9UQ1BfUkVUUklFUzEsICJORVRfSVBWNF9UQ1BfUkVUUklFUzEiIH0sCi0JeyBORVRfSVBWNF9UQ1BfUkVUUklFUzIsICJORVRfSVBWNF9UQ1BfUkVUUklFUzIiIH0sCi0JeyBORVRfSVBWNF9UQ1BfRklOX1RJTUVPVVQsICJORVRfSVBWNF9UQ1BfRklOX1RJTUVPVVQiIH0sCi0JeyBORVRfSVBWNF9JUF9NQVNRX0RFQlVHLCAiTkVUX0lQVjRfSVBfTUFTUV9ERUJVRyIgfSwKLQl7IE5FVF9UQ1BfU1lOQ09PS0lFUywgIk5FVF9UQ1BfU1lOQ09PS0lFUyIgfSwKLQl7IE5FVF9UQ1BfU1REVVJHLCAiTkVUX1RDUF9TVERVUkciIH0sCi0JeyBORVRfVENQX1JGQzEzMzcsICJORVRfVENQX1JGQzEzMzciIH0sCi0JeyBORVRfVENQX1NZTl9UQUlMRFJPUCwgIk5FVF9UQ1BfU1lOX1RBSUxEUk9QIiB9LAotCXsgTkVUX1RDUF9NQVhfU1lOX0JBQ0tMT0csICJORVRfVENQX01BWF9TWU5fQkFDS0xPRyIgfSwKLQl7IE5FVF9JUFY0X0xPQ0FMX1BPUlRfUkFOR0UsICJORVRfSVBWNF9MT0NBTF9QT1JUX1JBTkdFIiB9LAotCXsgTkVUX0lQVjRfSUNNUF9FQ0hPX0lHTk9SRV9BTEwsICJORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0FMTCIgfSwKLQl7IE5FVF9JUFY0X0lDTVBfRUNIT19JR05PUkVfQlJPQURDQVNUUywgIk5FVF9JUFY0X0lDTVBfRUNIT19JR05PUkVfQlJPQURDQVNUUyIgfSwKLQl7IE5FVF9JUFY0X0lDTVBfU09VUkNFUVVFTkNIX1JBVEUsICJORVRfSVBWNF9JQ01QX1NPVVJDRVFVRU5DSF9SQVRFIiB9LAotCXsgTkVUX0lQVjRfSUNNUF9ERVNUVU5SRUFDSF9SQVRFLCAiTkVUX0lQVjRfSUNNUF9ERVNUVU5SRUFDSF9SQVRFIiB9LAotCXsgTkVUX0lQVjRfSUNNUF9USU1FRVhDRUVEX1JBVEUsICJORVRfSVBWNF9JQ01QX1RJTUVFWENFRURfUkFURSIgfSwKLQl7IE5FVF9JUFY0X0lDTVBfUEFSQU1QUk9CX1JBVEUsICJORVRfSVBWNF9JQ01QX1BBUkFNUFJPQl9SQVRFIiB9LAotCXsgTkVUX0lQVjRfSUNNUF9FQ0hPUkVQTFlfUkFURSwgIk5FVF9JUFY0X0lDTVBfRUNIT1JFUExZX1JBVEUiIH0sCi0JeyBORVRfSVBWNF9JQ01QX0lHTk9SRV9CT0dVU19FUlJPUl9SRVNQT05TRVMsICJORVRfSVBWNF9JQ01QX0lHTk9SRV9CT0dVU19FUlJPUl9SRVNQT05TRVMiIH0sCi0JeyBORVRfSVBWNF9JR01QX01BWF9NRU1CRVJTSElQUywgIk5FVF9JUFY0X0lHTVBfTUFYX01FTUJFUlNISVBTIiB9LAotCXsgIDAsIE5VTEwgfQotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfaXB2NF9yb3V0ZVtdID0gewotCXsgTkVUX0lQVjRfUk9VVEVfRkxVU0gsICJORVRfSVBWNF9ST1VURV9GTFVTSCIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX01JTl9ERUxBWSwgIk5FVF9JUFY0X1JPVVRFX01JTl9ERUxBWSIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX01BWF9ERUxBWSwgIk5FVF9JUFY0X1JPVVRFX01BWF9ERUxBWSIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX0dDX1RIUkVTSCwgIk5FVF9JUFY0X1JPVVRFX0dDX1RIUkVTSCIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX01BWF9TSVpFLCAiTkVUX0lQVjRfUk9VVEVfTUFYX1NJWkUiIH0sCi0JeyBORVRfSVBWNF9ST1VURV9HQ19NSU5fSU5URVJWQUwsICJORVRfSVBWNF9ST1VURV9HQ19NSU5fSU5URVJWQUwiIH0sCi0JeyBORVRfSVBWNF9ST1VURV9HQ19USU1FT1VULCAiTkVUX0lQVjRfUk9VVEVfR0NfVElNRU9VVCIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX0dDX0lOVEVSVkFMLCAiTkVUX0lQVjRfUk9VVEVfR0NfSU5URVJWQUwiIH0sCi0JeyBORVRfSVBWNF9ST1VURV9SRURJUkVDVF9MT0FELCAiTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfTE9BRCIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX1JFRElSRUNUX05VTUJFUiwgIk5FVF9JUFY0X1JPVVRFX1JFRElSRUNUX05VTUJFUiIgfSwKLQl7IE5FVF9JUFY0X1JPVVRFX1JFRElSRUNUX1NJTEVOQ0UsICJORVRfSVBWNF9ST1VURV9SRURJUkVDVF9TSUxFTkNFIiB9LAotCXsgTkVUX0lQVjRfUk9VVEVfRVJST1JfQ09TVCwgIk5FVF9JUFY0X1JPVVRFX0VSUk9SX0NPU1QiIH0sCi0JeyBORVRfSVBWNF9ST1VURV9FUlJPUl9CVVJTVCwgIk5FVF9JUFY0X1JPVVRFX0VSUk9SX0JVUlNUIiB9LAotCXsgTkVUX0lQVjRfUk9VVEVfR0NfRUxBU1RJQ0lUWSwgIk5FVF9JUFY0X1JPVVRFX0dDX0VMQVNUSUNJVFkiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0X2lwdjRfY29uZltdID0gewotCXsgTkVUX0lQVjRfQ09ORl9GT1JXQVJESU5HLCAiTkVUX0lQVjRfQ09ORl9GT1JXQVJESU5HIiB9LAotCXsgTkVUX0lQVjRfQ09ORl9NQ19GT1JXQVJESU5HLCAiTkVUX0lQVjRfQ09ORl9NQ19GT1JXQVJESU5HIiB9LAotCXsgTkVUX0lQVjRfQ09ORl9QUk9YWV9BUlAsICJORVRfSVBWNF9DT05GX1BST1hZX0FSUCIgfSwKLQl7IE5FVF9JUFY0X0NPTkZfQUNDRVBUX1JFRElSRUNUUywgIk5FVF9JUFY0X0NPTkZfQUNDRVBUX1JFRElSRUNUUyIgfSwKLQl7IE5FVF9JUFY0X0NPTkZfU0VDVVJFX1JFRElSRUNUUywgIk5FVF9JUFY0X0NPTkZfU0VDVVJFX1JFRElSRUNUUyIgfSwKLQl7IE5FVF9JUFY0X0NPTkZfU0VORF9SRURJUkVDVFMsICJORVRfSVBWNF9DT05GX1NFTkRfUkVESVJFQ1RTIiB9LAotCXsgTkVUX0lQVjRfQ09ORl9TSEFSRURfTUVESUEsICJORVRfSVBWNF9DT05GX1NIQVJFRF9NRURJQSIgfSwKLQl7IE5FVF9JUFY0X0NPTkZfUlBfRklMVEVSLCAiTkVUX0lQVjRfQ09ORl9SUF9GSUxURVIiIH0sCi0JeyBORVRfSVBWNF9DT05GX0FDQ0VQVF9TT1VSQ0VfUk9VVEUsICJORVRfSVBWNF9DT05GX0FDQ0VQVF9TT1VSQ0VfUk9VVEUiIH0sCi0JeyBORVRfSVBWNF9DT05GX0JPT1RQX1JFTEFZLCAiTkVUX0lQVjRfQ09ORl9CT09UUF9SRUxBWSIgfSwKLQl7IE5FVF9JUFY0X0NPTkZfTE9HX01BUlRJQU5TLCAiTkVUX0lQVjRfQ09ORl9MT0dfTUFSVElBTlMiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0X2lwdjZbXSA9IHsKLQl7IE5FVF9JUFY2X0NPTkYsICJORVRfSVBWNl9DT05GIiB9LAotCXsgTkVUX0lQVjZfTkVJR0gsICJORVRfSVBWNl9ORUlHSCIgfSwKLQl7IE5FVF9JUFY2X1JPVVRFLCAiTkVUX0lQVjZfUk9VVEUiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfbmV0X2lwdjZfcm91dGVbXSA9IHsKLQl7IE5FVF9JUFY2X1JPVVRFX0ZMVVNILCAiTkVUX0lQVjZfUk9VVEVfRkxVU0giIH0sCi0JeyBORVRfSVBWNl9ST1VURV9HQ19USFJFU0gsICJORVRfSVBWNl9ST1VURV9HQ19USFJFU0giIH0sCi0JeyBORVRfSVBWNl9ST1VURV9NQVhfU0laRSwgIk5FVF9JUFY2X1JPVVRFX01BWF9TSVpFIiB9LAotCXsgTkVUX0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMLCAiTkVUX0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMIiB9LAotCXsgTkVUX0lQVjZfUk9VVEVfR0NfVElNRU9VVCwgIk5FVF9JUFY2X1JPVVRFX0dDX1RJTUVPVVQiIH0sCi0JeyBORVRfSVBWNl9ST1VURV9HQ19JTlRFUlZBTCwgIk5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMIiB9LAotCXsgTkVUX0lQVjZfUk9VVEVfR0NfRUxBU1RJQ0lUWSwgIk5FVF9JUFY2X1JPVVRFX0dDX0VMQVNUSUNJVFkiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLWludAotc3lzX3N5c2N0bCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0Jc3RydWN0IF9fc3lzY3RsX2FyZ3MgaW5mbzsKLQlpbnQgKm5hbWU7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCi0JaWYgKHVtb3ZlICh0Y3AsIHRjcC0+dV9hcmdbMF0sICZpbmZvKSA8IDApCi0JCXJldHVybiBwcmludGFyZ3ModGNwKTsKLQotCXNpemUgPSBzaXplb2YgKGludCkgKiAodW5zaWduZWQgbG9uZykgaW5mby5ubGVuOwotCW5hbWUgPSAoc2l6ZSAvIHNpemVvZiAoaW50KSAhPSBpbmZvLm5sZW4pID8gTlVMTCA6IG1hbGxvYyAoc2l6ZSk7Ci0JaWYgKG5hbWUgPT0gTlVMTCB8fAotCSAgICB1bW92ZW4odGNwLCAodW5zaWduZWQgbG9uZykgaW5mby5uYW1lLCBzaXplLCAoY2hhciAqKSBuYW1lKSA8IDApIHsKLQkJZnJlZShuYW1lKTsKLQkJaWYgKGVudGVyaW5nKHRjcCkpCi0JCQl0cHJpbnRmKCJ7JXAsICVkLCAlcCwgJXAsICVwLCAlWnV9IiwKLQkJCQlpbmZvLm5hbWUsIGluZm8ubmxlbiwgaW5mby5vbGR2YWwsCi0JCQkJaW5mby5vbGRsZW5wLCBpbmZvLm5ld3ZhbCwgaW5mby5uZXdsZW4pOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlpbnQgY250ID0gMCwgbWF4X2NudDsKLQotCQl0cHJpbnRmKCJ7eyIpOwotCi0JCWlmIChpbmZvLm5sZW4gPT0gMCkKLQkJCWdvdG8gb3V0OwotCQlwcmludHh2YWwoc3lzY3RsX3Jvb3QsIG5hbWVbMF0sICJDVExfPz8/Iik7Ci0JCSsrY250OwotCi0JCWlmIChpbmZvLm5sZW4gPT0gMSkKLQkJCWdvdG8gb3V0OwotCQlzd2l0Y2ggKG5hbWVbMF0pIHsKLQkJY2FzZSBDVExfS0VSTjoKLQkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludHh2YWwoc3lzY3RsX2tlcm4sIG5hbWVbMV0sICJLRVJOXz8/PyIpOwotCQkJKytjbnQ7Ci0JCQlicmVhazsKLQkJY2FzZSBDVExfVk06Ci0JCQl0cHJpbnRmKCIsICIpOwotCQkJcHJpbnR4dmFsKHN5c2N0bF92bSwgbmFtZVsxXSwgIlZNXz8/PyIpOwotCQkJKytjbnQ7Ci0JCQlicmVhazsKLQkJY2FzZSBDVExfTkVUOgotCQkJdHByaW50ZigiLCAiKTsKLQkJCXByaW50eHZhbChzeXNjdGxfbmV0LCBuYW1lWzFdLCAiTkVUXz8/PyIpOwotCQkJKytjbnQ7Ci0KLQkJCWlmIChpbmZvLm5sZW4gPT0gMikKLQkJCQlnb3RvIG91dDsKLQkJCXN3aXRjaCAobmFtZVsxXSkgewotCQkJY2FzZSBORVRfQ09SRToKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X2NvcmUsIG5hbWVbMl0sCi0JCQkJCSAgIk5FVF9DT1JFXz8/PyIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBORVRfVU5JWDoKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X3VuaXgsIG5hbWVbMl0sCi0JCQkJCSAgIk5FVF9VTklYXz8/PyIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBORVRfSVBWNDoKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X2lwdjQsIG5hbWVbMl0sCi0JCQkJCSAgIk5FVF9JUFY0Xz8/PyIpOwotCi0JCQkJaWYgKGluZm8ubmxlbiA9PSAzKQotCQkJCQlnb3RvIG91dDsKLQkJCQlzd2l0Y2ggKG5hbWVbMl0pIHsKLQkJCQljYXNlIE5FVF9JUFY0X1JPVVRFOgotCQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCQlwcmludHh2YWwoc3lzY3RsX25ldF9pcHY0X3JvdXRlLAotCQkJCQkJICBuYW1lWzNdLAotCQkJCQkJICAiTkVUX0lQVjRfUk9VVEVfPz8/Iik7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgTkVUX0lQVjRfQ09ORjoKLQkJCQkJdHByaW50ZigiLCAiKTsKLQkJCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXRfaXB2NF9jb25mLAotCQkJCQkJICBuYW1lWzNdLAotCQkJCQkJICAiTkVUX0lQVjRfQ09ORl8/Pz8iKTsKLQkJCQkJYnJlYWs7Ci0JCQkJZGVmYXVsdDoKLQkJCQkJZ290byBvdXQ7Ci0JCQkJfQotCQkJCWJyZWFrOwotCQkJY2FzZSBORVRfSVBWNjoKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X2lwdjYsIG5hbWVbMl0sCi0JCQkJCSAgIk5FVF9JUFY2Xz8/PyIpOwotCi0JCQkJaWYgKGluZm8ubmxlbiA9PSAzKQotCQkJCQlnb3RvIG91dDsKLQkJCQlzd2l0Y2ggKG5hbWVbMl0pIHsKLQkJCQljYXNlIE5FVF9JUFY2X1JPVVRFOgotCQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCQlwcmludHh2YWwoc3lzY3RsX25ldF9pcHY2X3JvdXRlLAotCQkJCQkJICBuYW1lWzNdLAotCQkJCQkJICAiTkVUX0lQVjZfUk9VVEVfPz8/Iik7Ci0JCQkJCWJyZWFrOwotCQkJCWRlZmF1bHQ6Ci0JCQkJCWdvdG8gb3V0OwotCQkJCX0KLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWdvdG8gb3V0OwotCQl9Ci0Jb3V0OgotCQltYXhfY250ID0gYWJicmV2KHRjcCkgPyBtYXhfc3RybGVuIDogaW5mby5ubGVuOwotCQl3aGlsZSAoY250IDwgbWF4X2NudCkKLQkJCXRwcmludGYoIiwgJXgiLCBuYW1lW2NudCsrXSk7Ci0JCWlmIChjbnQgPCBpbmZvLm5sZW4pCi0JCQl0cHJpbnRmKCIsIC4uLiIpOwotCQl0cHJpbnRmKCJ9LCAlZCwgIiwgaW5mby5ubGVuKTsKLQl9IGVsc2UgewotCQlzaXplX3Qgb2xkbGVuOwotCQlpZiAodW1vdmUodGNwLCAoc2l6ZV90KWluZm8ub2xkbGVucCwgJm9sZGxlbikgPj0gMAotCQkgICAgJiYgaW5mby5ubGVuID49IDIKLQkJICAgICYmICgobmFtZVswXSA9PSBDVExfS0VSTgotCQkJICYmIChuYW1lWzFdID09IEtFUk5fT1NSRUxFQVNFCi0JCQkgICAgIHx8IG5hbWVbMV0gPT0gS0VSTl9PU1RZUEUKLSNpZmRlZiBLRVJOX0pBVkFfSU5URVJQUkVURVIKLQkJCSAgICAgfHwgbmFtZVsxXSA9PSBLRVJOX0pBVkFfSU5URVJQUkVURVIKLSNlbmRpZgotI2lmZGVmIEtFUk5fSkFWQV9BUFBMRVRWSUVXRVIKLQkJCSAgICAgfHwgbmFtZVsxXSA9PSBLRVJOX0pBVkFfQVBQTEVUVklFV0VSCi0jZW5kaWYKLQkJCQkgKSkpKSB7Ci0JCQlwcmludHBhdGgodGNwLCAoc2l6ZV90KWluZm8ub2xkdmFsKTsKLQkJCXRwcmludGYoIiwgJVp1LCAiLCBvbGRsZW4pOwotCQkJaWYgKGluZm8ubmV3dmFsID09IDApCi0JCQkJdHByaW50ZigiTlVMTCIpOwotCQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKLQkJCQl0cHJpbnRmKCIlcCIsIGluZm8ubmV3dmFsKTsKLQkJCWVsc2UKLQkJCQlwcmludHBhdGgodGNwLCAoc2l6ZV90KWluZm8ubmV3dmFsKTsKLQkJCXRwcmludGYoIiwgJVpkIiwgaW5mby5uZXdsZW4pOwotCQl9IGVsc2UgewotCQkJdHByaW50ZigiJXAsICVaZCwgJXAsICVaZCIsIGluZm8ub2xkdmFsLCBvbGRsZW4sCi0JCQkJaW5mby5uZXd2YWwsIGluZm8ubmV3bGVuKTsKLQkJfQotCQl0cHJpbnRmKCJ9Iik7Ci0JfQotCi0JZnJlZShuYW1lKTsKLQlyZXR1cm4gMDsKLX0KLSNlbHNlCi1pbnQgc3lzX3N5c2N0bCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIHByaW50YXJncyh0Y3ApOwotfQotI2VuZGlmCi0KLSNpZmRlZiBGUkVFQlNECi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotCi1pbnQgc3lzX19fc3lzY3RsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpbnQgcW9pZFtDVExfTUFYTkFNRSsyXTsKLQljaGFyIGN0bFsxMDI0XTsKLQlzaXplX3QgbGVuOwotCWludCBpLCBudW1lcmljOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gPCAwIHx8IHRjcC0+dV9hcmdbMV0gPiBDVExfTUFYTkFNRSB8fAotCQkgICAgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0gKiBzaXplb2YoaW50KSwKLQkJCSAgICAoY2hhciAqKSAocW9pZCArIDIpKSA8IDApKQotCQkJdHByaW50ZigiWy4uLl0sICIpOwotCQllbHNlIHsKLQkJCS8qIFVzZSBzeXNjdGwgdG8gYXNrIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IE1JQgotCQkJICAgVGhpcyB1c2VzIHRoZSB1bmRvY3VtZW50ZWQgIlN0YWZmLWZ1bmN0aW9ucyIgdXNlZAotCQkJICAgYnkgdGhlIHN5c2N0bCBwcm9ncmFtLiBTZWUga2Vybl9zeXNjdGwuYyBmb3IKLQkJCSAgIGRldGFpbHMuICovCi0JCQlxb2lkWzBdID0gMDsgLyogc3lzY3RsICovCi0JCQlxb2lkWzFdID0gMTsgLyogbmFtZSAqLwotCQkJaSA9IHNpemVvZihjdGwpOwotCQkJdHByaW50ZigiWyIpOwotCQkJaWYgKHN5c2N0bChxb2lkLCB0Y3AtPnVfYXJnWzFdICsgMiwgY3RsLCAmaSwgMCwgMCkgPj0gMCkgewotCQkJCW51bWVyaWMgPSAhYWJicmV2KHRjcCk7Ci0JCQkJdHByaW50ZigiJXMlcyIsIGN0bCwgbnVtZXJpYyA/ICIsICIgOiAiIik7Ci0JCQl9IGVsc2UKLQkJCQludW1lcmljID0gMTsKLQkJCWlmIChudW1lcmljKSB7Ci0JCQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9hcmdbMV07IGkrKykKLQkJCQkJdHByaW50ZigiJXMlZCIsIGkgPyAiLiIgOiAiIiwgcW9pZFtpICsgMl0pOwotCQkJfQotCQkJdHByaW50ZigiXSwgIik7Ci0JCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMV0pOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCFzeXNlcnJvcih0Y3ApICYmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZsZW4pID49IDApKSB7Ci0JCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMl0sIGxlbik7Ci0JCQl0cHJpbnRmKCIsIFsldV0sICIsIGxlbik7Ci0JCX0gZWxzZQotCQkJdHByaW50ZigiJSNseCwgJSNseCwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1s0XSwgdGNwLT51X2FyZ1s1XSk7Ci0JCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s1XSk7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZiBVTklYV0FSRSA+PSAyCi0KLSNpbmNsdWRlIDxzeXMva3N5bS5oPgotI2luY2x1ZGUgPHN5cy9lbGYuaD4KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGtzeW1fZmxhZ3NbXSA9IHsKLQl7IFNUVF9OT1RZUEUsCSJTVFRfTk9UWVBFIgl9LAotCXsgU1RUX0ZVTkMsCSJTVFRfRlVOQyIJfSwKLQl7IFNUVF9PQkpFQ1QsCSJTVFRfT0JKRUNUIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQKLXN5c19nZXRrc3ltKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcgKHRjcCkpIHsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfQotCWVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJSNseCwgJSNseCIsCi0JCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlpbnQgdmFsOwotCQkJcHJpbnRudW0gKHRjcCwgdGNwLT51X2FyZ1sxXSwgIiUjbHgiKTsKLQkJCXRwcmludGYoIiwgIik7Ci0JCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmdmFsKSA8IDApIHsKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCQl9Ci0JCQllbHNlIHsKLQkJCQl0cHJpbnRmKCJbIik7Ci0JCQkJcHJpbnR4dmFsIChrc3ltX2ZsYWdzLCB2YWwsICJTVFRfPz8/Iik7Ci0JCQkJdHByaW50ZigiXSIpOwotCQkJfQotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBIQVZFX1NZU19OU0NTWVNfSAotCi1zdHJ1Y3QgY3JlZDsKLSNpbmNsdWRlIDxzeXMvbnNjc3lzLmg+Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzc2lfY21kIFtdID0gewotCXsgU1NJU1lTX0JBRE9QLAkiU1NJU1lTX0JBRE9QIgl9LAotCXsgU1NJU1lTX0xETFZMX0lOSVQsIlNTSVNZU19MRExWTF9JTklUIn0sCi0JeyBTU0lTWVNfTERMVkxfR0VUVkVDLCJTU0lTWVNfTERMVkxfR0VUVkVDIn0sCi0JeyBTU0lTWVNfTERMVkxfUFVUVkVDLCJTU0lTWVNfTERMVkxfUFVUVkVDIn0sCi0JeyBTU0lTWVNfTERMVkxfUFVUUkNNRFMsIlNTSVNZU19MRExWTF9QVVRSQ01EUyJ9LAotCXsgU1NJU1lTX0xETFZMX1NFVFJFWEVDLCJTU0lTWVNfTERMVkxfU0VUUkVYRUMifSwKLQl7IFNTSVNZU19DTVNfQ0xVU1RFUklELCJTU0lTWVNfQ01TX0NMVVNURVJJRCJ9LAotCXsgU1NJU1lTX0NGU19TVEFUVkZTLCJTU0lTWVNfQ0ZTX1NUQVRWRlMifSwKLQl7IFNTSVNZU19OT0RFX0dFVE5VTSwiU1NJU1lTX05PREVfR0VUTlVNIn0sCi0JeyBTU0lTWVNfTk9ERV9UQUJMRSwiU1NJU1lTX05PREVfVEFCTEUifSwKLQl7IFNTSVNZU19OT0RFX0RPV04sIlNTSVNZU19OT0RFX0RPV04ifSwKLQl7IFNTSVNZU19SRUNMQUlNX0NISUxELCJTU0lTWVNfUkVDTEFJTV9DSElMRCJ9LAotCXsgU1NJU1lTX0lQQ19HRVRJTkZPLCJTU0lTWVNfSVBDX0dFVElORk8ifSwKLQl7IFNTSVNZU19JQ1NfVEVTVCwiU1NJU1lTX0lDU19URVNUIn0sCi0JeyBTU0lTWVNfTk9ERV9QSUQsIlNTSVNZU19OT0RFX1BJRCJ9LAotCXsgU1NJU1lTX0lTTE9DQUwsIlNTSVNZU19JU0xPQ0FMIn0sCi0JeyBTU0lTWVNfQ0ZTX0lTU1RBQ0tFRCwiU1NJU1lTX0NGU19JU1NUQUNLRUQifSwKLQl7IFNTSVNZU19ETkVUX1NZTkMsIlNTSVNZU19ETkVUX1NZTkMifSwKLQl7IFNTSVNZU19DRlNfV0FJVF9NT0RFLCJTU0lTWVNfQ0ZTX1dBSVRfTU9ERSJ9LAotCXsgU1NJU1lTX0NGU19VTU9VTlQsIlNTSVNZU19DRlNfVU1PVU5UIn0sCi0JeyBTU0lTWVNfTExTVEFULCJTU0lTWVNfTExTVEFUIgl9LAotCXsgU1NJU1lTX0xUU19QRVJGVEVTVCwiU1NJU1lTX0xUU19QRVJGVEVTVCJ9LAotCXsgU1NJU1lTX0xUU19DT05GSUcsIlNTSVNZU19MVFNfQ09ORklHIn0sCi0JeyBTU0lTWVNfU05FVF9QRVJGVEVTVCwiU1NJU1lTX1NORVRfUEVSRlRFU1QifSwKLQl7IFNTSVNZU19JR05PUkVfSEFMRlVQLCJTU0lTWVNfSUdOT1JFX0hBTEZVUCJ9LAotCXsgU1NJU1lTX05PREVfUk9PVERFViwiU1NJU1lTX05PREVfUk9PVERFViJ9LAotCXsgU1NJU1lTX0dFVF9QUklNQVJZLCJTU0lTWVNfR0VUX1BSSU1BUlkifSwKLQl7IFNTSVNZU19HRVRfU0VDT05EQVJZLCJTU0lTWVNfR0VUX1NFQ09OREFSWSJ9LAotCXsgU1NJU1lTX0dFVF9ST09URElTSywiU1NJU1lTX0dFVF9ST09URElTSyJ9LAotCXsgU1NJU1lTX0NMVVNURVJOT0RFX05VTSwiU1NJU1lTX0NMVVNURVJOT0RFX05VTSJ9LAotCXsgU1NJU1lTX0NMVVNURVJfTUVNQkVSU0hJUCwiU1NJU1lTX0NMVVNURVJfTUVNQkVSU0hJUCJ9LAotCXsgU1NJU1lTX0NMVVNURVJfREVUQUlMRURUUkFOUywiU1NJU1lTX0NMVVNURVJfREVUQUlMRURUUkFOUyJ9LAotCXsgU1NJU1lTX0NMVVNURVJOT0RFX0lORk8sIlNTSVNZU19DTFVTVEVSTk9ERV9JTkZPIn0sCi0JeyBTU0lTWVNfQ0xVU1RFUk5PREVfU0VUSU5GTywiU1NJU1lTX0NMVVNURVJOT0RFX1NFVElORk8ifSwKLQl7IFNTSVNZU19DTFVTVEVSTk9ERV9BVkFJTCwiU1NJU1lTX0NMVVNURVJOT0RFX0FWQUlMIn0sCi0JeyBTU0lTWVNfQ0xVU1RFUl9NQVhOT0RFUywiU1NJU1lTX0NMVVNURVJfTUFYTk9ERVMifSwKLQl7IFNTSVNZU19TRVRfTUVNUFJJTywiU1NJU1lTX1NFVF9NRU1QUklPIn0sCi0JeyBTU0lTWVNfR0VUX1VTRVJTLCJTU0lTWVNfR0VUX1VTRVJTIn0sCi0JeyBTU0lTWVNfRk9SQ0VfUk9PVF9OT0RFLCJTU0lTWVNfRk9SQ0VfUk9PVF9OT0RFIn0sCi0JeyBTU0lTWVNfQ1ZJUF9TRVQsIlNTSVNZU19DVklQX1NFVCJ9LAotCXsgU1NJU1lTX0NWSVBfR0VULCJTU0lTWVNfQ1ZJUF9HRVQifSwKLQl7IFNTSVNZU19HRVRfTk9ERV9DT1VOVFMsIlNTSVNZU19HRVRfTk9ERV9DT1VOVFMifSwKLQl7IFNTSVNZU19HRVRfVFJBTlNQT1JULCJTU0lTWVNfR0VUX1RSQU5TUE9SVCJ9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1pbnQgc3lzX3NzaXN5cyAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCBzc2lzeXNfaW92ZWMgaW92OwotCWNsc19ub2RlaW5mb19hcmdzX3QgY25pOwotCWNsdXN0ZXJub2RlX2luZm9fdCBpbmZvOwotCi0JaWYgKGVudGVyaW5nICh0Y3ApKSB7Ci0JCXRzX3JlY2xhaW1fY2hpbGRfaW5hcmdzX3QgdHJjOwotCQlpZiAodGNwLT51X2FyZ1sxXSAhPSBzaXplb2YgaW92IHx8Ci0JCSAgICB1bW92ZSAodGNwLCB0Y3AtPnVfYXJnWzBdLCAmaW92KSA8IDApCi0JCXsKLQkJCXRwcmludGYgKCIlI2x4LCAlbGQiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXRwcmludGYgKCJ7aWQ9Iik7Ci0JCXByaW50eHZhbChzc2lfY21kLCBpb3YudGlvX2lkLmlkX2NtZCwgIlNTSVNZU18/Pz8iKTsKLQkJdHByaW50ZiAoIjolZCIsIGlvdi50aW9faWQuaWRfdmVyKTsKLQkJc3dpdGNoIChpb3YudGlvX2lkLmlkX2NtZCkgewotCQkgICAgY2FzZSBTU0lTWVNfUkVDTEFJTV9DSElMRDoKLQkJCWlmIChpb3YudGlvX3VkYXRhaW5sZW4gIT0gc2l6ZW9mIHRyYyB8fAotCQkJICAgIHVtb3ZlICh0Y3AsIChsb25nKSBpb3YudGlvX3VkYXRhaW4sICZ0cmMpIDwgMCkKLQkJCQlnb3RvIGJhZDsKLQkJCXRwcmludGYgKCIsIGluPXtwaWQ9JWxkLCBzdGFydD0lbGR9IiwKLQkJCQkgdHJjLnRyY19waWQsIHRyYy50cmNfc3RhcnQpOwotCQkJYnJlYWs7Ci0JCSAgICBjYXNlIFNTSVNZU19DTFVTVEVSTk9ERV9JTkZPOgotCQkJaWYgKGlvdi50aW9fdWRhdGFpbmxlbiAhPSBzaXplb2YgY25pIHx8Ci0JCQkgICAgdW1vdmUgKHRjcCwgKGxvbmcpIGlvdi50aW9fdWRhdGFpbiwgJmNuaSkgPCAwKQotCQkJCWdvdG8gYmFkOwotCQkJdHByaW50ZiAoIiwgaW49e25vZGU9JWxkLCBsZW49JWR9IiwKLQkJCQkgY25pLm5vZGVudW0sIGNuaS5pbmZvX2xlbik7Ci0JCQlicmVhazsKLQkJICAgIGRlZmF1bHQ6Ci0JCSAgICBiYWQ6Ci0JCQlpZiAoaW92LnRpb191ZGF0YWlubGVuKSB7Ci0JCQkJdHByaW50ZiAoIiwgaW49Wy8qICVkIGJ5dGVzICovXSIsCi0JCQkJCSBpb3YudGlvX3VkYXRhaW5sZW4pOwotCQkJfQotCQl9Ci0JfQotCWVsc2UgewotCQlpZiAodGNwLT51X2FyZ1sxXSAhPSBzaXplb2YgaW92IHx8Ci0JCSAgICB1bW92ZSAodGNwLCB0Y3AtPnVfYXJnWzBdLCAmaW92KSA8IDApCi0JCSAgICBnb3RvIGRvbmU7Ci0JCXN3aXRjaCAoaW92LnRpb19pZC5pZF9jbWQpIHsKLQkJICAgIGNhc2UgU1NJU1lTX0NMVVNURVJOT0RFX0lORk86Ci0JCQlpZiAoaW92LnRpb191ZGF0YWlubGVuICE9IHNpemVvZiBjbmkgfHwKLQkJCSAgICB1bW92ZSAodGNwLCAobG9uZykgaW92LnRpb191ZGF0YWluLCAmY25pKSA8IDApCi0JCQkJZ290byBiYWRfb3V0OwotCQkJaWYgKGNuaS5pbmZvX2xlbiAhPSBzaXplb2YgaW5mbyB8fAotCQkJICAgIGlvdi50aW9fdWRhdGFvdXRsZW4gIT0gc2l6ZW9mICZpbmZvIHx8Ci0JCQkgICAgdW1vdmUgKHRjcCwgKGxvbmcpIGlvdi50aW9fdWRhdGFvdXQsICZpbmZvKSA8IDApCi0JCQkJZ290byBiYWRfb3V0OwotCQkJdHByaW50ZiAoIiwgb3V0PXtub2RlPSVsZCwgY3B1cz0lZCwgb25saW5lPSVkfSIsCi0JCQkJIGluZm8ubm9kZV9udW0sIGluZm8ubm9kZV90b3RhbGNwdXMsCi0JCQkJIGluZm8ubm9kZV9vbmxpbmVjcHVzKTsKLQkJCWJyZWFrOwotCi0JCSAgICBkZWZhdWx0OgotCQkgICAgYmFkX291dDoKLQkJCWlmIChpb3YudGlvX3VkYXRhb3V0bGVuKSB7Ci0JCQkJdHByaW50ZiAoIiwgb3V0PVsvKiAlZCBieXRlcyAqL10iLAotCQkJCQkgaW92LnRpb191ZGF0YW91dGxlbik7Ci0JCQl9Ci0JCX0KLQkgICAgZG9uZToKLQkJdHByaW50ZiAoIn0sICVsZCIsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmCi0KLSNlbmRpZiAvKiBVTklYV0FSRSA+IDIgKi8KLQotI2lmZGVmIE1JUFMKLQotI2lmbmRlZiBfX05FV19VVFNfTEVOCi0jZGVmaW5lIF9fTkVXX1VUU19MRU4gNjQKLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzbWlwc19vcGVyYXRpb25zW10gPSB7Ci0JeyBTRVROQU1FLAkJIlNFVE5BTUUiCX0sCi0JeyBGTFVTSF9DQUNIRSwJCSJGTFVTSF9DQUNIRSIJfSwKLQl7IE1JUFNfRklYQURFLAkJIk1JUFNfRklYQURFIgl9LAotCXsgTUlQU19SRE5WUkFNLAkJIk1JUFNfUkROVlJBTSIJfSwKLQl7IE1JUFNfQVRPTUlDX1NFVCwJIk1JUFNfQVRPTUlDX1NFVCIJfSwKLQl7IDAsIE5VTEwgfQotfTsKLQotaW50IHN5c19zeXNtaXBzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoc3lzbWlwc19vcGVyYXRpb25zLCB0Y3AtPnVfYXJnWzBdLCAiPz8/Iik7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxkIiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7Ci0JCX0gZWxzZSBpZiAodGNwLT51X2FyZ1swXT09U0VUTkFNRSkgewotCQkJY2hhciBub2RlbmFtZVtfX05FV19VVFNfTEVOICsgMV07Ci0JCQlpZiAodW1vdmVzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAoX19ORVdfVVRTX0xFTiArIDEpLCBub2RlbmFtZSkgPCAwKQotCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQkJZWxzZQotCQkJCXRwcmludGYoIiwgXCIlc1wiIiwgbm9kZW5hbWUpOwotCQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMF0gPT0gTUlQU19BVE9NSUNfU0VUKSB7Ci0JCQl0cHJpbnRmKCIsICUjbHgsIDB4JWx4IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCX0gZWxzZSBpZiAodGNwLT51X2FyZ1swXSA9PSBNSVBTX0ZJWEFERSkgewotCQkJdHByaW50ZigiLCAweCVseCIsIHRjcC0+dV9hcmdbMV0pOwotCQl9IGVsc2UgewotCQkJdHByaW50ZigiJWxkLCAlbGQsICVsZCIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBNSVBTICovCmRpZmYgLS1naXQgYS90ZXJtLmMgYi90ZXJtLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhNjhhZjguLjAwMDAwMDAKLS0tIGEvdGVybS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHRlcm0uYyx2IDEuOCAyMDA1LzA2LzAxIDE5OjAyOjM4IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpZmRlZiBMSU5VWAotLyoKLSAqIFRoZSBDIGxpYnJhcnkncyBkZWZpbml0aW9uIG9mIHN0cnVjdCB0ZXJtaW9zIG1pZ2h0IGRpZmZlciBmcm9tCi0gKiB0aGUga2VybmVsIG9uZSwgYW5kIHdlIG5lZWQgdG8gdXNlIHRoZSBrZXJuZWwgbGF5b3V0LgotICovCi0jaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPgotI2Vsc2UKLQotI2lmZGVmIEhBVkVfVEVSTUlPX0gKLSNpbmNsdWRlIDx0ZXJtaW8uaD4KLSNlbmRpZiAvKiBIQVZFX1RFUk1JT19IICovCi0KLSNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfU1lTX0ZJTElPX0gKLSNpbmNsdWRlIDxzeXMvZmlsaW8uaD4KLSNlbmRpZgotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdGN4b25jX29wdGlvbnNbXSA9IHsKLQl7IFRDT09GRiwJIlRDT09GRiIJfSwKLQl7IFRDT09OLAkiVENPT04iCQl9LAotCXsgVENJT0ZGLAkiVENJT0ZGIgl9LAotCXsgVENJT04sCSJUQ0lPTiIJCX0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLSNpZmRlZiBUQ0xGTFNICi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdGNmbHNoX29wdGlvbnNbXSA9IHsKLQl7IFRDSUZMVVNILAkiVENJRkxVU0giCX0sCi0JeyBUQ09GTFVTSCwJIlRDT0ZMVVNIIgl9LAotCXsgVENJT0ZMVVNILAkiVENJT0ZMVVNIIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotI2VuZGlmCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBiYXVkX29wdGlvbnNbXSA9IHsKLQl7IEIwLAkJIkIwIgkJfSwKLQl7IEI1MCwJCSJCNTAiCQl9LAotCXsgQjc1LAkJIkI3NSIJCX0sCi0JeyBCMTEwLAkJIkIxMTAiCQl9LAotCXsgQjEzNCwJCSJCMTM0IgkJfSwKLQl7IEIxNTAsCQkiQjE1MCIJCX0sCi0JeyBCMjAwLAkJIkIyMDAiCQl9LAotCXsgQjMwMCwJCSJCMzAwIgkJfSwKLQl7IEI2MDAsCQkiQjYwMCIJCX0sCi0JeyBCMTIwMCwJIkIxMjAwIgkJfSwKLQl7IEIxODAwLAkiQjE4MDAiCQl9LAotCXsgQjI0MDAsCSJCMjQwMCIJCX0sCi0JeyBCNDgwMCwJIkI0ODAwIgkJfSwKLQl7IEI5NjAwLAkiQjk2MDAiCQl9LAotI2lmZGVmIEIxOTIwMAotCXsgQjE5MjAwLAkiQjE5MjAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjM4NDAwCi0JeyBCMzg0MDAsCSJCMzg0MDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBCNTc2MDAKLQl7IEI1NzYwMCwJIkI1NzYwMCIJfSwKLSNlbmRpZgotI2lmZGVmIEIxMTUyMDAKLQl7IEIxMTUyMDAsCSJCMTE1MjAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjIzMDQwMAotCXsgQjIzMDQwMCwJIkIyMzA0MDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBCNDYwODAwCi0JeyBCNDYwODAwLAkiQjQ2MDgwMCIJfSwKLSNlbmRpZgotI2lmZGVmIEI1MDAwMDAKLQl7IEI1MDAwMDAsCSJCNTAwMDAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjU3NjAwMAotCXsgQjU3NjAwMCwJIkI1NzYwMDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBCOTIxNjAwCi0JeyBCOTIxNjAwLAkiQjkyMTYwMCIJfSwKLSNlbmRpZgotI2lmZGVmIEIxMDAwMDAwCi0JeyBCMTAwMDAwMCwJIkIxMDAwMDAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjExNTIwMDAKLQl7IEIxMTUyMDAwLAkiQjExNTIwMDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBCMTUwMDAwMAotCXsgQjE1MDAwMDAsCSJCMTUwMDAwMCIJfSwKLSNlbmRpZgotI2lmZGVmIEIyMDAwMDAwCi0JeyBCMjAwMDAwMCwJIkIyMDAwMDAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjI1MDAwMDAKLQl7IEIyNTAwMDAwLAkiQjI1MDAwMDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBCMzAwMDAwMAotCXsgQjMwMDAwMDAsCSJCMzAwMDAwMCIJfSwKLSNlbmRpZgotI2lmZGVmIEIzNTAwMDAwCi0JeyBCMzUwMDAwMCwJIkIzNTAwMDAwIgl9LAotI2VuZGlmCi0jaWZkZWYgQjQwMDAwMDAKLQl7IEI0MDAwMDAwLAkiQjQwMDAwMDAiCX0sCi0jZW5kaWYKLSNpZmRlZiBFWFRBCi0JeyBFWFRBLAkJIkVYVEEiCQl9LAotI2VuZGlmCi0jaWZkZWYgRVhUQgotCXsgRVhUQiwJCSJFWFRCIgkJfSwKLSNlbmRpZgotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW9kZW1fZmxhZ3NbXSA9IHsKLSNpZmRlZiBUSU9DTV9MRQotCXsgVElPQ01fTEUsCSJUSU9DTV9MRSIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9EVFIKLQl7IFRJT0NNX0RUUiwJIlRJT0NNX0RUUiIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9SVFMKLQl7IFRJT0NNX1JUUywJIlRJT0NNX1JUUyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9TVAotCXsgVElPQ01fU1QsCSJUSU9DTV9TVCIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9TUgotCXsgVElPQ01fU1IsCSJUSU9DTV9TUiIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9DVFMKLQl7IFRJT0NNX0NUUywJIlRJT0NNX0NUUyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9DQVIKLQl7IFRJT0NNX0NBUiwJIlRJT0NNX0NBUiIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9DRAotCXsgVElPQ01fQ0QsCSJUSU9DTV9DRCIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9STkcKLQl7IFRJT0NNX1JORywJIlRJT0NNX1JORyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9SSQotCXsgVElPQ01fUkksCSJUSU9DTV9SSSIsCX0sCi0jZW5kaWYKLSNpZmRlZiBUSU9DTV9EU1IKLQl7IFRJT0NNX0RTUiwJIlRJT0NNX0RTUiIsCX0sCi0jZW5kaWYKLQl7IDAsCQlOVUxMLAkJfSwKLX07Ci0KLQotaW50Ci10ZXJtX2lvY3RsKHRjcCwgY29kZSwgYXJnKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBjb2RlLCBhcmc7Ci17Ci0Jc3RydWN0IHRlcm1pb3MgdGlvczsKLSNpZm5kZWYgRlJFRUJTRAotCXN0cnVjdCB0ZXJtaW8gdGlvOwotI2Vsc2UKLQkjZGVmaW5lIFRDR0VUUwlUSU9DR0VUQQotCSNkZWZpbmUgVENTRVRTCVRJT0NTRVRBCi0JI2RlZmluZSBUQ1NFVFNXCVRJT0NTRVRBVwotCSNkZWZpbmUgVENTRVRTRglUSU9DU0VUQUYKLSNlbmRpZgotCXN0cnVjdCB3aW5zaXplIHdzOwotI2lmZGVmIFRJT0NHU0laRQotCXN0cnVjdCAgdHR5c2l6ZSB0czsKLSNlbmRpZgotCWludCBpOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXJldHVybiAwOwotCi0Jc3dpdGNoIChjb2RlKSB7Ci0KLQkvKiBpb2N0bHMgd2l0aCB0ZXJtaW9zIG9yIHRlcm1pbyBhcmdzICovCi0KLSNpZmRlZiBUQ0dFVFMKLQljYXNlIFRDR0VUUzoKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQljYXNlIFRDU0VUUzoKLQljYXNlIFRDU0VUU1c6Ci0JY2FzZSBUQ1NFVFNGOgotCQlpZiAoIXZlcmJvc2UodGNwKSB8fCB1bW92ZSh0Y3AsIGFyZywgJnRpb3MpIDwgMCkKLQkJCXJldHVybiAwOwotCQlpZiAoYWJicmV2KHRjcCkpIHsKLQkJCXRwcmludGYoIiwgeyIpOwotI2lmbmRlZiBGUkVFQlNECi0JCQlwcmludHh2YWwoYmF1ZF9vcHRpb25zLCB0aW9zLmNfY2ZsYWcgJiBDQkFVRCwgIkI/Pz8iKTsKLSNlbHNlCi0JCQlwcmludHh2YWwoYmF1ZF9vcHRpb25zLCB0aW9zLmNfaXNwZWVkLCAiQj8/PyIpOwotCQkJaWYgKHRpb3MuY19pc3BlZWQgIT0gdGlvcy5jX29zcGVlZCkgewotCQkJCXRwcmludGYoIiAoaW4pIik7Ci0JCQkJcHJpbnR4dmFsKGJhdWRfb3B0aW9ucywgdGlvcy5jX29zcGVlZCwgIkI/Pz8iKTsKLQkJCQl0cHJpbnRmKCIgKG91dCkiKTsKLQkJCX0KLSNlbmRpZgotCQkJdHByaW50ZigiICVzb3Bvc3QgJXNpc2lnICVzaWNhbm9uICVzZWNobyAuLi59IiwKLQkJCQkodGlvcy5jX29mbGFnICYgT1BPU1QpID8gIiIgOiAiLSIsCi0JCQkJKHRpb3MuY19sZmxhZyAmIElTSUcpID8gIiIgOiAiLSIsCi0JCQkJKHRpb3MuY19sZmxhZyAmIElDQU5PTikgPyAiIiA6ICItIiwKLQkJCQkodGlvcy5jX2xmbGFnICYgRUNITykgPyAiIiA6ICItIik7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCQl0cHJpbnRmKCIsIHtjX2lmbGFncz0lI2x4LCBjX29mbGFncz0lI2x4LCAiLAotCQkJKGxvbmcpIHRpb3MuY19pZmxhZywgKGxvbmcpIHRpb3MuY19vZmxhZyk7Ci0JCXRwcmludGYoImNfY2ZsYWdzPSUjbHgsIGNfbGZsYWdzPSUjbHgsICIsCi0JCQkobG9uZykgdGlvcy5jX2NmbGFnLCAobG9uZykgdGlvcy5jX2xmbGFnKTsKLSNpZiAhZGVmaW5lZChTVlI0KSAmJiAhZGVmaW5lZChGUkVFQlNEKQotCQl0cHJpbnRmKCJjX2xpbmU9JXUsICIsIHRpb3MuY19saW5lKTsKLSNlbmRpZgotCQlpZiAoISh0aW9zLmNfbGZsYWcgJiBJQ0FOT04pKQotCQkJdHByaW50ZigiY19jY1tWTUlOXT0lZCwgY19jY1tWVElNRV09JWQsICIsCi0JCQkJdGlvcy5jX2NjW1ZNSU5dLCB0aW9zLmNfY2NbVlRJTUVdKTsKLQkJdHByaW50ZigiY19jYz1cIiIpOwotCQlmb3IgKGkgPSAwOyBpIDwgTkNDUzsgaSsrKQotCQkJdHByaW50ZigiXFx4JTAyeCIsIHRpb3MuY19jY1tpXSk7Ci0JCXRwcmludGYoIlwifSIpOwotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBUQ0dFVFMgKi8KLQotI2lmZGVmIFRDR0VUQQotCWNhc2UgVENHRVRBOgotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXJldHVybiAwOwotCWNhc2UgVENTRVRBOgotCWNhc2UgVENTRVRBVzoKLQljYXNlIFRDU0VUQUY6Ci0JCWlmICghdmVyYm9zZSh0Y3ApIHx8IHVtb3ZlKHRjcCwgYXJnLCAmdGlvKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJaWYgKGFiYnJldih0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIsIHsiKTsKLQkJCXByaW50eHZhbChiYXVkX29wdGlvbnMsIHRpby5jX2NmbGFnICYgQ0JBVUQsICJCPz8/Iik7Ci0JCQl0cHJpbnRmKCIgJXNvcG9zdCAlc2lzaWcgJXNpY2Fub24gJXNlY2hvIC4uLn0iLAotCQkJCSh0aW8uY19vZmxhZyAmIE9QT1NUKSA/ICIiIDogIi0iLAotCQkJCSh0aW8uY19sZmxhZyAmIElTSUcpID8gIiIgOiAiLSIsCi0JCQkJKHRpby5jX2xmbGFnICYgSUNBTk9OKSA/ICIiIDogIi0iLAotCQkJCSh0aW8uY19sZmxhZyAmIEVDSE8pID8gIiIgOiAiLSIpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQkJdHByaW50ZigiLCB7Y19pZmxhZ3M9JSNseCwgY19vZmxhZ3M9JSNseCwgIiwKLQkJCShsb25nKSB0aW8uY19pZmxhZywgKGxvbmcpIHRpby5jX29mbGFnKTsKLQkJdHByaW50ZigiY19jZmxhZ3M9JSNseCwgY19sZmxhZ3M9JSNseCwgIiwKLQkJCShsb25nKSB0aW8uY19jZmxhZywgKGxvbmcpIHRpby5jX2xmbGFnKTsKLQkJdHByaW50ZigiY19saW5lPSV1LCAiLCB0aW8uY19saW5lKTsKLSNpZmRlZiBfVk1JTgotCQlpZiAoISh0aW8uY19sZmxhZyAmIElDQU5PTikpCi0JCQl0cHJpbnRmKCJjX2NjW19WTUlOXT0lZCwgY19jY1tfVlRJTUVdPSVkLCAiLAotCQkJCXRpby5jX2NjW19WTUlOXSwgdGlvLmNfY2NbX1ZUSU1FXSk7Ci0jZWxzZSAvKiAhX1ZNSU4gKi8KLQkJaWYgKCEodGlvLmNfbGZsYWcgJiBJQ0FOT04pKQotCQkJdHByaW50ZigiY19jY1tWTUlOXT0lZCwgY19jY1tWVElNRV09JWQsICIsCi0JCQkJdGlvLmNfY2NbVk1JTl0sIHRpby5jX2NjW1ZUSU1FXSk7Ci0jZW5kaWYgLyogIV9WTUlOICovCi0JCXRwcmludGYoImNfY2M9XCIiKTsKLQkJZm9yIChpID0gMDsgaSA8IE5DQzsgaSsrKQotCQkJdHByaW50ZigiXFx4JTAyeCIsIHRpby5jX2NjW2ldKTsKLQkJdHByaW50ZigiXCJ9Iik7Ci0JCXJldHVybiAxOwotI2VuZGlmIC8qIFRDR0VUQSAqLwotCi0JLyogaW9jdGxzIHdpdGggd2luc2l6ZSBvciB0dHlzaXplIGFyZ3MgKi8KLQotI2lmZGVmIFRJT0NHV0lOU1oKLQljYXNlIFRJT0NHV0lOU1o6Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJcmV0dXJuIDA7Ci0JY2FzZSBUSU9DU1dJTlNaOgotCQlpZiAoIXZlcmJvc2UodGNwKSB8fCB1bW92ZSh0Y3AsIGFyZywgJndzKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJdHByaW50ZigiLCB7d3Nfcm93PSVkLCB3c19jb2w9JWQsIHdzX3hwaXhlbD0lZCwgd3NfeXBpeGVsPSVkfSIsCi0JCQl3cy53c19yb3csIHdzLndzX2NvbCwgd3Mud3NfeHBpeGVsLCB3cy53c195cGl4ZWwpOwotCQlyZXR1cm4gMTsKLSNlbmRpZiAvKiBUSU9DR1dJTlNaICovCi0KLSNpZmRlZiBUSU9DR1NJWkUKLQljYXNlIFRJT0NHU0laRToKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQlyZXR1cm4gMDsKLQljYXNlIFRJT0NTU0laRToKLQkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ0cykgPCAwKQotCQkJcmV0dXJuIDA7Ci0JCXRwcmludGYoIiwge3RzX2xpbmVzPSVkLCB0c19jb2xzPSVkfSIsCi0JCQl0cy50c19saW5lcywgdHMudHNfY29scyk7Ci0JCXJldHVybiAxOwotI2VuZGlmCi0KLQkvKiBpb2N0bHMgd2l0aCBhIGRpcmVjdCBkZWNvZGFibGUgYXJnICovCi0jaWZkZWYgVENYT05DCi0JY2FzZSBUQ1hPTkM6Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbCh0Y3hvbmNfb3B0aW9ucywgYXJnLCAiVEM/Pz8iKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYKLSNpZmRlZiBUQ0xGTFNICi0JY2FzZSBUQ0ZMU0g6Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbCh0Y2Zsc2hfb3B0aW9ucywgYXJnLCAiVEM/Pz8iKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYKLQotCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgYXMgbW9kZW0gZmxhZ3MgKi8KLQotI2lmZGVmIFRJT0NNR0VUCi0JY2FzZSBUSU9DTUdFVDoKLQljYXNlIFRJT0NNQklTOgotCWNhc2UgVElPQ01CSUM6Ci0JY2FzZSBUSU9DTVNFVDoKLQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmYXJnKSA8IDApCi0JCQlyZXR1cm4gMDsKLQkJdHByaW50ZigiLCBbIik7Ci0JCXByaW50ZmxhZ3MobW9kZW1fZmxhZ3MsIGFyZywgIlRJT0NNXz8/PyIpOwotCQl0cHJpbnRmKCJdIik7Ci0JCXJldHVybiAxOwotI2VuZGlmIC8qIFRJT0NNR0VUICovCi0KLQkvKiBpb2N0bHMgd2l0aCBhbiBpbmRpcmVjdCBwYXJhbWV0ZXIgZGlzcGxheWVkIGluIGRlY2ltYWwgKi8KLQotCWNhc2UgVElPQ1NQR1JQOgotCWNhc2UgVElPQ0dQR1JQOgotI2lmZGVmIFRJT0NHRVRQR1JQCi0JY2FzZSBUSU9DR0VUUEdSUDoKLSNlbmRpZgotI2lmZGVmIFRJT0NTRVRQR1JQCi0JY2FzZSBUSU9DU0VUUEdSUDoKLSNlbmRpZgotI2lmZGVmIEZJT05SRUFECi0JY2FzZSBGSU9OUkVBRDoKLSNlbmRpZgotCWNhc2UgVElPQ09VVFE6Ci0jaWZkZWYgRklPTkJJTwotCWNhc2UgRklPTkJJTzoKLSNlbmRpZgotI2lmZGVmIEZJT0FTWU5DCi0JY2FzZSBGSU9BU1lOQzoKLSNlbmRpZgotI2lmZGVmIEZJT0dFVE9XTgotCWNhc2UgRklPR0VUT1dOOgotI2VuZGlmCi0jaWZkZWYgRklPU0VUT1dOCi0JY2FzZSBGSU9TRVRPV046Ci0jZW5kaWYKLSNpZmRlZiBUSU9DR0VURAotCWNhc2UgVElPQ0dFVEQ6Ci0jZW5kaWYKLSNpZmRlZiBUSU9DU0VURAotCWNhc2UgVElPQ1NFVEQ6Ci0jZW5kaWYKLSNpZmRlZiBUSU9DUEtUCi0JY2FzZSBUSU9DUEtUOgotI2VuZGlmCi0jaWZkZWYgVElPQ1JFTU9URQotCWNhc2UgVElPQ1JFTU9URToKLSNlbmRpZgotI2lmZGVmIFRJT0NVQ05UTAotCWNhc2UgVElPQ1VDTlRMOgotI2VuZGlmCi0jaWZkZWYgVElPQ1RDTlRMCi0JY2FzZSBUSU9DVENOVEw6Ci0jZW5kaWYKLSNpZmRlZiBUSU9DU0lHTkFMCi0JY2FzZSBUSU9DU0lHTkFMOgotI2VuZGlmCi0jaWZkZWYgVElPQ1NTT0ZUQ0FSCi0JY2FzZSBUSU9DU1NPRlRDQVI6Ci0jZW5kaWYKLSNpZmRlZiBUSU9DR1NPRlRDQVIKLQljYXNlIFRJT0NHU09GVENBUjoKLSNlbmRpZgotI2lmZGVmIFRJT0NJU1BBQ0UKLQljYXNlIFRJT0NJU1BBQ0U6Ci0jZW5kaWYKLSNpZmRlZiBUSU9DSVNJWkUKLQljYXNlIFRJT0NJU0laRToKLSNlbmRpZgotI2lmZGVmIFRJT0NTSU5UUgotCWNhc2UgVElPQ1NJTlRSOgotI2VuZGlmCi0jaWZkZWYgVElPQ1NQVExDSwotCWNhc2UgVElPQ1NQVExDSzoKLSNlbmRpZgotI2lmZGVmIFRJT0NHUFROCi0JY2FzZSBUSU9DR1BUTjoKLSNlbmRpZgotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludG51bSh0Y3AsIGFyZywgIiVkIik7Ci0JCXJldHVybiAxOwotCi0jaWYgMAotCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgaW4gaGV4ICovCi0KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRudW0odGNwLCBhcmcsICIlI3giKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYKLQotCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgYXMgYSBjaGFyICovCi0KLSNpZmRlZiBUSU9DU1RJCi0JY2FzZSBUSU9DU1RJOgotI2VuZGlmCi0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50c3RyKHRjcCwgYXJnLCAxKTsKLQkJcmV0dXJuIDE7Ci0KLQkvKiBpb2N0bHMgd2l0aCBubyBwYXJhbWV0ZXJzICovCi0KLSNpZmRlZiBUSU9DU0NUVFkKLQljYXNlIFRJT0NTQ1RUWToKLSNlbmRpZgotI2lmZGVmIFRJT0NOT1RUWQotCWNhc2UgVElPQ05PVFRZOgotI2VuZGlmCi0jaWZkZWYgRklPQ0xFWAotCWNhc2UgRklPQ0xFWDoKLSNlbmRpZgotI2lmZGVmIEZJT05DTEVYCi0JY2FzZSBGSU9OQ0xFWDoKLSNlbmRpZgotI2lmZGVmIFRJT0NDT05TCi0JY2FzZSBUSU9DQ09OUzoKLSNlbmRpZgotCQlyZXR1cm4gMTsKLQotCS8qIGlvY3RscyB3aGljaCBhcmUgdW5rbm93biAqLwotCi0JZGVmYXVsdDoKLQkJcmV0dXJuIDA7Ci0JfQotfQpkaWZmIC0tZ2l0IGEvdGltZS5jIGIvdGltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWVjN2MwLi4wMDAwMDAwCi0tLSBhL3RpbWUuYworKysgL2Rldi9udWxsCkBAIC0xLDYxNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogdGltZS5jLHYgMS4xMiAyMDA1LzA2LzAxIDE5OjAyOjM4IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0KLSNpZmRlZiBMSU5VWAotI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvdGltZXguaD4KLSNlbmRpZgotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvcnRjLmg+Ci0jZW5kaWYgLyogTElOVVggKi8KLQotdm9pZAotcHJpbnR0dih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0Jc3RydWN0IHRpbWV2YWwgdHY7Ci0KLQlpZiAoYWRkciA9PSAwKQotCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnR2KSA8IDApCi0JCXRwcmludGYoInsuLi59Iik7Ci0JZWxzZQotCQl0cHJpbnRmKCJ7JWx1LCAlbHV9IiwgKGxvbmcpIHR2LnR2X3NlYywgKGxvbmcpIHR2LnR2X3VzZWMpOwotfQotCi0jaWZkZWYgQUxQSEEKLXN0cnVjdCB0aW1ldmFsMzIKLXsKLSAgICB1bnNpZ25lZCB0dl9zZWM7Ci0gICAgdW5zaWduZWQgdHZfdXNlYzsKLX07Ci0KLXZvaWQKLXByaW50dHYzMih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0gICAgc3RydWN0IHRpbWV2YWwzMiAgdHY7Ci0KLSAgICBpZiAoYWRkciA9PSAwKQotCXRwcmludGYoIk5VTEwiKTsKLSAgICBlbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLSAgICBlbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZ0dikgPCAwKQotCXRwcmludGYoInsuLi59Iik7Ci0gICAgZWxzZQotCXRwcmludGYoInsldSwgJXV9IiwgdHYudHZfc2VjLCB0di50dl91c2VjKTsKLX0KLSNlbmRpZgotCi0KLWludAotc3lzX3RpbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChleGl0aW5nKHRjcCkpIHsKLSNpZm5kZWYgU1ZSNAotCQlwcmludG51bSh0Y3AsIHRjcC0+dV9hcmdbMF0sICIlbGQiKTsKLSNlbmRpZiAvKiBTVlI0ICovCi0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19zdGltZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlwcmludG51bSh0Y3AsIHRjcC0+dV9hcmdbMF0sICIlbGQiKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludAotc3lzX2dldHRpbWVvZmRheSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAoc3lzZXJyb3IodGNwKSkgewotCQkJdHByaW50ZigiJSNseCwgJSNseCIsCi0JCQkJdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0jaWZuZGVmIFNWUjQKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotI2VuZGlmIC8qICFTVlI0ICovCi0JfQotCXJldHVybiAwOwotfQotCi0KLSNpZmRlZiBBTFBIQQotaW50Ci1zeXNfb3NmX2dldHRpbWVvZmRheSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGV4aXRpbmcodGNwKSkgewotCWlmIChzeXNlcnJvcih0Y3ApKSB7Ci0JICAgIHRwcmludGYoIiUjbHgsICUjbHgiLAotCQkgICAgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JICAgIHJldHVybiAwOwotCX0KLQlwcmludHR2MzIodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLSNpZm5kZWYgU1ZSNAotCXRwcmludGYoIiwgIik7Ci0JcHJpbnR0djMyKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0jZW5kaWYgLyogIVNWUjQgKi8KLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfc2V0dGltZW9mZGF5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0jaWZuZGVmIFNWUjQKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotI2VuZGlmIC8qICFTVlI0ICovCi0JfQotCXJldHVybiAwOwotfQotCi0jaWZkZWYgQUxQSEEKLWludAotc3lzX29zZl9zZXR0aW1lb2ZkYXkodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnR0djMyKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0jaWZuZGVmIFNWUjQKLQl0cHJpbnRmKCIsICIpOwotCXByaW50dHYzMih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotI2VuZGlmIC8qICFTVlI0ICovCi0gICAgfQotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KLWludAotc3lzX2FkanRpbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQl9IGVsc2UgewotCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZQotCQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHdoaWNoW10gPSB7Ci0JeyBJVElNRVJfUkVBTCwJIklUSU1FUl9SRUFMIgl9LAotCXsgSVRJTUVSX1ZJUlRVQUwsIklUSU1FUl9WSVJUVUFMIn0sCi0JeyBJVElNRVJfUFJPRiwJIklUSU1FUl9QUk9GIgl9LAotCXsgMCwJCU5VTEwJCX0sCi19OwotCi1zdGF0aWMgdm9pZAotcHJpbnRpdHYodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotewotCXN0cnVjdCBpdGltZXJ2YWwgaXR2OwotCi0JaWYgKGFkZHIgPT0gMCkKLQkJdHByaW50ZigiTlVMTCIpOwotCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCi0JCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZpdHYpIDwgMCkKLQkJdHByaW50Zigiey4uLn0iKTsKLQllbHNlIHsKLQkJdHByaW50Zigie2l0X2ludGVydmFsPXslbHUsICVsdX0sIGl0X3ZhbHVlPXslbHUsICVsdX19IiwKLQkJKGxvbmcpIGl0di5pdF9pbnRlcnZhbC50dl9zZWMsIChsb25nKSBpdHYuaXRfaW50ZXJ2YWwudHZfdXNlYywKLQkJKGxvbmcpIGl0di5pdF92YWx1ZS50dl9zZWMsIChsb25nKSBpdHYuaXRfdmFsdWUudHZfdXNlYyk7Ci0JfQotfQotCi0KLSNpZmRlZiBBTFBIQQotc3RhdGljIHZvaWQKLXByaW50aXR2MzIodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotewotICAgIHN0cnVjdCBpdGltZXJ2YWwzMgotICAgIHsKLQlzdHJ1Y3QgdGltZXZhbDMyIGl0X2ludGVydmFsOwotCXN0cnVjdCB0aW1ldmFsMzIgaXRfdmFsdWU7Ci0gICAgfSBpdHY7Ci0KLSAgICBpZiAoYWRkciA9PSAwKQotCXRwcmludGYoIk5VTEwiKTsKLSAgICBlbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLSAgICBlbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZpdHYpIDwgMCkKLQl0cHJpbnRmKCJ7Li4ufSIpOwotICAgIGVsc2UgewotCXRwcmludGYoIntpdF9pbnRlcnZhbD17JXUsICV1fSwgaXRfdmFsdWU9eyV1LCAldX19IiwKLQkJaXR2Lml0X2ludGVydmFsLnR2X3NlYywgaXR2Lml0X2ludGVydmFsLnR2X3VzZWMsCi0JCWl0di5pdF92YWx1ZS50dl9zZWMsIGl0di5pdF92YWx1ZS50dl91c2VjKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfZ2V0aXRpbWVyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwod2hpY2gsIHRjcC0+dV9hcmdbMF0sICJJVElNRVJfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UKLQkJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi0KLSNpZmRlZiBBTFBIQQotaW50Ci1zeXNfb3NmX2dldGl0aW1lcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwod2hpY2gsIHRjcC0+dV9hcmdbMF0sICJJVElNRVJfPz8/Iik7Ci0JdHByaW50ZigiLCAiKTsKLSAgICB9IGVsc2UgewotCWlmIChzeXNlcnJvcih0Y3ApKQotCSAgICB0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JZWxzZQotCSAgICBwcmludGl0djMyKHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KLWludAotc3lzX3NldGl0aW1lcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHdoaWNoLCB0Y3AtPnVfYXJnWzBdLCAiSVRJTUVSXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCi0JCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIEFMUEhBCi1pbnQKLXN5c19vc2Zfc2V0aXRpbWVyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50eHZhbCh3aGljaCwgdGNwLT51X2FyZ1swXSwgIklUSU1FUl8/Pz8iKTsKLQl0cHJpbnRmKCIsICIpOwotCXByaW50aXR2MzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLQl0cHJpbnRmKCIsICIpOwotICAgIH0gZWxzZSB7Ci0JaWYgKHN5c2Vycm9yKHRjcCkpCi0JICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKLQllbHNlCi0JICAgIHByaW50aXR2MzIodGNwLCB0Y3AtPnVfYXJnWzJdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotI2lmZGVmIExJTlVYCi0KLWludAotc3lzX2FkanRpbWV4KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlzdHJ1Y3QgdGltZXggdHhjOwotCi0JaWYgKGV4aXRpbmcodGNwKSkgewotCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQotCQkJdHByaW50ZigiTlVMTCIpOwotCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnR4YykgPCAwKQotCQkJdHByaW50Zigiey4uLn0iKTsKLQkJZWxzZSB7Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgNjYzMzIKLQkJCXRwcmludGYoInttb2RlPSVkLCBvZmZzZXQ9JWxkLCBmcmVxdWVuY3k9JWxkLCAiLAotCQkJCXR4Yy5tb2RlLCB0eGMub2Zmc2V0LCB0eGMuZnJlcXVlbmN5KTsKLQkJCXRwcmludGYoIm1heGVycm9yPSVsZCwgZXN0ZXJyb3I9JWx1LCBzdGF0dXM9JXUsICIsCi0JCQkJdHhjLm1heGVycm9yLCB0eGMuZXN0ZXJyb3IsIHR4Yy5zdGF0dXMpOwotCQkJdHByaW50ZigidGltZV9jb25zdGFudD0lbGQsIHByZWNpc2lvbj0lbHUsICIsCi0JCQkJdHhjLnRpbWVfY29uc3RhbnQsIHR4Yy5wcmVjaXNpb24pOwotCQkJdHByaW50ZigidG9sZXJhbmNlPSVsZCwgdGltZT17JWx1LCAlbHV9fSIsCi0JCQkJdHhjLnRvbGVyYW5jZSwgKGxvbmcpIHR4Yy50aW1lLnR2X3NlYywKLQkJCQkobG9uZykgdHhjLnRpbWUudHZfdXNlYyk7Ci0jZWxzZQotCQkJdHByaW50Zigie21vZGVzPSVkLCBvZmZzZXQ9JWxkLCBmcmVxPSVsZCwgIiwKLQkJCQl0eGMubW9kZXMsIHR4Yy5vZmZzZXQsIHR4Yy5mcmVxKTsKLQkJCXRwcmludGYoIm1heGVycm9yPSVsZCwgZXN0ZXJyb3I9JWx1LCBzdGF0dXM9JXUsICIsCi0JCQkJdHhjLm1heGVycm9yLCB0eGMuZXN0ZXJyb3IsIHR4Yy5zdGF0dXMpOwotCQkJdHByaW50ZigiY29uc3RhbnQ9JWxkLCBwcmVjaXNpb249JWx1LCAiLAotCQkJCXR4Yy5jb25zdGFudCwgdHhjLnByZWNpc2lvbik7Ci0JCQl0cHJpbnRmKCJ0b2xlcmFuY2U9JWxkLCB0aW1lPXslbHUsICVsdX19IiwKLQkJCQl0eGMudG9sZXJhbmNlLCAobG9uZykgdHhjLnRpbWUudHZfc2VjLAotCQkJCShsb25nKSB0eGMudGltZS50dl91c2VjKTsKLQkJCS8qIHRoZXJlJ3MgYSBidW5jaCBvZiBvdGhlciBzdHVmZiwgYnV0IGl0J3Mgbm90Ci0JCQkgKiB3b3J0aCB0aGUgdGltZSBvciB0aGUgdHJvdWJsZSB0byBpbmNsdWRlICovCi0jZW5kaWYKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGNsb2NrZmxhZ3NbXSA9IHsKLSAgeyBUSU1FUl9BQlNUSU1FLCAiVElNRVJfQUJTVElNRSIgfSwKLSAgeyAwLCAgICAgICAgICAgICBOVUxMIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBjbG9ja25hbWVzW10gPSB7Ci0jaWZkZWYgQ0xPQ0tfUkVBTFRJTUUKLSAgeyBDTE9DS19SRUFMVElNRSwgIkNMT0NLX1JFQUxUSU1FIiB9LAotI2VuZGlmCi0jaWZkZWYgQ0xPQ0tfTU9OT1RPTklDCi0gIHsgQ0xPQ0tfTU9OT1RPTklDLCAiQ0xPQ0tfTU9OT1RPTklDIiB9LAotI2VuZGlmCi0gIHsgMCwgICAgICAgICAgICAgTlVMTCB9Ci19OwotCi1pbnQKLXN5c19jbG9ja19zZXR0aW1lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoY2xvY2tuYW1lcywgdGNwLT51X2FyZ1swXSwgIkNMT0NLXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19jbG9ja19nZXR0aW1lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHh2YWwoY2xvY2tuYW1lcywgdGNwLT51X2FyZ1swXSwgIkNMT0NLXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQllbHNlCi0JCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19jbG9ja19uYW5vc2xlZXAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50eHZhbChjbG9ja25hbWVzLCB0Y3AtPnVfYXJnWzBdLCAiQ0xPQ0tfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MoY2xvY2tmbGFncywgdGNwLT51X2FyZ1sxXSwgIlRJTUVSXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCWVsc2UKLQkJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzNdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZm5kZWYgU0lHRVZfVEhSRUFEX0lECi0jIGRlZmluZSBTSUdFVl9USFJFQURfSUQgNAotI2VuZGlmCi1zdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lnZXZfdmFsdWVbXSA9IHsKLQl7IFNJR0VWX1NJR05BTCsxLCAiU0lHRVZfU0lHTkFMIiB9LAotCXsgU0lHRVZfTk9ORSsxLCAiU0lHRVZfTk9ORSIgfSwKLQl7IFNJR0VWX1RIUkVBRCsxLCAiU0lHRVZfVEhSRUFEIiB9LAotCXsgU0lHRVZfVEhSRUFEX0lEKzEsICJTSUdFVl9USFJFQURfSUQiIH0sCi0JeyAwLCBOVUxMIH0KLX07Ci0KLXZvaWQKLXByaW50c2lnZXZlbnQodGNwLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFyZzsKLXsKLQlzdHJ1Y3Qgc2lnZXZlbnQgc2V2OwotCWlmICh1bW92ZSAodGNwLCBhcmcsICZzZXYpIDwgMCkKLQkJdHByaW50Zigiey4uLn0iKTsKLQllbHNlIHsKLQkJdHByaW50ZigieyVwLCAiLCBzZXYuc2lnZXZfdmFsdWUuc2l2YWxfcHRyKTsKLQkJaWYgKHNldi5zaWdldl9ub3RpZnkgPT0gU0lHRVZfU0lHTkFMKQotCQkJdHByaW50ZigiJXMsICIsIHNpZ25hbWUoc2V2LnNpZ2V2X3NpZ25vKSk7Ci0JCWVsc2UKLQkJCXRwcmludGYoIiV1LCAiLCBzZXYuc2lnZXZfc2lnbm8pOwotCQlwcmludHh2YWwoc2lnZXZfdmFsdWUsIHNldi5zaWdldl9ub3RpZnkrMSwgIlNJR0VWXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoc2V2LnNpZ2V2X25vdGlmeSA9PSBTSUdFVl9USFJFQURfSUQpCi0JCQkvKiBfcGFkWzBdIGlzIHRoZSBfdGlkIGZpZWxkIHdoaWNoIG1pZ2h0IG5vdCBiZQotCQkJICAgcHJlc2VudCBpbiB0aGUgdXNlcmxldmVsIGRlZmluaXRpb24gb2YgdGhlCi0JCQkgICBzdHJ1Y3QuICAqLwotCQkJdHByaW50ZigieyVkfSIsIHNldi5fc2lnZXZfdW4uX3BhZFswXSk7Ci0JCWVsc2UgaWYgKHNldi5zaWdldl9ub3RpZnkgPT0gU0lHRVZfVEhSRUFEKQotCQkJdHByaW50ZigieyVwLCAlcH0iLCBzZXYuc2lnZXZfbm90aWZ5X2Z1bmN0aW9uLAotCQkJCXNldi5zaWdldl9ub3RpZnlfYXR0cmlidXRlcyk7Ci0JCWVsc2UKLQkJCXRwcmludGYoInsuLi59Iik7Ci0JCXRwcmludGYoIn0iKTsKLQl9Ci19Ci0KLWludAotc3lzX3RpbWVyX2NyZWF0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKGNsb2NrbmFtZXMsIHRjcC0+dV9hcmdbMF0sICJDTE9DS18/Pz8iKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRzaWdldmVudCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlIHsKLQkJCXZvaWQgKnA7Ci0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZwKTsKLQkJCXRwcmludGYoInslcH0iLCBwKTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfdGltZXJfc2V0dGltZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JCXByaW50ZmxhZ3MoY2xvY2tmbGFncywgdGNwLT51X2FyZ1sxXSwgIlRJTUVSXz8/PyIpOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICIpOwotCX0gZWxzZSB7Ci0JCWlmIChzeXNlcnJvcih0Y3ApKQotCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOwotCQllbHNlCi0JCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbM10pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfdGltZXJfZ2V0dGltZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCWVsc2UKLQkJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotcHJpbnRfcnRjKHRjcCwgcnQpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1jb25zdCBzdHJ1Y3QgcnRjX3RpbWUgKnJ0OwotewotCXRwcmludGYoInt0bV9zZWM9JWQsIHRtX21pbj0lZCwgdG1faG91cj0lZCwgIgotCQkidG1fbWRheT0lZCwgdG1fbW9uPSVkLCB0bV95ZWFyPSVkLCAiLAotCQlydC0+dG1fc2VjLCBydC0+dG1fbWluLCBydC0+dG1faG91ciwKLQkJcnQtPnRtX21kYXksIHJ0LT50bV9tb24sIHJ0LT50bV95ZWFyKTsKLQlpZiAoIWFiYnJldih0Y3ApKQotCQl0cHJpbnRmKCJ0bV93ZGF5PSVkLCB0bV95ZGF5PSVkLCB0bV9pc2RzdD0lZH0iLAotCQkJcnQtPnRtX3dkYXksIHJ0LT50bV95ZGF5LCBydC0+dG1faXNkc3QpOwotCWVsc2UKLQkJdHByaW50ZigiLi4ufSIpOwotfQotCi1pbnQKLXJ0Y19pb2N0bCh0Y3AsIGNvZGUsIGFyZykKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgY29kZTsKLWxvbmcgYXJnOwotewotCXN3aXRjaCAoY29kZSkgewotCWNhc2UgUlRDX0FMTV9TRVQ6Ci0JY2FzZSBSVENfU0VUX1RJTUU6Ci0JCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCQlzdHJ1Y3QgcnRjX3RpbWUgcnQ7Ci0JCQlpZiAodW1vdmUodGNwLCBhcmcsICZydCkgPCAwKQotCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7Ci0JCQllbHNlIHsKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50X3J0Yyh0Y3AsICZydCk7Ci0JCQl9Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBSVENfQUxNX1JFQUQ6Ci0JY2FzZSBSVENfUkRfVElNRToKLQkJaWYgKGV4aXRpbmcodGNwKSkgewotCQkJc3RydWN0IHJ0Y190aW1lIHJ0OwotCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZydCkgPCAwKQotCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7Ci0JCQllbHNlIHsKLQkJCQl0cHJpbnRmKCIsICIpOwotCQkJCXByaW50X3J0Yyh0Y3AsICZydCk7Ci0JCQl9Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBSVENfSVJRUF9TRVQ6Ci0JY2FzZSBSVENfRVBPQ0hfU0VUOgotCQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJCXRwcmludGYoIiwgJWx1IiwgYXJnKTsKLQkJYnJlYWs7Ci0JY2FzZSBSVENfSVJRUF9SRUFEOgotCWNhc2UgUlRDX0VQT0NIX1JFQUQ6Ci0JCWlmIChleGl0aW5nKHRjcCkpCi0JCQl0cHJpbnRmKCIsICVsdSIsIGFyZyk7Ci0JCWJyZWFrOwotCWNhc2UgUlRDX1dLQUxNX1NFVDoKLQkJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJCXN0cnVjdCBydGNfd2thbHJtIHdrOwotCQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmd2spIDwgMCkKLQkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOwotCQkJZWxzZSB7Ci0JCQkJdHByaW50ZigiLCB7ZW5hYmxlZD0lZCwgcGVuZGluZz0lZCwgIiwKLQkJCQkJd2suZW5hYmxlZCwgd2sucGVuZGluZyk7Ci0JCQkJcHJpbnRfcnRjKHRjcCwgJndrLnRpbWUpOwotCQkJCXRwcmludGYoIn0iKTsKLQkJCX0KLQkJfQotCQlicmVhazsKLQljYXNlIFJUQ19XS0FMTV9SRDoKLQkJaWYgKGV4aXRpbmcodGNwKSkgewotCQkJc3RydWN0IHJ0Y193a2Fscm0gd2s7Ci0JCQlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSh0Y3AsIGFyZywgJndrKSA8IDApCi0JCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKLQkJCWVsc2UgewotCQkJCXRwcmludGYoIiwge2VuYWJsZWQ9JWQsIHBlbmRpbmc9JWQsICIsCi0JCQkJCXdrLmVuYWJsZWQsIHdrLnBlbmRpbmcpOwotCQkJCXByaW50X3J0Yyh0Y3AsICZ3ay50aW1lKTsKLQkJCQl0cHJpbnRmKCJ9Iik7Ci0JCQl9Ci0JCX0KLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJaWYgKGVudGVyaW5nKHRjcCkpCi0JCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIDE7Ci19Ci0jZW5kaWYgLyogTElOVVggKi8KZGlmZiAtLWdpdCBhL3V0aWwuYyBiL3V0aWwuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRmYzBhNC4uMDAwMDAwMAotLS0gYS91dGlsLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTkgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgotICogICAgICAgICAgICAgICAgICAgICBMaW51eCBmb3IgczM5MCBwb3J0IGJ5IEQuSi4gQmFycm93Ci0gKiAgICAgICAgICAgICAgICAgICAgPGJhcnJvd19kakBtYWlsLnlhaG9vLmNvbSxkamJhcnJvd0BkZS5pYm0uY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogdXRpbC5jLHYgMS42MiAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAotICovCi0KLSNpbmNsdWRlICJkZWZzLmgiCi0jaW5jbHVkZSAiLi4vc3lzY2FsbC1hbmRyb2lkLmgiCi0KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxzeXMvdXNlci5oPgotI2VuZGlmCi0jaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpZiBIQVZFX1NZU19VSU9fSAotI2luY2x1ZGUgPHN5cy91aW8uaD4KLSNlbmRpZgotI2lmZGVmIFNVTk9TNAotI2luY2x1ZGUgPG1hY2hpbmUvcmVnLmg+Ci0jaW5jbHVkZSA8YS5vdXQuaD4KLSNpbmNsdWRlIDxsaW5rLmg+Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0KLSNpZiBkZWZpbmVkKGxpbnV4KSAmJiAoX19HTElCQ19fIDwgMiB8fCAoX19HTElCQ19fID09IDIgJiYgX19HTElCQ19NSU5PUl9fIDwgMSkpCi0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSUE2NCkKLSMgaW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+Ci0jIGluY2x1ZGUgPGFzbS9yc2UuaD4KLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9TWVNfUkVHX0gKLSNpbmNsdWRlIDxzeXMvcmVnLmg+Ci0jIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKLSNlbGlmIGRlZmluZWQoSEFWRV9MSU5VWF9QVFJBQ0VfSCkKLSN1bmRlZiBQVFJBQ0VfU1lTQ0FMTAotIyBpZmRlZiBIQVZFX1NUUlVDVF9JQTY0X0ZQUkVHCi0jICBkZWZpbmUgaWE2NF9mcHJlZyBYWFhfaWE2NF9mcHJlZwotIyBlbmRpZgotIyBpZmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTCi0jICBkZWZpbmUgcHRfYWxsX3VzZXJfcmVncyBYWFhfcHRfYWxsX3VzZXJfcmVncwotIyBlbmRpZgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotIyB1bmRlZiBpYTY0X2ZwcmVnCi0jIHVuZGVmIHB0X2FsbF91c2VyX3JlZ3MKLSNlbmRpZgotCi0jaWZkZWYgU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRQotI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0jZW5kaWYgLyogU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLwotCi0jaWYgZGVmaW5lZChMSU5VWFNQQVJDKQotCi0jIGRlZmluZSBmcHEga2VybmVsX2ZwcQotIyBkZWZpbmUgZnEga2VybmVsX2ZxCi0jIGRlZmluZSBmcHUga2VybmVsX2ZwdQotIyBpbmNsdWRlIDxhc20vcmVnLmg+Ci0jIHVuZGVmIGZwcQotIyB1bmRlZiBmcQotIyB1bmRlZiBmcHUKLQotI2lmIGRlZmluZWQgKFNQQVJDNjQpCi0jIGRlZmluZSByX3BjIHJfdHBjCi0jIHVuZGVmIFBUUkFDRV9HRVRSRUdTCi0jIGRlZmluZSBQVFJBQ0VfR0VUUkVHUyBQVFJBQ0VfR0VUUkVHUzY0Ci0jIHVuZGVmIFBUUkFDRV9TRVRSRUdTCi0jIGRlZmluZSBQVFJBQ0VfU0VUUkVHUyBQVFJBQ0VfU0VUUkVHUzY0Ci0jZW5kaWYgLyogU1BBUkM2NCAqLwotCi0jaWYgIWRlZmluZWQoX19HTElCQ19fKQotCi0jaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+Ci0KLSNkZWZpbmUgX2hhY2tfc3lzY2FsbDUodHlwZSxuYW1lLHR5cGUxLGFyZzEsdHlwZTIsYXJnMix0eXBlMyxhcmczLHR5cGU0LGFyZzQsXAotICAgICAgICAgIHR5cGU1LGFyZzUsc3lzY2FsbCkgXAotdHlwZSBuYW1lICh0eXBlMSBhcmcxLHR5cGUyIGFyZzIsdHlwZTMgYXJnMyx0eXBlNCBhcmc0LHR5cGU1IGFyZzUpIFwKLXsgXAotICAgICAgbG9uZyBfX3JlczsgXAotXAotX19hc21fXyB2b2xhdGlsZSAoIm9yICUlZzAsICUxLCAlJW8wXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICUyLCAlJW8xXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICUzLCAlJW8yXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU0LCAlJW8zXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU1LCAlJW80XG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU2LCAlJWcxXG5cdCIgXAotI2lmIGRlZmluZWQgKFNQQVJDNjQpCi0gICAgICAgICAgICAgICAgICAidCAweDZkXG5cdCIgXAotI2Vsc2UKLSAgICAgICAgICAgICAgICAgICJ0IDB4MTBcblx0IiBcCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICJiY2MgMWZcblx0IiBcCi0gICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJSVvMCwgJTBcblx0IiBcCi0gICAgICAgICAgICAgICAgICAic3ViICUlZzAsICUlbzAsICUwXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIjE6XG5cdCIgXAotICAgICAgICAgICAgICAgICAgOiAiPXIiIChfX3JlcykgXAotICAgICAgICAgICAgICAgICAgOiAiMCIgKChsb25nKShhcmcxKSksIjEiICgobG9uZykoYXJnMikpLCBcCi0gICAgICAgICAgICAgICAgICAgICIyIiAoKGxvbmcpKGFyZzMpKSwiMyIgKChsb25nKShhcmc0KSksIjQiICgobG9uZykoYXJnNSkpLCBcCi0gICAgICAgICAgICAgICAgICAgICJpIiAoX19OUl8jI3N5c2NhbGwpICBcCi0gICAgICAgICAgICAgICAgICA6ICJnMSIsICJvMCIsICJvMSIsICJvMiIsICJvMyIsICJvNCIpOyBcCi1pZiAoX19yZXM+PTApIFwKLSAgICAgICAgcmV0dXJuICh0eXBlKSBfX3JlczsgXAotZXJybm8gPSAtX19yZXM7IFwKLXJldHVybiAtMTsgXAotfQotCi1zdGF0aWMgX2hhY2tfc3lzY2FsbDUoaW50LF9wdHJhY2UsaW50LF9fcmVxdWVzdCxpbnQsX19waWQsaW50LF9fYWRkcixpbnQsX19kYXRhLGludCxfX2FkZHIyLHB0cmFjZSkKLQotI2RlZmluZSBfcHRyYWNlCi0KLSNlbmRpZgotCi0jZW5kaWYKLQotLyogbWFjcm9zICovCi0jaWZuZGVmIE1BWAotI2RlZmluZSBNQVgoYSxiKQkJKCgoYSkgPiAoYikpID8gKGEpIDogKGIpKQotI2VuZGlmCi0jaWZuZGVmIE1JTgotI2RlZmluZSBNSU4oYSxiKQkJKCgoYSkgPCAoYikpID8gKGEpIDogKGIpKQotI2VuZGlmCi0KLSNpZiAwCi12b2lkCi10dl90dih0diwgYSwgYikKLXN0cnVjdCB0aW1ldmFsICp0djsKLWludCBhOwotaW50IGI7Ci17Ci0JdHYtPnR2X3NlYyA9IGE7Ci0JdHYtPnR2X3VzZWMgPSBiOwotfQotI2VuZGlmCi0KLWludAotdHZfbnooYSkKLXN0cnVjdCB0aW1ldmFsICphOwotewotCXJldHVybiBhLT50dl9zZWMgfHwgYS0+dHZfdXNlYzsKLX0KLQotaW50Ci10dl9jbXAoYSwgYikKLXN0cnVjdCB0aW1ldmFsICphLCAqYjsKLXsKLQlpZiAoYS0+dHZfc2VjIDwgYi0+dHZfc2VjCi0JICAgIHx8IChhLT50dl9zZWMgPT0gYi0+dHZfc2VjICYmIGEtPnR2X3VzZWMgPCBiLT50dl91c2VjKSkKLQkJcmV0dXJuIC0xOwotCWlmIChhLT50dl9zZWMgPiBiLT50dl9zZWMKLQkgICAgfHwgKGEtPnR2X3NlYyA9PSBiLT50dl9zZWMgJiYgYS0+dHZfdXNlYyA+IGItPnR2X3VzZWMpKQotCQlyZXR1cm4gMTsKLQlyZXR1cm4gMDsKLX0KLQotZG91YmxlCi10dl9mbG9hdCh0dikKLXN0cnVjdCB0aW1ldmFsICp0djsKLXsKLQlyZXR1cm4gdHYtPnR2X3NlYyArIHR2LT50dl91c2VjLzEwMDAwMDAuMDsKLX0KLQotdm9pZAotdHZfYWRkKHR2LCBhLCBiKQotc3RydWN0IHRpbWV2YWwgKnR2LCAqYSwgKmI7Ci17Ci0JdHYtPnR2X3NlYyA9IGEtPnR2X3NlYyArIGItPnR2X3NlYzsKLQl0di0+dHZfdXNlYyA9IGEtPnR2X3VzZWMgKyBiLT50dl91c2VjOwotCWlmICh0di0+dHZfdXNlYyA+IDEwMDAwMDApIHsKLQkJdHYtPnR2X3NlYysrOwotCQl0di0+dHZfdXNlYyAtPSAxMDAwMDAwOwotCX0KLX0KLQotdm9pZAotdHZfc3ViKHR2LCBhLCBiKQotc3RydWN0IHRpbWV2YWwgKnR2LCAqYSwgKmI7Ci17Ci0JdHYtPnR2X3NlYyA9IGEtPnR2X3NlYyAtIGItPnR2X3NlYzsKLQl0di0+dHZfdXNlYyA9IGEtPnR2X3VzZWMgLSBiLT50dl91c2VjOwotCWlmICgoKGxvbmcpIHR2LT50dl91c2VjKSA8IDApIHsKLQkJdHYtPnR2X3NlYy0tOwotCQl0di0+dHZfdXNlYyArPSAxMDAwMDAwOwotCX0KLX0KLQotdm9pZAotdHZfZGl2KHR2LCBhLCBuKQotc3RydWN0IHRpbWV2YWwgKnR2LCAqYTsKLWludCBuOwotewotCXR2LT50dl91c2VjID0gKGEtPnR2X3NlYyAlIG4gKiAxMDAwMDAwICsgYS0+dHZfdXNlYyArIG4gLyAyKSAvIG47Ci0JdHYtPnR2X3NlYyA9IGEtPnR2X3NlYyAvIG4gKyB0di0+dHZfdXNlYyAvIDEwMDAwMDA7Ci0JdHYtPnR2X3VzZWMgJT0gMTAwMDAwMDsKLX0KLQotdm9pZAotdHZfbXVsKHR2LCBhLCBuKQotc3RydWN0IHRpbWV2YWwgKnR2LCAqYTsKLWludCBuOwotewotCXR2LT50dl91c2VjID0gYS0+dHZfdXNlYyAqIG47Ci0JdHYtPnR2X3NlYyA9IGEtPnR2X3NlYyAqIG4gKyBhLT50dl91c2VjIC8gMTAwMDAwMDsKLQl0di0+dHZfdXNlYyAlPSAxMDAwMDAwOwotfQotCi1jaGFyICoKLXhsb29rdXAoeGxhdCwgdmFsKQotY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7Ci1pbnQgdmFsOwotewotCWZvciAoOyB4bGF0LT5zdHIgIT0gTlVMTDsgeGxhdCsrKQotCQlpZiAoeGxhdC0+dmFsID09IHZhbCkKLQkJCXJldHVybiB4bGF0LT5zdHI7Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLS8qCi0gKiBQcmludCBlbnRyeSBpbiBzdHJ1Y3QgeGxhdCB0YWJsZSwgaWYgdGhlcmUuCi0gKi8KLXZvaWQKLXByaW50eHZhbCh4bGF0LCB2YWwsIGRmbHQpCi1jb25zdCBzdHJ1Y3QgeGxhdCAqeGxhdDsKLWludCB2YWw7Ci1jb25zdCBjaGFyICpkZmx0OwotewotCWNoYXIgKnN0ciA9IHhsb29rdXAoeGxhdCwgdmFsKTsKLQotCWlmIChzdHIpCi0JCXRwcmludGYoIiVzIiwgc3RyKTsKLQllbHNlCi0JCXRwcmludGYoIiUjeCAvKiAlcyAqLyIsIHZhbCwgZGZsdCk7Ci19Ci0KLS8qCi0gKiBJbnRlcnByZXQgYHhsYXQnIGFzIGFuIGFycmF5IG9mIGZsYWdzCi0gKiBwcmludCB0aGUgZW50cmllcyB3aG9zZSBiaXRzIGFyZSBvbiBpbiBgZmxhZ3MnCi0gKiByZXR1cm4gIyBvZiBmbGFncyBwcmludGVkLgotICovCi1pbnQKLWFkZGZsYWdzKHhsYXQsIGZsYWdzKQotY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7Ci1pbnQgZmxhZ3M7Ci17Ci0JaW50IG47Ci0KLQlmb3IgKG4gPSAwOyB4bGF0LT5zdHI7IHhsYXQrKykgewotCQlpZiAoeGxhdC0+dmFsICYmIChmbGFncyAmIHhsYXQtPnZhbCkgPT0geGxhdC0+dmFsKSB7Ci0JCQl0cHJpbnRmKCJ8JXMiLCB4bGF0LT5zdHIpOwotCQkJZmxhZ3MgJj0gfnhsYXQtPnZhbDsKLQkJCW4rKzsKLQkJfQotCX0KLQlpZiAoZmxhZ3MpIHsKLQkJdHByaW50ZigifCUjeCIsIGZsYWdzKTsKLQkJbisrOwotCX0KLQlyZXR1cm4gbjsKLX0KLQotaW50Ci1wcmludGZsYWdzKHhsYXQsIGZsYWdzLCBkZmx0KQotY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7Ci1pbnQgZmxhZ3M7Ci1jb25zdCBjaGFyICpkZmx0OwotewotCWludCBuOwotCWNoYXIgKnNlcDsKLQotCWlmIChmbGFncyA9PSAwICYmIHhsYXQtPnZhbCA9PSAwKSB7Ci0JCXRwcmludGYoIiVzIiwgeGxhdC0+c3RyKTsKLQkJcmV0dXJuIDE7Ci0JfQotCi0Jc2VwID0gIiI7Ci0JZm9yIChuID0gMDsgeGxhdC0+c3RyOyB4bGF0KyspIHsKLQkJaWYgKHhsYXQtPnZhbCAmJiAoZmxhZ3MgJiB4bGF0LT52YWwpID09IHhsYXQtPnZhbCkgewotCQkJdHByaW50ZigiJXMlcyIsIHNlcCwgeGxhdC0+c3RyKTsKLQkJCWZsYWdzICY9IH54bGF0LT52YWw7Ci0JCQlzZXAgPSAifCI7Ci0JCQluKys7Ci0JCX0KLQl9Ci0KLQlpZiAobikgewotCQlpZiAoZmxhZ3MpIHsKLQkJCXRwcmludGYoIiVzJSN4Iiwgc2VwLCBmbGFncyk7Ci0JCQluKys7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoZmxhZ3MpIHsKLQkJCXRwcmludGYoIiUjeCIsIGZsYWdzKTsKLQkJCWlmIChkZmx0KQotCQkJCXRwcmludGYoIiAvKiAlcyAqLyIsIGRmbHQpOwotCQl9IGVsc2UgewotCQkJaWYgKGRmbHQpCi0JCQkJdHByaW50ZigiMCIpOwotCQl9Ci0JfQotCi0JcmV0dXJuIG47Ci19Ci0KLXZvaWQKLXByaW50bnVtKHRjcCwgYWRkciwgZm10KQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotY2hhciAqZm10OwotewotCWxvbmcgbnVtOwotCi0JaWYgKCFhZGRyKSB7Ci0JCXRwcmludGYoIk5VTEwiKTsKLQkJcmV0dXJuOwotCX0KLQlpZiAodW1vdmUodGNwLCBhZGRyLCAmbnVtKSA8IDApIHsKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIlsiKTsKLQl0cHJpbnRmKGZtdCwgbnVtKTsKLQl0cHJpbnRmKCJdIik7Ci19Ci0KLXZvaWQKLXByaW50dWlkKHRleHQsIHVpZCkKLWNvbnN0IGNoYXIgKnRleHQ7Ci11bnNpZ25lZCBsb25nIHVpZDsKLXsKLQl0cHJpbnRmKCIlcyIsIHRleHQpOwotCXRwcmludGYoKHVpZCA9PSAtMSkgPyAiJWxkIiA6ICIlbHUiLCB1aWQpOwotfQotCi1zdGF0aWMgY2hhciBwYXRoW01BWFBBVEhMRU4gKyAxXTsKLQotc3RhdGljIHZvaWQKLXN0cmluZ19xdW90ZShzdHIpCi1jb25zdCBjaGFyICpzdHI7Ci17Ci0JY2hhciBidWZbMiAqIE1BWFBBVEhMRU4gKyAxXTsKLQljaGFyICpzOwotCi0JaWYgKCFzdHJwYnJrKHN0ciwgIlwiXCdcXCIpKSB7Ci0JCXRwcmludGYoIlwiJXNcIiIsIHN0cik7Ci0JCXJldHVybjsKLQl9Ci0JZm9yIChzID0gYnVmOyAqc3RyOyBzdHIrKykgewotCQlzd2l0Y2ggKCpzdHIpIHsKLQkJY2FzZSAnXCInOiBjYXNlICdcJyc6IGNhc2UgJ1xcJzoKLQkJCSpzKysgPSAnXFwnOyAqcysrID0gKnN0cjsgYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQkqcysrID0gKnN0cjsgYnJlYWs7Ci0JCX0KLQl9Ci0JKnMgPSAnXDAnOwotCXRwcmludGYoIlwiJXNcIiIsIGJ1Zik7Ci19Ci0KLXZvaWQKLXByaW50cGF0aCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0JaWYgKGFkZHIgPT0gMCkKLQkJdHByaW50ZigiTlVMTCIpOwotCWVsc2UgaWYgKHVtb3Zlc3RyKHRjcCwgYWRkciwgTUFYUEFUSExFTiwgcGF0aCkgPCAwKQotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JZWxzZQotCQlzdHJpbmdfcXVvdGUocGF0aCk7Ci0JcmV0dXJuOwotfQotCi12b2lkCi1wcmludHBhdGhuKHRjcCwgYWRkciwgbikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBuOwotewotCWlmIChhZGRyID09IDApCi0JCXRwcmludGYoIk5VTEwiKTsKLQllbHNlIAlpZiAodW1vdmVzdHIodGNwLCBhZGRyLCBuLCBwYXRoKSA8IDApCi0JCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQllbHNlIHsKLQkJcGF0aFtuXSA9ICdcMCc7Ci0JCXN0cmluZ19xdW90ZShwYXRoKTsKLQl9Ci19Ci0KLXZvaWQKLXByaW50c3RyKHRjcCwgYWRkciwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLXsKLQlzdGF0aWMgdW5zaWduZWQgY2hhciAqc3RyID0gTlVMTDsKLQlzdGF0aWMgY2hhciAqb3V0c3RyOwotCWludCBpLCBuLCBjLCB1c2VoZXg7Ci0JY2hhciAqcywgKm91dGVuZDsKLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKCFzdHIpIHsKLQkJaWYgKChzdHIgPSBtYWxsb2MobWF4X3N0cmxlbikpID09IE5VTEwKLQkJICAgIHx8IChvdXRzdHIgPSBtYWxsb2MoMiptYXhfc3RybGVuKSkgPT0gTlVMTCkgewotCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQlvdXRlbmQgPSBvdXRzdHIgKyBtYXhfc3RybGVuICogMiAtIDEwOwotCWlmIChsZW4gPCAwKSB7Ci0JCW4gPSBtYXhfc3RybGVuOwotCQlpZiAodW1vdmVzdHIodGNwLCBhZGRyLCBuLCAoY2hhciAqKSBzdHIpIDwgMCkgewotCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCWVsc2UgewotCQluID0gTUlOKGxlbiwgbWF4X3N0cmxlbik7Ci0JCWlmICh1bW92ZW4odGNwLCBhZGRyLCBuLCAoY2hhciAqKSBzdHIpIDwgMCkgewotCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCi0JdXNlaGV4ID0gMDsKLQlpZiAoeGZsYWcgPiAxKQotCQl1c2VoZXggPSAxOwotCWVsc2UgaWYgKHhmbGFnKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLQkJCWMgPSBzdHJbaV07Ci0JCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCi0JCQkJYnJlYWs7Ci0JCQlpZiAoIWlzcHJpbnQoYykgJiYgIWlzc3BhY2UoYykpIHsKLQkJCQl1c2VoZXggPSAxOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JfQotCi0JcyA9IG91dHN0cjsKLQkqcysrID0gJ1wiJzsKLQotCWlmICh1c2VoZXgpIHsKLQkJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewotCQkJYyA9IHN0cltpXTsKLQkJCWlmIChsZW4gPCAwICYmIGMgPT0gJ1wwJykKLQkJCQlicmVhazsKLQkJCXNwcmludGYocywgIlxceCUwMngiLCBjKTsKLQkJCXMgKz0gNDsKLQkJCWlmIChzID4gb3V0ZW5kKQotCQkJCWJyZWFrOwotCQl9Ci0JfQotCWVsc2UgewotCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0JCQljID0gc3RyW2ldOwotCQkJaWYgKGxlbiA8IDAgJiYgYyA9PSAnXDAnKQotCQkJCWJyZWFrOwotCQkJc3dpdGNoIChjKSB7Ci0JCQljYXNlICdcIic6IGNhc2UgJ1wnJzogY2FzZSAnXFwnOgotCQkJCSpzKysgPSAnXFwnOyAqcysrID0gYzsgYnJlYWs7Ci0JCQljYXNlICdcZic6Ci0JCQkJKnMrKyA9ICdcXCc7ICpzKysgPSAnZic7IGJyZWFrOwotCQkJY2FzZSAnXG4nOgotCQkJCSpzKysgPSAnXFwnOyAqcysrID0gJ24nOyBicmVhazsKLQkJCWNhc2UgJ1xyJzoKLQkJCQkqcysrID0gJ1xcJzsgKnMrKyA9ICdyJzsgYnJlYWs7Ci0JCQljYXNlICdcdCc6Ci0JCQkJKnMrKyA9ICdcXCc7ICpzKysgPSAndCc7IGJyZWFrOwotCQkJY2FzZSAnXHYnOgotCQkJCSpzKysgPSAnXFwnOyAqcysrID0gJ3YnOyBicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJaWYgKGlzcHJpbnQoYykpCi0JCQkJCSpzKysgPSBjOwotCQkJCWVsc2UgaWYgKGkgPCBuIC0gMSAmJiBpc2RpZ2l0KHN0cltpICsgMV0pKSB7Ci0JCQkJCXNwcmludGYocywgIlxcJTAzbyIsIGMpOwotCQkJCQlzICs9IDQ7Ci0JCQkJfQotCQkJCWVsc2UgewotCQkJCQlzcHJpbnRmKHMsICJcXCVvIiwgYyk7Ci0JCQkJCXMgKz0gc3RybGVuKHMpOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChzID4gb3V0ZW5kKQotCQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JKnMrKyA9ICdcIic7Ci0JaWYgKGkgPCBsZW4gfHwgKGxlbiA8IDAgJiYgKGkgPT0gbiB8fCBzID4gb3V0ZW5kKSkpIHsKLQkJKnMrKyA9ICcuJzsgKnMrKyA9ICcuJzsgKnMrKyA9ICcuJzsKLQl9Ci0JKnMgPSAnXDAnOwotCXRwcmludGYoIiVzIiwgb3V0c3RyKTsKLX0KLQotI2lmIEhBVkVfU1lTX1VJT19ICi12b2lkCi1kdW1waW92KHRjcCwgbGVuLCBhZGRyKQotc3RydWN0IHRjYiAqIHRjcDsKLWludCBsZW47Ci1sb25nIGFkZHI7Ci17Ci0Jc3RydWN0IGlvdmVjICppb3Y7Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCi0Jc2l6ZSA9IHNpemVvZigqaW92KSAqICh1bnNpZ25lZCBsb25nKSBsZW47Ci0JaWYgKHNpemUgLyBzaXplb2YoKmlvdikgIT0gbGVuCi0JICAgIHx8IChpb3YgPSAoc3RydWN0IGlvdmVjICopIG1hbGxvYyhzaXplKSkgPT0gTlVMTCkgewotCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOwotCQlyZXR1cm47Ci0JfQotCWlmICh1bW92ZW4odGNwLCBhZGRyLCBzaXplLCAoY2hhciAqKSBpb3YpID49IDApIHsKLQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmNsdWRlIHRoZSBidWZmZXIgbnVtYmVyIHRvIG1ha2UgaXQgZWFzeSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICogbWF0Y2ggdXAgdGhlIHRyYWNlIHdpdGggdGhlIHNvdXJjZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgdHByaW50ZigiICogJWx1IGJ5dGVzIGluIGJ1ZmZlciAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpaW92W2ldLmlvdl9sZW4sIGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZHVtcHN0cih0Y3AsIChsb25nKSBpb3ZbaV0uaW92X2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvdltpXS5pb3ZfbGVuKTsKLSAgICAgICAgICAgICAgICB9Ci0JfQotCWZyZWUoKGNoYXIgKikgaW92KTsKLQotfQotI2VuZGlmCi0KLXZvaWQKLWR1bXBzdHIodGNwLCBhZGRyLCBsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1pbnQgbGVuOwotewotCXN0YXRpYyBpbnQgc3Ryc2l6ZSA9IC0xOwotCXN0YXRpYyB1bnNpZ25lZCBjaGFyICpzdHI7Ci0Jc3RhdGljIGNoYXIgb3V0c3RyWzgwXTsKLQljaGFyICpzOwotCWludCBpLCBqOwotCi0JaWYgKHN0cnNpemUgPCBsZW4pIHsKLQkJaWYgKHN0cikKLQkJCWZyZWUoc3RyKTsKLQkJaWYgKChzdHIgPSBtYWxsb2MobGVuKSkgPT0gTlVMTCkgewotCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCXJldHVybjsKLQkJfQotCQlzdHJzaXplID0gbGVuOwotCX0KLQotCWlmICh1bW92ZW4odGNwLCBhZGRyLCBsZW4sIChjaGFyICopIHN0cikgPCAwKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDE2KSB7Ci0JCXMgPSBvdXRzdHI7Ci0JCXNwcmludGYocywgIiB8ICUwNXggIiwgaSk7Ci0JCXMgKz0gOTsKLQkJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspIHsKLQkJCWlmIChqID09IDgpCi0JCQkJKnMrKyA9ICcgJzsKLQkJCWlmIChpICsgaiA8IGxlbikgewotCQkJCXNwcmludGYocywgIiAlMDJ4Iiwgc3RyW2kgKyBqXSk7Ci0JCQkJcyArPSAzOwotCQkJfQotCQkJZWxzZSB7Ci0JCQkJKnMrKyA9ICcgJzsgKnMrKyA9ICcgJzsgKnMrKyA9ICcgJzsKLQkJCX0KLQkJfQotCQkqcysrID0gJyAnOyAqcysrID0gJyAnOwotCQlmb3IgKGogPSAwOyBqIDwgMTY7IGorKykgewotCQkJaWYgKGogPT0gOCkKLQkJCQkqcysrID0gJyAnOwotCQkJaWYgKGkgKyBqIDwgbGVuKSB7Ci0JCQkJaWYgKGlzcHJpbnQoc3RyW2kgKyBqXSkpCi0JCQkJCSpzKysgPSBzdHJbaSArIGpdOwotCQkJCWVsc2UKLQkJCQkJKnMrKyA9ICcuJzsKLQkJCX0KLQkJCWVsc2UKLQkJCQkqcysrID0gJyAnOwotCQl9Ci0JCXRwcmludGYoIiVzIHxcbiIsIG91dHN0cik7Ci0JfQotfQotCi0jZGVmaW5lIFBBR01BU0sJKH4oUEFHU0laIC0gMSkpCi0vKgotICogbW92ZSBgbGVuJyBieXRlcyBvZiBkYXRhIGZyb20gcHJvY2VzcyBgcGlkJwotICogYXQgYWRkcmVzcyBgYWRkcicgdG8gb3VyIHNwYWNlIGF0IGBsYWRkcicKLSAqLwotaW50Ci11bW92ZW4odGNwLCBhZGRyLCBsZW4sIGxhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLWNoYXIgKmxhZGRyOwotewotCi0jaWZkZWYgTElOVVgKLQlpbnQgcGlkID0gdGNwLT5waWQ7Ci0JaW50IG4sIG07Ci0JaW50IHN0YXJ0ZWQgPSAwOwotCXVuaW9uIHsKLQkJbG9uZyB2YWw7Ci0JCWNoYXIgeFtzaXplb2YobG9uZyldOwotCX0gdTsKLQotCWlmIChhZGRyICYgKHNpemVvZihsb25nKSAtIDEpKSB7Ci0JCS8qIGFkZHIgbm90IGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKGxvbmcpICovCi0JCW4gPSBhZGRyIC0gKGFkZHIgJiAtc2l6ZW9mKGxvbmcpKTsgLyogcmVzaWR1ZSAqLwotCQlhZGRyICY9IC1zaXplb2YobG9uZyk7IC8qIHJlc2lkdWUgKi8KLQkJZXJybm8gPSAwOwotCQl1LnZhbCA9IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJaWYgKHN0YXJ0ZWQgJiYgKGVycm5vPT1FUEVSTSB8fCBlcnJubz09RUlPKSkgewotCQkJCS8qIFJhbiBpbnRvICdlbmQgb2YgbWVtb3J5JyAtIHN0dXBpZCAicHJpbnRwYXRoIiAqLwotCQkJCXJldHVybiAwOwotCQkJfQotCQkJLyogQnV0IGlmIG5vdCBzdGFydGVkLCB3ZSBoYWQgYSBib2d1cyBhZGRyZXNzLiAqLwotCQkJcGVycm9yKCJwdHJhY2U6IHVtb3ZlbiIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXN0YXJ0ZWQgPSAxOwotCQltZW1jcHkobGFkZHIsICZ1Lnhbbl0sIG0gPSBNSU4oc2l6ZW9mKGxvbmcpIC0gbiwgbGVuKSk7Ci0JCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKLQl9Ci0Jd2hpbGUgKGxlbikgewotCQllcnJubyA9IDA7Ci0JCXUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAoY2hhciAqKSBhZGRyLCAwKTsKLQkJaWYgKGVycm5vKSB7Ci0JCQlpZiAoc3RhcnRlZCAmJiAoZXJybm89PUVQRVJNIHx8IGVycm5vPT1FSU8pKSB7Ci0JCQkJLyogUmFuIGludG8gJ2VuZCBvZiBtZW1vcnknIC0gc3R1cGlkICJwcmludHBhdGgiICovCi0JCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCQlpZiAoYWRkciAhPSAwKQotCQkJCXBlcnJvcigicHRyYWNlOiB1bW92ZW4iKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlzdGFydGVkID0gMTsKLQkJbWVtY3B5KGxhZGRyLCB1LngsIG0gPSBNSU4oc2l6ZW9mKGxvbmcpLCBsZW4pKTsKLQkJYWRkciArPSBzaXplb2YobG9uZyksIGxhZGRyICs9IG0sIGxlbiAtPSBtOwotCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0JaW50IHBpZCA9IHRjcC0+cGlkOwotI2lmIDAKLQlpbnQgbiwgbTsKLQl1bmlvbiB7Ci0JCWxvbmcgdmFsOwotCQljaGFyIHhbc2l6ZW9mKGxvbmcpXTsKLQl9IHU7Ci0KLQlpZiAoYWRkciAmIChzaXplb2YobG9uZykgLSAxKSkgewotCQkvKiBhZGRyIG5vdCBhIG11bHRpcGxlIG9mIHNpemVvZihsb25nKSAqLwotCQluID0gYWRkciAtIChhZGRyICYgLXNpemVvZihsb25nKSk7IC8qIHJlc2lkdWUgKi8KLQkJYWRkciAmPSAtc2l6ZW9mKGxvbmcpOyAvKiByZXNpZHVlICovCi0JCWVycm5vID0gMDsKLQkJdS52YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQsIChjaGFyICopIGFkZHIsIDApOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigidW1vdmVuIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJbWVtY3B5KGxhZGRyLCAmdS54W25dLCBtID0gTUlOKHNpemVvZihsb25nKSAtIG4sIGxlbikpOwotCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07Ci0JfQotCXdoaWxlIChsZW4pIHsKLQkJZXJybm8gPSAwOwotCQl1LnZhbCA9IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJ1bW92ZW4iKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQltZW1jcHkobGFkZHIsIHUueCwgbSA9IE1JTihzaXplb2YobG9uZyksIGxlbikpOwotCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07Ci0JfQotI2Vsc2UgLyogIW9sZHdheSAqLwotCWludCBuOwotCi0Jd2hpbGUgKGxlbikgewotCQluID0gTUlOKGxlbiwgUEFHU0laKTsKLQkJbiA9IE1JTihuLCAoKGFkZHIgKyBQQUdTSVopICYgUEFHTUFTSykgLSBhZGRyKTsKLQkJaWYgKHB0cmFjZShQVFJBQ0VfUkVBRERBVEEsIHBpZCwKLQkJCSAgIChjaGFyICopIGFkZHIsIGxlbiwgbGFkZHIpIDwgMCkgewotCQkJcGVycm9yKCJ1bW92ZW46IHB0cmFjZShQVFJBQ0VfUkVBRERBVEEsIC4uLikiKTsKLQkJCWFib3J0KCk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJbGVuIC09IG47Ci0JCWFkZHIgKz0gbjsKLQkJbGFkZHIgKz0gbjsKLQl9Ci0jZW5kaWYgLyogIW9sZHdheSAqLwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCi0jaWZkZWYgVVNFX1BST0NGUwotI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCi0JaW50IGZkID0gdGNwLT5wZmRfYXM7Ci0jZWxzZQotCWludCBmZCA9IHRjcC0+cGZkOwotI2VuZGlmCi0JbHNlZWsoZmQsIGFkZHIsIFNFRUtfU0VUKTsKLQlpZiAocmVhZChmZCwgbGFkZHIsIGxlbikgPT0gLTEpCi0JCXJldHVybiAtMTsKLSNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCi0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIGxpa2UgYHVtb3ZlJyBidXQgbWFrZSB0aGUgYWRkaXRpb25hbCBlZmZvcnQgb2YgbG9va2luZwotICogZm9yIGEgdGVybWluYXRpbmcgemVybyBieXRlLgotICovCi1pbnQKLXVtb3Zlc3RyKHRjcCwgYWRkciwgbGVuLCBsYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBsZW47Ci1jaGFyICpsYWRkcjsKLXsKLSNpZmRlZiBVU0VfUFJPQ0ZTCi0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLQlpbnQgZmQgPSB0Y3AtPnBmZF9hczsKLSNlbHNlCi0JaW50IGZkID0gdGNwLT5wZmQ7Ci0jZW5kaWYKLQkvKiBTb21lIHN5c3RlbXMgKGUuZy4gRnJlZUJTRCkgY2FuIGJlIHVwc2V0IGlmIHdlIHJlYWQgb2ZmIHRoZQotCSAgIGVuZCBvZiB2YWxpZCBtZW1vcnksICBhdm9pZCB0aGlzIGJ5IHRyeWluZyB0byByZWFkIHVwCi0JICAgdG8gcGFnZSBib3VuZGFyaWVzLiAgQnV0IHdlIGRvbid0IGtub3cgd2hhdCBhIHBhZ2UgaXMgKGFuZAotCSAgIGdldHBhZ2VzaXplKDIpIChpZiBpdCBleGlzdHMpIGRvZXNuJ3QgbmVjZXNzYXJpbHkgcmV0dXJuCi0JICAgaGFyZHdhcmUgcGFnZSBzaXplKS4gIEFzc3VtZSBhbGwgcGFnZXMgPj0gMTAyNCAoYS1oaXN0b3JpY2FsCi0JICAgSSBrbm93KSAqLwotCi0JaW50IHBhZ2UgPSAxMDI0OyAJLyogSG93IHRvIGZpbmQgdGhpcz8gKi8KLQlpbnQgbW92ZSA9IHBhZ2UgLSAoYWRkciAmIChwYWdlIC0gMSkpOwotCWludCBsZWZ0ID0gbGVuOwotCi0JbHNlZWsoZmQsIGFkZHIsIFNFRUtfU0VUKTsKLQotCXdoaWxlIChsZWZ0KSB7Ci0JCWlmIChtb3ZlID4gbGVmdCkgbW92ZSA9IGxlZnQ7Ci0JCWlmICgobW92ZSA9IHJlYWQoZmQsIGxhZGRyLCBtb3ZlKSkgPD0gMCkKLQkJCXJldHVybiBsZWZ0ICE9IGxlbiA/IDAgOiAtMTsKLQkJaWYgKG1lbWNociAobGFkZHIsIDAsIG1vdmUpKSBicmVhazsKLQkJbGVmdCAtPSBtb3ZlOwotCQlsYWRkciArPSBtb3ZlOwotCQlhZGRyICs9IG1vdmU7Ci0JCW1vdmUgPSBwYWdlOwotCX0KLSNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCi0JaW50IHN0YXJ0ZWQgPSAwOwotCWludCBwaWQgPSB0Y3AtPnBpZDsKLQlpbnQgaSwgbiwgbTsKLQl1bmlvbiB7Ci0JCWxvbmcgdmFsOwotCQljaGFyIHhbc2l6ZW9mKGxvbmcpXTsKLQl9IHU7Ci0KLQlpZiAoYWRkciAmIChzaXplb2YobG9uZykgLSAxKSkgewotCQkvKiBhZGRyIG5vdCBhIG11bHRpcGxlIG9mIHNpemVvZihsb25nKSAqLwotCQluID0gYWRkciAtIChhZGRyICYgLXNpemVvZihsb25nKSk7IC8qIHJlc2lkdWUgKi8KLQkJYWRkciAmPSAtc2l6ZW9mKGxvbmcpOyAvKiByZXNpZHVlICovCi0JCWVycm5vID0gMDsKLQkJdS52YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQsIChjaGFyICopYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJaWYgKHN0YXJ0ZWQgJiYgKGVycm5vPT1FUEVSTSB8fCBlcnJubz09RUlPKSkgewotCQkJCS8qIFJhbiBpbnRvICdlbmQgb2YgbWVtb3J5JyAtIHN0dXBpZCAicHJpbnRwYXRoIiAqLwotCQkJCXJldHVybiAwOwotCQkJfQotCQkJcGVycm9yKCJ1bW92ZXN0ciIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXN0YXJ0ZWQgPSAxOwotCQltZW1jcHkobGFkZHIsICZ1Lnhbbl0sIG0gPSBNSU4oc2l6ZW9mKGxvbmcpLW4sbGVuKSk7Ci0JCXdoaWxlIChuICYgKHNpemVvZihsb25nKSAtIDEpKQotCQkJaWYgKHUueFtuKytdID09ICdcMCcpCi0JCQkJcmV0dXJuIDA7Ci0JCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKLQl9Ci0Jd2hpbGUgKGxlbikgewotCQllcnJubyA9IDA7Ci0JCXUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAoY2hhciAqKWFkZHIsIDApOwotCQlpZiAoZXJybm8pIHsKLQkJCWlmIChzdGFydGVkICYmIChlcnJubz09RVBFUk0gfHwgZXJybm89PUVJTykpIHsKLQkJCQkvKiBSYW4gaW50byAnZW5kIG9mIG1lbW9yeScgLSBzdHVwaWQgInByaW50cGF0aCIgKi8KLQkJCQlyZXR1cm4gMDsKLQkJCX0KLQkJCXBlcnJvcigidW1vdmVzdHIiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlzdGFydGVkID0gMTsKLQkJbWVtY3B5KGxhZGRyLCB1LngsIG0gPSBNSU4oc2l6ZW9mKGxvbmcpLCBsZW4pKTsKLQkJZm9yIChpID0gMDsgaSA8IHNpemVvZihsb25nKTsgaSsrKQotCQkJaWYgKHUueFtpXSA9PSAnXDAnKQotCQkJCXJldHVybiAwOwotCi0JCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKLQl9Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIExJTlVYCi0jaWYgIWRlZmluZWQgKFNQQVJDKSAmJiAhZGVmaW5lZChTUEFSQzY0KQotI2RlZmluZSBQVFJBQ0VfV1JJVEVURVhUCTEwMQotI2RlZmluZSBQVFJBQ0VfV1JJVEVEQVRBCTEwMgotI2VuZGlmIC8qICFTUEFSQyAmJiAhU1BBUkM2NCAqLwotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpZmRlZiBTVU5PUzQKLQotc3RhdGljIGludAotdWxvYWQoY21kLCBwaWQsIGFkZHIsIGxlbiwgbGFkZHIpCi1pbnQgY21kOwotaW50IHBpZDsKLWxvbmcgYWRkcjsKLWludCBsZW47Ci1jaGFyICpsYWRkcjsKLXsKLSNpZiAwCi0JaW50IG47Ci0KLQl3aGlsZSAobGVuKSB7Ci0JCW4gPSBNSU4obGVuLCBQQUdTSVopOwotCQluID0gTUlOKG4sICgoYWRkciArIFBBR1NJWikgJiBQQUdNQVNLKSAtIGFkZHIpOwotCQlpZiAocHRyYWNlKGNtZCwgcGlkLCAoY2hhciAqKWFkZHIsIG4sIGxhZGRyKSA8IDApIHsKLQkJCXBlcnJvcigidWxvYWQ6IHB0cmFjZShQVFJBQ0VfV1JJVEUsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlsZW4gLT0gbjsKLQkJYWRkciArPSBuOwotCQlsYWRkciArPSBuOwotCX0KLSNlbHNlCi0JaW50IHBlZWssIHBva2U7Ci0JaW50IG4sIG07Ci0JdW5pb24gewotCQlsb25nIHZhbDsKLQkJY2hhciB4W3NpemVvZihsb25nKV07Ci0JfSB1OwotCi0JaWYgKGNtZCA9PSBQVFJBQ0VfV1JJVEVURVhUKSB7Ci0JCXBlZWsgPSBQVFJBQ0VfUEVFS1RFWFQ7Ci0JCXBva2UgPSBQVFJBQ0VfUE9LRVRFWFQ7Ci0JfQotCWVsc2UgewotCQlwZWVrID0gUFRSQUNFX1BFRUtEQVRBOwotCQlwb2tlID0gUFRSQUNFX1BPS0VEQVRBOwotCX0KLQlpZiAoYWRkciAmIChzaXplb2YobG9uZykgLSAxKSkgewotCQkvKiBhZGRyIG5vdCBhIG11bHRpcGxlIG9mIHNpemVvZihsb25nKSAqLwotCQluID0gYWRkciAtIChhZGRyICYgLXNpemVvZihsb25nKSk7IC8qIHJlc2lkdWUgKi8KLQkJYWRkciAmPSAtc2l6ZW9mKGxvbmcpOwotCQllcnJubyA9IDA7Ci0JCXUudmFsID0gcHRyYWNlKHBlZWssIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJ1bG9hZDogUE9LRSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCW1lbWNweSgmdS54W25dLCBsYWRkciwgbSA9IE1JTihzaXplb2YobG9uZykgLSBuLCBsZW4pKTsKLQkJaWYgKHB0cmFjZShwb2tlLCBwaWQsIChjaGFyICopYWRkciwgdS52YWwpIDwgMCkgewotCQkJcGVycm9yKCJ1bG9hZDogUE9LRSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKLQl9Ci0Jd2hpbGUgKGxlbikgewotCQlpZiAobGVuIDwgc2l6ZW9mKGxvbmcpKQotCQkJdS52YWwgPSBwdHJhY2UocGVlaywgcGlkLCAoY2hhciAqKSBhZGRyLCAwKTsKLQkJbWVtY3B5KHUueCwgbGFkZHIsIG0gPSBNSU4oc2l6ZW9mKGxvbmcpLCBsZW4pKTsKLQkJaWYgKHB0cmFjZShwb2tlLCBwaWQsIChjaGFyICopIGFkZHIsIHUudmFsKSA8IDApIHsKLQkJCXBlcnJvcigidWxvYWQ6IFBPS0UiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07Ci0JfQotI2VuZGlmCi0JcmV0dXJuIDA7Ci19Ci0KLWludAotdGxvYWQocGlkLCBhZGRyLCBsZW4sIGxhZGRyKQotaW50IHBpZDsKLWludCBhZGRyLCBsZW47Ci1jaGFyICpsYWRkcjsKLXsKLQlyZXR1cm4gdWxvYWQoUFRSQUNFX1dSSVRFVEVYVCwgcGlkLCBhZGRyLCBsZW4sIGxhZGRyKTsKLX0KLQotaW50Ci1kbG9hZChwaWQsIGFkZHIsIGxlbiwgbGFkZHIpCi1pbnQgcGlkOwotaW50IGFkZHI7Ci1pbnQgbGVuOwotY2hhciAqbGFkZHI7Ci17Ci0JcmV0dXJuIHVsb2FkKFBUUkFDRV9XUklURURBVEEsIHBpZCwgYWRkciwgbGVuLCBsYWRkcik7Ci19Ci0KLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0KLWludAotdXBlZWsocGlkLCBvZmYsIHJlcykKLWludCBwaWQ7Ci1sb25nIG9mZjsKLWxvbmcgKnJlczsKLXsKLQlsb25nIHZhbDsKLQotI2lmZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UKLQl7Ci0JCXN0YXRpYyBpbnQgaXNfc3VuNG0gPSAtMTsKLQkJc3RydWN0IHV0c25hbWUgbmFtZTsKLQotCQkvKiBSb3VuZCB1cCB0aGUgdXN1YWwgc3VzcGVjdHMuICovCi0JCWlmIChpc19zdW40bSA9PSAtMSkgewotCQkJaWYgKHVuYW1lKCZuYW1lKSA8IDApIHsKLQkJCQlwZXJyb3IoInVwZWVrOiB1bmFtZT8iKTsKLQkJCQlleGl0KDEpOwotCQkJfQotCQkJaXNfc3VuNG0gPSBzdHJjbXAobmFtZS5tYWNoaW5lLCAic3VuNG0iKSA9PSAwOwotCQkJaWYgKGlzX3N1bjRtKSB7Ci0JCQkJZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IHN0cnVjdF91c2VyX29mZnNldHNbXTsKLQkJCQljb25zdCBzdHJ1Y3QgeGxhdCAqeDsKLQotCQkJCWZvciAoeCA9IHN0cnVjdF91c2VyX29mZnNldHM7IHgtPnN0cjsgeCsrKQotCQkJCQl4LT52YWwgKz0gMTAyNDsKLQkJCX0KLQkJfQotCQlpZiAoaXNfc3VuNG0pCi0JCQlvZmYgKz0gMTAyNDsKLQl9Ci0jZW5kaWYgLyogU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLwotCWVycm5vID0gMDsKLQl2YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtVU0VSLCBwaWQsIChjaGFyICopIG9mZiwgMCk7Ci0JaWYgKHZhbCA9PSAtMSAmJiBlcnJubykgewotCQljaGFyIGJ1Zls2MF07Ci0JCXNwcmludGYoYnVmLCJ1cGVlazogcHRyYWNlKFBUUkFDRV9QRUVLVVNFUiwlZCwlbHUsMCkiLHBpZCxvZmYpOwotCQlwZXJyb3IoYnVmKTsKLQkJcmV0dXJuIC0xOwotCX0KLQkqcmVzID0gdmFsOwotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQotI2lmIDAKLWxvbmcKLWdldHBjKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQotI2lmZGVmIExJTlVYCi0JbG9uZyBwYzsKLSNpZiBkZWZpbmVkKEkzODYpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KkVJUCwgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoWDg2XzY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgOCpSSVAsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKElBNjQpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9CMCwgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoQVJNKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCoxNSwgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoUE9XRVJQQykKLQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9OSVAsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKE02OEspCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlBUX1BDLCAmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChBTFBIQSkKLQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19QQywgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoTUlQUykKLSAJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfRVBDLCAmcGMpIDwgMCkKLSAJCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkKLQlzdHJ1Y3QgcmVncyByZWdzOwotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsdGNwLT5waWQsKGNoYXIgKikmcmVncywwKSA8IDApCi0JCXJldHVybiAtMTsKLQlwYyA9IHJlZ3Mucl9wYzsKLSNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQlpZih1cGVlayh0Y3AtPnBpZCxQVF9QU1dBRERSLCZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKEhQUEEpCi0JaWYodXBlZWsodGNwLT5waWQsUFRfSUFPUTAsJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoU0gpCi0gICAgICAgaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlJFR19QQyAsJnBjKSA8IDApCi0gICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKFNINjQpCi0gICAgICAgaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMgLCZwYykgPCAwKQotICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotI2VuZGlmCi0JcmV0dXJuIHBjOwotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpZmRlZiBTVU5PUzQKLQkvKgotCSAqIFJldHVybiBjdXJyZW50IHByb2dyYW0gY291bnRlciBmb3IgYHBpZCcKLQkgKiBBc3N1bWVzIFBDIGlzIG5ldmVyIDB4ZmZmZmZmZmYKLQkgKi8KLQlzdHJ1Y3QgcmVncyByZWdzOwotCi0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopICZyZWdzLCAwKSA8IDApIHsKLQkJcGVycm9yKCJnZXRwYzogcHRyYWNlKFBUUkFDRV9HRVRSRUdTLCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JcmV0dXJuIHJlZ3Mucl9wYzsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmZGVmIFNWUjQKLQkvKiBYWFggKi8KLQlyZXR1cm4gMDsKLSNlbmRpZiAvKiBTVlI0ICovCi0KLSNpZmRlZiBGUkVFQlNECi0Jc3RydWN0IHJlZyByZWdzOwotCXByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCk7Ci0JcmV0dXJuIHJlZ3Mucl9laXA7Ci0jZW5kaWYgLyogRlJFRUJTRCAqLwotfQotI2VuZGlmCi0KLXZvaWQKLXByaW50Y2FsbCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0jZGVmaW5lIFBSSU5UQkFEUEMgdHByaW50ZihzaXplb2YobG9uZykgPT0gNCA/ICJbPz8/Pz8/Pz9dICIgOiBcCi0JCQkgICBzaXplb2YobG9uZykgPT0gOCA/ICJbPz8/Pz8/Pz8/Pz8/Pz8/P10gIiA6IFwKLQkJCSAgIE5VTEwgLyogY3Jhc2ggKi8pCi0KLSNpZmRlZiBMSU5VWAotI2lmZGVmIEkzODYKLQlsb25nIGVpcDsKLQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpFSVAsICZlaXApIDwgMCkgewotCQlQUklOVEJBRFBDOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIlslMDhseF0gIiwgZWlwKTsKLQotI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQotICAgICAgICAgbG9uZyBwc3c7Ci0gICAgICAgICBpZih1cGVlayh0Y3AtPnBpZCxQVF9QU1dBRERSLCZwc3cpIDwgMCkgewotICAgICAgICAgICAgICAgICBQUklOVEJBRFBDOwotICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0jaWZkZWYgUzM5MAotICAgICAgICAgdHByaW50ZigiWyUwOGx4XSAiLCBwc3cpOwotI2VsaWYgUzM5MFgKLSAgICAgICB0cHJpbnRmKCJbJTE2bHhdICIsIHBzdyk7Ci0jZW5kaWYKLQotI2VsaWYgZGVmaW5lZChYODZfNjQpCi0JbG9uZyByaXA7Ci0KLQlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmcmlwKSA8IDApIHsKLQkJUFJJTlRCQURQQzsKLQkJcmV0dXJuOwotCX0KLQl0cHJpbnRmKCJbJTE2bHhdICIsIHJpcCk7Ci0jZWxpZiBkZWZpbmVkKElBNjQpCi0JbG9uZyBpcDsKLQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQjAsICZpcCkgPCAwKSB7Ci0JCVBSSU5UQkFEUEM7Ci0JCXJldHVybjsKLQl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCBpcCk7Ci0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0JbG9uZyBwYzsKLQotCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX05JUCwgJnBjKSA8IDApIHsKLQkJdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7Ci0JCXJldHVybjsKLQl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKE02OEspCi0JbG9uZyBwYzsKLQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnBjKSA8IDApIHsKLQkJdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7Ci0JCXJldHVybjsKLQl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKEFMUEhBKQotCWxvbmcgcGM7Ci0KLQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19QQywgJnBjKSA8IDApIHsKLQkJdHByaW50ZiAoIls/Pz8/Pz8/Pz8/Pz8/Pz8/XSAiKTsKLQkJcmV0dXJuOwotCX0KLQl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKLSNlbGlmIGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkKLQlzdHJ1Y3QgcmVncyByZWdzOwotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsdGNwLT5waWQsKGNoYXIgKikmcmVncywwKSA8IDApIHsKLQkJUFJJTlRCQURQQzsKLQkJcmV0dXJuOwotCX0KLQl0cHJpbnRmKCJbJTA4bHhdICIsIHJlZ3Mucl9wYyk7Ci0jZWxpZiBkZWZpbmVkKEhQUEEpCi0JbG9uZyBwYzsKLQotCWlmKHVwZWVrKHRjcC0+cGlkLFBUX0lBT1EwLCZwYykgPCAwKSB7Ci0JCXRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIlslMDhseF0gIiwgcGMpOwotI2VsaWYgZGVmaW5lZChNSVBTKQotCWxvbmcgcGM7Ci0KLQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19FUEMsICZwYykgPCAwKSB7Ci0JCXRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIlslMDhseF0gIiwgcGMpOwotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICBsb25nIHBjOwotCi0gICAgICAgaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlJFR19QQywgJnBjKSA8IDApIHsKLSAgICAgICAgICAgICAgIHRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOwotICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgIH0KLSAgICAgICB0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKLSNlbGlmIGRlZmluZWQoU0g2NCkKLQlsb25nIHBjOwotCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMsICZwYykgPCAwKSB7Ci0JCXRwcmludGYgKCJbPz8/Pz8/Pz8/Pz8/Pz8/P10gIik7Ci0JCXJldHVybjsKLQl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKEFSTSkKLQlsb25nIHBjOwotCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KjE1LCAmcGMpIDwgMCkgewotCQlQUklOVEJBRFBDOwotCQlyZXR1cm47Ci0JfQotCXRwcmludGYoIlslMDhseF0gIiwgcGMpOwotI2VuZGlmIC8qICFhcmNoaXRlY3R1cmUgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0Jc3RydWN0IHJlZ3MgcmVnczsKLQotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSAmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigicHJpbnRjYWxsOiBwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIC4uLikiKTsKLQkJUFJJTlRCQURQQzsKLQkJcmV0dXJuOwotCX0KLQl0cHJpbnRmKCJbJTA4eF0gIiwgcmVncy5yX283KTsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotI2lmZGVmIFNWUjQKLQkvKiBYWFggKi8KLQlQUklOVEJBRFBDOwotI2VuZGlmCi0KLSNpZmRlZiBGUkVFQlNECi0Jc3RydWN0IHJlZyByZWdzOwotCXByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCk7Ci0JdHByaW50ZigiWyUwOHhdICIsIHJlZ3Mucl9laXApOwotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLX0KLQotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0KLSNpZiBkZWZpbmVkIExJTlVYCi0KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2lmbmRlZiBDTE9ORV9QVFJBQ0UKLSMgZGVmaW5lIENMT05FX1BUUkFDRSAgICAweDAwMDAyMDAwCi0jZW5kaWYKLSNpZm5kZWYgQ0xPTkVfU1RPUFBFRAotIyBkZWZpbmUgQ0xPTkVfU1RPUFBFRCAgIDB4MDIwMDAwMDAKLSNlbmRpZgotCi0jaWZkZWYgSUE2NAotCi0vKiBXZSBkb24ndCBoYXZlIGZvcmsoKS92Zm9yaygpIHN5c2NhbGxzIG9uIGlhNjQgaXRzZWxmLCBidXQgdGhlIGlhMzIKLSAgIHN1YnN5c3RlbSBoYXMgdGhlbSBmb3IgeDg2Li4uICovCi0jZGVmaW5lIFNZU19mb3JrCTIKLSNkZWZpbmUgU1lTX3Zmb3JrCTE5MAotCi10eXBlZGVmIHVuc2lnbmVkIGxvbmcgKmFyZ19zZXR1cF9zdGF0ZTsKLQotc3RhdGljIGludAotYXJnX3NldHVwKHN0cnVjdCB0Y2IgKnRjcCwgYXJnX3NldHVwX3N0YXRlICpzdGF0ZSkKLXsKLQl1bnNpZ25lZCBsb25nICpic3AsIGNmbSwgc29mLCBzb2w7Ci0KLQlpZiAoaWEzMikKLQkJcmV0dXJuIDA7Ci0KLQlpZiAodXBlZWsodGNwLT5waWQsIFBUX0FSX0JTUCwgKGxvbmcgKikgJmJzcCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9DRk0sIChsb25nICopICZjZm0pIDwgMCkKLQkJcmV0dXJuIC0xOwotCi0Jc29mID0gKGNmbSA+PiAwKSAmIDB4N2Y7Ci0Jc29sID0gKGNmbSA+PiA3KSAmIDB4N2Y7Ci0JYnNwID0gaWE2NF9yc2Vfc2tpcF9yZWdzKGJzcCwgLXNvZiArIHNvbCk7Ci0KLQkqc3RhdGUgPSBic3A7Ci0JcmV0dXJuIDA7Ci19Ci0KLSMgZGVmaW5lIGFyZ19maW5pc2hfY2hhbmdlKHRjcCwgc3RhdGUpCTAKLQotI2lmZGVmIFNZU19mb3JrCi1zdGF0aWMgaW50Ci1nZXRfYXJnMCAoc3RydWN0IHRjYiAqdGNwLCBhcmdfc2V0dXBfc3RhdGUgKnN0YXRlLCBsb25nICp2YWxwKQotewotCWludCByZXQ7Ci0KLQlpZiAoaWEzMikKLQkJcmV0ID0gdXBlZWsgKHRjcC0+cGlkLCBQVF9SMTEsIHZhbHApOwotCWVsc2UKLQkJcmV0ID0gdW1vdmVuICh0Y3AsCi0JCQkgICAgICAodW5zaWduZWQgbG9uZykgaWE2NF9yc2Vfc2tpcF9yZWdzKCpzdGF0ZSwgMCksCi0JCQkgICAgICBzaXplb2YobG9uZyksICh2b2lkICopIHZhbHApOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQKLWdldF9hcmcxIChzdHJ1Y3QgdGNiICp0Y3AsIGFyZ19zZXR1cF9zdGF0ZSAqc3RhdGUsIGxvbmcgKnZhbHApCi17Ci0JaW50IHJldDsKLQotCWlmIChpYTMyKQotCQlyZXQgPSB1cGVlayAodGNwLT5waWQsIFBUX1I5LCB2YWxwKTsKLQllbHNlCi0JCXJldCA9IHVtb3ZlbiAodGNwLAotCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDEpLAotCQkJICAgICAgc2l6ZW9mKGxvbmcpLCAodm9pZCAqKSB2YWxwKTsKLQlyZXR1cm4gcmV0OwotfQotI2VuZGlmCi0KLXN0YXRpYyBpbnQKLXNldF9hcmcwIChzdHJ1Y3QgdGNiICp0Y3AsIGFyZ19zZXR1cF9zdGF0ZSAqc3RhdGUsIGxvbmcgdmFsKQotewotCWludCByZXEgPSBQVFJBQ0VfUE9LRURBVEE7Ci0Jdm9pZCAqYXA7Ci0KLQlpZiAoaWEzMikgewotCQlhcCA9ICh2b2lkICopIChpbnRwdHJfdCkgUFRfUjExOwkgLyogcjExID09IEVCWCAqLwotCQlyZXEgPSBQVFJBQ0VfUE9LRVVTRVI7Ci0JfSBlbHNlCi0JCWFwID0gaWE2NF9yc2Vfc2tpcF9yZWdzKCpzdGF0ZSwgMCk7Ci0JZXJybm8gPSAwOwotCXB0cmFjZShyZXEsIHRjcC0+cGlkLCBhcCwgdmFsKTsKLQlyZXR1cm4gZXJybm8gPyAtMSA6IDA7Ci19Ci0KLXN0YXRpYyBpbnQKLXNldF9hcmcxIChzdHJ1Y3QgdGNiICp0Y3AsIGFyZ19zZXR1cF9zdGF0ZSAqc3RhdGUsIGxvbmcgdmFsKQotewotCWludCByZXEgPSBQVFJBQ0VfUE9LRURBVEE7Ci0Jdm9pZCAqYXA7Ci0KLQlpZiAoaWEzMikgewotCQlhcCA9ICh2b2lkICopIChpbnRwdHJfdCkgUFRfUjk7CQkvKiByOSA9PSBFQ1ggKi8KLQkJcmVxID0gUFRSQUNFX1BPS0VVU0VSOwotCX0gZWxzZQotCQlhcCA9IGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDEpOwotCWVycm5vID0gMDsKLQlwdHJhY2UocmVxLCB0Y3AtPnBpZCwgYXAsIHZhbCk7Ci0JcmV0dXJuIGVycm5vID8gLTEgOiAwOwotfQotCi0jZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQotdHlwZWRlZiBzdHJ1Y3QgcmVncyBhcmdfc2V0dXBfc3RhdGU7Ci0KLSMgZGVmaW5lIGFyZ19zZXR1cCh0Y3AsIHN0YXRlKSBcCi0gIChwdHJhY2UgKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikgKHN0YXRlKSwgMCkpCi0jIGRlZmluZSBhcmdfZmluaXNoX2NoYW5nZSh0Y3AsIHN0YXRlKSBcCi0gIChwdHJhY2UgKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikgKHN0YXRlKSwgMCkpCi0KLSMgZGVmaW5lIGdldF9hcmcwKHRjcCwgc3RhdGUsIHZhbHApICgqKHZhbHApID0gKHN0YXRlKS0+cl9vMCwgMCkKLSMgZGVmaW5lIGdldF9hcmcxKHRjcCwgc3RhdGUsIHZhbHApICgqKHZhbHApID0gKHN0YXRlKS0+cl9vMSwgMCkKLSMgZGVmaW5lIHNldF9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgKChzdGF0ZSktPnJfbzAgPSAodmFsKSwgMCkKLSMgZGVmaW5lIHNldF9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgKChzdGF0ZSktPnJfbzEgPSAodmFsKSwgMCkKLSMgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKLQotI2Vsc2UKLQotIyBpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWAotLyogTm90ZTogdGhpcyBpcyBvbmx5IHRydWUgZm9yIHRoZSBgY2xvbmUnIHN5c3RlbSBjYWxsLCB3aGljaCBoYW5kbGVzCi0gICBhcmd1bWVudHMgc3BlY2lhbGx5LiAgV2UgY291bGQgYXMgd2VsbCBzYXkgdGhhdCBpdHMgZmlyc3QgdHdvIGFyZ3VtZW50cwotICAgYXJlIHN3YXBwZWQgcmVsYXRpdmUgdG8gb3RoZXIgYXJjaGl0ZWN0dXJlcywgYnV0IHRoYXQgd291bGQganVzdCBiZQotICAgYW5vdGhlciAjaWZkZWYgaW4gdGhlIGNhbGxzLiAgKi8KLSMgIGRlZmluZSBhcmcwX29mZnNldAlQVF9HUFIzCi0jICBkZWZpbmUgYXJnMV9vZmZzZXQJUFRfT1JJR0dQUjIKLSMgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAoKHZvaWQpIChzdGF0ZSksIDApCi0jICBkZWZpbmUgcmVzdG9yZV9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgKCh2b2lkKSAoc3RhdGUpLCAwKQotIyAgZGVmaW5lIGFyZzBfaW5kZXgJMQotIyAgZGVmaW5lIGFyZzFfaW5kZXgJMAotIyBlbGlmIGRlZmluZWQgKEFMUEhBKSB8fCBkZWZpbmVkIChNSVBTKQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CVJFR19BMAotIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CShSRUdfQTArMSkKLSMgZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjMpCi0jICBkZWZpbmUgYXJnMV9vZmZzZXQJKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SNCkKLSMgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAoKHZvaWQpIChzdGF0ZSksIDApCi0jIGVsaWYgZGVmaW5lZCAoSFBQQSkKLSMgIGRlZmluZSBhcmcwX29mZnNldAkgUFRfR1IyNgotIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CSAoUFRfR1IyNi00KQotIyBlbGlmIGRlZmluZWQgKFg4Nl82NCkKLSMgIGRlZmluZSBhcmcwX29mZnNldAkoKGxvbmcpKDgqKGN1cnJlbnRfcGVyc29uYWxpdHkgPyBSQlggOiBSREkpKSkKLSMgIGRlZmluZSBhcmcxX29mZnNldAkoKGxvbmcpKDgqKGN1cnJlbnRfcGVyc29uYWxpdHkgPyBSQ1ggOiBSU0kpKSkKLSMgZWxpZiBkZWZpbmVkIChTSCkKLSMgIGRlZmluZSBhcmcwX29mZnNldAkoNCooUkVHX1JFRzArNCkpCi0jICBkZWZpbmUgYXJnMV9vZmZzZXQJKDQqKFJFR19SRUcwKzUpKQotIyBlbGlmIGRlZmluZWQgKFNINjQpCi0gICAvKiBBQkkgZGVmaW5lcyBhcmcwICYgMSBpbiByMiAmIHIzICovCi0jICBkZWZpbmUgYXJnMF9vZmZzZXQgICAoUkVHX09GRlNFVCsxNikKLSMgIGRlZmluZSBhcmcxX29mZnNldCAgIChSRUdfT0ZGU0VUKzI0KQotIyAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKLSMgZWxzZQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CTAKLSMgIGRlZmluZSBhcmcxX29mZnNldAk0Ci0jICBpZiBkZWZpbmVkIEFSTQotIyAgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAwCi0jICBlbmRpZgotIyBlbmRpZgotCi10eXBlZGVmIGludCBhcmdfc2V0dXBfc3RhdGU7Ci0KLSMgZGVmaW5lIGFyZ19zZXR1cCh0Y3AsIHN0YXRlKSAoMCkKLSMgZGVmaW5lIGFyZ19maW5pc2hfY2hhbmdlKHRjcCwgc3RhdGUpCTAKLSMgZGVmaW5lIGdldF9hcmcwKHRjcCwgY29va2llLCB2YWxwKSBcCi0gICh1cGVlayAoKHRjcCktPnBpZCwgYXJnMF9vZmZzZXQsICh2YWxwKSkpCi0jIGRlZmluZSBnZXRfYXJnMSh0Y3AsIGNvb2tpZSwgdmFscCkgXAotICAodXBlZWsgKCh0Y3ApLT5waWQsIGFyZzFfb2Zmc2V0LCAodmFscCkpKQotCi1zdGF0aWMgaW50Ci1zZXRfYXJnMCAoc3RydWN0IHRjYiAqdGNwLCB2b2lkICpjb29raWUsIGxvbmcgdmFsKQotewotCXJldHVybiBwdHJhY2UgKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKilhcmcwX29mZnNldCwgdmFsKTsKLX0KLQotc3RhdGljIGludAotc2V0X2FyZzEgKHN0cnVjdCB0Y2IgKnRjcCwgdm9pZCAqY29va2llLCBsb25nIHZhbCkKLXsKLQlyZXR1cm4gcHRyYWNlIChQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopYXJnMV9vZmZzZXQsIHZhbCk7Ci19Ci0KLSNlbmRpZgotCi0jaWZuZGVmIHJlc3RvcmVfYXJnMAotIyBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgc2V0X2FyZzAoKHRjcCksIChzdGF0ZSksICh2YWwpKQotI2VuZGlmCi0jaWZuZGVmIHJlc3RvcmVfYXJnMQotIyBkZWZpbmUgcmVzdG9yZV9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgc2V0X2FyZzEoKHRjcCksIChzdGF0ZSksICh2YWwpKQotI2VuZGlmCi0KLSNpZm5kZWYgYXJnMF9pbmRleAotIyBkZWZpbmUgYXJnMF9pbmRleCAwCi0jIGRlZmluZSBhcmcxX2luZGV4IDEKLSNlbmRpZgotCi1pbnQKLXNldGJwdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JZXh0ZXJuIGludCBjaGFuZ2Vfc3lzY2FsbChzdHJ1Y3QgdGNiICosIGludCk7Ci0JYXJnX3NldHVwX3N0YXRlIHN0YXRlOwotCi0JaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBhbHJlYWR5IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7Ci0jaWZkZWYgU1lTX3Zmb3JrCi0JY2FzZSBTWVNfdmZvcms6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfZm9yawotCWNhc2UgU1lTX2Zvcms6Ci0jZW5kaWYKLSNpZiBkZWZpbmVkIFNZU19mb3JrIHx8IGRlZmluZWQgU1lTX3Zmb3JrCi0JCWlmIChhcmdfc2V0dXAgKHRjcCwgJnN0YXRlKSA8IDAKLQkJICAgIHx8IGdldF9hcmcwICh0Y3AsICZzdGF0ZSwgJnRjcC0+aW5zdFswXSkgPCAwCi0JCSAgICB8fCBnZXRfYXJnMSAodGNwLCAmc3RhdGUsICZ0Y3AtPmluc3RbMV0pIDwgMAotCQkgICAgfHwgY2hhbmdlX3N5c2NhbGwodGNwLCBTWVNfY2xvbmUpIDwgMAotCQkgICAgfHwgc2V0X2FyZzAgKHRjcCwgJnN0YXRlLCBDTE9ORV9QVFJBQ0V8U0lHQ0hMRCkgPCAwCi0JCSAgICB8fCBzZXRfYXJnMSAodGNwLCAmc3RhdGUsIDApIDwgMAotCQkgICAgfHwgYXJnX2ZpbmlzaF9jaGFuZ2UgKHRjcCwgJnN0YXRlKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCXRjcC0+dV9hcmdbYXJnMF9pbmRleF0gPSBDTE9ORV9QVFJBQ0V8U0lHQ0hMRDsKLQkJdGNwLT51X2FyZ1thcmcxX2luZGV4XSA9IDA7Ci0JCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKLQkJcmV0dXJuIDA7Ci0jZW5kaWYKLQotCWNhc2UgU1lTX2Nsb25lOgotI2lmZGVmIFNZU19jbG9uZTIKLQljYXNlIFNZU19jbG9uZTI6Ci0jZW5kaWYKLQkJaWYgKCh0Y3AtPnVfYXJnW2FyZzBfaW5kZXhdICYgQ0xPTkVfUFRSQUNFKSA9PSAwCi0JCSAgICAmJiAoYXJnX3NldHVwICh0Y3AsICZzdGF0ZSkgPCAwCi0JCQl8fCBzZXRfYXJnMCAodGNwLCAmc3RhdGUsCi0JCQkJICAgICB0Y3AtPnVfYXJnW2FyZzBfaW5kZXhdIHwgQ0xPTkVfUFRSQUNFKSA8IDAKLQkJCXx8IGFyZ19maW5pc2hfY2hhbmdlICh0Y3AsICZzdGF0ZSkgPCAwKSkKLQkJCXJldHVybiAtMTsKLQkJdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOwotCQl0Y3AtPmluc3RbMF0gPSB0Y3AtPnVfYXJnW2FyZzBfaW5kZXhdOwotCQl0Y3AtPmluc3RbMV0gPSB0Y3AtPnVfYXJnW2FyZzFfaW5kZXhdOwotCQlyZXR1cm4gMDsKLQotCWRlZmF1bHQ6Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IHNldGJwdCBmb3Igc3lzY2FsbCAlbGQgb24gJXU/Pz9cbiIsCi0JCQl0Y3AtPnNjbm8sIHRjcC0+cGlkKTsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIC0xOwotfQotCi1pbnQKLWNsZWFyYnB0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlhcmdfc2V0dXBfc3RhdGUgc3RhdGU7Ci0JaWYgKGFyZ19zZXR1cCAodGNwLCAmc3RhdGUpIDwgMAotCSAgICB8fCByZXN0b3JlX2FyZzAgKHRjcCwgJnN0YXRlLCB0Y3AtPmluc3RbMF0pIDwgMAotCSAgICB8fCByZXN0b3JlX2FyZzEgKHRjcCwgJnN0YXRlLCB0Y3AtPmluc3RbMV0pIDwgMAotCSAgICB8fCBhcmdfZmluaXNoX2NoYW5nZSAodGNwLCAmc3RhdGUpKQotCQlyZXR1cm4gLTE7Ci0JdGNwLT5mbGFncyAmPSB+VENCX0JQVFNFVDsKLQlyZXR1cm4gMDsKLX0KLQotI2Vsc2UKLQotaW50Ci1zZXRicHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCi0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQkvKiBXZSBzaW1wbHkgdXNlIHRoZSBTdW5PUyBicmVha3BvaW50IGNvZGUuICovCi0KLQlzdHJ1Y3QgcmVncyByZWdzOwotCXVuc2lnbmVkIGxvbmcgaW5zdDsKLSNkZWZpbmUgTE9PUEEJMHgzMDgwMDAwMAkvKiBiYSxhCTAgKi8KLQotCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgewotCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0IgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkgewotCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9HRVRSRUdTLCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JdGNwLT5iYWRkciA9IHJlZ3Mucl9vNyArIDg7Ci0JZXJybm8gPSAwOwotCXRjcC0+aW5zdFswXSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHRjcC0+cGlkLCAoY2hhciAqKXRjcC0+YmFkZHIsIDApOwotCWlmKGVycm5vKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQkvKgotCSAqIFhYWCAtIEJSVVRBTCBNT0RFIE9OCi0JICogV2UgY2Fubm90IHNldCBhIHJlYWwgQlBUIGluIHRoZSBjaGlsZCwgc2luY2UgaXQgd2lsbCBub3QgYmUKLQkgKiB0cmFjZWQgYXQgdGhlIG1vbWVudCBpdCB3aWxsIHJlYWNoIHRoZSB0cmFwIGFuZCB3b3VsZCBwcm9iYWJseQotCSAqIGRpZSB3aXRoIGEgY29yZSBkdW1wLgotCSAqIFRodXMsIHdlIGFyZSBmb3JjZSBvdXIgd2F5IGluIGJ5IHRha2luZyBvdXQgdHdvIGluc3RydWN0aW9ucwotCSAqIGFuZCBpbnNlcnQgYW4gZXRlcm5hbCBsb29wIGluc3RlYWQsIGluIGV4cGVjdGFuY2Ugb2YgdGhlIFNJR1NUT1AKLQkgKiBnZW5lcmF0ZWQgYnkgb3V0IFBUUkFDRV9BVFRBQ0guCi0JICogT2YgY2F1c2UsIGlmIHdlIGV2YXBvcmF0ZSBvdXJzZWx2ZXMgaW4gdGhlIG1pZGRsZSBvZiBhbGwgdGhpcy4uLgotCSAqLwotCWVycm5vID0gMDsKLQlpbnN0ID0gTE9PUEE7Ci0jaWYgZGVmaW5lZCAoU1BBUkM2NCkKLQlpbnN0IDw8PSAzMjsKLQlpbnN0IHw9ICh0Y3AtPmluc3RbMF0gJiAweGZmZmZmZmZmVUwpOwotI2VuZGlmCi0JcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIGluc3QpOwotCWlmKGVycm5vKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOwotCi0jZWxzZSAvKiAhU1BBUkMgJiYgIVNQQVJDNjQgKi8KLSNpZmRlZiBJQTY0Ci0JaWYgKGlhMzIpIHsKLSMJCWRlZmluZSBMT09QCTB4MDAwMGZlZWIKLQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBicHQgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLAotCQkJCXRjcC0+cGlkKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlpZiAodXBlZWsodGNwLT5waWQsIFBUX0NSX0lJUCwgJnRjcC0+YmFkZHIpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJbJWRdIHNldHRpbmcgYnB0IGF0ICVseFxuIiwKLQkJCQl0Y3AtPnBpZCwgdGNwLT5iYWRkcik7Ci0JCXRjcC0+aW5zdFswXSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHRjcC0+cGlkLAotCQkJCSAgICAgIChjaGFyICopIHRjcC0+YmFkZHIsIDApOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCAuLi4pIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIExPT1ApOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOwotCX0gZWxzZSB7Ci0JCS8qCi0JCSAqIE91ciBzdHJhdGVneSBoZXJlIGlzIHRvIHJlcGxhY2UgdGhlIGJ1bmRsZSB0aGF0Ci0JCSAqIGNvbnRhaW5lZCB0aGUgY2xvbmUoKSBzeXNjYWxsIHdpdGggYSBidW5kbGUgb2YgdGhlCi0JCSAqIGZvcm06Ci0JCSAqCi0JCSAqCXsgMTogYnIgMWI7IGJyIDFiOyBiciAxYiB9Ci0JCSAqCi0JCSAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBuZXdseSBmb3JrZWQgY2hpbGQgd2lsbCBsb29wCi0JCSAqIGVuZGxlc3NseSB1bnRpbCB3ZSd2ZSBnb3QgYSBjaGFuY2UgdG8gYXR0YWNoIHRvIGl0LgotCQkgKi8KLSMJCWRlZmluZSBMT09QMAkweDAwMDAxMDAwMDAwMDAwMTcKLSMJCWRlZmluZSBMT09QMQkweDQwMDAwMDAwMDAyMDAwMDAKLQkJdW5zaWduZWQgbG9uZyBhZGRyLCBpcHNyOwotCQlwaWRfdCBwaWQ7Ci0KLQkJcGlkID0gdGNwLT5waWQ7Ci0JCWlmICh1cGVlayhwaWQsIFBUX0NSX0lQU1IsICZpcHNyKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCWlmICh1cGVlayhwaWQsIFBUX0NSX0lJUCwgJmFkZHIpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJLyogc3RvcmUgInJpIiBpbiBsb3cgdHdvIGJpdHMgKi8KLQkJdGNwLT5iYWRkciA9IGFkZHIgfCAoKGlwc3IgPj4gNDEpICYgMHgzKTsKLQotCQllcnJubyA9IDA7Ci0JCXRjcC0+aW5zdFswXSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDAsCi0JCQkJICAgICAgMCk7Ci0JCXRjcC0+aW5zdFsxXSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDgsCi0JCQkJICAgICAgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCi0JCWVycm5vID0gMDsKLQkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgMCwgTE9PUDApOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyA4LCBMT09QMSk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0JfQotI2Vsc2UgLyogIUlBNjQgKi8KLQotI2lmIGRlZmluZWQgKEkzODYpIHx8IGRlZmluZWQoWDg2XzY0KQotI2RlZmluZSBMT09QCTB4MDAwMGZlZWIKLSNlbGlmIGRlZmluZWQgKE02OEspCi0jZGVmaW5lIExPT1AJMHg2MGZlMDAwMAotI2VsaWYgZGVmaW5lZCAoQUxQSEEpCi0jZGVmaW5lIExPT1AJMHhjM2ZmZmZmZgotI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKLSNkZWZpbmUgTE9PUAkweDQ4MDAwMDAwCi0jZWxpZiBkZWZpbmVkKEFSTSkKLSNkZWZpbmUgTE9PUAkweEVBRkZGRkZFCi0jZWxpZiBkZWZpbmVkKE1JUFMpCi0jZGVmaW5lIExPT1AJMHgxMDAwZmZmZgotI2VsaWYgZGVmaW5lZChTMzkwKQotI2RlZmluZSBMT09QCTB4YTdmNDAwMDAJLyogQlJDIDE1LDAgKi8KLSNlbGlmIGRlZmluZWQoUzM5MFgpCi0jZGVmaW5lIExPT1AgICAweGE3ZjQwMDAwMDAwMDAwMDBVTCAvKiBCUkMgMTUsMCAqLwotI2VsaWYgZGVmaW5lZChIUFBBKQotI2RlZmluZSBMT09QCTB4ZTgxZjFmZjcJLyogYixsLG4gPGxvYz4scjAgKi8KLSNlbGlmIGRlZmluZWQoU0gpCi0jaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KLSNkZWZpbmUgTE9PUCAgIDB4MDAwMGFmZmUKLSNlbHNlCi0jZGVmaW5lIExPT1AgICAweGZlYWYwMDAwCi0jZW5kaWYKLSNlbHNlCi0jZXJyb3IgdW5rbm93biBhcmNoaXRlY3R1cmUKLSNlbmRpZgotCi0JaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IGJwdCBhbHJlYWR5IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKLQkJcmV0dXJuIC0xOwotCX0KLSNpZiBkZWZpbmVkIChJMzg2KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpFSVAsICZ0Y3AtPmJhZGRyKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQgKFg4Nl82NCkKLQlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmdGNwLT5iYWRkcikgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChNNjhLKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnRjcC0+YmFkZHIpIDwgMCkKLQkgIHJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQgKEFMUEhBKQotCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQgKEFSTSkKLQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChNSVBTKQotCXJldHVybiAtMTsJCS8qIEZJWE1FOiBJIGRvIG5vdCBrbm93IHdoYXQgaSBkbyAtIEZsbyAqLwotI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKLQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9OSVAsICZ0Y3AtPmJhZGRyKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQlpZiAodXBlZWsodGNwLT5waWQsUFRfUFNXQUREUiwgJnRjcC0+YmFkZHIpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChIUFBBKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfSUFPUTAsICZ0Y3AtPmJhZGRyKSA8IDApCi0JCXJldHVybiAtMTsKLQl0Y3AtPmJhZGRyICY9IH4weDAzOwotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICBpZiAodXBlZWsodGNwLT5waWQsIDQqUkVHX1BDLCAmdGNwLT5iYWRkcikgPCAwKQotICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotI2Vsc2UKLSNlcnJvciB1bmtub3duIGFyY2hpdGVjdHVyZQotI2VuZGlmCi0JaWYgKGRlYnVnKQotCQlmcHJpbnRmKHN0ZGVyciwgIlslZF0gc2V0dGluZyBicHQgYXQgJWx4XG4iLCB0Y3AtPnBpZCwgdGNwLT5iYWRkcik7Ci0JdGNwLT5pbnN0WzBdID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIDApOwotCWlmIChlcnJubykgewotCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCBMT09QKTsKLQlpZiAoZXJybm8pIHsKLQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0KLSNlbmRpZiAvKiAhSUE2NCAqLwotI2VuZGlmIC8qIFNQQVJDIHx8IFNQQVJDNjQgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0jaWZkZWYgU1BBUkMJLyogVGhpcyBjb2RlIGlzIHNsaWdodGx5IHNwYXJjIHNwZWNpZmljICovCi0KLQlzdHJ1Y3QgcmVncyByZWdzOwotI2RlZmluZSBCUFQJMHg5MWQwMjAwMQkvKiB0YQkxICovCi0jZGVmaW5lIExPT1AJMHgxMDgwMDAwMAkvKiBiYQkwICovCi0jZGVmaW5lIExPT1BBCTB4MzA4MDAwMDAJLyogYmEsYQkwICovCi0jZGVmaW5lIE5PUAkweDAxMDAwMDAwCi0jaWYgTE9PUEEKLQlzdGF0aWMgaW50IGxvb3BkZWxvb3BbMV0gPSB7TE9PUEF9OwotI2Vsc2UKLQlzdGF0aWMgaW50IGxvb3BkZWxvb3BbMl0gPSB7TE9PUCwgTk9QfTsKLSNlbmRpZgotCi0JaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBhbHJlYWR5IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmJhZGRyID0gcmVncy5yX283ICsgODsKLQlpZiAocHRyYWNlKFBUUkFDRV9SRUFEVEVYVCwgdGNwLT5waWQsIChjaGFyICopdGNwLT5iYWRkciwKLQkJCQlzaXplb2YgdGNwLT5pbnN0LCAoY2hhciAqKXRjcC0+aW5zdCkgPCAwKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1JFQURURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQkvKgotCSAqIFhYWCAtIEJSVVRBTCBNT0RFIE9OCi0JICogV2UgY2Fubm90IHNldCBhIHJlYWwgQlBUIGluIHRoZSBjaGlsZCwgc2luY2UgaXQgd2lsbCBub3QgYmUKLQkgKiB0cmFjZWQgYXQgdGhlIG1vbWVudCBpdCB3aWxsIHJlYWNoIHRoZSB0cmFwIGFuZCB3b3VsZCBwcm9iYWJseQotCSAqIGRpZSB3aXRoIGEgY29yZSBkdW1wLgotCSAqIFRodXMsIHdlIGFyZSBmb3JjZSBvdXIgd2F5IGluIGJ5IHRha2luZyBvdXQgdHdvIGluc3RydWN0aW9ucwotCSAqIGFuZCBpbnNlcnQgYW4gZXRlcm5hbCBsb29wIGluIHN0ZWFkLCBpbiBleHBlY3RhbmNlIG9mIHRoZSBTSUdTVE9QCi0JICogZ2VuZXJhdGVkIGJ5IG91dCBQVFJBQ0VfQVRUQUNILgotCSAqIE9mIGNhdXNlLCBpZiB3ZSBldmFwb3JhdGUgb3Vyc2VsdmVzIGluIHRoZSBtaWRkbGUgb2YgYWxsIHRoaXMuLi4KLQkgKi8KLQlpZiAocHRyYWNlKFBUUkFDRV9XUklURVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLAotCQkJc2l6ZW9mIGxvb3BkZWxvb3AsIChjaGFyICopIGxvb3BkZWxvb3ApIDwgMCkgewotCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9XUklURVRFWFQsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0KLSNlbmRpZiAvKiBTUEFSQyAqLwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludAotY2xlYXJicHQodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCi0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkKEkzODYpIHx8IGRlZmluZWQoWDg2XzY0KQotCWxvbmcgZWlwOwotI2VsaWYgZGVmaW5lZChQT1dFUlBDKQotCWxvbmcgcGM7Ci0jZWxpZiBkZWZpbmVkKE02OEspCi0JbG9uZyBwYzsKLSNlbGlmIGRlZmluZWQoQUxQSEEpCi0JbG9uZyBwYzsKLSNlbGlmIGRlZmluZWQoSFBQQSkKLQlsb25nIGlhb3E7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGxvbmcgcGM7Ci0jZW5kaWYgLyogYXJjaGl0ZWN0dXJlICovCi0KLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQkvKiBBZ2Fpbiwgd2UgYm9ycm93IHRoZSBTdW5PUyBicmVha3BvaW50IGNvZGUuICovCi0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBub3Qgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWVycm5vID0gMDsKLQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgdGNwLT5pbnN0WzBdKTsKLQlpZihlcnJubykgewotCQlwZXJyb3IoImNsZWFyYnRwOiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JdGNwLT5mbGFncyAmPSB+VENCX0JQVFNFVDsKLSNlbGlmIGRlZmluZWQoSUE2NCkKLQlpZiAoaWEzMikgewotCQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJbJWRdIGNsZWFyaW5nIGJwdFxuIiwgdGNwLT5waWQpOwotCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBub3Qgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCWVycm5vID0gMDsKLQkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIHRjcC0+aW5zdFswXSk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJjbGVhcmJ0cDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7Ci0KLQkJaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9DUl9JSVAsICZhZGRyKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCWlmIChhZGRyICE9IHRjcC0+YmFkZHIpIHsKLQkJCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0JCQlpZiAoZGVidWcpCi0JCQkJZnByaW50ZihzdGRlcnIsCi0JCQkJCSJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotCQkJCQkJYWRkciwgdGNwLT5iYWRkcik7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGxvbmcgYWRkciwgaXBzcjsKLQkJcGlkX3QgcGlkOwotCi0JCXBpZCA9IHRjcC0+cGlkOwotCi0JCWlmICh1cGVlayhwaWQsIFBUX0NSX0lQU1IsICZpcHNyKSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCWlmICh1cGVlayhwaWQsIFBUX0NSX0lJUCwgJmFkZHIpIDwgMCkKLQkJCXJldHVybiAtMTsKLQotCQkvKiByZXN0b3JlIG9yaWdpbmFsIGJ1bmRsZTogKi8KLQkJZXJybm8gPSAwOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyAwLCB0Y3AtPmluc3RbMF0pOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyA4LCB0Y3AtPmluc3RbMV0pOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigiY2xlYXJicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCi0JCS8qIHJlc3RvcmUgb3JpZ2luYWwgInJpIiBpbiBpcHNyOiAqLwotCQlpcHNyID0gKGlwc3IgJiB+KDB4M3VsIDw8IDQxKSkgfCAoKHRjcC0+YmFkZHIgJiAweDMpIDw8IDQxKTsKLQkJZXJybm8gPSAwOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCBwaWQsIChjaGFyICopIFBUX0NSX0lQU1IsIGlwc3IpOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigiY2xyYnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCAuLi4pIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQotCQl0Y3AtPmZsYWdzICY9IH5UQ0JfQlBUU0VUOwotCi0JCWlmIChhZGRyICE9ICh0Y3AtPmJhZGRyICYgfjB4MykpIHsKLQkJCS8qIHRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0JCQlpZiAoZGVidWcpCi0JCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotCQkJCQlhZGRyLCB0Y3AtPmJhZGRyKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotI2Vsc2UgLyogIUlBNjQgICYmICFTUEFSQyAmJiAhU1BBUkM2NCAqLwotCi0JaWYgKGRlYnVnKQotCQlmcHJpbnRmKHN0ZGVyciwgIlslZF0gY2xlYXJpbmcgYnB0XG4iLCB0Y3AtPnBpZCk7Ci0JaWYgKCEodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBub3Qgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWVycm5vID0gMDsKLQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgdGNwLT5pbnN0WzBdKTsKLQlpZiAoZXJybm8pIHsKLQkJcGVycm9yKCJjbGVhcmJ0cDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7Ci0KLSNpZmRlZiBJMzg2Ci0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KkVJUCwgJmVpcCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKGVpcCAhPSB0Y3AtPmJhZGRyKSB7Ci0JCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLAotCQkJCSJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotCQkJCQllaXAsIHRjcC0+YmFkZHIpOwotCQlyZXR1cm4gMDsKLQl9Ci0jZWxpZiBkZWZpbmVkKFg4Nl82NCkKLQlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmZWlwKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoZWlwICE9IHRjcC0+YmFkZHIpIHsKLQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsCi0JCQkJIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJCWVpcCwgdGNwLT5iYWRkcik7Ci0JCXJldHVybiAwOwotCX0KLSNlbGlmIGRlZmluZWQoUE9XRVJQQykKLQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9OSVAsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKHBjICE9IHRjcC0+YmFkZHIpIHsKLQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotCQkJCXBjLCB0Y3AtPmJhZGRyKTsKLQkJcmV0dXJuIDA7Ci0JfQotI2VsaWYgZGVmaW5lZChNNjhLKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAocGMgIT0gdGNwLT5iYWRkcikgewotCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJcGMsIHRjcC0+YmFkZHIpOwotCQlyZXR1cm4gMDsKLQl9Ci0jZWxpZiBkZWZpbmVkKEFMUEhBKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1BDLCAmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChwYyAhPSB0Y3AtPmJhZGRyKSB7Ci0JCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKLQkJCQlwYywgdGNwLT5iYWRkcik7Ci0JCXJldHVybiAwOwotCX0KLSNlbGlmIGRlZmluZWQoSFBQQSkKLQlpZiAodXBlZWsodGNwLT5waWQsIFBUX0lBT1EwLCAmaWFvcSkgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWFvcSAmPSB+MHgwMzsKLQlpZiAoaWFvcSAhPSB0Y3AtPmJhZGRyICYmIGlhb3EgIT0gdGNwLT5iYWRkciArIDQpIHsKLQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChpYW9xICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJaWFvcSwgdGNwLT5iYWRkcik7Ci0JCXJldHVybiAwOwotCX0KLQlpYW9xID0gdGNwLT5iYWRkciB8IDM7Ci0JLyogV2Ugc2hvdWxkIGJlIHBvaW50aW5nIGF0IGEgJ2xkaSAtMTAwMCxyMScgaW4gZ2xpYmMsIHNvIGl0IGlzCi0JICogc2FmZSB0byBzZXQgYm90aCBJQU9RMCBhbmQgSUFPUTEgdG8gdGhhdCBzbyB0aGUgUFNXIE4gYml0Ci0JICogaGFzIG5vIHNpZ25pZmljYW50IGVmZmVjdC4KLQkgKi8KLQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKHZvaWQgKilQVF9JQU9RMCwgaWFvcSk7Ci0JcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsICh2b2lkICopUFRfSUFPUTEsIGlhb3EpOwotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICBpZiAodXBlZWsodGNwLT5waWQsIDQqUkVHX1BDLCAmcGMpIDwgMCkKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgaWYgKHBjICE9IHRjcC0+YmFkZHIpIHsKLSAgICAgICAgICAgICAgICAvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLwotICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGMsIHRjcC0+YmFkZHIpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSNlbmRpZiAvKiBhcmNoICovCi0jZW5kaWYgLyogIVNQQVJDICYmICFTUEFSQzY0ICYmICFJQTY0ICovCi0jZW5kaWYgLyogTElOVVggKi8KLQotI2lmZGVmIFNVTk9TNAotI2lmZGVmIFNQQVJDCi0KLSNpZiAhTE9PUEEKLQlzdHJ1Y3QgcmVncyByZWdzOwotI2VuZGlmCi0KLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkpIHsKLQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIG5vdCBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKHB0cmFjZShQVFJBQ0VfV1JJVEVURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwKLQkJCQlzaXplb2YgdGNwLT5pbnN0LCAoY2hhciAqKSB0Y3AtPmluc3QpIDwgMCkgewotCQlwZXJyb3IoImNsZWFyYnRwOiBwdHJhY2UoUFRSQUNFX1dSSVRFVEVYVCwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7Ci0KLSNpZiAhTE9PUEEKLQkvKgotCSAqIFNpbmNlIHdlIGRvbid0IGhhdmUgYSBzaW5nbGUgaW5zdHJ1Y3Rpb24gYnJlYWtwb2ludCwgd2UgbWF5IGhhdmUKLQkgKiB0byBhZGp1c3QgdGhlIHByb2dyYW0gY291bnRlciBhZnRlciByZW1vdmluZyB0aGUgb3VyIGBicmVha3BvaW50Jy4KLQkgKi8KLQlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigiY2xlYXJicHQ6IHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmICgocmVncy5yX3BjIDwgdGNwLT5iYWRkcikgfHwKLQkJCQkocmVncy5yX3BjID4gdGNwLT5iYWRkciArIDQpKSB7Ci0JCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldCAqLwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSN4IGJhZGRyICUjeClcbiIsCi0JCQkJCXJlZ3Mucl9wYywgdGNwLT5wYXJlbnQtPmJhZGRyKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChyZWdzLnJfcGMgIT0gdGNwLT5iYWRkcikKLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBhZGp1c3RlZCAoJSN4IC0+ICUjeFxuIiwKLQkJCQlyZWdzLnJfcGMsIHRjcC0+YmFkZHIpOwotCi0JcmVncy5yX3BjID0gdGNwLT5iYWRkcjsKLQlpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigiY2xlYXJicHQ6IHB0cmFjZShQVFJBQ0VfU0VUUkVHUywgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotI2VuZGlmIC8qIExPT1BBICovCi0jZW5kaWYgLyogU1BBUkMgKi8KLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0KLSNpZmRlZiBTVU5PUzQKLQotc3RhdGljIGludAotZ2V0ZXgocGlkLCBoZHIpCi1pbnQgcGlkOwotc3RydWN0IGV4ZWMgKmhkcjsKLXsKLQlpbnQgbjsKLQotCWZvciAobiA9IDA7IG4gPCBzaXplb2YgKmhkcjsgbiArPSA0KSB7Ci0JCWxvbmcgcmVzOwotCQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfZXhkYXRhKSArIG4sICZyZXMpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJbWVtY3B5KCgoY2hhciAqKSBoZHIpICsgbiwgJnJlcywgNCk7Ci0JfQotCWlmIChkZWJ1ZykgewotCQlmcHJpbnRmKHN0ZGVyciwgIltzdHJ1Y3QgZXhlYzogbWFnaWM6ICVvIHZlcnNpb24gJXUgTWFjaCAlb1xuIiwKLQkJCWhkci0+YV9tYWdpYywgaGRyLT5hX3Rvb2x2ZXJzaW9uLCBoZHItPmFfbWFjaHR5cGUpOwotCQlmcHJpbnRmKHN0ZGVyciwgIlRleHQgJWx1IERhdGEgJWx1IEJzcyAlbHUgU3ltcyAlbHUgRW50cnkgJSNseF1cbiIsCi0JCQloZHItPmFfdGV4dCwgaGRyLT5hX2RhdGEsIGhkci0+YV9ic3MsIGhkci0+YV9zeW1zLCBoZHItPmFfZW50cnkpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1maXh2Zm9yayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaW50IHBpZCA9IHRjcC0+cGlkOwotCS8qCi0JICogQ2hhbmdlIGB2Zm9yaycgaW4gYSBmcmVzaGx5IGV4ZWMnZWQgZHluYW1pY2FsbHkgbGlua2VkCi0JICogZXhlY3V0YWJsZSdzIChpbnRlcm5hbCkgc3ltYm9sIHRhYmxlIHRvIHBsYWluIG9sZCBgZm9yaycKLQkgKi8KLQotCXN0cnVjdCBleGVjIGhkcjsKLQlzdHJ1Y3QgbGlua19keW5hbWljIGR5bjsKLQlzdHJ1Y3QgbGlua19keW5hbWljXzIgbGQ7Ci0JY2hhciAqc3RydGFiLCAqY3A7Ci0KLQlpZiAoZ2V0ZXgocGlkLCAmaGRyKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoIWhkci5hX2R5bmFtaWMpCi0JCXJldHVybiAtMTsKLQotCWlmICh1bW92ZSh0Y3AsIChpbnQpIE5fREFUQUREUihoZHIpLCAmZHluKSA8IDApIHsKLQkJZnByaW50ZihzdGRlcnIsICJDYW5ub3QgcmVhZCBEWU5BTUlDXG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAodW1vdmUodGNwLCAoaW50KSBkeW4ubGRfdW4ubGRfMiwgJmxkKSA8IDApIHsKLQkJZnByaW50ZihzdGRlcnIsICJDYW5ub3QgcmVhZCBsaW5rX2R5bmFtaWNfMlxuIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKChzdHJ0YWIgPSBtYWxsb2MoKHVuc2lnbmVkKWxkLmxkX3N5bWJfc2l6ZSkpID09IE5VTEwpIHsKLQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAodW1vdmVuKHRjcCwgKGludClsZC5sZF9zeW1ib2xzKyhpbnQpTl9UWFRBRERSKGhkciksCi0JCQkJCShpbnQpbGQubGRfc3ltYl9zaXplLCBzdHJ0YWIpIDwgMCkKLQkJZ290byBlcnI7Ci0KLSNpZiAwCi0JZm9yIChjcCA9IHN0cnRhYjsgY3AgPCBzdHJ0YWIgKyBsZC5sZF9zeW1iX3NpemU7ICkgewotCQlmcHJpbnRmKHN0ZGVyciwgIltzeW1ib2w6ICVzXVxuIiwgY3ApOwotCQljcCArPSBzdHJsZW4oY3ApKzE7Ci0JfQotCXJldHVybiAwOwotI2VuZGlmCi0JZm9yIChjcCA9IHN0cnRhYjsgY3AgPCBzdHJ0YWIgKyBsZC5sZF9zeW1iX3NpemU7ICkgewotCQlpZiAoc3RyY21wKGNwLCAiX3Zmb3JrIikgPT0gMCkgewotCQkJaWYgKGRlYnVnKQotCQkJCWZwcmludGYoc3RkZXJyLCAiZml4dmZvcms6IEZPVU5EIF92Zm9ya1xuIik7Ci0JCQlzdHJjcHkoY3AsICJfZm9yayIpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY3AgKz0gc3RybGVuKGNwKSsxOwotCX0KLQlpZiAoY3AgPCBzdHJ0YWIgKyBsZC5sZF9zeW1iX3NpemUpCi0JCS8qCi0JCSAqIFdyaXRlIGVudGlyZSBzeW1ib2wgdGFibGUgYmFjayB0byBhdm9pZAotCQkgKiBtZW1vcnkgYWxpZ25tZW50IGJ1Z3MgaW4gcHRyYWNlCi0JCSAqLwotCQlpZiAodGxvYWQocGlkLCAoaW50KWxkLmxkX3N5bWJvbHMrKGludClOX1RYVEFERFIoaGRyKSwKLQkJCQkJKGludClsZC5sZF9zeW1iX3NpemUsIHN0cnRhYikgPCAwKQotCQkJZ290byBlcnI7Ci0KLQlmcmVlKHN0cnRhYik7Ci0JcmV0dXJuIDA7Ci0KLWVycjoKLQlmcmVlKHN0cnRhYik7Ci0JcmV0dXJuIC0xOwotfQotCi0jZW5kaWYgLyogU1VOT1M0ICovCg==