Name: series-workflowlnr52 Phase: Succeeded StartedAt: 2026-08-03 10:14:15 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[0] Phase: Succeeded StartedAt: 2026-08-03 10:14:15 +0000 UTC FinishedAt: 2026-08-03 10:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 10:14:15 +0000 UTC FinishedAt: 2026-08-03 10:16:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "c227b700-5411-4d0a-8a59-12e2ea857ef4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_open", "stmmac_change_mtu" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19jaGFuZ2VfbXR1JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OTRiMzE2Y2I4YWQ3ODUwYjQxYWIzOWI5OGVhMTEwZGI5YmFiM2ZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMzgwMWY5ZDQ1Mjc4ZS4uZWEzZDE5NTJiMTk0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC00MTM0LDYgJiM0Mzs0MTM0LDE1IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdGRtYV9jb25mLVx1MDAzZXR4X3F1ZXVlW2ldLnRicyA9IHByaXYtXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbaV0udGJzO1xuIFx0bWVtY3B5KFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIGRtYV9jb25mLCBzaXplb2YoKmRtYV9jb25mKSk7XG4gXG4mIzQzO1x0LyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXRcbiYjNDM7XHQgKiBkaXNjb25uZWN0aW5nIHRoZSBQSFksIGUuZy4gb24gTVRVIGNoYW5nZS4gSUVFRSA4MDIuMyBhbGxvd3MgUEhZc1xuJiM0MztcdCAqIHRvIHN0b3AgdGhlaXIgcmVjZWl2ZSBjbG9jayB3aGlsZSBwb3dlcmVkIGRvd24sIGJ1dCB0aGUgRE1BXG4mIzQzO1x0ICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmVcbiYjNDM7XHQgKiBjbG9jaywgYW5kIHBoeWxpbmtfc3RhcnQoKSBiZWxvdyByZXN1bWVzIHRoZSBQSFkgb25seSBhZnRlciB0aGVcbiYjNDM7XHQgKiBoYXJkd2FyZSBzZXR1cC4gUmVzdW1lIGEgc3VzcGVuZGVkIFBIWSBoZXJlIGZpcnN0LlxuJiM0MztcdCAqL1xuJiM0MztcdHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi1cdTAwM2VwaHlsaW5rKTtcbiYjNDM7XG4gXHRzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpO1xuIFxuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19jaGFuZ2VfbXR1JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OTRiMzE2Y2I4YWQ3ODUwYjQxYWIzOWI5OGVhMTEwZGI5YmFiM2ZhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDM4MDFmOWQ0NTI3OGUuLmVhM2QxOTUyYjE5NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtNDEzNCw2ICYjNDM7NDEzNCwxNSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCWRtYV9jb25mLSZndDt0eF9xdWV1ZVtpXS50YnMgPSBwcml2LSZndDtkbWFfY29uZi50eF9xdWV1ZVtpXS50YnM7CiAJbWVtY3B5KCZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYsIGRtYV9jb25mLCBzaXplb2YoKmRtYV9jb25mKSk7CiAKJiM0MzsJLyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXQKJiM0MzsJICogZGlzY29ubmVjdGluZyB0aGUgUEhZLCBlLmcuIG9uIE1UVSBjaGFuZ2UuIElFRUUgODAyLjMgYWxsb3dzIFBIWXMKJiM0MzsJICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUEKJiM0MzsJICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmUKJiM0MzsJICogY2xvY2ssIGFuZCBwaHlsaW5rX3N0YXJ0KCkgYmVsb3cgcmVzdW1lcyB0aGUgUEhZIG9ubHkgYWZ0ZXIgdGhlCiYjNDM7CSAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuCiYjNDM7CSAqLwomIzQzOwlwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtJmd0O3BoeWxpbmspOwomIzQzOwogCXN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7CiAKIAlyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN0bW1hYyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gcHJvcG9zZWQsIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYSBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZShwcml2LSZndDtwaHlsaW5rKTtgIGNhbGwgd2l0aGluIGBfX3N0bW1hY19vcGVuKClgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBkcml2ZXIgYmVoYXZlcywgcHJvYmFibHkgcmVsYXRlZCB0byBsaW5rIHN0YXRlIHRyYW5zaXRpb25zIG9yIHBvd2VyIG1hbmFnZW1lbnQuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byB2YWxpZGF0ZSB0aGlzLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBRRU1VIGVudmlyb25tZW50PyBUaGUgYHN0bW1hY2AgZHJpdmVyIGhhbmRsZXMgU1RNaWNyb2VsZWN0cm9uaWNzIEV0aGVybmV0IE1BQ3MsIGluY2x1ZGluZyB0aGUgMTAvMTAwLzEwMDAvRVFPUyB2YXJpYW50cy4gSSBrbm93IHRoZSBRRU1VIGVtdWxhdGVkIGVudmlyb25tZW50IGlzIGltcG9ydGFudCBmb3IgQ0kgdGVzdHMuIElzIGl0IGVtdWxhdGVkLCBvciBkbyB3ZSBoYXZlIGEgd2F5IHRvIHRlc3QgaXQgZGlyZWN0bHk/CgpIYW5nIG9uLi4uIGBzdG1tYWNgIGlzIHR5cGljYWxseSBmb3VuZCBvbiBBUk0gU29DcywgYnV0IHRoZXJlJiMzOTtzIGEgUENJIHZlcnNpb24sIGBzdG1tYWNfcGNpLmNgLiBOb3cgd2UmIzM5O3JlIHRhbGtpbmchIFRoZSBQQ0kgdmFyaWFudCBnaXZlcyBtZSBhIG11Y2ggY2xlYW5lciBwYXRoIGZvciBwb3RlbnRpYWwgUUVNVSB2YWxpZGF0aW9uLiBJIG5lZWQgdG8gY29uZmlybSBpZiBJIGNhbiB1dGlsaXplIGBzdG1tYWNgIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIElmIHNvLCB0aGF0IG9wZW5zIHVwIGEgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0ZXN0aW5nIHN0cmF0ZWd5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19wY2kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcdCYjNDM7PSBkd21hYy1tb3RvcmNvbW0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTM5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cdHVuc2lnbmVkIGludCBmdW5jO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ1OnN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ3LVx0c2l6ZV90IG5mdW5jcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfbGlzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSAqZnVuY19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgtXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzg2PXN0YXRpYyBpbnQgZWhsX3NnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgwNjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDctXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTgxMD1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MjE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIyLVx0LnNldHVwID0gZWhsX3JnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NDE9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg0ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0OS1cdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1Mj1zdGF0aWMgaW50IGVobF9wc2UwX3NnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODcwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UwX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODcxLVx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODkwPXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4OTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04OTgtXHQuc2V0dXAgPSBlaGxfcHNlMV9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MDE9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkxOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMC1cdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk0ND1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk1MzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1NC1cdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTc9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjctXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTcwPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk4MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05ODEtXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk4ND1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5OTQ6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTk1LVx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDIzPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDQyOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDMtXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNDY6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA0Ny1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTM6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDU0LVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDU4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTktXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDY5OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA3MC1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTEwOT1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTktXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTEyMDpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTEyMS1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExNDU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTE0Ni1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyNjM9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTI2NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyNjY6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTI2Ny1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5OTYwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIFNUTU1BQyBQQ0kgRHJpdmVyKioKCkFscmlnaHQsIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgY2FuIGRlZmluaXRlbHkgYmUgdXRpbGl6ZWQgdGhyb3VnaCBQQ0ksIGFuZCB0aGUgYHN0bW1hY19wY2lgIGRyaXZlciBoYW5kbGVzIHRoYXQgYmluZGluZy4gR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGNvcmUgbmV0d29yayBkcml2ZXIsIGZ1enppbmcgdGhpcyBzZWVtcyBsaWtlIGEgd29ydGh3aGlsZSBlbmRlYXZvci4KCk15IGluaXRpYWwgc2NhbiBvZiB0aGUgY2hhbmdlcyByZXZlYWxzIHRoYXQgYHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi0mZ3Q7cGh5bGluayk7YCBoYXMgYmVlbiBpbnRyb2R1Y2VkIHdpdGhpbiB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24uIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgX19zdG1tYWNfb3BlbigpYCBpcyBleGVjdXRlZCB3aGVuZXZlciBhIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGJyb3VnaHQgb25saW5lLgoKVGltZSB0byBkaXZlIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNgIGFuZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIGBfX3N0bW1hY19vcGVuKClgIGZ1bmN0aW9uIGFuZCBpdHMgc3Vycm91bmRpbmcgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZWAgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgb3BlcmF0aW9uYWwgZmxvdyB0byBpZGVudGlmeSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXRzIGFuZCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19zdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MDUwPXN0bW1hY19zZXR1cF9kbWFfZGVzYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTE1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTE2OiAqICBfX3N0bW1hY19vcGVuIC0gb3BlbiBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxMTctICogIEBkZXYgOiBwb2ludGVyIHRvIHRoZSBkZXZpY2Ugc3RydWN0dXJlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDEyNTpzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNi1cdFx0XHQgc3RydWN0IHN0bW1hY19kbWFfY29uZiAqZG1hX2NvbmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTgzPXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMTE6XHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjEyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxMDE9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzc6XHRcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzgtXHRcdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDk1OAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaWdnaW5nIGludG8gdGhlIFNUTU1BQyBEcml2ZXIqKgoKT2theSwgc28gYF9fc3RtbWFjX29wZW5gIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzLCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLiBUaGF0JiMzOTtzIGEgY2xlYXIgaW5kaWNhdG9yIHRoYXQgaXQmIzM5O3MgYSB2aXRhbCBmdW5jdGlvbjsgaXQmIzM5O3MgZGVmaW5pdGVseSBnZXR0aW5nIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgb3Igd2hlbiB3ZSBhcmUgY2hhbmdpbmcgc2V0dGluZ3MuIFRoaXMgbWVhbnMgaXQmIzM5O3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IG15IGludmVzdGlnYXRpb24uCgpOb3csIGJlZm9yZSBJIGdvIGFueSBkZWVwZXIgaW50byB0aGUgY29kZSBpdHNlbGYsIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIFNUTU1BQyBkcml2ZXIgaXMgcHJvcGVybHkgZW5hYmxlZCBhbmQgY29uZmlndXJlZCBiYXNlZCBvbiB0aGUgdGFyZ2V0IHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGJ1aWxkIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcywgc28gY2hlY2tpbmcgdGhhdCBLY29uZmlnIGZpbGUgd2lsbCBiZSBlc3NlbnRpYWwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIGp1c3QgdG8gc2V0IHRoZSByaWdodCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwOmNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzcxPWVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzczOmNvbmZpZyBTVE1NQUNfTElCUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNzUyCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRlcGVuZGVuY2llcyBhbmQgdGhlIFNUTU1BQyoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSYjMzk7dmUgZ290IGFsbCB0aGUgZHVja3MgaW4gYSByb3cuIEJlZm9yZSB3ZSBzdGFydCBqdW1waW5nIGludG8gaW1wbGVtZW50YXRpb24gZGV0YWlscywgaXQmIzM5O3MgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcy4gU3BlY2lmaWNhbGx5LCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgY29uZmlndXJhdGlvbnMgZG9lcyBgU1RNTUFDX0VUSGAgbmVlZCB0byBmdW5jdGlvbiBjb3JyZWN0bHk/IFdlIGNhbiYjMzk7dCBidWlsZCBhIHJvYnVzdCBzeXN0ZW0gd2l0aG91dCB1bmRlcnN0YW5kaW5nIGl0cyBmb3VuZGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlcXVpcmVtZW50cyBiZWZvcmUgcHJvY2VlZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIFNUTU1BQ19FVEhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IEhBU19ETUFcbiAgIDU6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDY6XHRcdGRlcGVuZHMgb24gRVRIVE9PTF9ORVRMSU5LXG4gICA3Olx0XHRzZWxlY3QgTUlJXG4gICA4Olx0XHRzZWxlY3QgUENTX1hQQ1NcbiAgIDk6XHRcdHNlbGVjdCBQQUdFX1BPT0xcbiAgMTA6XHRcdHNlbGVjdCBQSFlMSU5LXG4gIDExOlx0XHRzZWxlY3QgQ1JDMzJcbiAgMTI6XHRcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXG4gIDEzOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTQ6XHRcdGhlbHBcbiAgMTU6XHRcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgSVBzIGJ1aWx0IGFyb3VuZCBhXG4gIDE2Olx0XHQgIFN5bm9wc3lzIElQIENvcmUuXG4gIDE3Olx0XG4gIDE4Olx0aWYgU1RNTUFDX0VUSFxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMjE3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUsIG15IG1pbmQgaXMgYWxyZWFkeSBydW5uaW5nIHRocm91Z2ggdGhlIGRlcGVuZGVuY2llcyBoZXJlLgoKKipOYXZpZ2F0aW5nIEtlcm5lbCBDb25maWd1cmF0aW9uIE9wdGlvbnMqKgoKUmlnaHQsIHNvIHRvIGdldCBhIGdvb2QgaGFuZGxlIG9uIHRoaXMsIHRoZSBiZWhhdmlvciBzZWVtcyB0byBoaW5nZSBvbiBhIGZldyBrZXkgZGVmaW5lczogYEhBU19JT01FTWAsIGBIQVNfRE1BYCwgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCwgYW5kIGBFVEhUT09MX05FVExJTktgLiBJIGtub3cgdGhlc2UgYXJlIHR5cGljYWwsIGFuZCBpbiBtb3N0IGNhc2VzLCBJJiMzOTtkIGV4cGVjdCB0aGVtIHRvIGJlIHNldC4gQnV0IEkgbmVlZCB0byBiZSAqc3VyZSouIFRvIHJlYWxseSB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBkZXRhaWxzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBmb3IgYFNUTU1BQ19QQ0lgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb3JlIGluZm9ybWF0aW9uIG5lZWRlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGJ1aWxkIHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0MDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDQwMDpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiA0MDE6XHRcdHNlbGVjdCBNT1RPUkNPTU1fUEhZXG4gNDAyOlx0XHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuIDQwMzpcdFx0aGVscFxuIDQwNDpcdFx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcbiA0MDU6XHRcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXG4gNDA2Olx0XG4gNDA3Olx0Y29uZmlnIFNUTU1BQ19QQ0lcbiA0MDg6XHRcdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiA0MDk6XHRcdGRlcGVuZHMgb24gUENJXG4gNDEwOlx0XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbiA0MTE6XHRcdHNlbGVjdCBTVE1NQUNfTElCUENJXG4gNDEyOlx0XHRoZWxwXG4gNDEzOlx0XHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuIDQxNDpcdFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcbiA0MTU6XHRcdCAgRDEyMTU5OTRBIFZJUlRFWCBGUEdBIGJvYXJkIGFuZCBTTlBTIFFvUyBJUEsgUHJvdG90eXBpbmcgS2l0LlxuIDQxNjpcdFxuIDQxNzpcdFx0ICBJZiB5b3UgaGF2ZSBhIGNvbnRyb2xsZXIgd2l0aCB0aGlzIGludGVyZmFjZSwgc2F5IFkgb3IgTSBoZXJlLlxuIDQxODpcdFxuIDQxOTpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjc4NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDE0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQ6CgoqKkRlY29uc3RydWN0aW5nIHRoZSBTVE1NQUMgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBGbG93KioKClJpZ2h0LCBzbyB0byBlbmFibGUgdGhpcyBTVE1NQUMgZnVuY3Rpb25hbGl0eSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYCBhcmUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4gTm93LCBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0b3VjaGVzIGBfX3N0bW1hY19vcGVuYC4gIFdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgY2FsbGVkIGJ5IGJvdGggYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gIEtub3dpbmcgdGhlIHVzdWFsIGNvZGUgc3RydWN0dXJlLCBJIHNob3VsZCBwcm9iYWJseSBjb25jZW50cmF0ZSBteSBlZmZvcnRzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSBtYWtlIHRoZSBleHRlcm5hbCBjYWxscywgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gSG9sZCBvbi4uLiAgYF9fc3RtbWFjX29wZW5gIGlzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIFRoYXQgbWVhbnMgbXkgcmVhbCBmb2N1cyAqaGFzKiB0byBiZSBvbiBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLCB0aGUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcyB3aGV0aGVyIGBzdG1tYWNfb3BlbmAgaXMsIGluIGZhY3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGBuZXRfZGV2aWNlX29wcy5uZG9fb3BlbmAgbmV0IGRldmljZSBvcGVyYXRpb24uIEl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgdGhhdCBtYXBwaW5nIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1xcLm5kb19vcGVuLipzdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczMDg6XHQubmRvX29wZW4gPSBzdG1tYWNfb3BlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMwOS1cdC5uZG9fc3RhcnRfeG1pdCA9IHN0bW1hY194bWl0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzM5MQoJCQkJCQkJb3V0cHV0OiA1NwoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqUmVmbGVjdGluZyBvbiB0aGUgTVRVIENoYW5nZSoqCgpZZXMsIHRoYXQmIzM5O3MgZXhhY3RseSByaWdodC4gVGhlIGNvbmZpcm1hdGlvbiBpcyBpbW1lZGlhdGUuIEFuZCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNsZWFyIGFuZCBwcmVjaXNlLCB0aGUgZnVuY3Rpb24gYC5uZG9fY2hhbmdlX210dWAgd2l0aGluIHRoYXQgY29udGV4dC4uLiB0aGF0IHRyYW5zbGF0ZXMgZGlyZWN0bHkgdG8gYHN0bW1hY19jaGFuZ2VfbXR1YC4gTm8gYW1iaWd1aXR5IHRoZXJlLiBXZSYjMzk7cmUgb24gdGhlIHNhbWUgcGFnZSwgYW5kIHRoZSBtYXBwaW5nIGlzIGNyeXN0YWwgY2xlYXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1xcLm5kb19jaGFuZ2VfbXR1LipzdG1tYWNfY2hhbmdlX210dSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzExLVx0Lm5kb19zdG9wID0gc3RtbWFjX3JlbGVhc2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczMTI6XHQubmRvX2NoYW5nZV9tdHUgPSBzdG1tYWNfY2hhbmdlX210dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMxMy1cdC5uZG9fZml4X2ZlYXR1cmVzID0gc3RtbWFjX2ZpeF9mZWF0dXJlcyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM3NzEKCQkJCQkJCW91dHB1dDogMTQwCgkJCQkJCQl0aG91Z2h0czogMjg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaHVuY2ggaXMgY29ycmVjdDsgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YCBhcmUgdGhlIGtleSBmdW5jdGlvbnMgd2UgbmVlZCB0byBmb2N1cyBvbiBmb3IgZnV6emluZy4gSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBZZXMsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBwcm92aWRlIHN1ZmZpY2llbnQgY292ZXJhZ2UuCgpIb2xkIG9uLCBJIHNlZSB0aGF0IGBfX3N0bW1hY19vcGVuYCBpcyB0aGUgYWN0dWFsbHkgbW9kaWZpZWQgZnVuY3Rpb24uIFRoYXQgcmFpc2VzIGEgZmxhZy4gSG93ZXZlciwgaXQgbG9va3MgbGlrZSBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZWAgaXMgY2FsbGVkIHdpdGhpbiBpdC4gQWgsIHRoZSBwYXRjaCBhZGRyZXNzZXMgUEhZIHN1c3BlbnNpb24gaXNzdWVzIGR1cmluZyBpbnRlcmZhY2UgcmVvcGVuaW5ncywgbGlrZSBhZnRlciBhbiBNVFUgY2hhbmdlLiBUaGF0IGNvbmZpcm1zIGl0OyBgc3RtbWFjX2NoYW5nZV9tdHVgIGFuZCwgdWx0aW1hdGVseSwgYHN0bW1hY19vcGVuYCBhcmUgdGhlIGNvcnJlY3QgZW50cnkgcG9pbnRzIHRvIHRhcmdldC4KCk9rYXksIHRpbWUgdG8gZm9ybWFsaXplIHRoaXMgZm9yIHRoZSBmdXp6aW5nIHNldHVwLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHRoZSByZXN1bHRzIGFyZSBjbGVhcjoKCiogICAqKldvcnRoRnV6emluZyoqOiBUcnVlLCBhYnNvbHV0ZWx5LiBUaGlzIGlzIGEgY2xlYXIgYnVnIGZpeCBpbnZvbHZpbmcgYW4gZWRnZSBjYXNlIHRoYXQgY291bGQgYmUgZWFzaWx5IHRyaWdnZXJlZCBieSBmdXp6aW5nLgoqICAgKipGb2N1c1N5bWJvbHMqKjogWyYjMzQ7c3RtbWFjX29wZW4mIzM0OywgJiMzNDtzdG1tYWNfY2hhbmdlX210dSYjMzQ7XSAtIFdlJiMzOTtyZSB6ZXJvaW5nIGluIG9uIHRoZXNlLgoqICAgKipFbmFibGVDb25maWdzKio6IFsmIzM0O1NUTU1BQ19FVEgmIzM0OywgJiMzNDtTVE1NQUNfUENJJiMzNDtdIC0gVGhlc2UgY29uZmlndXJhdGlvbnMgd2lsbCBlbnN1cmUgd2UgaGF2ZSB0aGUgbmVjZXNzYXJ5IGhhcmR3YXJlIGJpbmRpbmdzIGZvciB0ZXN0aW5nLgoqICAgKipSZWFzb25pbmcqKjogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OyBUaGlzIGlzIHRoZSBjb3JlIGp1c3RpZmljYXRpb24gYW5kIHNob3VsZCBnaXZlIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiB3aHkgd2UmIzM5O3JlIHRhcmdldGluZyB0aGVzZSBzeW1ib2xzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX2NoYW5nZV9tdHUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX2NoYW5nZV9tdHUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjA2Ljc1NTMyMTIxN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1OTQzNjMzNzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfb3BlblwiLFxuICAgIFwic3RtbWFjX2NoYW5nZV9tdHVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lIGluIF9fc3RtbWFjX29wZW4sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIG5ldF9kZXZpY2Vfb3BzIG5kb19vcGVuIChzdG1tYWNfb3BlbikgYW5kIG5kb19jaGFuZ2VfbXR1IChzdG1tYWNfY2hhbmdlX210dSkuIFRoZSBzdG1tYWMgZHJpdmVyIGNhbiBiZSB0ZXN0ZWQgaW4gUUVNVSB2aWEgaXRzIFBDSSBiaW5kaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjowNi43NTUzMjgzNzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NTI2NTY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5NGIzMTZjYjhhZDc4NTBiNDFhYjM5Yjk4ZWExMTBkYjliYWIzZmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDM4MDFmOWQ0NTI3OGUuLmVhM2QxOTUyYjE5NDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG5AQCAtNDEzNCw2ICs0MTM0LDE1IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRkbWFfY29uZi1cXHUwMDNldHhfcXVldWVbaV0udGJzID0gcHJpdi1cXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbaV0udGJzO1xcbiBcXHRtZW1jcHkoXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBkbWFfY29uZiwgc2l6ZW9mKCpkbWFfY29uZikpO1xcbiBcXG4rXFx0LyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXRcXG4rXFx0ICogZGlzY29ubmVjdGluZyB0aGUgUEhZLCBlLmcuIG9uIE1UVSBjaGFuZ2UuIElFRUUgODAyLjMgYWxsb3dzIFBIWXNcXG4rXFx0ICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUFcXG4rXFx0ICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmVcXG4rXFx0ICogY2xvY2ssIGFuZCBwaHlsaW5rX3N0YXJ0KCkgYmVsb3cgcmVzdW1lcyB0aGUgUEhZIG9ubHkgYWZ0ZXIgdGhlXFxuK1xcdCAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuXFxuK1xcdCAqL1xcbitcXHRwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXFx1MDAzZXBoeWxpbmspO1xcbitcXG4gXFx0c3RtbWFjX3Jlc2V0X3F1ZXVlc19wYXJhbShwcml2KTtcXG4gXFxuIFxcdHJldCA9IHN0bW1hY19od19zZXR1cChkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjowNy4yMTE1ODMyNjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNTQ4NzM0OTk5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDk0YjMxNmNiOGFkNzg1MGI0MWFiMzliOThlYTExMGRiOWJhYjNmYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTA6MTY6MDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMzgwMWY5ZDQ1Mjc4ZS4uZWEzZDE5NTJiMTk0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC00MTM0LDYgKzQxMzQsMTUgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbaV0udGJzID0gcHJpdi1cdTAwM2VkbWFfY29uZi50eF9xdWV1ZVtpXS50YnM7XG4gXHRtZW1jcHkoXHUwMDI2cHJpdi1cdTAwM2VkbWFfY29uZiwgZG1hX2NvbmYsIHNpemVvZigqZG1hX2NvbmYpKTtcbiBcbitcdC8qIFRoZSBQSFkgaXMgc3VzcGVuZGVkIHdoZW4gdGhlIGludGVyZmFjZSBpcyByZW9wZW5lZCB3aXRob3V0XG4rXHQgKiBkaXNjb25uZWN0aW5nIHRoZSBQSFksIGUuZy4gb24gTVRVIGNoYW5nZS4gSUVFRSA4MDIuMyBhbGxvd3MgUEhZc1xuK1x0ICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUFcbitcdCAqIHNvZnR3YXJlIHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIHJlcXVpcmVzIGEgcnVubmluZyByZWNlaXZlXG4rXHQgKiBjbG9jaywgYW5kIHBoeWxpbmtfc3RhcnQoKSBiZWxvdyByZXN1bWVzIHRoZSBQSFkgb25seSBhZnRlciB0aGVcbitcdCAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuXG4rXHQgKi9cbitcdHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi1cdTAwM2VwaHlsaW5rKTtcbitcbiBcdHN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7XG4gXG4gXHRyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjA3LjIxMTU4NTA5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NDM4NjY1ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTdG1tYWMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIHRoYXQncyBiZWVuIHByb3Bvc2VkLCBhbmQgaXQncyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSBhZGRlZCBhIGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXHUwMDNlcGh5bGluayk7YCBjYWxsIHdpdGhpbiBgX19zdG1tYWNfb3BlbigpYC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgZHJpdmVyIGJlaGF2ZXMsIHByb2JhYmx5IHJlbGF0ZWQgdG8gbGluayBzdGF0ZSB0cmFuc2l0aW9ucyBvciBwb3dlciBtYW5hZ2VtZW50LiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gdmFsaWRhdGUgdGhpcy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBRRU1VIGVudmlyb25tZW50PyBUaGUgYHN0bW1hY2AgZHJpdmVyIGhhbmRsZXMgU1RNaWNyb2VsZWN0cm9uaWNzIEV0aGVybmV0IE1BQ3MsIGluY2x1ZGluZyB0aGUgMTAvMTAwLzEwMDAvRVFPUyB2YXJpYW50cy4gSSBrbm93IHRoZSBRRU1VIGVtdWxhdGVkIGVudmlyb25tZW50IGlzIGltcG9ydGFudCBmb3IgQ0kgdGVzdHMuIElzIGl0IGVtdWxhdGVkLCBvciBkbyB3ZSBoYXZlIGEgd2F5IHRvIHRlc3QgaXQgZGlyZWN0bHk/XG5cbkhhbmcgb24uLi4gYHN0bW1hY2AgaXMgdHlwaWNhbGx5IGZvdW5kIG9uIEFSTSBTb0NzLCBidXQgdGhlcmUncyBhIFBDSSB2ZXJzaW9uLCBgc3RtbWFjX3BjaS5jYC4gTm93IHdlJ3JlIHRhbGtpbmchIFRoZSBQQ0kgdmFyaWFudCBnaXZlcyBtZSBhIG11Y2ggY2xlYW5lciBwYXRoIGZvciBwb3RlbnRpYWwgUUVNVSB2YWxpZGF0aW9uLiBJIG5lZWQgdG8gY29uZmlybSBpZiBJIGNhbiB1dGlsaXplIGBzdG1tYWNgIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIElmIHNvLCB0aGF0IG9wZW5zIHVwIGEgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0ZXN0aW5nIHN0cmF0ZWd5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTEuNjU1NDU0NDI4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDkwNzEwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcGNpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc4Nj1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MDY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgwNy1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgyMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIyLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NDE9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg0ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDktXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTI9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg3MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NzEtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04OTA9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg5NzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04OTgtXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MDE9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkxOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjAtXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NDQ9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NTM6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTU0LVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk1Nz1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjctXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTcwPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk4MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgxLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05ODQ9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTk0OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05OTUtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwMjM9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDMtXFx0LnNldHVwID0gYWRsbl9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDQ2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDQ3LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTM6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1NC1cXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTg6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTktXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA2OTpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgaW90MjA0MF9zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDcwLVxcdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMTA5PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE5LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTEyMDpcXHRyZXQgPSBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIocGRldiwgcXVhcmtfcGNpX2RtaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMTQ1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHF1YXJrX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTQ2LVxcdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTI2Mz1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTI2NjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjY3LVxcdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0My1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTE2NT1zdGF0aWMgaW50IGxvb25nc29uX2duZXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTc3OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGxvb25nc29uX2duZXRfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXFx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDEtXFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XFx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cXHRwbGF0LVxcdTAwM2VmaXhfc29jX3Jlc2V0ID0gbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVxcdGxkLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XFx0aW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVxcdHJldCA9IGluZm8tXFx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MTg4PXN0YXRpYyBpbnQgbW90b3Jjb21tX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjE5MzpcXHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ5OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cXHRwbGF0LVxcdTAwM2VyZXN1bWVcXHRcXHQ9IG1vdG9yY29tbV9yZXN1bWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjEyOmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyODppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oOjEwOmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTEtXFx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHNucHNfZ21hYzVfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE4OnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMi1cXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XFx0cGxhdC1cXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNDpcXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA1OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA2LVxcdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTQtXFx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XFx0LnByb2JlID0gc3RtbWFjX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2OlxcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE3LVxcdC5kcml2ZXIgICAgICAgICA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTEuODg2MzcwODI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgxNDgzNTc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBTVE1NQUMgUENJIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgY2FuIGRlZmluaXRlbHkgYmUgdXRpbGl6ZWQgdGhyb3VnaCBQQ0ksIGFuZCB0aGUgYHN0bW1hY19wY2lgIGRyaXZlciBoYW5kbGVzIHRoYXQgYmluZGluZy4gR2l2ZW4gdGhhdCBpdCdzIGEgY29yZSBuZXR3b3JrIGRyaXZlciwgZnV6emluZyB0aGlzIHNlZW1zIGxpa2UgYSB3b3J0aHdoaWxlIGVuZGVhdm9yLlxuXG5NeSBpbml0aWFsIHNjYW4gb2YgdGhlIGNoYW5nZXMgcmV2ZWFscyB0aGF0IGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXHUwMDNlcGh5bGluayk7YCBoYXMgYmVlbiBpbnRyb2R1Y2VkIHdpdGhpbiB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24uIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgX19zdG1tYWNfb3BlbigpYCBpcyBleGVjdXRlZCB3aGVuZXZlciBhIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGJyb3VnaHQgb25saW5lLlxuXG5UaW1lIHRvIGRpdmUgaW50byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AgYW5kIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24gYW5kIGl0cyBzdXJyb3VuZGluZyBjb250ZXh0LiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYHBoeWxpbmtfcHJlcGFyZV9yZXN1bWVgIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBhbmQgb3BlcmF0aW9uYWwgZmxvdyB0byBpZGVudGlmeSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXRzIGFuZCB2dWxuZXJhYmlsaXRpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk5NjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTYuNzAxMjEwOTA2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTI3NDg0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3N0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MDUwPXN0bW1hY19zZXR1cF9kbWFfZGVzYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxMTUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTE2OiAqICBfX3N0bW1hY19vcGVuIC0gb3BlbiBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTE3LSAqICBAZGV2IDogcG9pbnRlciB0byB0aGUgZGV2aWNlIHN0cnVjdHVyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxMjU6c3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTI2LVxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDE4Mz1zdGF0aWMgaW50IHN0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjExOlxcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjEyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxMDE9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzc6XFx0XFx0cmV0ID0gX19zdG1tYWNfb3BlbihkZXYsIGRtYV9jb25mKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzgtXFx0XFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoxNi44NDY0OTIyMzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTIyNjA3Mzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBTVE1NQUMgRHJpdmVyKipcblxuT2theSwgc28gYF9fc3RtbWFjX29wZW5gIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzLCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLiBUaGF0J3MgYSBjbGVhciBpbmRpY2F0b3IgdGhhdCBpdCdzIGEgdml0YWwgZnVuY3Rpb247IGl0J3MgZGVmaW5pdGVseSBnZXR0aW5nIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgb3Igd2hlbiB3ZSBhcmUgY2hhbmdpbmcgc2V0dGluZ3MuIFRoaXMgbWVhbnMgaXQncyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbi5cblxuTm93LCBiZWZvcmUgSSBnbyBhbnkgZGVlcGVyIGludG8gdGhlIGNvZGUgaXRzZWxmLCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnLiBJIHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBTVE1NQUMgZHJpdmVyIGlzIHByb3Blcmx5IGVuYWJsZWQgYW5kIGNvbmZpZ3VyZWQgYmFzZWQgb24gdGhlIHRhcmdldCBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBidWlsZCBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMsIHNvIGNoZWNraW5nIHRoYXQgS2NvbmZpZyBmaWxlIHdpbGwgYmUgZXNzZW50aWFsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHRvIHNldCB0aGUgcmlnaHQgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA5NTgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyMC45NjkxMDIzMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY3MDI0MzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyMS4xMzYxMzE4NjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDEzMTc1MjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipEZXBlbmRlbmNpZXMgYW5kIHRoZSBTVE1NQUMqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0J3MganVzdCBtYWtlIHN1cmUgd2UndmUgZ290IGFsbCB0aGUgZHVja3MgaW4gYSByb3cuIEJlZm9yZSB3ZSBzdGFydCBqdW1waW5nIGludG8gaW1wbGVtZW50YXRpb24gZGV0YWlscywgaXQncyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIHdoYXQgb3RoZXIgY29tcG9uZW50cyBvciBjb25maWd1cmF0aW9ucyBkb2VzIGBTVE1NQUNfRVRIYCBuZWVkIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gV2UgY2FuJ3QgYnVpbGQgYSByb2J1c3Qgc3lzdGVtIHdpdGhvdXQgdW5kZXJzdGFuZGluZyBpdHMgZm91bmRhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZXF1aXJlbWVudHMgYmVmb3JlIHByb2NlZWRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzUyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MjQuNTQ5MzExOTMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgU1RNTUFDX0VUSFxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IEhBU19ETUFcXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gRVRIVE9PTF9ORVRMSU5LXFxuICAgNzpcXHRcXHRzZWxlY3QgTUlJXFxuICAgODpcXHRcXHRzZWxlY3QgUENTX1hQQ1NcXG4gICA5OlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDEwOlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDEyOlxcdFxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuICAxMzpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgSVBzIGJ1aWx0IGFyb3VuZCBhXFxuICAxNjpcXHRcXHQgIFN5bm9wc3lzIElQIENvcmUuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGlmIFNUTU1BQ19FVEhcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MjQuNTQ5NDQ1MjMzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTE1MjI0MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSwgbXkgbWluZCBpcyBhbHJlYWR5IHJ1bm5pbmcgdGhyb3VnaCB0aGUgZGVwZW5kZW5jaWVzIGhlcmUuXG5cbioqTmF2aWdhdGluZyBLZXJuZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuUmlnaHQsIHNvIHRvIGdldCBhIGdvb2QgaGFuZGxlIG9uIHRoaXMsIHRoZSBiZWhhdmlvciBzZWVtcyB0byBoaW5nZSBvbiBhIGZldyBrZXkgZGVmaW5lczogYEhBU19JT01FTWAsIGBIQVNfRE1BYCwgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCwgYW5kIGBFVEhUT09MX05FVExJTktgLiBJIGtub3cgdGhlc2UgYXJlIHR5cGljYWwsIGFuZCBpbiBtb3N0IGNhc2VzLCBJJ2QgZXhwZWN0IHRoZW0gdG8gYmUgc2V0LiBCdXQgSSBuZWVkIHRvIGJlICpzdXJlKi4gVG8gcmVhbGx5IHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGRldGFpbHMsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGZvciBgU1RNTUFDX1BDSWAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvcmUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHVuZGVyc3RhbmQgdGhlIGN1cnJlbnQgYnVpbGQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjE3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyNy44NDA5NzI2MzJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4MDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNDAwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDAwOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDQwMTpcXHRcXHRzZWxlY3QgTU9UT1JDT01NX1BIWVxcbiA0MDI6XFx0XFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcXG4gNDAzOlxcdFxcdGhlbHBcXG4gNDA0OlxcdFxcdCAgVGhpcyBlbmFibGVzIGdsdWUgZHJpdmVyIGZvciBNb3RvcmNvbW0gRFdNQUMtYmFzZWQgUENJIEV0aGVybmV0XFxuIDQwNTpcXHRcXHQgIGNvbnRyb2xsZXJzLiBDdXJyZW50bHkgb25seSBZVDY4MDEgaXMgc3VwcG9ydGVkLlxcbiA0MDY6XFx0XFxuIDQwNzpcXHRjb25maWcgU1RNTUFDX1BDSVxcbiA0MDg6XFx0XFx0dHJpc3RhdGUgXFxcIlNUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcXFwiXFxuIDQwOTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiA0MTA6XFx0XFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuIDQxMTpcXHRcXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbiA0MTI6XFx0XFx0aGVscFxcbiA0MTM6XFx0XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG4gNDE0OlxcdFxcdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXFxuIDQxNTpcXHRcXHQgIEQxMjE1OTk0QSBWSVJURVggRlBHQSBib2FyZCBhbmQgU05QUyBRb1MgSVBLIFByb3RvdHlwaW5nIEtpdC5cXG4gNDE2OlxcdFxcbiA0MTc6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIGNvbnRyb2xsZXIgd2l0aCB0aGlzIGludGVyZmFjZSwgc2F5IFkgb3IgTSBoZXJlLlxcbiA0MTg6XFx0XFxuIDQxOTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjI3Ljg0MTEyNDg4M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTc1NDE1MTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYnJlYWtkb3duIG9mIHdoYXQgSSdtIGxvb2tpbmcgYXQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uIGFuZCBDb2RlIEZsb3cqKlxuXG5SaWdodCwgc28gdG8gZW5hYmxlIHRoaXMgU1RNTUFDIGZ1bmN0aW9uYWxpdHksIEkgbmVlZCB0byBtYWtlIHN1cmUgYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAgYXJlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIHRoZSBiYXNlbGluZS4gTm93LCBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0b3VjaGVzIGBfX3N0bW1hY19vcGVuYC4gIFdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgY2FsbGVkIGJ5IGJvdGggYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gIEtub3dpbmcgdGhlIHVzdWFsIGNvZGUgc3RydWN0dXJlLCBJIHNob3VsZCBwcm9iYWJseSBjb25jZW50cmF0ZSBteSBlZmZvcnRzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSBtYWtlIHRoZSBleHRlcm5hbCBjYWxscywgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gSG9sZCBvbi4uLiAgYF9fc3RtbWFjX29wZW5gIGlzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIFRoYXQgbWVhbnMgbXkgcmVhbCBmb2N1cyAqaGFzKiB0byBiZSBvbiBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLCB0aGUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcyB3aGV0aGVyIGBzdG1tYWNfb3BlbmAgaXMsIGluIGZhY3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGBuZXRfZGV2aWNlX29wcy5uZG9fb3BlbmAgbmV0IGRldmljZSBvcGVyYXRpb24uIEl0J3MgdGltZSB0byBjaGVjayB0aGF0IG1hcHBpbmcgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI3ODcsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozMi40MTY1NDQ1NTlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTI0NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlxcXFwubmRvX29wZW4uKnN0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MzA4OlxcdC5uZG9fb3BlbiA9IHN0bW1hY19vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMwOS1cXHQubmRvX3N0YXJ0X3htaXQgPSBzdG1tYWNfeG1pdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MzIuNDk0Njc1MDA4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTE2MjYyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipSZWZsZWN0aW5nIG9uIHRoZSBNVFUgQ2hhbmdlKipcblxuWWVzLCB0aGF0J3MgZXhhY3RseSByaWdodC4gVGhlIGNvbmZpcm1hdGlvbiBpcyBpbW1lZGlhdGUuIEFuZCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNsZWFyIGFuZCBwcmVjaXNlLCB0aGUgZnVuY3Rpb24gYC5uZG9fY2hhbmdlX210dWAgd2l0aGluIHRoYXQgY29udGV4dC4uLiB0aGF0IHRyYW5zbGF0ZXMgZGlyZWN0bHkgdG8gYHN0bW1hY19jaGFuZ2VfbXR1YC4gTm8gYW1iaWd1aXR5IHRoZXJlLiBXZSdyZSBvbiB0aGUgc2FtZSBwYWdlLCBhbmQgdGhlIG1hcHBpbmcgaXMgY3J5c3RhbCBjbGVhci5cblxuXG4iLCJJbnB1dFRva2VucyI6MTMzOTEsIk91dHB1dFRva2VucyI6NTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozNS40MDYzMDU2MjVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTE2ODEzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJcXFxcLm5kb19jaGFuZ2VfbXR1LipzdG1tYWNfY2hhbmdlX210dVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzMwNz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzExLVxcdC5uZG9fc3RvcCA9IHN0bW1hY19yZWxlYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzMxMjpcXHQubmRvX2NoYW5nZV9tdHUgPSBzdG1tYWNfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczMTMtXFx0Lm5kb19maXhfZmVhdHVyZXMgPSBzdG1tYWNfZml4X2ZlYXR1cmVzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozNS41MDc0Nzk1OTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk4NDk5OTgwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgU1RNTUFDIERyaXZlciBQYXRjaCoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBodW5jaCBpcyBjb3JyZWN0OyBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG9uIGZvciBmdXp6aW5nLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIG1ha2Ugc3VyZSB3ZSdyZSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBZZXMsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBwcm92aWRlIHN1ZmZpY2llbnQgY292ZXJhZ2UuXG5cbkhvbGQgb24sIEkgc2VlIHRoYXQgYF9fc3RtbWFjX29wZW5gIGlzIHRoZSBhY3R1YWxseSBtb2RpZmllZCBmdW5jdGlvbi4gVGhhdCByYWlzZXMgYSBmbGFnLiBIb3dldmVyLCBpdCBsb29rcyBsaWtlIGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lYCBpcyBjYWxsZWQgd2l0aGluIGl0LiBBaCwgdGhlIHBhdGNoIGFkZHJlc3NlcyBQSFkgc3VzcGVuc2lvbiBpc3N1ZXMgZHVyaW5nIGludGVyZmFjZSByZW9wZW5pbmdzLCBsaWtlIGFmdGVyIGFuIE1UVSBjaGFuZ2UuIFRoYXQgY29uZmlybXMgaXQ7IGBzdG1tYWNfY2hhbmdlX210dWAgYW5kLCB1bHRpbWF0ZWx5LCBgc3RtbWFjX29wZW5gIGFyZSB0aGUgY29ycmVjdCBlbnRyeSBwb2ludHMgdG8gdGFyZ2V0LlxuXG5Pa2F5LCB0aW1lIHRvIGZvcm1hbGl6ZSB0aGlzIGZvciB0aGUgZnV6emluZyBzZXR1cC4gTGV0J3MgbWFrZSBzdXJlIHRoZSByZXN1bHRzIGFyZSBjbGVhcjpcblxuKiAgICoqV29ydGhGdXp6aW5nKio6IFRydWUsIGFic29sdXRlbHkuIFRoaXMgaXMgYSBjbGVhciBidWcgZml4IGludm9sdmluZyBhbiBlZGdlIGNhc2UgdGhhdCBjb3VsZCBiZSBlYXNpbHkgdHJpZ2dlcmVkIGJ5IGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHMqKjogW1wic3RtbWFjX29wZW5cIiwgXCJzdG1tYWNfY2hhbmdlX210dVwiXSAtIFdlJ3JlIHplcm9pbmcgaW4gb24gdGhlc2UuXG4qICAgKipFbmFibGVDb25maWdzKio6IFtcIlNUTU1BQ19FVEhcIiwgXCJTVE1NQUNfUENJXCJdIC0gVGhlc2UgY29uZmlndXJhdGlvbnMgd2lsbCBlbnN1cmUgd2UgaGF2ZSB0aGUgbmVjZXNzYXJ5IGhhcmR3YXJlIGJpbmRpbmdzIGZvciB0ZXN0aW5nLlxuKiAgICoqUmVhc29uaW5nKio6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuXCIgVGhpcyBpcyB0aGUgY29yZSBqdXN0aWZpY2F0aW9uIGFuZCBzaG91bGQgZ2l2ZSBhIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcgb2Ygd2h5IHdlJ3JlIHRhcmdldGluZyB0aGVzZSBzeW1ib2xzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc3MSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6NDIuNDkyNDgzMzI1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2NDQ1MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 10:14:15 +0000 UTC FinishedAt: 2026-08-03 10:16:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "c227b700-5411-4d0a-8a59-12e2ea857ef4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_open", "stmmac_change_mtu" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19jaGFuZ2VfbXR1JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OTRiMzE2Y2I4YWQ3ODUwYjQxYWIzOWI5OGVhMTEwZGI5YmFiM2ZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMzgwMWY5ZDQ1Mjc4ZS4uZWEzZDE5NTJiMTk0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC00MTM0LDYgJiM0Mzs0MTM0LDE1IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdGRtYV9jb25mLVx1MDAzZXR4X3F1ZXVlW2ldLnRicyA9IHByaXYtXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbaV0udGJzO1xuIFx0bWVtY3B5KFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIGRtYV9jb25mLCBzaXplb2YoKmRtYV9jb25mKSk7XG4gXG4mIzQzO1x0LyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXRcbiYjNDM7XHQgKiBkaXNjb25uZWN0aW5nIHRoZSBQSFksIGUuZy4gb24gTVRVIGNoYW5nZS4gSUVFRSA4MDIuMyBhbGxvd3MgUEhZc1xuJiM0MztcdCAqIHRvIHN0b3AgdGhlaXIgcmVjZWl2ZSBjbG9jayB3aGlsZSBwb3dlcmVkIGRvd24sIGJ1dCB0aGUgRE1BXG4mIzQzO1x0ICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmVcbiYjNDM7XHQgKiBjbG9jaywgYW5kIHBoeWxpbmtfc3RhcnQoKSBiZWxvdyByZXN1bWVzIHRoZSBQSFkgb25seSBhZnRlciB0aGVcbiYjNDM7XHQgKiBoYXJkd2FyZSBzZXR1cC4gUmVzdW1lIGEgc3VzcGVuZGVkIFBIWSBoZXJlIGZpcnN0LlxuJiM0MztcdCAqL1xuJiM0MztcdHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi1cdTAwM2VwaHlsaW5rKTtcbiYjNDM7XG4gXHRzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpO1xuIFxuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19jaGFuZ2VfbXR1JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OTRiMzE2Y2I4YWQ3ODUwYjQxYWIzOWI5OGVhMTEwZGI5YmFiM2ZhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDM4MDFmOWQ0NTI3OGUuLmVhM2QxOTUyYjE5NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtNDEzNCw2ICYjNDM7NDEzNCwxNSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCWRtYV9jb25mLSZndDt0eF9xdWV1ZVtpXS50YnMgPSBwcml2LSZndDtkbWFfY29uZi50eF9xdWV1ZVtpXS50YnM7CiAJbWVtY3B5KCZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYsIGRtYV9jb25mLCBzaXplb2YoKmRtYV9jb25mKSk7CiAKJiM0MzsJLyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXQKJiM0MzsJICogZGlzY29ubmVjdGluZyB0aGUgUEhZLCBlLmcuIG9uIE1UVSBjaGFuZ2UuIElFRUUgODAyLjMgYWxsb3dzIFBIWXMKJiM0MzsJICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUEKJiM0MzsJICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmUKJiM0MzsJICogY2xvY2ssIGFuZCBwaHlsaW5rX3N0YXJ0KCkgYmVsb3cgcmVzdW1lcyB0aGUgUEhZIG9ubHkgYWZ0ZXIgdGhlCiYjNDM7CSAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuCiYjNDM7CSAqLwomIzQzOwlwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtJmd0O3BoeWxpbmspOwomIzQzOwogCXN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7CiAKIAlyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN0bW1hYyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gcHJvcG9zZWQsIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYSBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZShwcml2LSZndDtwaHlsaW5rKTtgIGNhbGwgd2l0aGluIGBfX3N0bW1hY19vcGVuKClgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBkcml2ZXIgYmVoYXZlcywgcHJvYmFibHkgcmVsYXRlZCB0byBsaW5rIHN0YXRlIHRyYW5zaXRpb25zIG9yIHBvd2VyIG1hbmFnZW1lbnQuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byB2YWxpZGF0ZSB0aGlzLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBRRU1VIGVudmlyb25tZW50PyBUaGUgYHN0bW1hY2AgZHJpdmVyIGhhbmRsZXMgU1RNaWNyb2VsZWN0cm9uaWNzIEV0aGVybmV0IE1BQ3MsIGluY2x1ZGluZyB0aGUgMTAvMTAwLzEwMDAvRVFPUyB2YXJpYW50cy4gSSBrbm93IHRoZSBRRU1VIGVtdWxhdGVkIGVudmlyb25tZW50IGlzIGltcG9ydGFudCBmb3IgQ0kgdGVzdHMuIElzIGl0IGVtdWxhdGVkLCBvciBkbyB3ZSBoYXZlIGEgd2F5IHRvIHRlc3QgaXQgZGlyZWN0bHk/CgpIYW5nIG9uLi4uIGBzdG1tYWNgIGlzIHR5cGljYWxseSBmb3VuZCBvbiBBUk0gU29DcywgYnV0IHRoZXJlJiMzOTtzIGEgUENJIHZlcnNpb24sIGBzdG1tYWNfcGNpLmNgLiBOb3cgd2UmIzM5O3JlIHRhbGtpbmchIFRoZSBQQ0kgdmFyaWFudCBnaXZlcyBtZSBhIG11Y2ggY2xlYW5lciBwYXRoIGZvciBwb3RlbnRpYWwgUUVNVSB2YWxpZGF0aW9uLiBJIG5lZWQgdG8gY29uZmlybSBpZiBJIGNhbiB1dGlsaXplIGBzdG1tYWNgIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIElmIHNvLCB0aGF0IG9wZW5zIHVwIGEgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0ZXN0aW5nIHN0cmF0ZWd5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19wY2kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcdCYjNDM7PSBkd21hYy1tb3RvcmNvbW0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTM5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cdHVuc2lnbmVkIGludCBmdW5jO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ1OnN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ3LVx0c2l6ZV90IG5mdW5jcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfbGlzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSAqZnVuY19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgtXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzg2PXN0YXRpYyBpbnQgZWhsX3NnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgwNjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDctXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTgxMD1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MjE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIyLVx0LnNldHVwID0gZWhsX3JnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NDE9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg0ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0OS1cdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1Mj1zdGF0aWMgaW50IGVobF9wc2UwX3NnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODcwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UwX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODcxLVx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODkwPXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4OTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04OTgtXHQuc2V0dXAgPSBlaGxfcHNlMV9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MDE9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkxOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMC1cdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk0ND1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk1MzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1NC1cdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTc9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjctXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTcwPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk4MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05ODEtXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk4ND1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5OTQ6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTk1LVx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDIzPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDQyOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDMtXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNDY6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA0Ny1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTM6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDU0LVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDU4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTktXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDY5OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA3MC1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTEwOT1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTktXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTEyMDpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTEyMS1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExNDU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTE0Ni1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyNjM9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTI2NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyNjY6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTI2Ny1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5OTYwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIFNUTU1BQyBQQ0kgRHJpdmVyKioKCkFscmlnaHQsIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgY2FuIGRlZmluaXRlbHkgYmUgdXRpbGl6ZWQgdGhyb3VnaCBQQ0ksIGFuZCB0aGUgYHN0bW1hY19wY2lgIGRyaXZlciBoYW5kbGVzIHRoYXQgYmluZGluZy4gR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGNvcmUgbmV0d29yayBkcml2ZXIsIGZ1enppbmcgdGhpcyBzZWVtcyBsaWtlIGEgd29ydGh3aGlsZSBlbmRlYXZvci4KCk15IGluaXRpYWwgc2NhbiBvZiB0aGUgY2hhbmdlcyByZXZlYWxzIHRoYXQgYHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi0mZ3Q7cGh5bGluayk7YCBoYXMgYmVlbiBpbnRyb2R1Y2VkIHdpdGhpbiB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24uIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgX19zdG1tYWNfb3BlbigpYCBpcyBleGVjdXRlZCB3aGVuZXZlciBhIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGJyb3VnaHQgb25saW5lLgoKVGltZSB0byBkaXZlIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNgIGFuZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIGBfX3N0bW1hY19vcGVuKClgIGZ1bmN0aW9uIGFuZCBpdHMgc3Vycm91bmRpbmcgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZWAgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgb3BlcmF0aW9uYWwgZmxvdyB0byBpZGVudGlmeSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXRzIGFuZCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19zdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MDUwPXN0bW1hY19zZXR1cF9kbWFfZGVzYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTE1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTE2OiAqICBfX3N0bW1hY19vcGVuIC0gb3BlbiBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxMTctICogIEBkZXYgOiBwb2ludGVyIHRvIHRoZSBkZXZpY2Ugc3RydWN0dXJlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDEyNTpzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNi1cdFx0XHQgc3RydWN0IHN0bW1hY19kbWFfY29uZiAqZG1hX2NvbmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTgzPXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMTE6XHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjEyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxMDE9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzc6XHRcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzgtXHRcdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDk1OAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaWdnaW5nIGludG8gdGhlIFNUTU1BQyBEcml2ZXIqKgoKT2theSwgc28gYF9fc3RtbWFjX29wZW5gIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzLCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLiBUaGF0JiMzOTtzIGEgY2xlYXIgaW5kaWNhdG9yIHRoYXQgaXQmIzM5O3MgYSB2aXRhbCBmdW5jdGlvbjsgaXQmIzM5O3MgZGVmaW5pdGVseSBnZXR0aW5nIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgb3Igd2hlbiB3ZSBhcmUgY2hhbmdpbmcgc2V0dGluZ3MuIFRoaXMgbWVhbnMgaXQmIzM5O3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IG15IGludmVzdGlnYXRpb24uCgpOb3csIGJlZm9yZSBJIGdvIGFueSBkZWVwZXIgaW50byB0aGUgY29kZSBpdHNlbGYsIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIFNUTU1BQyBkcml2ZXIgaXMgcHJvcGVybHkgZW5hYmxlZCBhbmQgY29uZmlndXJlZCBiYXNlZCBvbiB0aGUgdGFyZ2V0IHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGJ1aWxkIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcywgc28gY2hlY2tpbmcgdGhhdCBLY29uZmlnIGZpbGUgd2lsbCBiZSBlc3NlbnRpYWwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIGp1c3QgdG8gc2V0IHRoZSByaWdodCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwOmNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzcxPWVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzczOmNvbmZpZyBTVE1NQUNfTElCUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNzUyCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRlcGVuZGVuY2llcyBhbmQgdGhlIFNUTU1BQyoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSYjMzk7dmUgZ290IGFsbCB0aGUgZHVja3MgaW4gYSByb3cuIEJlZm9yZSB3ZSBzdGFydCBqdW1waW5nIGludG8gaW1wbGVtZW50YXRpb24gZGV0YWlscywgaXQmIzM5O3MgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcy4gU3BlY2lmaWNhbGx5LCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgY29uZmlndXJhdGlvbnMgZG9lcyBgU1RNTUFDX0VUSGAgbmVlZCB0byBmdW5jdGlvbiBjb3JyZWN0bHk/IFdlIGNhbiYjMzk7dCBidWlsZCBhIHJvYnVzdCBzeXN0ZW0gd2l0aG91dCB1bmRlcnN0YW5kaW5nIGl0cyBmb3VuZGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlcXVpcmVtZW50cyBiZWZvcmUgcHJvY2VlZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIFNUTU1BQ19FVEhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IEhBU19ETUFcbiAgIDU6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDY6XHRcdGRlcGVuZHMgb24gRVRIVE9PTF9ORVRMSU5LXG4gICA3Olx0XHRzZWxlY3QgTUlJXG4gICA4Olx0XHRzZWxlY3QgUENTX1hQQ1NcbiAgIDk6XHRcdHNlbGVjdCBQQUdFX1BPT0xcbiAgMTA6XHRcdHNlbGVjdCBQSFlMSU5LXG4gIDExOlx0XHRzZWxlY3QgQ1JDMzJcbiAgMTI6XHRcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXG4gIDEzOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTQ6XHRcdGhlbHBcbiAgMTU6XHRcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgSVBzIGJ1aWx0IGFyb3VuZCBhXG4gIDE2Olx0XHQgIFN5bm9wc3lzIElQIENvcmUuXG4gIDE3Olx0XG4gIDE4Olx0aWYgU1RNTUFDX0VUSFxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMjE3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUsIG15IG1pbmQgaXMgYWxyZWFkeSBydW5uaW5nIHRocm91Z2ggdGhlIGRlcGVuZGVuY2llcyBoZXJlLgoKKipOYXZpZ2F0aW5nIEtlcm5lbCBDb25maWd1cmF0aW9uIE9wdGlvbnMqKgoKUmlnaHQsIHNvIHRvIGdldCBhIGdvb2QgaGFuZGxlIG9uIHRoaXMsIHRoZSBiZWhhdmlvciBzZWVtcyB0byBoaW5nZSBvbiBhIGZldyBrZXkgZGVmaW5lczogYEhBU19JT01FTWAsIGBIQVNfRE1BYCwgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCwgYW5kIGBFVEhUT09MX05FVExJTktgLiBJIGtub3cgdGhlc2UgYXJlIHR5cGljYWwsIGFuZCBpbiBtb3N0IGNhc2VzLCBJJiMzOTtkIGV4cGVjdCB0aGVtIHRvIGJlIHNldC4gQnV0IEkgbmVlZCB0byBiZSAqc3VyZSouIFRvIHJlYWxseSB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBkZXRhaWxzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBmb3IgYFNUTU1BQ19QQ0lgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb3JlIGluZm9ybWF0aW9uIG5lZWRlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGJ1aWxkIHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0MDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDQwMDpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiA0MDE6XHRcdHNlbGVjdCBNT1RPUkNPTU1fUEhZXG4gNDAyOlx0XHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuIDQwMzpcdFx0aGVscFxuIDQwNDpcdFx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcbiA0MDU6XHRcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXG4gNDA2Olx0XG4gNDA3Olx0Y29uZmlnIFNUTU1BQ19QQ0lcbiA0MDg6XHRcdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiA0MDk6XHRcdGRlcGVuZHMgb24gUENJXG4gNDEwOlx0XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbiA0MTE6XHRcdHNlbGVjdCBTVE1NQUNfTElCUENJXG4gNDEyOlx0XHRoZWxwXG4gNDEzOlx0XHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuIDQxNDpcdFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcbiA0MTU6XHRcdCAgRDEyMTU5OTRBIFZJUlRFWCBGUEdBIGJvYXJkIGFuZCBTTlBTIFFvUyBJUEsgUHJvdG90eXBpbmcgS2l0LlxuIDQxNjpcdFxuIDQxNzpcdFx0ICBJZiB5b3UgaGF2ZSBhIGNvbnRyb2xsZXIgd2l0aCB0aGlzIGludGVyZmFjZSwgc2F5IFkgb3IgTSBoZXJlLlxuIDQxODpcdFxuIDQxOTpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjc4NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDE0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQ6CgoqKkRlY29uc3RydWN0aW5nIHRoZSBTVE1NQUMgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBGbG93KioKClJpZ2h0LCBzbyB0byBlbmFibGUgdGhpcyBTVE1NQUMgZnVuY3Rpb25hbGl0eSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYCBhcmUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4gTm93LCBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0b3VjaGVzIGBfX3N0bW1hY19vcGVuYC4gIFdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgY2FsbGVkIGJ5IGJvdGggYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gIEtub3dpbmcgdGhlIHVzdWFsIGNvZGUgc3RydWN0dXJlLCBJIHNob3VsZCBwcm9iYWJseSBjb25jZW50cmF0ZSBteSBlZmZvcnRzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSBtYWtlIHRoZSBleHRlcm5hbCBjYWxscywgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gSG9sZCBvbi4uLiAgYF9fc3RtbWFjX29wZW5gIGlzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIFRoYXQgbWVhbnMgbXkgcmVhbCBmb2N1cyAqaGFzKiB0byBiZSBvbiBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLCB0aGUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcyB3aGV0aGVyIGBzdG1tYWNfb3BlbmAgaXMsIGluIGZhY3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGBuZXRfZGV2aWNlX29wcy5uZG9fb3BlbmAgbmV0IGRldmljZSBvcGVyYXRpb24uIEl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgdGhhdCBtYXBwaW5nIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1xcLm5kb19vcGVuLipzdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczMDg6XHQubmRvX29wZW4gPSBzdG1tYWNfb3BlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMwOS1cdC5uZG9fc3RhcnRfeG1pdCA9IHN0bW1hY194bWl0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzM5MQoJCQkJCQkJb3V0cHV0OiA1NwoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqUmVmbGVjdGluZyBvbiB0aGUgTVRVIENoYW5nZSoqCgpZZXMsIHRoYXQmIzM5O3MgZXhhY3RseSByaWdodC4gVGhlIGNvbmZpcm1hdGlvbiBpcyBpbW1lZGlhdGUuIEFuZCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNsZWFyIGFuZCBwcmVjaXNlLCB0aGUgZnVuY3Rpb24gYC5uZG9fY2hhbmdlX210dWAgd2l0aGluIHRoYXQgY29udGV4dC4uLiB0aGF0IHRyYW5zbGF0ZXMgZGlyZWN0bHkgdG8gYHN0bW1hY19jaGFuZ2VfbXR1YC4gTm8gYW1iaWd1aXR5IHRoZXJlLiBXZSYjMzk7cmUgb24gdGhlIHNhbWUgcGFnZSwgYW5kIHRoZSBtYXBwaW5nIGlzIGNyeXN0YWwgY2xlYXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1xcLm5kb19jaGFuZ2VfbXR1LipzdG1tYWNfY2hhbmdlX210dSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzExLVx0Lm5kb19zdG9wID0gc3RtbWFjX3JlbGVhc2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczMTI6XHQubmRvX2NoYW5nZV9tdHUgPSBzdG1tYWNfY2hhbmdlX210dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMxMy1cdC5uZG9fZml4X2ZlYXR1cmVzID0gc3RtbWFjX2ZpeF9mZWF0dXJlcyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM3NzEKCQkJCQkJCW91dHB1dDogMTQwCgkJCQkJCQl0aG91Z2h0czogMjg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaHVuY2ggaXMgY29ycmVjdDsgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YCBhcmUgdGhlIGtleSBmdW5jdGlvbnMgd2UgbmVlZCB0byBmb2N1cyBvbiBmb3IgZnV6emluZy4gSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBZZXMsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBwcm92aWRlIHN1ZmZpY2llbnQgY292ZXJhZ2UuCgpIb2xkIG9uLCBJIHNlZSB0aGF0IGBfX3N0bW1hY19vcGVuYCBpcyB0aGUgYWN0dWFsbHkgbW9kaWZpZWQgZnVuY3Rpb24uIFRoYXQgcmFpc2VzIGEgZmxhZy4gSG93ZXZlciwgaXQgbG9va3MgbGlrZSBgcGh5bGlua19wcmVwYXJlX3Jlc3VtZWAgaXMgY2FsbGVkIHdpdGhpbiBpdC4gQWgsIHRoZSBwYXRjaCBhZGRyZXNzZXMgUEhZIHN1c3BlbnNpb24gaXNzdWVzIGR1cmluZyBpbnRlcmZhY2UgcmVvcGVuaW5ncywgbGlrZSBhZnRlciBhbiBNVFUgY2hhbmdlLiBUaGF0IGNvbmZpcm1zIGl0OyBgc3RtbWFjX2NoYW5nZV9tdHVgIGFuZCwgdWx0aW1hdGVseSwgYHN0bW1hY19vcGVuYCBhcmUgdGhlIGNvcnJlY3QgZW50cnkgcG9pbnRzIHRvIHRhcmdldC4KCk9rYXksIHRpbWUgdG8gZm9ybWFsaXplIHRoaXMgZm9yIHRoZSBmdXp6aW5nIHNldHVwLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHRoZSByZXN1bHRzIGFyZSBjbGVhcjoKCiogICAqKldvcnRoRnV6emluZyoqOiBUcnVlLCBhYnNvbHV0ZWx5LiBUaGlzIGlzIGEgY2xlYXIgYnVnIGZpeCBpbnZvbHZpbmcgYW4gZWRnZSBjYXNlIHRoYXQgY291bGQgYmUgZWFzaWx5IHRyaWdnZXJlZCBieSBmdXp6aW5nLgoqICAgKipGb2N1c1N5bWJvbHMqKjogWyYjMzQ7c3RtbWFjX29wZW4mIzM0OywgJiMzNDtzdG1tYWNfY2hhbmdlX210dSYjMzQ7XSAtIFdlJiMzOTtyZSB6ZXJvaW5nIGluIG9uIHRoZXNlLgoqICAgKipFbmFibGVDb25maWdzKio6IFsmIzM0O1NUTU1BQ19FVEgmIzM0OywgJiMzNDtTVE1NQUNfUENJJiMzNDtdIC0gVGhlc2UgY29uZmlndXJhdGlvbnMgd2lsbCBlbnN1cmUgd2UgaGF2ZSB0aGUgbmVjZXNzYXJ5IGhhcmR3YXJlIGJpbmRpbmdzIGZvciB0ZXN0aW5nLgoqICAgKipSZWFzb25pbmcqKjogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OyBUaGlzIGlzIHRoZSBjb3JlIGp1c3RpZmljYXRpb24gYW5kIHNob3VsZCBnaXZlIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiB3aHkgd2UmIzM5O3JlIHRhcmdldGluZyB0aGVzZSBzeW1ib2xzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX2NoYW5nZV9tdHUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX2NoYW5nZV9tdHUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjA2Ljc1NTMyMTIxN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1OTQzNjMzNzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfb3BlblwiLFxuICAgIFwic3RtbWFjX2NoYW5nZV9tdHVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lIGluIF9fc3RtbWFjX29wZW4sIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIG5ldF9kZXZpY2Vfb3BzIG5kb19vcGVuIChzdG1tYWNfb3BlbikgYW5kIG5kb19jaGFuZ2VfbXR1IChzdG1tYWNfY2hhbmdlX210dSkuIFRoZSBzdG1tYWMgZHJpdmVyIGNhbiBiZSB0ZXN0ZWQgaW4gUUVNVSB2aWEgaXRzIFBDSSBiaW5kaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjowNi43NTUzMjgzNzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NTI2NTY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5NGIzMTZjYjhhZDc4NTBiNDFhYjM5Yjk4ZWExMTBkYjliYWIzZmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDoxNjowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDM4MDFmOWQ0NTI3OGUuLmVhM2QxOTUyYjE5NDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG5AQCAtNDEzNCw2ICs0MTM0LDE1IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRkbWFfY29uZi1cXHUwMDNldHhfcXVldWVbaV0udGJzID0gcHJpdi1cXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbaV0udGJzO1xcbiBcXHRtZW1jcHkoXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBkbWFfY29uZiwgc2l6ZW9mKCpkbWFfY29uZikpO1xcbiBcXG4rXFx0LyogVGhlIFBIWSBpcyBzdXNwZW5kZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIHJlb3BlbmVkIHdpdGhvdXRcXG4rXFx0ICogZGlzY29ubmVjdGluZyB0aGUgUEhZLCBlLmcuIG9uIE1UVSBjaGFuZ2UuIElFRUUgODAyLjMgYWxsb3dzIFBIWXNcXG4rXFx0ICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUFcXG4rXFx0ICogc29mdHdhcmUgcmVzZXQgaW4gc3RtbWFjX2h3X3NldHVwKCkgcmVxdWlyZXMgYSBydW5uaW5nIHJlY2VpdmVcXG4rXFx0ICogY2xvY2ssIGFuZCBwaHlsaW5rX3N0YXJ0KCkgYmVsb3cgcmVzdW1lcyB0aGUgUEhZIG9ubHkgYWZ0ZXIgdGhlXFxuK1xcdCAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuXFxuK1xcdCAqL1xcbitcXHRwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXFx1MDAzZXBoeWxpbmspO1xcbitcXG4gXFx0c3RtbWFjX3Jlc2V0X3F1ZXVlc19wYXJhbShwcml2KTtcXG4gXFxuIFxcdHJldCA9IHN0bW1hY19od19zZXR1cChkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjowNy4yMTE1ODMyNjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNTQ4NzM0OTk5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDk0YjMxNmNiOGFkNzg1MGI0MWFiMzliOThlYTExMGRiOWJhYjNmYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTA6MTY6MDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMzgwMWY5ZDQ1Mjc4ZS4uZWEzZDE5NTJiMTk0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC00MTM0LDYgKzQxMzQsMTUgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbaV0udGJzID0gcHJpdi1cdTAwM2VkbWFfY29uZi50eF9xdWV1ZVtpXS50YnM7XG4gXHRtZW1jcHkoXHUwMDI2cHJpdi1cdTAwM2VkbWFfY29uZiwgZG1hX2NvbmYsIHNpemVvZigqZG1hX2NvbmYpKTtcbiBcbitcdC8qIFRoZSBQSFkgaXMgc3VzcGVuZGVkIHdoZW4gdGhlIGludGVyZmFjZSBpcyByZW9wZW5lZCB3aXRob3V0XG4rXHQgKiBkaXNjb25uZWN0aW5nIHRoZSBQSFksIGUuZy4gb24gTVRVIGNoYW5nZS4gSUVFRSA4MDIuMyBhbGxvd3MgUEhZc1xuK1x0ICogdG8gc3RvcCB0aGVpciByZWNlaXZlIGNsb2NrIHdoaWxlIHBvd2VyZWQgZG93biwgYnV0IHRoZSBETUFcbitcdCAqIHNvZnR3YXJlIHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIHJlcXVpcmVzIGEgcnVubmluZyByZWNlaXZlXG4rXHQgKiBjbG9jaywgYW5kIHBoeWxpbmtfc3RhcnQoKSBiZWxvdyByZXN1bWVzIHRoZSBQSFkgb25seSBhZnRlciB0aGVcbitcdCAqIGhhcmR3YXJlIHNldHVwLiBSZXN1bWUgYSBzdXNwZW5kZWQgUEhZIGhlcmUgZmlyc3QuXG4rXHQgKi9cbitcdHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUocHJpdi1cdTAwM2VwaHlsaW5rKTtcbitcbiBcdHN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7XG4gXG4gXHRyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjA3LjIxMTU4NTA5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NDM4NjY1ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTdG1tYWMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIHRoYXQncyBiZWVuIHByb3Bvc2VkLCBhbmQgaXQncyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSBhZGRlZCBhIGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXHUwMDNlcGh5bGluayk7YCBjYWxsIHdpdGhpbiBgX19zdG1tYWNfb3BlbigpYC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgZHJpdmVyIGJlaGF2ZXMsIHByb2JhYmx5IHJlbGF0ZWQgdG8gbGluayBzdGF0ZSB0cmFuc2l0aW9ucyBvciBwb3dlciBtYW5hZ2VtZW50LiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gdmFsaWRhdGUgdGhpcy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBRRU1VIGVudmlyb25tZW50PyBUaGUgYHN0bW1hY2AgZHJpdmVyIGhhbmRsZXMgU1RNaWNyb2VsZWN0cm9uaWNzIEV0aGVybmV0IE1BQ3MsIGluY2x1ZGluZyB0aGUgMTAvMTAwLzEwMDAvRVFPUyB2YXJpYW50cy4gSSBrbm93IHRoZSBRRU1VIGVtdWxhdGVkIGVudmlyb25tZW50IGlzIGltcG9ydGFudCBmb3IgQ0kgdGVzdHMuIElzIGl0IGVtdWxhdGVkLCBvciBkbyB3ZSBoYXZlIGEgd2F5IHRvIHRlc3QgaXQgZGlyZWN0bHk/XG5cbkhhbmcgb24uLi4gYHN0bW1hY2AgaXMgdHlwaWNhbGx5IGZvdW5kIG9uIEFSTSBTb0NzLCBidXQgdGhlcmUncyBhIFBDSSB2ZXJzaW9uLCBgc3RtbWFjX3BjaS5jYC4gTm93IHdlJ3JlIHRhbGtpbmchIFRoZSBQQ0kgdmFyaWFudCBnaXZlcyBtZSBhIG11Y2ggY2xlYW5lciBwYXRoIGZvciBwb3RlbnRpYWwgUUVNVSB2YWxpZGF0aW9uLiBJIG5lZWQgdG8gY29uZmlybSBpZiBJIGNhbiB1dGlsaXplIGBzdG1tYWNgIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIElmIHNvLCB0aGF0IG9wZW5zIHVwIGEgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0ZXN0aW5nIHN0cmF0ZWd5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTEuNjU1NDU0NDI4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDkwNzEwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcGNpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc4Nj1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MDY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgwNy1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgyMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODIyLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NDE9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg0ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDktXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTI9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg3MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NzEtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04OTA9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg5NzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04OTgtXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MDE9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkxOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjAtXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NDQ9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NTM6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTU0LVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk1Nz1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjctXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTcwPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk4MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgxLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05ODQ9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTk0OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05OTUtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwMjM9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDMtXFx0LnNldHVwID0gYWRsbl9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDQ2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDQ3LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTM6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1NC1cXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwNTg6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwNTktXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA2OTpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgaW90MjA0MF9zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDcwLVxcdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMTA5PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE5LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTEyMDpcXHRyZXQgPSBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIocGRldiwgcXVhcmtfcGNpX2RtaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMTQ1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHF1YXJrX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTQ2LVxcdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTI2Mz1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTI2NjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjY3LVxcdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0My1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTE2NT1zdGF0aWMgaW50IGxvb25nc29uX2duZXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTc3OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGxvb25nc29uX2duZXRfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXFx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDEtXFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XFx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cXHRwbGF0LVxcdTAwM2VmaXhfc29jX3Jlc2V0ID0gbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVxcdGxkLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XFx0aW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVxcdHJldCA9IGluZm8tXFx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MTg4PXN0YXRpYyBpbnQgbW90b3Jjb21tX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjE5MzpcXHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ5OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cXHRwbGF0LVxcdTAwM2VyZXN1bWVcXHRcXHQ9IG1vdG9yY29tbV9yZXN1bWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjEyOmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyODppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oOjEwOmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTEtXFx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHNucHNfZ21hYzVfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE4OnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMi1cXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XFx0cGxhdC1cXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNDpcXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA1OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA2LVxcdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTQtXFx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XFx0LnByb2JlID0gc3RtbWFjX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2OlxcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE3LVxcdC5kcml2ZXIgICAgICAgICA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTEuODg2MzcwODI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgxNDgzNTc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBTVE1NQUMgUENJIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgY2FuIGRlZmluaXRlbHkgYmUgdXRpbGl6ZWQgdGhyb3VnaCBQQ0ksIGFuZCB0aGUgYHN0bW1hY19wY2lgIGRyaXZlciBoYW5kbGVzIHRoYXQgYmluZGluZy4gR2l2ZW4gdGhhdCBpdCdzIGEgY29yZSBuZXR3b3JrIGRyaXZlciwgZnV6emluZyB0aGlzIHNlZW1zIGxpa2UgYSB3b3J0aHdoaWxlIGVuZGVhdm9yLlxuXG5NeSBpbml0aWFsIHNjYW4gb2YgdGhlIGNoYW5nZXMgcmV2ZWFscyB0aGF0IGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lKHByaXYtXHUwMDNlcGh5bGluayk7YCBoYXMgYmVlbiBpbnRyb2R1Y2VkIHdpdGhpbiB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24uIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgX19zdG1tYWNfb3BlbigpYCBpcyBleGVjdXRlZCB3aGVuZXZlciBhIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGJyb3VnaHQgb25saW5lLlxuXG5UaW1lIHRvIGRpdmUgaW50byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AgYW5kIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYF9fc3RtbWFjX29wZW4oKWAgZnVuY3Rpb24gYW5kIGl0cyBzdXJyb3VuZGluZyBjb250ZXh0LiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYHBoeWxpbmtfcHJlcGFyZV9yZXN1bWVgIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBhbmQgb3BlcmF0aW9uYWwgZmxvdyB0byBpZGVudGlmeSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXRzIGFuZCB2dWxuZXJhYmlsaXRpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk5NjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MTYuNzAxMjEwOTA2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTI3NDg0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3N0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MDUwPXN0bW1hY19zZXR1cF9kbWFfZGVzYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxMTUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTE2OiAqICBfX3N0bW1hY19vcGVuIC0gb3BlbiBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTE3LSAqICBAZGV2IDogcG9pbnRlciB0byB0aGUgZGV2aWNlIHN0cnVjdHVyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDEyNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxMjU6c3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTI2LVxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDE4Mz1zdGF0aWMgaW50IHN0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjExOlxcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjEyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxMDE9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzc6XFx0XFx0cmV0ID0gX19zdG1tYWNfb3BlbihkZXYsIGRtYV9jb25mKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxMzgtXFx0XFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoxNi44NDY0OTIyMzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTIyNjA3Mzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBTVE1NQUMgRHJpdmVyKipcblxuT2theSwgc28gYF9fc3RtbWFjX29wZW5gIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzLCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLiBUaGF0J3MgYSBjbGVhciBpbmRpY2F0b3IgdGhhdCBpdCdzIGEgdml0YWwgZnVuY3Rpb247IGl0J3MgZGVmaW5pdGVseSBnZXR0aW5nIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgb3Igd2hlbiB3ZSBhcmUgY2hhbmdpbmcgc2V0dGluZ3MuIFRoaXMgbWVhbnMgaXQncyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbi5cblxuTm93LCBiZWZvcmUgSSBnbyBhbnkgZGVlcGVyIGludG8gdGhlIGNvZGUgaXRzZWxmLCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnLiBJIHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBTVE1NQUMgZHJpdmVyIGlzIHByb3Blcmx5IGVuYWJsZWQgYW5kIGNvbmZpZ3VyZWQgYmFzZWQgb24gdGhlIHRhcmdldCBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBidWlsZCBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMsIHNvIGNoZWNraW5nIHRoYXQgS2NvbmZpZyBmaWxlIHdpbGwgYmUgZXNzZW50aWFsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHRvIHNldCB0aGUgcmlnaHQgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA5NTgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyMC45NjkxMDIzMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY3MDI0MzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyMS4xMzYxMzE4NjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDEzMTc1MjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipEZXBlbmRlbmNpZXMgYW5kIHRoZSBTVE1NQUMqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0J3MganVzdCBtYWtlIHN1cmUgd2UndmUgZ290IGFsbCB0aGUgZHVja3MgaW4gYSByb3cuIEJlZm9yZSB3ZSBzdGFydCBqdW1waW5nIGludG8gaW1wbGVtZW50YXRpb24gZGV0YWlscywgaXQncyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIHdoYXQgb3RoZXIgY29tcG9uZW50cyBvciBjb25maWd1cmF0aW9ucyBkb2VzIGBTVE1NQUNfRVRIYCBuZWVkIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gV2UgY2FuJ3QgYnVpbGQgYSByb2J1c3Qgc3lzdGVtIHdpdGhvdXQgdW5kZXJzdGFuZGluZyBpdHMgZm91bmRhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZXF1aXJlbWVudHMgYmVmb3JlIHByb2NlZWRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzUyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MjQuNTQ5MzExOTMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgU1RNTUFDX0VUSFxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IEhBU19ETUFcXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gRVRIVE9PTF9ORVRMSU5LXFxuICAgNzpcXHRcXHRzZWxlY3QgTUlJXFxuICAgODpcXHRcXHRzZWxlY3QgUENTX1hQQ1NcXG4gICA5OlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDEwOlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDEyOlxcdFxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuICAxMzpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIGZvciB0aGUgRXRoZXJuZXQgSVBzIGJ1aWx0IGFyb3VuZCBhXFxuICAxNjpcXHRcXHQgIFN5bm9wc3lzIElQIENvcmUuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGlmIFNUTU1BQ19FVEhcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MjQuNTQ5NDQ1MjMzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTE1MjI0MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSwgbXkgbWluZCBpcyBhbHJlYWR5IHJ1bm5pbmcgdGhyb3VnaCB0aGUgZGVwZW5kZW5jaWVzIGhlcmUuXG5cbioqTmF2aWdhdGluZyBLZXJuZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuUmlnaHQsIHNvIHRvIGdldCBhIGdvb2QgaGFuZGxlIG9uIHRoaXMsIHRoZSBiZWhhdmlvciBzZWVtcyB0byBoaW5nZSBvbiBhIGZldyBrZXkgZGVmaW5lczogYEhBU19JT01FTWAsIGBIQVNfRE1BYCwgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCwgYW5kIGBFVEhUT09MX05FVExJTktgLiBJIGtub3cgdGhlc2UgYXJlIHR5cGljYWwsIGFuZCBpbiBtb3N0IGNhc2VzLCBJJ2QgZXhwZWN0IHRoZW0gdG8gYmUgc2V0LiBCdXQgSSBuZWVkIHRvIGJlICpzdXJlKi4gVG8gcmVhbGx5IHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGRldGFpbHMsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGZvciBgU1RNTUFDX1BDSWAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvcmUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHVuZGVyc3RhbmQgdGhlIGN1cnJlbnQgYnVpbGQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjE3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjoyNy44NDA5NzI2MzJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4MDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNDAwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDAwOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDQwMTpcXHRcXHRzZWxlY3QgTU9UT1JDT01NX1BIWVxcbiA0MDI6XFx0XFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcXG4gNDAzOlxcdFxcdGhlbHBcXG4gNDA0OlxcdFxcdCAgVGhpcyBlbmFibGVzIGdsdWUgZHJpdmVyIGZvciBNb3RvcmNvbW0gRFdNQUMtYmFzZWQgUENJIEV0aGVybmV0XFxuIDQwNTpcXHRcXHQgIGNvbnRyb2xsZXJzLiBDdXJyZW50bHkgb25seSBZVDY4MDEgaXMgc3VwcG9ydGVkLlxcbiA0MDY6XFx0XFxuIDQwNzpcXHRjb25maWcgU1RNTUFDX1BDSVxcbiA0MDg6XFx0XFx0dHJpc3RhdGUgXFxcIlNUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcXFwiXFxuIDQwOTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiA0MTA6XFx0XFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuIDQxMTpcXHRcXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbiA0MTI6XFx0XFx0aGVscFxcbiA0MTM6XFx0XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG4gNDE0OlxcdFxcdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXFxuIDQxNTpcXHRcXHQgIEQxMjE1OTk0QSBWSVJURVggRlBHQSBib2FyZCBhbmQgU05QUyBRb1MgSVBLIFByb3RvdHlwaW5nIEtpdC5cXG4gNDE2OlxcdFxcbiA0MTc6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIGNvbnRyb2xsZXIgd2l0aCB0aGlzIGludGVyZmFjZSwgc2F5IFkgb3IgTSBoZXJlLlxcbiA0MTg6XFx0XFxuIDQxOTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjE2OjI3Ljg0MTEyNDg4M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTc1NDE1MTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYnJlYWtkb3duIG9mIHdoYXQgSSdtIGxvb2tpbmcgYXQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uIGFuZCBDb2RlIEZsb3cqKlxuXG5SaWdodCwgc28gdG8gZW5hYmxlIHRoaXMgU1RNTUFDIGZ1bmN0aW9uYWxpdHksIEkgbmVlZCB0byBtYWtlIHN1cmUgYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAgYXJlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIHRoZSBiYXNlbGluZS4gTm93LCBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0b3VjaGVzIGBfX3N0bW1hY19vcGVuYC4gIFdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgY2FsbGVkIGJ5IGJvdGggYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gIEtub3dpbmcgdGhlIHVzdWFsIGNvZGUgc3RydWN0dXJlLCBJIHNob3VsZCBwcm9iYWJseSBjb25jZW50cmF0ZSBteSBlZmZvcnRzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSBtYWtlIHRoZSBleHRlcm5hbCBjYWxscywgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19jaGFuZ2VfbXR1YC4gSG9sZCBvbi4uLiAgYF9fc3RtbWFjX29wZW5gIGlzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIFRoYXQgbWVhbnMgbXkgcmVhbCBmb2N1cyAqaGFzKiB0byBiZSBvbiBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgLCB0aGUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcyB3aGV0aGVyIGBzdG1tYWNfb3BlbmAgaXMsIGluIGZhY3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGBuZXRfZGV2aWNlX29wcy5uZG9fb3BlbmAgbmV0IGRldmljZSBvcGVyYXRpb24uIEl0J3MgdGltZSB0byBjaGVjayB0aGF0IG1hcHBpbmcgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI3ODcsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozMi40MTY1NDQ1NTlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTI0NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlxcXFwubmRvX29wZW4uKnN0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MzA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgc3RtbWFjX25ldGRldl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MzA4OlxcdC5uZG9fb3BlbiA9IHN0bW1hY19vcGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzMwOS1cXHQubmRvX3N0YXJ0X3htaXQgPSBzdG1tYWNfeG1pdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6MzIuNDk0Njc1MDA4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTE2MjYyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipSZWZsZWN0aW5nIG9uIHRoZSBNVFUgQ2hhbmdlKipcblxuWWVzLCB0aGF0J3MgZXhhY3RseSByaWdodC4gVGhlIGNvbmZpcm1hdGlvbiBpcyBpbW1lZGlhdGUuIEFuZCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNsZWFyIGFuZCBwcmVjaXNlLCB0aGUgZnVuY3Rpb24gYC5uZG9fY2hhbmdlX210dWAgd2l0aGluIHRoYXQgY29udGV4dC4uLiB0aGF0IHRyYW5zbGF0ZXMgZGlyZWN0bHkgdG8gYHN0bW1hY19jaGFuZ2VfbXR1YC4gTm8gYW1iaWd1aXR5IHRoZXJlLiBXZSdyZSBvbiB0aGUgc2FtZSBwYWdlLCBhbmQgdGhlIG1hcHBpbmcgaXMgY3J5c3RhbCBjbGVhci5cblxuXG4iLCJJbnB1dFRva2VucyI6MTMzOTEsIk91dHB1dFRva2VucyI6NTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozNS40MDYzMDU2MjVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTE2ODEzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJcXFxcLm5kb19jaGFuZ2VfbXR1LipzdG1tYWNfY2hhbmdlX210dVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzMwNz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzExLVxcdC5uZG9fc3RvcCA9IHN0bW1hY19yZWxlYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzMxMjpcXHQubmRvX2NoYW5nZV9tdHUgPSBzdG1tYWNfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczMTMtXFx0Lm5kb19maXhfZmVhdHVyZXMgPSBzdG1tYWNfZml4X2ZlYXR1cmVzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxNjozNS41MDc0Nzk1OTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk4NDk5OTgwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgU1RNTUFDIERyaXZlciBQYXRjaCoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBodW5jaCBpcyBjb3JyZWN0OyBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX2NoYW5nZV9tdHVgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG9uIGZvciBmdXp6aW5nLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIG1ha2Ugc3VyZSB3ZSdyZSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBZZXMsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBwcm92aWRlIHN1ZmZpY2llbnQgY292ZXJhZ2UuXG5cbkhvbGQgb24sIEkgc2VlIHRoYXQgYF9fc3RtbWFjX29wZW5gIGlzIHRoZSBhY3R1YWxseSBtb2RpZmllZCBmdW5jdGlvbi4gVGhhdCByYWlzZXMgYSBmbGFnLiBIb3dldmVyLCBpdCBsb29rcyBsaWtlIGBwaHlsaW5rX3ByZXBhcmVfcmVzdW1lYCBpcyBjYWxsZWQgd2l0aGluIGl0LiBBaCwgdGhlIHBhdGNoIGFkZHJlc3NlcyBQSFkgc3VzcGVuc2lvbiBpc3N1ZXMgZHVyaW5nIGludGVyZmFjZSByZW9wZW5pbmdzLCBsaWtlIGFmdGVyIGFuIE1UVSBjaGFuZ2UuIFRoYXQgY29uZmlybXMgaXQ7IGBzdG1tYWNfY2hhbmdlX210dWAgYW5kLCB1bHRpbWF0ZWx5LCBgc3RtbWFjX29wZW5gIGFyZSB0aGUgY29ycmVjdCBlbnRyeSBwb2ludHMgdG8gdGFyZ2V0LlxuXG5Pa2F5LCB0aW1lIHRvIGZvcm1hbGl6ZSB0aGlzIGZvciB0aGUgZnV6emluZyBzZXR1cC4gTGV0J3MgbWFrZSBzdXJlIHRoZSByZXN1bHRzIGFyZSBjbGVhcjpcblxuKiAgICoqV29ydGhGdXp6aW5nKio6IFRydWUsIGFic29sdXRlbHkuIFRoaXMgaXMgYSBjbGVhciBidWcgZml4IGludm9sdmluZyBhbiBlZGdlIGNhc2UgdGhhdCBjb3VsZCBiZSBlYXNpbHkgdHJpZ2dlcmVkIGJ5IGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHMqKjogW1wic3RtbWFjX29wZW5cIiwgXCJzdG1tYWNfY2hhbmdlX210dVwiXSAtIFdlJ3JlIHplcm9pbmcgaW4gb24gdGhlc2UuXG4qICAgKipFbmFibGVDb25maWdzKio6IFtcIlNUTU1BQ19FVEhcIiwgXCJTVE1NQUNfUENJXCJdIC0gVGhlc2UgY29uZmlndXJhdGlvbnMgd2lsbCBlbnN1cmUgd2UgaGF2ZSB0aGUgbmVjZXNzYXJ5IGhhcmR3YXJlIGJpbmRpbmdzIGZvciB0ZXN0aW5nLlxuKiAgICoqUmVhc29uaW5nKio6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHBoeWxpbmtfcHJlcGFyZV9yZXN1bWUgaW4gX19zdG1tYWNfb3Blbiwgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgbmV0X2RldmljZV9vcHMgbmRvX29wZW4gKHN0bW1hY19vcGVuKSBhbmQgbmRvX2NoYW5nZV9tdHUgKHN0bW1hY19jaGFuZ2VfbXR1KS4gVGhlIHN0bW1hYyBkcml2ZXIgY2FuIGJlIHRlc3RlZCBpbiBRRU1VIHZpYSBpdHMgUENJIGJpbmRpbmcuXCIgVGhpcyBpcyB0aGUgY29yZSBqdXN0aWZpY2F0aW9uIGFuZCBzaG91bGQgZ2l2ZSBhIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcgb2Ygd2h5IHdlJ3JlIHRhcmdldGluZyB0aGVzZSBzeW1ib2xzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc3MSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTY6NDIuNDkyNDgzMzI1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA2NDQ1MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInN0bW1hY19jaGFuZ2VfbXR1XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gcGh5bGlua19wcmVwYXJlX3Jlc3VtZSBpbiBfX3N0bW1hY19vcGVuLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBuZXRfZGV2aWNlX29wcyBuZG9fb3BlbiAoc3RtbWFjX29wZW4pIGFuZCBuZG9fY2hhbmdlX210dSAoc3RtbWFjX2NoYW5nZV9tdHUpLiBUaGUgc3RtbWFjIGRyaXZlciBjYW4gYmUgdGVzdGVkIGluIFFFTVUgdmlhIGl0cyBQQ0kgYmluZGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[1] Phase: Succeeded StartedAt: 2026-08-03 10:16:55 +0000 UTC FinishedAt: 2026-08-03 10:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 10:16:55 +0000 UTC FinishedAt: 2026-08-03 10:16:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2] Phase: Succeeded StartedAt: 2026-08-03 10:16:55 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-03 10:16:56 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-03 10:16:56 +0000 UTC FinishedAt: 2026-08-03 10:17:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-03 10:16:56 +0000 UTC FinishedAt: 2026-08-03 10:17:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-1986799964/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-03 10:17:21 +0000 UTC FinishedAt: 2026-08-03 10:39:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-03 10:17:21 +0000 UTC FinishedAt: 2026-08-03 10:39:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*9c9d8029-c625-421b-bb8c-bed492ca241f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-1986799964/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "1d471bf7-31c5-47c1-b2d0-3c66fa2dc33e", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-3309198474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-03 10:17:21 +0000 UTC FinishedAt: 2026-08-03 10:39:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*9c9d8029-c625-421b-bb8c-bed492ca241f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-1986799964/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "1d471bf7-31c5-47c1-b2d0-3c66fa2dc33e", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-3309198474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-03 10:39:51 +0000 UTC FinishedAt: 2026-08-03 10:39:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-03 10:39:51 +0000 UTC FinishedAt: 2026-08-03 10:39:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-03 10:39:51 +0000 UTC FinishedAt: 2026-08-03 10:40:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-03 10:39:51 +0000 UTC FinishedAt: 2026-08-03 10:40:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-3549746843/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-03 10:40:29 +0000 UTC FinishedAt: 2026-08-03 10:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-03 10:40:29 +0000 UTC FinishedAt: 2026-08-03 10:42:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*1d471bf7-31c5-47c1-b2d0-3c66fa2dc33e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-3309198474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-03 10:42:38 +0000 UTC FinishedAt: 2026-08-03 10:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-03 10:42:38 +0000 UTC FinishedAt: 2026-08-03 10:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-03 10:42:38 +0000 UTC FinishedAt: 2026-08-03 11:05:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-03 10:42:38 +0000 UTC FinishedAt: 2026-08-03 11:05:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*9c9d8029-c625-421b-bb8c-bed492ca241f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-3549746843/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "4f99f357-b7d6-4116-a76e-2746acab4204", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-904151615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-03 10:42:38 +0000 UTC FinishedAt: 2026-08-03 11:05:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*9c9d8029-c625-421b-bb8c-bed492ca241f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-3549746843/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "4f99f357-b7d6-4116-a76e-2746acab4204", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-904151615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-03 11:05:43 +0000 UTC FinishedAt: 2026-08-03 11:05:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-03 11:05:43 +0000 UTC FinishedAt: 2026-08-03 11:05:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-03 11:05:43 +0000 UTC FinishedAt: 2026-08-03 11:07:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-03 11:05:43 +0000 UTC FinishedAt: 2026-08-03 11:07:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4f99f357-b7d6-4116-a76e-2746acab4204,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-904151615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*1d471bf7-31c5-47c1-b2d0-3c66fa2dc33e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4f99f357-b7d6-4116-a76e-2746acab4204,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-3309198474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-904151615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:08:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:07:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-1406980500/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:07:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:07:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-03 11:07:50 +0000 UTC FinishedAt: 2026-08-03 11:07:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-03 11:08:00 +0000 UTC FinishedAt: 2026-08-03 11:10:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnr52[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","stmmac_change_mtu"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"c227b700-5411-4d0a-8a59-12e2ea857ef4","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-03 11:08:00 +0000 UTC FinishedAt: 2026-08-03 11:10:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*1d471bf7-31c5-47c1-b2d0-3c66fa2dc33e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4f99f357-b7d6-4116-a76e-2746acab4204,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-3309198474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-build-action-904151615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowlnr52/series-workflowlnr52-convert-artifact-1406980500/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}