Name: series-workflowgws77 Phase: Failed StartedAt: 2026-08-02 01:58:53 +0000 UTC FinishedAt: 2026-08-02 02:45:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgws77[0] Phase: Succeeded StartedAt: 2026-08-02 01:58:53 +0000 UTC FinishedAt: 2026-08-02 02:45:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgws77[0].run-triage Phase: Succeeded StartedAt: 2026-08-02 01:58:53 +0000 UTC FinishedAt: 2026-08-02 02:45:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGEgbWFudWFsIGltcGxlbWVudGF0aW9uIG9mIGZpbmRpbmcgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgaW4gYW4gYXJyYXkgd2l0aCB0aGUgc3RhbmRhcmQgYG1pbl9ub3RfemVyb2AgbWFjcm8uIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDI6NDM6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY1xuaW5kZXggYTVlZmExM2E4OTJmZC4uODk3MzNmM2ZiMWYyOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY1xuQEAgLTEyMSwxNSAmIzQzOzEyMSw4IEBAIG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcbiBcdGludCBpO1xuIFx0czggcmV0ID0gMDtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNpemVvZihyLVx1MDAzZWFsbCk7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdGlmICghci1cdTAwM2VhbGxbaV0pXG4tXHRcdFx0Y29udGludWU7XG4tXG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0ID0gbWluKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuLVx0XHRlbHNlXG4tXHRcdFx0cmV0ID0gci1cdTAwM2VhbGxbaV07XG4tXHR9XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc2l6ZW9mKHItXHUwMDNlYWxsKTsgaSYjNDM7JiM0MzspXG4mIzQzO1x0XHRyZXQgPSBtaW5fbm90X3plcm8ocmV0LCByLVx1MDAzZWFsbFtpXSk7XG4gXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzNjE4YmM3YTExMzFhYjYzYmJiMzYzMmRhZWMzOTQ5NzJiZmRhYzY2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMiAwMjo0Mzo0OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKaW5kZXggYTVlZmExM2E4OTJmZC4uODk3MzNmM2ZiMWYyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKQEAgLTEyMSwxNSAmIzQzOzEyMSw4IEBAIG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcikKIAlpbnQgaTsKIAlzOCByZXQgPSAwOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IHNpemVvZihyLSZndDthbGwpOyBpJiM0MzsmIzQzOykgewotCQlpZiAoIXItJmd0O2FsbFtpXSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChyZXQpCi0JCQlyZXQgPSBtaW4ocmV0LCByLSZndDthbGxbaV0pOwotCQllbHNlCi0JCQlyZXQgPSByLSZndDthbGxbaV07Ci0JfQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgc2l6ZW9mKHItJmd0O2FsbCk7IGkmIzQzOyYjNDM7KQomIzQzOwkJcmV0ID0gbWluX25vdF96ZXJvKHJldCwgci0mZ3Q7YWxsW2ldKTsKIAogCXJldHVybiByZXQ7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNjcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2ktRmkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY2AuIFRoZSBjaGFuZ2UgaXMgaW4gdGhlIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBmdW5jdGlvbiDigJMgaXQmIzM5O3MgYSBzaW1wbGUgbG9vcCBvcHRpbWl6YXRpb24gdXNpbmcgYG1pbl9ub3RfemVybyhyZXQsIHItJmd0O2FsbFtpXSlgLiBOb3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBIbW0sIGBtdDc2eDJgLi4uIHRoYXQmIzM5O3MgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIsIHJpZ2h0PyBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgdGVzdGluZyB0aGlzIHByb3Blcmx5IHdpbGwgYmUgYSBwYWluLiBUaGVzZSBzb3J0cyBvZiBkcml2ZXJzIG9mdGVuIHJlbHkgb24gc3BlY2lmaWMgaGFyZHdhcmUsIHR5cGljYWxseSBQQ0llIG9yIFVTQiBXaS1GaSBhZGFwdGVycy4gQ2FuIEkgZXZlbiB0ZXN0IHRoaXMgaW4gYSBRRU1VIGVudmlyb25tZW50PyBJdCYjMzk7ZCBiZSBncmVhdCBpZiBJIGNvdWxkLCB0aGF0JiMzOTtkIG1ha2UgdGhpbmdzIGEgbG90IGVhc2llci4KCldhaXQgYSBtaW51dGUsIEkgc2VlbSB0byByZWNhbGwgdGhhdCBtdDc2eDIgKmRvZXMqIGhhdmUgVVNCIHZhcmlhbnRzLiBMZXQmIzM5O3MgdmVyaWZ5IHRoYXQuIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGluIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyB0aGF0IGNsZWFybHkgaW5kaWNhdGVzIFVTQiBzdXBwb3J0OiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvYC4KSSBoYXZlIHRvIHNlZSBpZiB0aGVyZSBpcyBzb21ldGhpbmcgVVNCLXNwZWNpZmljIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBRRU1VIHRlc3RpbmcgaXMgdmlhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIyNyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01UNzZ4Ml9DT01NT04pICYjNDM7PSBtdDc2eDItY29tbW9uLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzZ4MkUpICYjNDM7PSBtdDc2eDJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX01UNzZ4MlUpICYjNDM7PSBtdDc2eDJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTo2Om10NzZ4Mi1jb21tb24teSA6PSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtNy1cdGVlcHJvbS5vIG1hYy5vIGluaXQubyBwaHkubyBtY3Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjk6bXQ3NngyZS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMC1cdHBjaS5vIHBjaV9tYWluLm8gcGNpX2luaXQubyBwY2lfbWN1Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjEzOm10NzZ4MnUteSA6PSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMTQtXHR1c2IubyB1c2JfaW5pdC5vIHVzYl9tYWluLm8gdXNiX21hYy5vIHVzYl9tY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTEwLSNpbmNsdWRlIFwmIzM0O2VlcHJvbS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTU6bXQ3NngyX2VlcHJvbV9nZXRfbWFjYWRkcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMz1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjQ6bXQ3NngyX2hhc19jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCAqZWZ1c2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9NDk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwOm10NzZ4Ml9hcHBseV9jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCAqZWZ1c2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5NDpcdGlmICghbXQ3NngyX2hhc19jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtOTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxMjM6c3RhdGljIGludCBtdDc2eDJfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xNDA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTQxOm10NzZ4Ml9lZXByb21fbG9hZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE0Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTUyLVx0aWYgKGZvdW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTUzOlx0XHRmb3VuZCA9ICFtdDc2eDJfY2hlY2tfZWVwcm9tKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY3LVx0aWYgKGZvdW5kKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxNjg6XHRcdG10NzZ4Ml9hcHBseV9jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY5LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xODI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE4MzptdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTk3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxOTg6bXQ3NngyX3NldF9yc3NpX29mZnNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IGNoYWluLCB1OCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xOTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTIwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMDpzdGF0aWMgZW51bSBtdDc2eDJfY2FsX2NoYW5uZWxfZ3JvdXBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMTptdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGludCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMjY9c3RhdGljIHU4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyMjc6bXQ3NngyX2dldF81Z19yeF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjI4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIyOTpcdGVudW0gbXQ3NngyX2NhbF9jaGFubmVsX2dyb3VwIGdyb3VwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjMxOlx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjMyLVx0c3dpdGNoIChncm91cCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI1NDp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2NS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI2NjpcdFx0dmFsID0gbXQ3NngyX2dldF81Z19yeF9nYWluKGRldiwgY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNjg6XHRtdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoZGV2LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjcwLVx0bXQ3NngwMl9nZXRfcnhfZ2FpbihkZXYsIGNoYW4tXHUwMDNlYmFuZCwgXHUwMDI2dmFsLCBcdTAwMjZsbmFfMmcsIGxuYV81Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNzE6XHRtdDc2eDJfc2V0X3Jzc2lfb2Zmc2V0KGRldiwgMCwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI3MjpcdG10NzZ4Ml9zZXRfcnNzaV9vZmZzZXQoZGV2LCAxLCB2YWwgXHUwMDNlXHUwMDNlIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI4OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyOTA6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3JlYWRfcnhfZ2Fpbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyOTI6dm9pZCBtdDc2eDJfZ2V0X3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTMtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNDE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9yYXRlX3Bvd2VyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTM0Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MzQ0Om10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0NTpcdFx0XHQgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzQ2LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MzczPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNzQ6bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzc1Olx0XHRcdCBzdHJ1Y3QgbXQ3NngyX3R4X3Bvd2VyX2luZm8gKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzYtXHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzktXHRpbnQgY2hhbm5lbCA9IGNoYW4tXHUwMDNlaHdfdmFsdWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozODA6XHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4MS1cdGludCBkZWx0YV9pZHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzg1Olx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzg2LVx0b2Zmc2V0ICYjNDM7PSBncm91cCAqIE1UX1RYX1BPV0VSX0dST1VQX1NJWkVfNUc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDI1OnZvaWQgbXQ3NngyX2dldF9wb3dlcl9pbmZvKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDI2Olx0XHRcdCAgIHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyAqdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQyNy1cdFx0XHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDM3LVx0XHRidzQwIFx1MDAzZVx1MDAzZT0gODtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQzODpcdFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKGRldiwgdCwgY2hhbiwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQzOS1cdFx0XHRcdFx0IE1UX0VFX1RYX1BPV0VSXzBfU1RBUlRfNUcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQwOlx0XHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fNWcoZGV2LCB0LCBjaGFuLCAxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQxLVx0XHRcdFx0XHQgTVRfRUVfVFhfUE9XRVJfMV9TVEFSVF81Ryk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDItXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQzOlx0XHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fMmcoZGV2LCB0LCBjaGFuLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ0LVx0XHRcdFx0XHQgTVRfRUVfVFhfUE9XRVJfMF9TVEFSVF8yRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDU6XHRcdG10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhkZXYsIHQsIGNoYW4sIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDYtXHRcdFx0XHRcdCBNVF9FRV9UWF9QT1dFUl8xX1NUQVJUXzJHKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDk6XHRpZiAobXQ3NngyX3Rzc2lfZW5hYmxlZChkZXYpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NTAtXHQgICAgIW10NzZ4MDJfZmllbGRfdmFsaWQodC1cdTAwM2V0YXJnZXRfcG93ZXIpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ1NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9wb3dlcl9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ1ODppbnQgbXQ3NngyX2dldF90ZW1wX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDJfdGVtcF9jb21wICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NjY6XHRpZiAoIW10NzZ4Ml90ZW1wX3R4X2FsY19lbmFibGVkKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NjctXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ4OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0OTA6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF90ZW1wX2NvbXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkyOmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00OTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ5NjpcdHJldCA9IG10NzZ4Ml9lZXByb21fbG9hZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDk3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDAtXHRtdDc2eDAyX2VlcHJvbV9wYXJzZV9od19jYXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwMTpcdG10NzZ4Ml9lZXByb21fZ2V0X21hY2FkZHIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTUwMi1cdHJldCA9IG10NzZfZWVwcm9tX292ZXJyaWRlKFx1MDAyNmRldi1cdTAwM2VtcGh5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTA5OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9lZXByb21faW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDoxMTplbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC0xMi1cdE1UX0NIXzVHX0pBUEFOLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MjE6c3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIyLVx0dTggdGFyZ2V0X3Bvd2VyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MzU6c3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMzYtXHR1OCB0ZW1wXzI1X3JlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQzOnZvaWQgbXQ3NngyX2dldF9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDQtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQ1OnZvaWQgbXQ3NngyX2dldF9wb3dlcl9pbmZvKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDY6XHRcdFx0ICAgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDctXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQ4OmludCBtdDc2eDJfZ2V0X3RlbXBfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgc3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAgKnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDk6dm9pZCBtdDc2eDJfcmVhZF9yeF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg9NTE9c3RhdGljIGlubGluZSBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo1MjptdDc2eDJfaGFzX2V4dF9sbmEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC01My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg9NjI9c3RhdGljIGlubGluZSBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo2MzptdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD03NT1zdGF0aWMgaW5saW5lIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjc2Om10NzZ4Ml90c3NpX2VuYWJsZWQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC03Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3ODpcdHJldHVybiAhbXQ3NngyX3RlbXBfdHhfYWxjX2VuYWJsZWQoZGV2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTc5LVx0ICAgICAgIChtdDc2eDAyX2VlcHJvbV9nZXQoZGV2LCBNVF9FRV9OSUNfQ09ORl8xKSBcdTAwMjZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoxMTppbnQgbXQ3NngyX3NldF9zYXJfc3BlY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTItXHRcdFx0IGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9zYXJfc3BlY3MgKnNhcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzEtXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcdTAwMjZtcGh5LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcdFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjM4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9zZXRfc2FyX3NwZWNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYz00MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjQxOm10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtNDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo1Njp2b2lkIG10NzZ4Ml9yZXNldF93bGFuKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTc4LW91dDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OTpcdG10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShkZXYsIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtODAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjgxOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9yZXNldF93bGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy04Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM9MTc4PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTgwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODEtXHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODMtXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTg0Olx0c3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvIHR4cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODUtXHRzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHQgPSB7fTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE5MTpcdFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvKGRldiwgXHUwMDI2dHhwLCBjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoxOTI6XHRcdG10NzZ4Ml9nZXRfcmF0ZV9wb3dlcihkZXYsIFx1MDAyNnQsIGNoYW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMjAzLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoyMDQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2luaXRfdHhwb3dlcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo5OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTQ1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jOjQ2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tYWNfc3RvcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg9MTE9c3RydWN0IG10NzZ4MDJfZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTI6c3RydWN0IG10NzZ4Ml9zdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xMy1zdHJ1Y3QgbXQ3NngwMl92aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjE1OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTc6c3RhdGljIGlubGluZSB2b2lkIG10NzZ4Ml9tYWNfcmVzdW1lKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTE6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEyLSNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzoxNTppbnQgbXQ3NngyX21jdV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTggYncsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xNi1cdFx0XHQgICB1OCBid19pbmRleCwgYm9vbCBzY2FuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTQ0LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3Vfc2V0X2NoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo0NzppbnQgbXQ3NngyX21jdV9sb2FkX2NyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCB0eXBlLCB1OCB0ZW1wX2xldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDgtXHRcdCAgICAgICB1OCBjaGFubmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTcyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjczOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfbG9hZF9jcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjc1OmludCBtdDc2eDJfbWN1X2luaXRfZ2FpbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTMyIGdhaW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03Ni1cdFx0XHQgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5MjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfbWN1X2luaXRfZ2Fpbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk0OmludCBtdDc2eDJfbWN1X3Rzc2lfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk1Olx0XHRcdCBzdHJ1Y3QgbXQ3NngyX3Rzc2lfY29tcCAqdHNzaV9kYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTk4LVx0XHRfX2xlMzIgaWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5OTpcdFx0c3RydWN0IG10NzZ4Ml90c3NpX2NvbXAgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwMC1cdH0gX19wYWNrZWQgX19hbGlnbmVkKDQpIG1zZyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xMDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTA4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfdHNzaV9jb21wKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaD0yNz1lbnVtIG1jdV9jYWxpYnJhdGlvbiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaDo0NTplbnVtIG10NzZ4Ml9tY3VfY3JfbW9kZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC00Ni1cdE1UX1JGX0NSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NTI6c3RydWN0IG10NzZ4Ml90c3NpX2NvbXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNTMtXHR1OCBwYV9tb2RlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjM6aW50IG10NzZ4Ml9tY3VfdHNzaV9jb21wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjQ6XHRcdFx0IHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wICp0c3NpX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjU6aW50IG10NzZ4Ml9tY3VfaW5pdF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1MzIgZ2FpbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTY2LVx0XHRcdCBib29sIGZvcmNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD0yNj1zdGF0aWMgaW5saW5lIGJvb2wgaXNfbXQ3NjEyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6MzE6c3RhdGljIGlubGluZSBib29sIG10NzZ4Ml9jaGFubmVsX3NpbGVudChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjM5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MTppbnQgbXQ3NngyX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MjppbnQgbXQ3NngyX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0NDppbnQgbXQ3NngyX3NldF9zYXJfc3BlY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC00NS1cdFx0XHQgY29uc3Qgc3RydWN0IGNmZzgwMjExX3Nhcl9zcGVjcyAqc2FyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ2OnZvaWQgbXQ3NngyX3BoeV9wb3dlcl9vbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0Nzp2b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ4OmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NDk6aW50IG10NzZ4Ml9hcHBseV9jYWxpYnJhdGlvbl9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBpbnQgY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MDppbnQgbXQ3NngyZV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MTppbnQgbXQ3NngydV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjUzOnZvaWQgbXQ3NngyX3BoeV9zZXRfYW50ZW5uYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NDppbnQgbXQ3NngyX3BoeV9zdGFydChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NTppbnQgbXQ3NngyX3BoeV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTU2LVx0XHRcdCAgIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1Nzp2b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1ODp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MDppbnQgbXQ3NngyX21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjYxOmludCBtdDc2eDJfbWN1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTYyLVx0XHRcdCAgIHU4IGJ3X2luZGV4LCBib29sIHNjYW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjM6aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY0LVx0XHQgICAgICAgdTggY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2ODppbnQgbXQ3NngyX21hY19yZXNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBoYXJkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY5OnZvaWQgbXQ3NngyX3Jlc2V0X3dsYW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjcwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTcxLVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD03Mj12b2lkIG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NzQ6dm9pZCBtdDc2eDJfcGh5X3Rzc2lfY29tcGVuc2F0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVx0XHRcdFx0IGVudW0gbmw4MDIxMV9iYW5kIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Nzc6dm9pZCBtdDc2eDJfY29uZmlndXJlX3R4X2RlbGF5KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNzgtXHRcdFx0ICAgICAgIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsIHU4IGJ3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc5OnZvaWQgbXQ3NngyX2FwcGx5X2dhaW5fYWRqKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjgwOnZvaWQgbXQ3NngyX3BoeV91cGRhdGVfY2hhbm5lbF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTgxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoxMTojaW5jbHVkZSBcJiMzNDttdDc2eDIuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEyLSNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjE5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJ1X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyMTppbnQgbXQ3NngydV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIyOmludCBtdDc2eDJ1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIzOnZvaWQgbXQ3NngydV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyNDp2b2lkIG10NzZ4MnVfc3RvcF9odyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjY6aW50IG10NzZ4MnVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyNzppbnQgbXQ3NngydV9tYWNfc3RvcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjk6aW50IG10NzZ4MnVfcGh5X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTMwLVx0XHRcdCAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjMxOnZvaWQgbXQ3NngydV9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzM6dm9pZCBtdDc2eDJ1X21jdV9jb21wbGV0ZV91cmIoc3RydWN0IHVyYiAqdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDozNDppbnQgbXQ3NngydV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzU6aW50IG10NzZ4MnVfbWN1X2Z3X2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM3OmludCBtdDc2eDJ1X2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzg6dm9pZCBtdDc2eDJ1X3F1ZXVlc19kZWluaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM5OnZvaWQgbXQ3NngydV9zdG9wX3F1ZXVlcyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6NDA6aW50IG10NzZ4MnVfc2tiX2RtYV9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGVudW0gZG1hX21zZ19wb3J0IHBvcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtNDEtXHRcdFx0IHUzMiBmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwOiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc2eDJlX2RldmljZV90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTMtXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgMHg3NjYyKSB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjIwOm10NzZ4MmVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yOC1cdFx0LnVwZGF0ZV9zdXJ2ZXkgPSBtdDc2eDAyX3VwZGF0ZV9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6Mjk6XHRcdC5zZXRfY2hhbm5lbCA9IG10NzZ4MmVfc2V0X2NoYW5uZWwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zMC1cdFx0LnR4X3ByZXBhcmVfc2tiID0gbXQ3NngwMl90eF9wcmVwYXJlX3NrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjU2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzZ4Ml9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy01Ny1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy02Mi1cdG10NzZfbW1pb19pbml0KG1kZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NjM6XHRtdDc2eDJfcmVzZXRfd2xhbihkZXYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NzU6XHRyZXQgPSBtdDc2eDJfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy03Ni1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDE6bXQ3NngyZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDc6XHRtdDc2eDJfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xMTE9c3RhdGljIGludCBfX21heWJlX3VudXNlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTEyOm10NzZ4MmVfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTEzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xNDA9c3RhdGljIGludCBfX21heWJlX3VudXNlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTQxOm10NzZ4MmVfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNjc6XHRyZXR1cm4gbXQ3NngyX3Jlc3VtZV9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE2OC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzZ4MmVfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE3MS1NT0RVTEVfRklSTVdBUkUoTVQ3NjYyX0ZJUk1XQVJFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xNzY9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG10NzZwY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTc3LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3ODpcdC5pZF90YWJsZVx0PSBtdDc2eDJlX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3OTpcdC5wcm9iZVx0XHQ9IG10NzZ4MmVfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxODA6XHQucmVtb3ZlXHRcdD0gbXQ3NngyZV9yZW1vdmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODEtI2lmZGVmIENPTkZJR19QTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTgyOlx0LnN1c3BlbmRcdD0gbXQ3NngyZV9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTgzOlx0LnJlc3VtZVx0XHQ9IG10NzZ4MmVfcmVzdW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTg0LSNlbmRpZiAvKiBDT05GSUdfUE0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvZGVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo3OiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTgtI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTEyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjEzOm10NzZ4Ml9tYWNfcGJmX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTMwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjMxOm10NzZ4Ml9maXh1cF94dGFsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0zMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy02OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6NzA6aW50IG10NzZ4Ml9tYWNfcmVzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgaGFyZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkwOlx0bXQ3NngyX21hY19wYmZfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy05MS1cdG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkyOlx0bXQ3NngyX2ZpeHVwX3h0YWwoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtOTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0xNDE9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTQyOm10NzZ4Ml9wb3dlcl9vbl9yZl9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMTQzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE2Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxNjM6bXQ3NngyX3Bvd2VyX29uX3JmKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBpbnQgdW5pdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMTY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTc5Olx0bXQ3NngyX3Bvd2VyX29uX3JmX3BhdGNoKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE4MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE4ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxODU6bXQ3NngyX3Bvd2VyX29uKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyMTY6XHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjE3Olx0bXQ3NngyX3Bvd2VyX29uX3JmKGRldiwgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjIwOmludCBtdDc2eDJfcmVzdW1lX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIyNC1cdG10NzZ4MDJfZG1hX2Rpc2FibGUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjI1Olx0bXQ3NngyX3Jlc2V0X3dsYW4oZGV2LCB0cnVlKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzY0CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1UNzZ4MiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10NzZ4MmAgZHJpdmVyLCBhbmQgSSBzZWUgaXQgaGFzIGJvdGggUENJIChgbXQ3NngyZWApIGFuZCBVU0IgKGBtdDc2eDJ1YCkgdmVyc2lvbnMuIFdhaXQsICpgbXQ3NngydWAqIGlzIHNwZWNpZmljYWxseSB0aGUgVVNCIGRyaXZlciwgcmlnaHQ/IEludGVyZXN0aW5nLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHNlZSBpZiB3ZSBjYW4gZ2V0IGl0IHJ1bm5pbmcgaW4gUUVNVSBvciBwZXJoYXBzIHVzZSBhIFVTQiBnYWRnZXQgc2V0dXAgZm9yIHRlc3RpbmcuIEJ1dCB0aGVuIEkgcmVtZW1iZXIsIHN5emthbGxlciBoYXMgdGhhdCBuaWZ0eSBVU0IgZnV6emluZyBzdWJzeXN0ZW0sIGB2aGNpYC4gQnJpbGxpYW50ISBUaGF0IG1lYW5zIFVTQiBkcml2ZXJzIGFyZSBkZWZpbml0ZWx5IGZ1enphYmxlIHdpdGggc3l6a2FsbGVyLgoKTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCBhIHNwZWNpZmljIHRhcmdldC4gSSByZWNhbGwgc2VlaW5nIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNgLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIFVTQiB2YXJpYW50LCBgbXQ3NngydWAsIGFjdHVhbGx5IHVzZSB0aGlzIGNvZGU/IFRpbWUgdG8gaW52ZXN0aWdhdGUuIEkmIzM5O2xsIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0uIEFoLCBoZXJlJiMzOTtzIHdoYXQgSSBuZWVkZWQ6IGBwaHkuY2AgaXMgcGFydCBvZiBgbXQ3NngyLWNvbW1vbi15YCwgd2hpY2ggaXMgdGhlbiBsaW5rZWQgaW50byBib3RoIHRoZSBQQ0kgYW5kIFVTQiB2YXJpYW50cy4gU28sIGBtdDc2eDItY29tbW9uYCBpcyBhIHNoYXJlZCBtb2R1bGUuIEV4Y2VsbGVudCEgTGV0JiMzOTtzIHZlcmlmeSB0aGlzIGluIHRoZSBgTWFrZWZpbGVgIGluIHRoZSBgbXQ3NngyYCBkaXJlY3RvcnkgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2eDJ1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfTVQ3NngyRSkgJiM0Mzs9IG10NzZ4MmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3NngyVSkgJiM0Mzs9IG10NzZ4MnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZT05PW10NzZ4MmUteSA6PSBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6MTM6bXQ3NngydS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xNC1cdHVzYi5vIHVzYl9pbml0Lm8gdXNiX21haW4ubyB1c2JfbWFjLm8gdXNiX21jdS5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2NTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqRXhhbWluaW5nIHRoZSBNVDc2eDIgQ29tbW9uIE1vZHVsZSBCdWlsZCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGBtdDc2eDItY29tbW9uLXlgIGJ1aWxkIGZsYWcuIFJpZ2h0LCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBpdCYjMzk7cyBjb25kaXRpb25hbGx5IGJ1aWx0LCBidXQgdGhlIGNvbmRpdGlvbiBpcyBrZXkuIEl0JiMzOTtzIGJ1aWx0IG9ubHkgd2hlbiBgQ09ORklHX01UNzZ4Ml9DT01NT05gIGlzIGRlZmluZWQuIFRoaXMgaXMgc3RhbmRhcmQga2VybmVsIG1vZHVsZSBjb25maWd1cmF0aW9uIGxvZ2ljLiBOb3csIEkgbmVlZCB0byBzZWUgKndoZXJlKiBgQ09ORklHX01UNzZ4Ml9DT01NT05gIGdldHMgaXRzIHZhbHVlLiBUaGUgbG9naWNhbCBwbGFjZSB0byBsb29rIGlzIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZHJpdmVyLiBTbywgSSBuZWVkIHRvIG9wZW4gYW5kIGV4YW1pbmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGRlZmluaXRpb24sIGRlZmF1bHRzLCBhbmQgcG90ZW50aWFsbHksIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBpbXBhY3QgdGhlIHNldHRpbmcgb2YgdGhhdCBjb25maWcgb3B0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgZmluZCBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzZ4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzaywgYXMgaWYgdGhlc2Ugd2VyZSBteSBpbnRlcm5hbCB0aG91Z2h0czoKCioqSW52ZXN0aWdhdGluZyBNVDc2IENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpBbHJpZ2h0LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBgTVQ3NmAgY29uZmlndXJhdGlvbnMuIFRpbWUgdG8gZGlnIGludG8gdGhlIHNvdXJjZSB0cmVlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgc3RyYWlnaHQgdG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQg4oCTIGl0JiMzOTtzIHdoZXJlIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVycyBzaG91bGQgYmUgZGVmaW5lZC4gRnJvbSB0aGVyZSBJJiMzOTtsbCBiZSBhYmxlIHRvIHdvcmsgb3V0IHdoYXQmIzM5O3MgYXZhaWxhYmxlIGFuZCwgaWYgbmVjZXNzYXJ5LCB0cmFjZSBkZXBlbmRlbmNpZXMgb3IgZmluZCBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9ucy4gVGhpcyB3aWxsIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBwb3NzaWJsZSBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TVQ3NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjg6XHRkZXBlbmRzIG9uIE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjk6XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEwLVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE0Olx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxNjpjb25maWcgTVQ3Nl9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMDpjb25maWcgTVQ3NngwMl9MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjI6XHRzZWxlY3QgTVQ3Nl9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI2Olx0c2VsZWN0IE1UNzZfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Mjg6Y29uZmlnIE1UNzZfQ09OTkFDX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozMDpcdHNlbGVjdCBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zMj1jb25maWcgTVQ3OTJ4X0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozNDpcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozODpcdHNlbGVjdCBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQwOmNvbmZpZyBNVDc2X05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MjpcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyOTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc2eDJgIGZhbWlseSwgYW5kIEkmIzM5O20gc3RhcnRpbmcgd2l0aCB0aGUgS2NvbmZpZyBmaWxlLiBMZXQgbWUgc2VlLi4uIEkmIzM5O2xsIHB1bGwgdXAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciB2ZXJzaW9uIGFyZSBkZWZpbmVkLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGZlYXR1cmUgdG9nZ2xlcyAoODAyLjExYWMgc3VwcG9ydCwgc2VjdXJpdHkgcHJvdG9jb2xzLCBldGMuKSwgZGVidWcgc2V0dGluZ3MsIGFuZCBtYXliZSBzb21lIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zLiBVbmRlcnN0YW5kaW5nIHRoaXMgS2NvbmZpZyBpcyBjcnVjaWFsIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgZHJpdmVyJiMzOTtzIGNvcmUgbG9naWMgYmVjYXVzZSBpdCBkaWN0YXRlcyB3aGljaCBwYXJ0cyBvZiB0aGUgZHJpdmVyIGFyZSBjb21waWxlZCBhbmQgaG93IHRoZXkgYmVoYXZlIG9uIGRpZmZlcmVudCBzeXN0ZW1zLiBJdCYjMzk7bGwgZ2l2ZSBtZSBhIHJvYWRtYXAgb2Ygd2hhdCYjMzk7cyAqcG9zc2libGUqIHRvIGNvbmZpZ3VyZSBhbmQgaGVscHMgbmFycm93IGRvd24gd2hhdCYjMzk7cyByZWxldmFudCB0byBteSBjdXJyZW50IHRhc2sgb3IgZGVidWdnaW5nIGVmZm9ydC4gTGV0JiMzOTtzIHNlZSB3aGF0IGdvb2RpZXMgYXJlIGluIHRoZXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0Oy4qJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjI6Y29uZmlnIE1UNzZ4Ml9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MzpcdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjQ6XHRzZWxlY3QgTVQ3NngwMl9MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6NTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Njpjb25maWcgTVQ3NngyRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo3Olx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngyRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo4Olx0c2VsZWN0IE1UNzZ4Ml9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6OTpcdGRlcGVuZHMgb24gTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMTpcdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTI6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTIvTVQ3NjAyL01UNzY2Mi1iYXNlZCBQQ0llIHdpcmVsZXNzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjEzOlx0ICBkZXZpY2VzLCB3aGljaCBjb21wbHkgd2l0aCBJRUVFIDgwMi4xMWFjIHN0YW5kYXJkcyBhbmQgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNDpcdCAgMlNTIHRvIDg2Nk1iaXQvcyBQSFkgcmF0ZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE2Olx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTg6Y29uZmlnIE1UNzZ4MlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTk6XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2eDJVIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjA6XHRzZWxlY3QgTVQ3NngyX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMTpcdHNlbGVjdCBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjM6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNDpcdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjU6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTJVLWJhc2VkIFVTQiAzLjAgd2lyZWxlc3MgZG9uZ2xlcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjY6XHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDJTUyB0b1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNzpcdCAgODY2TWJpdC9zIFBIWSByYXRlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyODpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjk6XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNjMyCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3NngyVSBVU0IgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQ09ORklHX01UNzZ4MlVgLiBSaWdodCwgdGhhdCYjMzk7cyB0aGUgVVNCIGRyaXZlciBmb3IgdGhlIE1UNzZ4MlUgY2hpcHNldC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgaXQgZGVwZW5kcyBvbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjaywgYE1BQzgwMjExYCwgYW5kIHRoZSBgVVNCYCBzdWJzeXN0ZW0sIG5hdHVyYWxseS4gSWYgSSBlbmFibGUgdGhpcyBkcml2ZXIsIHRoZSBjb25maWd1cmF0aW9uIHdpbGwgcHVsbCBpbiBgTVQ3NngyX0NPTU1PTmAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIGJ1aWxkcyB0aGUgYHBoeS5jYCBmaWxlLgoKTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gdGhpbmtpbmcgY2xlYXJseSBhYm91dCB0aGlzIGNvbm5lY3Rpb24uIFRoZSBxdWVzdGlvbiB0aGF0IGhhcyBwb3BwZWQgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpcyBhY2Nlc3NpYmxlIGFuZCB1c2VkIGRpcmVjdGx5IGZyb20gdGhlIFVTQiBkcml2ZXIgY29kZSBwYXRoLiBJdCYjMzk7cyBwb3RlbnRpYWxseSBhIGtleSBwaWVjZSwgYW5kIEkgZG9uJiMzOTt0IHdhbnQgYW55IGFzc3VtcHRpb25zIHRvIGJpdGUgbWUgbGF0ZXIuIFRpbWUgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGg7IEkgc2hvdWxkIGdvIGRvdWJsZS1jaGVjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIFVTQiBkcml2ZXIgY2FuIGluZGVlZCBjYWxsIGludG8gdGhhdCBQSFktcmVsYXRlZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTE5Om10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTMwPXZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxNTE6XHRiYXNlX3Bvd2VyID0gbXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihcdTAwMjZ0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE1Mi1cdGRlbHRhID0gYmFzZV9wb3dlciAtIHR4cC50YXJnZXRfcG93ZXI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MzMzCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgd2lyZWxlc3MgZHJpdmVyIGRldmVsb3BtZW50OgoKKipUcmFjaW5nIERvd24gdGhlIFRyYW5zbWl0dGVyIFBvd2VyIFNldHRpbmcqKgoKQWxyaWdodCwgc28gdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYC4gSSBrbm93IHRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdGhlIHRyYW5zbWl0IHBvd2VyIGxldmVscyBmb3IgdGhlIE1UNzZ4MiBQSFkuIFRoZSBnb2FsIGhlcmUgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBpcyBiZWluZyBjYWxsZWQgYW5kIGhvdyB0aGUgcG93ZXIgbGV2ZWxzIGFyZSB1bHRpbWF0ZWx5IGNvbmZpZ3VyZWQuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgc3lzdGVtYXRpYyBhcHByb2FjaC4gVGhlIG1vc3QgbG9naWNhbCBmaXJzdCBzdGVwIGlzIHRvIHRyYWNlIGJhY2sgdGhlIGNhbGwgY2hhaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyAqYWN0dWFsbHkqIGJlaW5nIGludm9rZWQuIFNvLCBJIG5lZWQgdG8gc2VlIGV4YWN0bHkgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjb2RlLiBLbm93aW5nIHRoZSBjYWxsIGNvbnRleHQgaXMgY3JpdGljYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4Ml9waHlfc2V0X3R4cG93ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jPTExPWludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzEtXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcdTAwMjZtcGh5LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcdFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD01Nz12b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1ODp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NzQ9dm9pZCBtdDc2eDJfcGh5X3Rzc2lfY29tcGVuc2F0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVx0XHRcdFx0IGVudW0gbmw4MDIxMV9iYW5kIGJhbmQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM9NTc9bXQ3NngyX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy04Mi1cdFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jOjgzOlx0XHRcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtODQtXHRcdFx0bXQ3NngwMl90eF9zZXRfdHhwd3JfYXV0byhkZXYsIGRldi1cdTAwM2V0eHBvd2VyX2NvbmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYz0xMTc9aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX3BoeS5jLTE4NC1cdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYzoxODU6XHRtdDc2eDJfcGh5X3NldF90eHBvd2VyX3JlZ3MoZGV2LCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODYtXHRtdDc2eDJfY29uZmlndXJlX3R4X2RlbGF5KGRldiwgYmFuZCwgYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX3BoeS5jOjE4NzpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9NDM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2FwcGx5X2dhaW5fYWRqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6NDU6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyX3JlZ3Moc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00Ni1cdFx0XHRcdCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3BoeV9zZXRfdHhwb3dlcl9yZWdzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTk9bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjEzMDp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xMzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE3NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxNzU6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3BoeV9zZXRfdHhwb3dlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYz01Mz1tdDc2eDJ1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy03OC1cdFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXHUwMDI2bXBoeS1cdTAwM2VzdGF0ZSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc5Olx0XHRcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtODAtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jPTYwPWludCBtdDc2eDJ1X3BoeV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIxLVx0bXQ3NngyX3JlYWRfcnhfZ2FpbihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jOjEyMjpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGNoYW4tXHUwMDNlYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIzLVx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGNoYW4tXHUwMDNlYmFuZCwgYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jOjEyNDpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYy0xMjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NjI1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMzg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgRnVuY3Rpb246IEEgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBoZXJlJiMzOTtzIHRoZSBicmVha2Rvd24uIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyBjYWxsZWQgZnJvbSB0d28ga2V5IHBsYWNlczogYG10NzZ4MnVfY29uZmlnYCBhbmQgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB3aXRoaW4gdGhlIGB1c2JfbWFpbi5jYCBhbmQgYHVzYl9waHkuY2AgZmlsZXMuIFRoaXMgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBjb2RlIGRpcmVjdGx5IGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYG10NzZ4MnVgIFVTQiBkcml2ZXIuIEFuZCBzaW5jZSBzeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBlbXVsYXRpbmcgVVNCIGRldmljZXMgdXNpbmcgYHZoY2lgLCB0aGlzIGxvb2tzIHZlcnkgcHJvbWlzaW5nIGZvciBmdXp6aW5nLiBXZSBoYXZlIGEgZGlyZWN0IHBhdGggaW4uCgpOb3csIGEgdGhvdWdodCAtIGBtdDc2eDJ1X2NvbmZpZ2AgaXMgYWxzbyB0cmlnZ2VyZWQgd2hlbiBjb25maWd1cmluZyB0aGUgZGV2aWNlIHRocm91Z2ggbWFjODAyMTEsIHdoaWNoIG9wZW5zIHVwIGFub3RoZXIgYXZlbnVlIC0gYG5ldGxpbmtgIChzcGVjaWZpY2FsbHkgYG5sODAyMTFgKS4gSWYgd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UsIG1hYzgwMjExIHdpbGwgcmVjb2duaXplIGl0LCBhbmQgdGhlbiB3ZSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIGBtdDc2eDJ1X2NvbmZpZ2Agb3IgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB0aHJvdWdoIHRoZSBgbmw4MDIxMWAgY29tbWFuZHMuIFRoaXMgb3BlbnMgdGhlIGRvb3IgdG8gdXNpbmcgdGhlc2UgY29tbWFuZHMgdG8gdHJpZ2dlciB0aGUgdnVsbmVyYWJsZSBjb2RlIGRpcmVjdGx5LgoKQmVmb3JlIHdlIG1vdmUgZm9yd2FyZCwgbGV0JiMzOTtzIHZlcmlmeSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4gVGhlIGNydWNpYWwgb3B0aW9uIGlzIGBDT05GSUdfTVQ3NngyVWAuIEJ1dCBkb2VzIGl0IGhhdmUgYW55IGRlcGVuZGVuY2llcz8gTG9va3MgbGlrZSBpdCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCBidXQgdGhhdCBpcyBpdC4gSXQgc2VlbXMgYENPTkZJR19NVDc2eDJVYCBpdHNlbGYgaXMgc3VmZmljaWVudC4gR29vZCwgaXQgc2VsZWN0cyBgTVQ3NngyX0NPTU1PTmAsIHdoaWNoLCBpbiB0dXJuLCBidWlsZHMgdGhlIGBwaHkuY2AgZmlsZS4KCk5vdywgdGhlIGZpbmFsIHBvaW50IC0gdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBzdGF0aWMuIEl0JiMzOTtzIHN0YXRpYyB3aXRoaW4gYHBoeS5jYC4KVGhlIHBhdGNoIG11c3QgaGF2ZSBtb2RpZmllZCB0aGlzIGZ1bmN0aW9uLiBXZSBtdXN0IGNvbmZpcm0gdGhpcyBieSBjaGVja2luZyB0aGUgYHBoeS5jYCBmaWxlIGl0c2VsZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jPTExOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTk6bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMzA9dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE1MTpcdGJhc2VfcG93ZXIgPSBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKFx1MDAyNnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUyLVx0ZGVsdGEgPSBiYXNlX3Bvd2VyIC0gdHhwLnRhcmdldF9wb3dlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc4MjUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3NzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogUmVmYWN0b3JpbmcgdnMuIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtZZXMsIHRoaXMgc2VlbXMgcHJldHR5IHN0YXRpYy4mIzM0OyBUaGUgY2FsbGVyIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCwgd2hpY2ggaXMgZXhwb3J0ZWQuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBzbyBpdCBzZWVtcyBsaWtlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBpbmRlZWQgYmUgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IOKAkyBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGNhbGwgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgPyBMb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBtdDc2eDJ1X2NvbmZpZ2AsIGBtdDc2eDJ1X3BoeV9zZXRfY2hhbm5lbGAsIGBtdDc2eDJfc2V0X3Nhcl9zcGVjc2AsIGBtdDc2eDJfY29uZmlnYCwgYW5kIGBtdDc2eDJfcGh5X3NldF9jaGFubmVsYC4gQ29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LCBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgaXMgYSBzb2xpZCBmb2N1cyBzeW1ib2wuCgpCdXQgd2FpdCwgbG9va2luZyBhdCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlOgoKYGBgYwotCWZvciAoaSA9IDA7IGkgJmx0OyBzaXplb2Yoci0mZ3Q7YWxsKTsgaSYjNDM7JiM0MzspIHsKLQkJaWYgKCFyLSZndDthbGxbaV0pCi0JCQljb250aW51ZTsKLQotCQlpZiAocmV0KQotCQkJcmV0ID0gbWluKHJldCwgci0mZ3Q7YWxsW2ldKTsKLQkJZWxzZQotCQkJcmV0ID0gci0mZ3Q7YWxsW2ldOwotCX0KJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHNpemVvZihyLSZndDthbGwpOyBpJiM0MzsmIzQzOykKJiM0MzsJCXJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItJmd0O2FsbFtpXSk7CmBgYAoKVGhhdCYjMzk7cyB3aGVyZSB0aGUgcXVlc3Rpb24gbWFyayBwb3BzIHVwLiBJcyB0aGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgKnJlYWwqIGNoYW5nZT8gSSBuZWVkIHRvIGFuYWx5emUgdGhpcyBjbG9zZWx5LiBJdCBzZWVtcyB0byBqdXN0IHJlcGxhY2UgYW4gZXhpc3RpbmcgbG9vcCB3aXRoIGBtaW5fbm90X3plcm9gLiBCdXQgZG9lcyB0aGlzIGZ1bmRhbWVudGFsbHkgY2hhbmdlIGhvdyB0aGUgcHJvZ3JhbSBiZWhhdmVzPyBMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKCkVzc2VudGlhbGx5LCBgbWluX25vdF96ZXJvYCBhcHBlYXJzIHRvIGJlIGRvaW5nIGV4YWN0bHkgd2hhdCB0aGUgb2xkIGNvZGUgd2FzIGRvaW5nLiBJZiBgcmV0YCBpcyAwLCBpdCByZXR1cm5zIGByLSZndDthbGxbaV1gIChwcm92aWRlZCBgci0mZ3Q7YWxsW2ldYCBpc24mIzM5O3QgYWxzbyAwKS4gSWYgYHItJmd0O2FsbFtpXWAgaXMgMCwgaXQgcmV0dXJucyBgcmV0YC4gSWYgbmVpdGhlciBpcyB6ZXJvLCBpdCBmaW5kcyB0aGUgbWluaW11bS4gTm93LCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSB0aGUgb2xkIGNvZGUgaGFkIGFuIGVxdWl2YWxlbnQgbG9naWM6IGlmIGAhci0mZ3Q7YWxsW2ldYCwgd2Ugc2tpcCB0byB0aGUgbmV4dCBlbGVtZW50LCBpZiBgcmV0YCBpcyBub3QgMCwgYHJldGAgd2lsbCBiZWNvbWUgdGhlIG1pbmltdW0gYmV0d2VlbiBgcmV0YCBhbmQgYHItJmd0O2FsbFtpXWAsIGFuZCBpZiBgcmV0YCBpcyAwLCBgcmV0YCBpcyBgci0mZ3Q7YWxsW2ldYC4gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBgbWluX25vdF96ZXJvYC4KClNvLCBpdCYjMzk7cyBub3QgYSBmdW5jdGlvbmFsICpjaGFuZ2UqLCBub3QgYSBjaGFuZ2UgaW4gYmVoYXZpb3IsIGJ1dCByYXRoZXIgYSAqcmVmYWN0b3JpbmcqIHRvIHVzZSBgbWluX25vdF96ZXJvYC4gSXMgdGhhdCByaWdodD8gSSB0aGluayBpdCBpcy4KCk5vdywgd2FpdCBhIG1pbnV0ZSwgdGhlIHByb21wdCBzYXlzLi4uIGFuZCBJIHJlYWQgdGhyb3VnaCB0aGUgbGlzdDogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIFtzcGVjaWZpYyB0eXBlcyBvZiBjaGFuZ2VzXS4uLiYjMzQ7IGFuZCBvbmUgb2YgdGhvc2UgaXM6ICYjMzQ7Q2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93JiMzNDsuCgpTbywgdGhpcyBjaGFuZ2UgYm9pbHMgZG93biB0byByZXBsYWNpbmcgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgYG1pbl9ub3RfemVyb2Agd2l0aCBhIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZXhlY3V0aW9uIGZsb3cgaXMgZnVuY3Rpb25hbGx5IGFsdGVyZWQuIFNpbmNlIGBtaW5fbm90X3plcm9gIGlzIGEgbWFjcm8sIEkgc2hvdWxkIGNoZWNrIGhvdyB0aGUgbWFjcm8gaXMgZGVmaW5lZCwgYnV0IGl0IHNlZW1zIHVubGlrZWx5IHRoYXQgdGhlIHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlZmluZSBtaW5fbm90X3plcm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21pbm1heC5oLTE3NS0gKi9cbmluY2x1ZGUvbGludXgvbWlubWF4Lmg6MTc2OiNkZWZpbmUgbWluX25vdF96ZXJvKHgsIHkpICh7XHRcdFx0XFxcbmluY2x1ZGUvbGludXgvbWlubWF4LmgtMTc3LVx0dHlwZW9mKHgpIF9feCA9ICh4KTtcdFx0XHRcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTQ4MgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBtaW5fbm90X3plcm9gIE1hY3JvKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgY29yZSB0aG91Z2h0IGhlcmUgaXMgdG8gZXhhbWluZSB0aGUgYG1pbl9ub3RfemVyb2AgbWFjcm8uIEkmIzM5O20gaW1tZWRpYXRlbHkgdGhpbmtpbmcgYWJvdXQgaXRzIGludGVuZGVkIGZ1bmN0aW9uYWxpdHkuIFdoYXQmIzM5O3MgaXQgZGVzaWduZWQgdG8gZG8/IE15IGd1ZXNzLCBiYXNlZCBvbiB0aGUgbmFtZSwgaXMgdGhhdCBpdCBhaW1zIHRvIGZpbmQgdGhlIG1pbmltdW0gdmFsdWUgZnJvbSBhIHNldCBvZiBpbnB1dHMsIGJ1dCB3aXRoIHRoZSBhZGRlZCBjb25zdHJhaW50IG9mIGV4Y2x1ZGluZyBhbnkgemVybyB2YWx1ZXMuIFRoaXMgaW1wbGllcyBhIG5lZWQgZm9yIGEgc3BlY2lmaWMgbG9naWMgdG8gaGFuZGxlIHBvdGVudGlhbCB6ZXJvIGlucHV0cyBhbmQgY29ycmVjdGx5IGlkZW50aWZ5IHRoZSBzbWFsbGVzdCAqbm9uLXplcm8qIHZhbHVlLiBJIHdvbmRlciBob3cgdGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgZWRnZSBjYXNlczogd2hhdCBoYXBwZW5zIGlmIGFsbCBpbnB1dHMgYXJlIHplcm8/IERvZXMgaXQgcmV0dXJuIGEgc3BlY2lmaWMgdmFsdWUsIGFuIGVycm9yLCBvciBwZXJoYXBzIGFuIG9wdGlvbmFsIHR5cGU/IEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgcXVlc3Rpb25zIGFib3V0IHBlcmZvcm1hbmNlOyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZWZmaWNpZW50LCBvciBhcmUgdGhlcmUgcG90ZW50aWFsIG9wdGltaXphdGlvbnMgSSBjb3VsZCBjb25zaWRlciByZWdhcmRpbmcgYnJhbmNoaW5nIG9yIHNob3J0LWNpcmN1aXRpbmc/IEZpbmFsbHksIEkgbmVlZCB0byBldmFsdWF0ZSBpdHMgb3ZlcmFsbCBkZXNpZ246IGRvZXMgaXQgYWRoZXJlIHRvIGVzdGFibGlzaGVkIGNvZGluZyBjb252ZW50aW9ucywgYW5kIGlzIGl0IGVhc2lseSB1bmRlcnN0YW5kYWJsZSBhbmQgbWFpbnRhaW5hYmxlPyBJJiMzOTttIHJlYWR5IHRvIGRpZyBpbiBhbmQgc2VlIGhvdyBpdCB3b3JrcyB1bmRlciB0aGUgaG9vZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21pbm1heC5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNzA6XHRcbiAxNzE6XHQvKipcbiAxNzI6XHQgKiBtaW5fbm90X3plcm8gLSByZXR1cm4gdGhlIG1pbmltdW0gdGhhdCBpcyBfbm90XyB6ZXJvLCB1bmxlc3MgYm90aCBhcmUgemVyb1xuIDE3MzpcdCAqIEB4OiB2YWx1ZTFcbiAxNzQ6XHQgKiBAeTogdmFsdWUyXG4gMTc1Olx0ICovXG4gMTc2Olx0I2RlZmluZSBtaW5fbm90X3plcm8oeCwgeSkgKHtcdFx0XHRcXFxuIDE3NzpcdFx0dHlwZW9mKHgpIF9feCA9ICh4KTtcdFx0XHRcXFxuIDE3ODpcdFx0dHlwZW9mKHkpIF9feSA9ICh5KTtcdFx0XHRcXFxuIDE3OTpcdFx0X194ID09IDAgPyBfX3kgOiAoKF9feSA9PSAwKSA/IF9feCA6IG1pbihfX3gsIF9feSkpOyB9KVxuIDE4MDpcdFxuIDE4MTpcdCNkZWZpbmUgX19jbGFtcCh2YWwsIGxvLCBoaSlcdFxcXG4gMTgyOlx0XHQoKHZhbCkgXHUwMDNlPSAoaGkpID8gKGhpKSA6ICgodmFsKSBcdTAwM2M9IChsbykgPyAobG8pIDogKHZhbCkpKVxuIDE4MzpcdFxuIDE4NDpcdCNkZWZpbmUgX19jbGFtcF9vbmNlKHR5cGUsIHZhbCwgbG8sIGhpLCB1dmFsLCB1bG8sIHVoaSkgKHtcdFx0XHRcXFxuIDE4NTpcdFx0dHlwZSB1dmFsID0gKHZhbCk7XHRcdFx0XHRcdFx0XHRcXFxuIDE4NjpcdFx0dHlwZSB1bG8gPSAobG8pO1x0XHRcdFx0XHRcdFx0XFxcbiAxODc6XHRcdHR5cGUgdWhpID0gKGhpKTtcdFx0XHRcdFx0XHRcdFxcXG4gMTg4Olx0XHRCVUlMRF9CVUdfT05fTVNHKHN0YXRpY2FsbHlfdHJ1ZSh1bG8gXHUwMDNlIHVoaSksXHRcdFx0XHRcXFxuIDE4OTpcdFx0XHRcJiMzNDtjbGFtcCgpIGxvdyBsaW1pdCBcJiMzNDsgI2xvIFwmIzM0OyBncmVhdGVyIHRoYW4gaGlnaCBsaW1pdCBcJiMzNDsgI2hpKTtcdFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMTU4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUgd2hhdCB3ZSBoYXZlIGhlcmUuCgoqKkFuYWx5emluZyB0aGUgTWFjcm8mIzM5O3MgRnVuY3Rpb25hbGl0eSoqCgpBbHJpZ2h0LCBmaXJzdCB0aGluZ3MgZmlyc3QsIHRoZSBtYWNybyBzZWVtcyB0byBiZSByZXBsaWNhdGluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuIFRoYXQmIzM5O3MgZ29vZCwgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhhbmcgb24gYSBzZWNvbmQuLi4gSSBzZWUgYHItJmd0O2FsbGAsIHdoaWNoIGlzIGFuIGFycmF5IG9mIGBzOGAuIE9rYXksIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhhdCBjb3JyZWN0IGluIG15IGhlYWQuCgpgYGBjCnN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgewoJczggYWxsWy4uLl07Cn07CmBgYAoKUmlnaHQsIGEgYHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXJgIHdoZXJlIGBhbGxgIGlzIGFuIGFycmF5IG9mIHNpZ25lZCA4LWJpdCBpbnRlZ2Vycy4gTGV0IG1lIHRha2UgYSBsb29rIGF0IHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYCBqdXN0IHRvIGJlIGNlcnRhaW4gYWJvdXQgdGhlIGNvbnRleHQgb2YgdGhlIGFycmF5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYXJyYXkgcmVwcmVzZW50cyB3aXRoaW4gdGhlIGxhcmdlciBkYXRhIHN0cnVjdHVyZSBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gdGhlIHJhdGUgY29udHJvbCBwcm9jZXNzLiBUaGF0JiMzOTtzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciBcXHsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaD02Mz1zdHJ1Y3QgbXQ3NngwMl9iZWFjb25fb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oOjc1OnN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmgtNzYtXHR1bmlvbiB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwNjM2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDoKCioqRGl2aW5nIGludG8gdGhlIGBtdDc2eDAyX3JhdGVfcG93ZXJgIFN0cnVjdHVyZSoqCgpPa2F5LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYC4gTXkgZ3Vlc3MgaXMgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBNZWRpYXRlayA3NjAyIGRyaXZlciAob3IgYSByZWxhdGVkIGZhbWlseSkgc3RvcmVzIHRoZSBwb3dlciBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGRpZmZlcmVudCBkYXRhIHJhdGVzLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJiMzOTttIGV4cGVjdGluZyB0byBzZWUgbWVtYmVycyByZWxhdGVkIHRvIG91dHB1dCBwb3dlciBsZXZlbHMgKGluIGRCbSwgcHJvYmFibHksIG9yIG1heWJlIGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uKS4gVGhlcmUgbWlnaHQgYmUgZGlmZmVyZW50IHBvd2VyIHRhYmxlcyBmb3IgZGlmZmVyZW50IGJhbmRzICgyLjQgR0h6IHZzLiA1IEdIeiksIGNoYW5uZWwgd2lkdGhzICgyMC80MC84MCBNSHopLCBhbmQgbW9kdWxhdGlvbiBzY2hlbWVzIChPRkRNLCBIVCwgVkhULCBldGMuKS4KCkkmIzM5O2QgYmUgcGFydGljdWxhcmx5IGludGVyZXN0ZWQgdG8gc2VlIGhvdyB0aGV5IGhhbmRsZSBwb3dlciBiYWNrLW9mZiBtZWNoYW5pc21zLiBEbyB0aGV5IGFjY291bnQgZm9yIHRlbXBlcmF0dXJlLCBvciBwZXJoYXBzIGxpbmsgcXVhbGl0eSBmZWVkYmFjayB0byBkeW5hbWljYWxseSBhZGp1c3QgdGhlIHRyYW5zbWl0IHBvd2VyPyBBcmUgdGhlcmUgYW55IHBlci1hbnRlbm5hIHBvd2VyIGFkanVzdG1lbnRzIGluIGhlcmU/IEFuZCBob3cgaXMgdGhpcyBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnM/IElzIHRoZXJlIGEgZGlyZWN0IG1hcHBpbmcsIG9yIGRvIHRoZXkgdXNlIHNvbWUga2luZCBvZiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gZm9yIHBvd2VyIGNvbnRyb2w/CgpUaGlzIHN0cnVjdHVyZSBpcyBhIGNydWNpYWwgcGllY2Ugb2YgdGhlIHB1enpsZSBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBtYW5hZ2VzIHRyYW5zbWl0IHBvd2VyLCBhbmQgSSYjMzk7bSBlYWdlciB0byBkaWcgaW4gYW5kIHVuZGVyc3RhbmQgaXRzIG51YW5jZXMuIFRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZ2V0IGFuIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGRhdGEgcmF0ZXMsIG1vZHVsYXRpb24vY29kaW5nIHNjaGVtZXMgYW5kIHBvd2VyIHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA3MDpcdCNkZWZpbmUgbXQ3NngwMl9iZWFjb25fZW5hYmxlKGRldiwgZW5hYmxlKVx0XFxcbiAgNzE6XHRcdChkZXYpLVx1MDAzZWJlYWNvbl9vcHMtXHUwMDNlYmVhY29uX2VuYWJsZShkZXYsIGVuYWJsZSlcbiAgNzI6XHQjZGVmaW5lIG10NzZ4MDJfcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVx0XFxcbiAgNzM6XHRcdChkZXYpLVx1MDAzZWJlYWNvbl9vcHMtXHUwMDNlcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVxuICA3NDpcdFxuICA3NTpcdHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xuICA3NjpcdFx0dW5pb24ge1xuICA3NzpcdFx0XHRzdHJ1Y3Qge1xuICA3ODpcdFx0XHRcdHM4IGNja1s0XTtcbiAgNzk6XHRcdFx0XHRzOCBvZmRtWzhdO1xuICA4MDpcdFx0XHRcdHM4IGh0WzE2XTtcbiAgODE6XHRcdFx0XHRzOCB2aHRbMl07XG4gIDgyOlx0XHRcdH07XG4gIDgzOlx0XHRcdHM4IGFsbFszMF07XG4gIDg0Olx0XHR9O1xuICA4NTpcdH07XG4gIDg2Olx0XG4gIDg3Olx0c3RydWN0IG10NzZ4MDJfZGV2IHtcbiAgODg6XHRcdHVuaW9uIHsgLyogbXVzdCBiZSBmaXJzdCAqL1xuICA4OTpcdFx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgbXQ3NjtcbiAgOTA6XHRcdFx0c3RydWN0IG10NzZfcGh5IG1waHk7XG4gIDkxOlx0XHR9O1xuICA5MjpcdFxuICA5MzpcdFx0c3RydWN0IG1hY19hZGRyZXNzIG1hY2FkZHJfbGlzdFs4XTtcbiAgOTQ6XHRcbiAgOTU6XHRcdHN0cnVjdCBtdXRleCBwaHlfbXV0ZXg7XG4gIDk2Olx0XG4gIDk3Olx0XHR1OCB0eGRvbmVfc2VxO1xuICA5ODpcdFx0REVDTEFSRV9LRklGT19QVFIodHhzdGF0dXNfZmlmbywgc3RydWN0IG10NzZ4MDJfdHhfc3RhdHVzKTtcbiAgOTk6XHRcdHNwaW5sb2NrX3QgdHhzdGF0dXNfZmlmb19sb2NrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTQyNQoJCQkJCQkJb3V0cHV0OiA4MQoJCQkJCQkJdGhvdWdodHM6IDExODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIENvZGUgQ2hhbmdlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgcmVwbGFjaW5nIGEgbG9vcCB0aGF0IGZpbmRzIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIHdpdGggYSBjYWxsIHRvIHRoZSBgbWluX25vdF96ZXJvYCBtYWNyby4gTGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCkluaXRpYWxseSwgSSBzZWUgdGhhdCBgci0mZ3Q7YWxsYCBpcyBhbiBhcnJheSBvZiBgczhgIChzaWduZWQgOC1iaXQgaW50ZWdlcnMpIG9mIHNpemUgMzAuIFRoZSBvbGQgY29kZSBpdGVyYXRlZCB0aHJvdWdoIHRoaXMgYXJyYXksIHNraXBwaW5nIHplcm8gdmFsdWVzLCBhbmQgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZS4gVGhlIG5ldyBjb2RlIHNpbXBseSB1c2VzIGBtaW5fbm90X3plcm9gLgoKTXkgZmlyc3QgdGhvdWdodCBpcywgJiMzNDtJcyB0aGVyZSBhbnkgKmZ1bmN0aW9uYWwqIGRpZmZlcmVuY2UgaGVyZT8mIzM0OyBJdCBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIHJlZmFjdG9yaW5nLiBgbWluX25vdF96ZXJvYCB1c2VzIGB0eXBlb2YoeClgIGFuZCBgdHlwZW9mKHkpYC4gQm90aCBgcmV0YCBhbmQgYHItJmd0O2FsbFtpXWAgYXJlIGBzOGAsIHNvIHRoZSBgbWluYCBtYWNybyBpbnNpZGUgc2hvdWxkIGJlIGNvbXBhcmluZyBgczhgIHZhbHVlcy4gSXQgYXBwZWFycyB0aGF0IHRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb3JpZ2luYWwgbG9vcCwgYnV0IHVzaW5nIHRoZSBtYWNybywgd2hpY2ggSSB1bmRlcnN0YW5kLgoKSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciBlZGdlIGNhc2VzLiBMZXQmIzM5O3Mgc2F5IGByLSZndDthbGxbaV1gIGlzIG5lZ2F0aXZlLiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYCFyLSZndDthbGxbaV1gLiBJbiB0aGUgY2FzZSBvZiBhIG5lZ2F0aXZlIHZhbHVlLCBgIXItJmd0O2FsbFtpXWAgd2lsbCBiZSBmYWxzZSwgc28gaXQgd29uJiMzOTt0IGBjb250aW51ZWAuIFRoaXMgaXMgaW1wb3J0YW50LiBJZiBgcmV0YCBpcyBhbHNvIG5lZ2F0aXZlLCB0aGUgY29tcGFyaXNvbiB3aXRoaW4gdGhlIGxvb3Agd291bGQgc3RpbGwgd29yayBhcyBleHBlY3RlZCwgdXNpbmcgdGhlIGBtaW5gIG1hY3JvLgoKTm93LCB3aGF0IGRvZXMgYG1pbl9ub3RfemVyb2AgZG8/IEl0IGxvb2tzIGxpa2UgaXQgY2hlY2tzIGBfX3ggPT0gMGAgYW5kIGBfX3kgPT0gMGAuIEl0IHJldHVybnMgYF9feWAgaWYgYF9feGAgaXMgemVybywgYW5kIHJldHVybnMgYF9feGAgaWYgYF9feWAgaXMgemVyby4gSWYgYm90aCBhcmUgbm9uLXplcm8sIGl0IHJldHVybnMgdGhlIG1pbmltdW0uIFRoaXMgaXMgdGhlIHNhbWUgbG9naWMgYXMgdGhlIG9sZCBjb2RlLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgaXMgbm8gc3VidGxlIGJ1ZyBpbiBgbWluX25vdF96ZXJvYCB3aGVuIGRlYWxpbmcgd2l0aCBuZWdhdGl2ZSBudW1iZXJzLiBJZiBgeGAgaXMgLTUgYW5kIGB5YCBpcyAwLCB0aGVuIGBtaW5fbm90X3plcm8oLTUsIDApYCByZXR1cm5zIC01LiBDb25zaWRlciB0aGUgb2xkIGNvZGU7IGluaXRpYWwgYHJldGAgPSAwLCBhbmQgYHItJmd0O2FsbFtpXWAgPSAtNS4gVGhlIGAhci0mZ3Q7YWxsW2ldYCB3b3VsZCBiZSBgZmFsc2VgIChpLmUuIG5vdCBjb250aW51ZSksIGByZXRgIGJlY29tZXMgLTUuIFRoZW4gdGhlIGxvb3AgY29udGludWVzLCB3aGVuIGByLSZndDthbGxbaV1gIGlzIDAsIHRoZSBgIXItJmd0O2FsbFtpXWAgaXMgdHJ1ZSAoY29udGludWUpLCBhbmQgdGhlIG9sZCBgcmV0YCBzdGF5cyBhdCAtNS4gVGhlcmVmb3JlLCB0aGVyZSYjMzk7cyBubyBkaWZmZXJlbmNlLgoKSSBhbSBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBhIHB1cmVseSByZWZhY3RvcmluZyBjaGFuZ2UgYW5kIHRoYXQgaXQgZG9lc24mIzM5O3QgY2hhbmdlIHRoZSBleGVjdXRpb24gZmxvdy4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBjb3JyZWN0LiBJIHdpbGwgY2FyZWZ1bGx5IGNvbnNpZGVyIGFueSBvdGhlciBjaGFuZ2VzIGluY2x1ZGVkIGluIHRoZSBkaWZmLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0aGF0IGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG9uJiMzOTt0IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdyBtZWFucyB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcuCgpJJiMzOTt2ZSBleGFtaW5lZCB0aGUgZnVsbCBkaWZmLCBpdCBvbmx5IGRvZXMgd2hhdCBJIGRlc2NyaWJlZC4gSSBhbSBzYXRpc2ZpZWQuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzbiYjMzk7dCBhZmZlY3QgYmVoYXZpb3IuIEl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIGhhdmUgYSB0aG9yb3VnaCByZWFzb25pbmcgb2Ygd2h5IEkgdGhpbmsgdGhlIHJlc3VsdCBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIGBtaW5fbm90X3plcm9gIG1hY3JvIGlzIGltcGxlbWVudGVkIHRvIGRvIHRoZSBzYW1lIHRoaW5nIGFzIHRoZSBvbGQgaW1wbGVtZW50YXRpb24uIE15IGNoZWNrcyBmb3IgdHlwZSBzYWZldHkgaW4gYG1pbmAgYW5kIG5lZ2F0aXZlIG51bWJlciBoYW5kbGluZyBhbHNvIGNvbmZpcm0gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1MC4zOTYzOTkwMjlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTY0MzYzMDYzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjUwLjM5NjQwNTcyOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5OTU1ODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAyOjQzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcXG5pbmRleCBhNWVmYTEzYTg5MmZkLi44OTczM2YzZmIxZjI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcXG5AQCAtMTIxLDE1ICsxMjEsOCBAQCBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXFxuIFxcdGludCBpO1xcbiBcXHRzOCByZXQgPSAwO1xcbiBcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNpemVvZihyLVxcdTAwM2VhbGwpOyBpKyspIHtcXG4tXFx0XFx0aWYgKCFyLVxcdTAwM2VhbGxbaV0pXFxuLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi1cXG4tXFx0XFx0aWYgKHJldClcXG4tXFx0XFx0XFx0cmV0ID0gbWluKHJldCwgci1cXHUwMDNlYWxsW2ldKTtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRyZXQgPSByLVxcdTAwM2VhbGxbaV07XFxuLVxcdH1cXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNpemVvZihyLVxcdTAwM2VhbGwpOyBpKyspXFxuK1xcdFxcdHJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItXFx1MDAzZWFsbFtpXSk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjUwLjgyNzMwNTIzMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjc1MjEyNzE2NzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDI6NDM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG5pbmRleCBhNWVmYTEzYTg5MmZkLi44OTczM2YzZmIxZjI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG5AQCAtMTIxLDE1ICsxMjEsOCBAQCBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXG4gXHRpbnQgaTtcbiBcdHM4IHJldCA9IDA7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzaXplb2Yoci1cdTAwM2VhbGwpOyBpKyspIHtcbi1cdFx0aWYgKCFyLVx1MDAzZWFsbFtpXSlcbi1cdFx0XHRjb250aW51ZTtcbi1cbi1cdFx0aWYgKHJldClcbi1cdFx0XHRyZXQgPSBtaW4ocmV0LCByLVx1MDAzZWFsbFtpXSk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRyZXQgPSByLVx1MDAzZWFsbFtpXTtcbi1cdH1cbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNpemVvZihyLVx1MDAzZWFsbCk7IGkrKylcbitcdFx0cmV0ID0gbWluX25vdF96ZXJvKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1MC44MjczMTUxMzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDY2NDU3ODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFdpLUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jYC4gVGhlIGNoYW5nZSBpcyBpbiB0aGUgYG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJgIGZ1bmN0aW9uIOKAkyBpdCdzIGEgc2ltcGxlIGxvb3Agb3B0aW1pemF0aW9uIHVzaW5nIGBtaW5fbm90X3plcm8ocmV0LCByLVx1MDAzZWFsbFtpXSlgLiBOb3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBIbW0sIGBtdDc2eDJgLi4uIHRoYXQncyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlciwgcmlnaHQ/IE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0ZXN0aW5nIHRoaXMgcHJvcGVybHkgd2lsbCBiZSBhIHBhaW4uIFRoZXNlIHNvcnRzIG9mIGRyaXZlcnMgb2Z0ZW4gcmVseSBvbiBzcGVjaWZpYyBoYXJkd2FyZSwgdHlwaWNhbGx5IFBDSWUgb3IgVVNCIFdpLUZpIGFkYXB0ZXJzLiBDYW4gSSBldmVuIHRlc3QgdGhpcyBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IEl0J2QgYmUgZ3JlYXQgaWYgSSBjb3VsZCwgdGhhdCdkIG1ha2UgdGhpbmdzIGEgbG90IGVhc2llci5cblxuV2FpdCBhIG1pbnV0ZSwgSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG10NzZ4MiAqZG9lcyogaGF2ZSBVU0IgdmFyaWFudHMuIExldCdzIHZlcmlmeSB0aGF0LiBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGluIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyB0aGF0IGNsZWFybHkgaW5kaWNhdGVzIFVTQiBzdXBwb3J0OiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvYC5cbkkgaGF2ZSB0byBzZWUgaWYgdGhlcmUgaXMgc29tZXRoaW5nIFVTQi1zcGVjaWZpYyB3aXRoaW4gdGhlIGRyaXZlciB0byBkZXRlcm1pbmUgaWYgUUVNVSB0ZXN0aW5nIGlzIHZpYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2NywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjU1LjI5Mzc3NTU0NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzU5NDE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIyNyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZToyOm9iai0kKENPTkZJR19NVDc2eDJfQ09NTU9OKSArPSBtdDc2eDItY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc2eDJFKSArPSBtdDc2eDJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19NVDc2eDJVKSArPSBtdDc2eDJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjY6bXQ3NngyLWNvbW1vbi15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS03LVxcdGVlcHJvbS5vIG1hYy5vIGluaXQubyBwaHkubyBtY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6OTptdDc2eDJlLXkgOj0gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTEwLVxcdHBjaS5vIHBjaV9tYWluLm8gcGNpX2luaXQubyBwY2lfbWN1Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6MTM6bXQ3NngydS15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xNC1cXHR1c2IubyB1c2JfaW5pdC5vIHVzYl9tYWluLm8gdXNiX21hYy5vIHVzYl9tY3UubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC91bmFsaWduZWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTU6bXQ3NngyX2VlcHJvbV9nZXRfbWFjYWRkcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMz1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI0Om10NzZ4Ml9oYXNfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggKmVmdXNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTQ5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTA6bXQ3NngyX2FwcGx5X2NhbF9mcmVlX2RhdGEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4ICplZnVzZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5NDpcXHRpZiAoIW10NzZ4Ml9oYXNfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy05NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTIzOnN0YXRpYyBpbnQgbXQ3NngyX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxNDE6bXQ3NngyX2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE0Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNTItXFx0aWYgKGZvdW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE1MzpcXHRcXHRmb3VuZCA9ICFtdDc2eDJfY2hlY2tfZWVwcm9tKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY3LVxcdGlmIChmb3VuZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE2ODpcXHRcXHRtdDc2eDJfYXBwbHlfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNjktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTE4Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE4MzptdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTk3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTk4Om10NzZ4Ml9zZXRfcnNzaV9vZmZzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBjaGFpbiwgdTggdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjEwOnN0YXRpYyBlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMTptdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGludCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTIxMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMjY9c3RhdGljIHU4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjI3Om10NzZ4Ml9nZXRfNWdfcnhfZ2FpbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIyOTpcXHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjMxOlxcdGdyb3VwID0gbXQ3NngyX2dldF9jYWxfY2hhbm5lbF9ncm91cChjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMzItXFx0c3dpdGNoIChncm91cCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI1NDp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2NS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjY2OlxcdFxcdHZhbCA9IG10NzZ4Ml9nZXRfNWdfcnhfZ2FpbihkZXYsIGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNjg6XFx0bXQ3NngyX3NldF9yeF9nYWluX2dyb3VwKGRldiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjcwLVxcdG10NzZ4MDJfZ2V0X3J4X2dhaW4oZGV2LCBjaGFuLVxcdTAwM2ViYW5kLCBcXHUwMDI2dmFsLCBcXHUwMDI2bG5hXzJnLCBsbmFfNWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI3MTpcXHRtdDc2eDJfc2V0X3Jzc2lfb2Zmc2V0KGRldiwgMCwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNzI6XFx0bXQ3NngyX3NldF9yc3NpX29mZnNldChkZXYsIDEsIHZhbCBcXHUwMDNlXFx1MDAzZSA4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yODktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI5MDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfcmVhZF9yeF9nYWluKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjkyOnZvaWQgbXQ3NngyX2dldF9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI5My1cXHRcXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNDAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0MTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfZ2V0X3JhdGVfcG93ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0zNDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNDQ6bXQ3NngyX2dldF9wb3dlcl9pbmZvXzJnKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0NTpcXHRcXHRcXHQgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Ni1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MzczPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzc0Om10NzZ4Ml9nZXRfcG93ZXJfaW5mb181ZyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNzU6XFx0XFx0XFx0IHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyAqdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzYtXFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM3OS1cXHRpbnQgY2hhbm5lbCA9IGNoYW4tXFx1MDAzZWh3X3ZhbHVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM4MDpcXHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zODEtXFx0aW50IGRlbHRhX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozODU6XFx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4Ni1cXHRvZmZzZXQgKz0gZ3JvdXAgKiBNVF9UWF9QT1dFUl9HUk9VUF9TSVpFXzVHO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQyNTp2b2lkIG10NzZ4Ml9nZXRfcG93ZXJfaW5mbyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0MjY6XFx0XFx0XFx0ICAgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQyNy1cXHRcXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00MzctXFx0XFx0Ync0MCBcXHUwMDNlXFx1MDAzZT0gODtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0Mzg6XFx0XFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKGRldiwgdCwgY2hhbiwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00MzktXFx0XFx0XFx0XFx0XFx0IE1UX0VFX1RYX1BPV0VSXzBfU1RBUlRfNUcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ0MDpcXHRcXHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fNWcoZGV2LCB0LCBjaGFuLCAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ0MS1cXHRcXHRcXHRcXHRcXHQgTVRfRUVfVFhfUE9XRVJfMV9TVEFSVF81Ryk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQzOlxcdFxcdG10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhkZXYsIHQsIGNoYW4sIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ0LVxcdFxcdFxcdFxcdFxcdCBNVF9FRV9UWF9QT1dFUl8wX1NUQVJUXzJHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDU6XFx0XFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzJnKGRldiwgdCwgY2hhbiwgMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDYtXFx0XFx0XFx0XFx0XFx0IE1UX0VFX1RYX1BPV0VSXzFfU1RBUlRfMkcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ0OTpcXHRpZiAobXQ3NngyX3Rzc2lfZW5hYmxlZChkZXYpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDUwLVxcdCAgICAhbXQ3NngwMl9maWVsZF92YWxpZCh0LVxcdTAwM2V0YXJnZXRfcG93ZXIpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9wb3dlcl9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDU4OmludCBtdDc2eDJfZ2V0X3RlbXBfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgc3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NjY6XFx0aWYgKCFtdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ2Ny1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ4OS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkwOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9nZXRfdGVtcF9jb21wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkyOmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0OTY6XFx0cmV0ID0gbXQ3NngyX2VlcHJvbV9sb2FkKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDk3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDAtXFx0bXQ3NngwMl9lZXByb21fcGFyc2VfaHdfY2FwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTAxOlxcdG10NzZ4Ml9lZXByb21fZ2V0X21hY2FkZHIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDItXFx0cmV0ID0gbXQ3Nl9lZXByb21fb3ZlcnJpZGUoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwOTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfZWVwcm9tX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTUxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjExOmVudW0gbXQ3NngyX2NhbF9jaGFubmVsX2dyb3VwIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC0xMi1cXHRNVF9DSF81R19KQVBBTixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjIxOnN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMjItXFx0dTggdGFyZ2V0X3Bvd2VyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MzU6c3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTM2LVxcdHU4IHRlbXBfMjVfcmVmO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDM6dm9pZCBtdDc2eDJfZ2V0X3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDQtXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0NTp2b2lkIG10NzZ4Ml9nZXRfcG93ZXJfaW5mbyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0NjpcXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3NngyX3R4X3Bvd2VyX2luZm8gKnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDctXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0ODppbnQgbXQ3NngyX2dldF90ZW1wX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDJfdGVtcF9jb21wICp0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0OTp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oPTUxPXN0YXRpYyBpbmxpbmUgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjUyOm10NzZ4Ml9oYXNfZXh0X2xuYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC01My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD02Mj1zdGF0aWMgaW5saW5lIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo2MzptdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC02NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD03NT1zdGF0aWMgaW5saW5lIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3NjptdDc2eDJfdHNzaV9lbmFibGVkKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTc3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3ODpcXHRyZXR1cm4gIW10NzZ4Ml90ZW1wX3R4X2FsY19lbmFibGVkKGRldikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC03OS1cXHQgICAgICAgKG10NzZ4MDJfZWVwcm9tX2dldChkZXYsIE1UX0VFX05JQ19DT05GXzEpIFxcdTAwMjZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtOC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjExOmludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTItXFx0XFx0XFx0IGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9zYXJfc3BlY3MgKnNhcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zMS1cXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcXHUwMDI2bXBoeS1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcXHRcXHRtdDc2eDJfcGh5X3NldF90eHBvd2VyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjM4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9zZXRfc2FyX3NwZWNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jPTQwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjQxOm10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6NTY6dm9pZCBtdDc2eDJfcmVzZXRfd2xhbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTU3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy03OC1vdXQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjc5OlxcdG10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShkZXYsIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTgwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6ODE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3Jlc2V0X3dsYW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYz0xNzg9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl93cml0ZV9tYWNfaW5pdHZhbHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE4MDp2b2lkIG10NzZ4Ml9pbml0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE4MS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTgzLVxcdHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTg0OlxcdHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyB0eHA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE4NS1cXHRzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHQgPSB7fTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE5MTpcXHRcXHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm8oZGV2LCBcXHUwMDI2dHhwLCBjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTkyOlxcdFxcdG10NzZ4Ml9nZXRfcmF0ZV9wb3dlcihkZXYsIFxcdTAwMjZ0LCBjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTIwMy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjIwNDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfaW5pdF90eHBvd2VyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmM6NzojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo5OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfbWFjX3N0b3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaDo5OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaD0xMT1zdHJ1Y3QgbXQ3NngwMl9kZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTI6c3RydWN0IG10NzZ4Ml9zdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTMtc3RydWN0IG10NzZ4MDJfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjE1OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaDoxNzpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3NngyX21hY19yZXN1bWUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTE6I2luY2x1ZGUgXFxcIm10NzZ4Mi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEyLSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjE1OmludCBtdDc2eDJfbWN1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xNi1cXHRcXHRcXHQgICB1OCBid19pbmRleCwgYm9vbCBzY2FuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3Vfc2V0X2NoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ3OmludCBtdDc2eDJfbWN1X2xvYWRfY3Ioc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHR5cGUsIHU4IHRlbXBfbGV2ZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDgtXFx0XFx0ICAgICAgIHU4IGNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6NzM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX21jdV9sb2FkX2NyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo3NTppbnQgbXQ3NngyX21jdV9pbml0X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IGNoYW5uZWwsIHUzMiBnYWluLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTc2LVxcdFxcdFxcdCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjkyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfaW5pdF9nYWluKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5NDppbnQgbXQ3NngyX21jdV90c3NpX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6OTU6XFx0XFx0XFx0IHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wICp0c3NpX2RhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTgtXFx0XFx0X19sZTMyIGlkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk5OlxcdFxcdHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTAwLVxcdH0gX19wYWNrZWQgX19hbGlnbmVkKDQpIG1zZyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTA4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfdHNzaV9jb21wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oPTI3PWVudW0gbWN1X2NhbGlicmF0aW9uIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjQ1OmVudW0gbXQ3NngyX21jdV9jcl9tb2RlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC00Ni1cXHRNVF9SRl9DUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjUyOnN0cnVjdCBtdDc2eDJfdHNzaV9jb21wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC01My1cXHR1OCBwYV9tb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjM6aW50IG10NzZ4Ml9tY3VfdHNzaV9jb21wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjY0OlxcdFxcdFxcdCBzdHJ1Y3QgbXQ3NngyX3Rzc2lfY29tcCAqdHNzaV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaDo2NTppbnQgbXQ3NngyX21jdV9pbml0X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IGNoYW5uZWwsIHUzMiBnYWluLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTY2LVxcdFxcdFxcdCBib29sIGZvcmNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oPTI2PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19tdDc2MTIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC0zMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDozMTpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3NngyX2NoYW5uZWxfc2lsZW50KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjM5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQxOmludCBtdDc2eDJfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MjppbnQgbXQ3NngyX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ0OmludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC00NS1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IGNmZzgwMjExX3Nhcl9zcGVjcyAqc2FyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0Njp2b2lkIG10NzZ4Ml9waHlfcG93ZXJfb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ3OnZvaWQgbXQ3NngyX3N0b3BfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ4OmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ5OmludCBtdDc2eDJfYXBwbHlfY2FsaWJyYXRpb25fZGF0YShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjUwOmludCBtdDc2eDJlX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MTppbnQgbXQ3NngydV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTM6dm9pZCBtdDc2eDJfcGh5X3NldF9hbnRlbm5hKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NDppbnQgbXQ3NngyX3BoeV9zdGFydChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTU6aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTYtXFx0XFx0XFx0ICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1Nzp2b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTg6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MDppbnQgbXQ3NngyX21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MTppbnQgbXQ3NngyX21jdV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTggYncsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjItXFx0XFx0XFx0ICAgdTggYndfaW5kZXgsIGJvb2wgc2Nhbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjM6aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NC1cXHRcXHQgICAgICAgdTggY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjY6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Njg6aW50IG10NzZ4Ml9tYWNfcmVzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgaGFyZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Njk6dm9pZCBtdDc2eDJfcmVzZXRfd2xhbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjcwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC03MS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oPTcyPXZvaWQgbXQ3Nl93cml0ZV9tYWNfaW5pdHZhbHMoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc0OnZvaWQgbXQ3NngyX3BoeV90c3NpX2NvbXBlbnNhdGUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc1OnZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcl9yZWdzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3Nzp2b2lkIG10NzZ4Ml9jb25maWd1cmVfdHhfZGVsYXkoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNzgtXFx0XFx0XFx0ICAgICAgIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsIHU4IGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3OTp2b2lkIG10NzZ4Ml9hcHBseV9nYWluX2FkaihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6ODA6dm9pZCBtdDc2eDJfcGh5X3VwZGF0ZV9jaGFubmVsX2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoxMTojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEyLSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MTk6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjE6aW50IG10NzZ4MnVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjI6aW50IG10NzZ4MnVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIzOnZvaWQgbXQ3NngydV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjQ6dm9pZCBtdDc2eDJ1X3N0b3BfaHcoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjY6aW50IG10NzZ4MnVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjc6aW50IG10NzZ4MnVfbWFjX3N0b3Aoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjk6aW50IG10NzZ4MnVfcGh5X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0zMC1cXHRcXHRcXHQgICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzE6dm9pZCBtdDc2eDJ1X3BoeV9jYWxpYnJhdGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjMzOnZvaWQgbXQ3NngydV9tY3VfY29tcGxldGVfdXJiKHN0cnVjdCB1cmIgKnVyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM0OmludCBtdDc2eDJ1X21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzU6aW50IG10NzZ4MnVfbWN1X2Z3X2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzc6aW50IG10NzZ4MnVfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzg6dm9pZCBtdDc2eDJ1X3F1ZXVlc19kZWluaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDozOTp2b2lkIG10NzZ4MnVfc3RvcF9xdWV1ZXMoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDo0MDppbnQgbXQ3NngydV9za2JfZG1hX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgZW51bSBkbWFfbXNnX3BvcnQgcG9ydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtNDEtXFx0XFx0XFx0IHUzMiBmbGFncyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwOiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3NngyZV9kZXZpY2VfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMy1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgMHg3NjYyKSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjIwOm10NzZ4MmVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yOC1cXHRcXHQudXBkYXRlX3N1cnZleSA9IG10NzZ4MDJfdXBkYXRlX2NoYW5uZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6Mjk6XFx0XFx0LnNldF9jaGFubmVsID0gbXQ3NngyZV9zZXRfY2hhbm5lbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zMC1cXHRcXHQudHhfcHJlcGFyZV9za2IgPSBtdDc2eDAyX3R4X3ByZXBhcmVfc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NTY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4Ml9vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTYyLVxcdG10NzZfbW1pb19pbml0KG1kZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjYzOlxcdG10NzZ4Ml9yZXNldF93bGFuKGRldiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NzU6XFx0cmV0ID0gbXQ3NngyX3JlZ2lzdGVyX2RldmljZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTc2LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xMDA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDE6bXQ3NngyZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTAyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwNzpcXHRtdDc2eDJfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwOC1cXHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTExPXN0YXRpYyBpbnQgX19tYXliZV91bnVzZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMTI6bXQ3NngyZV9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE0MD1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTQxOm10NzZ4MmVfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE0Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTY3OlxcdHJldHVybiBtdDc2eDJfcmVzdW1lX2RldmljZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE2OC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3MDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbXQ3NngyZV9kZXZpY2VfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE3MS1NT0RVTEVfRklSTVdBUkUoTVQ3NjYyX0ZJUk1XQVJFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE3Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbXQ3NnBjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTc3LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzg6XFx0LmlkX3RhYmxlXFx0PSBtdDc2eDJlX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzk6XFx0LnByb2JlXFx0XFx0PSBtdDc2eDJlX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MDpcXHQucmVtb3ZlXFx0XFx0PSBtdDc2eDJlX3JlbW92ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODEtI2lmZGVmIENPTkZJR19QTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MjpcXHQuc3VzcGVuZFxcdD0gbXQ3NngyZV9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MzpcXHQucmVzdW1lXFx0XFx0PSBtdDc2eDJlX3Jlc3VtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODQtI2VuZGlmIC8qIENPTkZJR19QTSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy02LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWxheS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6NzojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjEzOm10NzZ4Ml9tYWNfcGJmX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTMwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzozMTptdDc2eDJfZml4dXBfeHRhbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo3MDppbnQgbXQ3NngyX21hY19yZXNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBoYXJkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNzEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy04OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkwOlxcdG10NzZ4Ml9tYWNfcGJmX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTkxLVxcdG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo5MjpcXHRtdDc2eDJfZml4dXBfeHRhbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE0MT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTQyOm10NzZ4Ml9wb3dlcl9vbl9yZl9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE0My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE2Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTYzOm10NzZ4Ml9wb3dlcl9vbl9yZihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IHVuaXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxNzk6XFx0bXQ3NngyX3Bvd2VyX29uX3JmX3BhdGNoKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE4ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTg1Om10NzZ4Ml9wb3dlcl9vbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIxNjpcXHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIxNzpcXHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyMjA6aW50IG10NzZ4Ml9yZXN1bWVfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjIxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjI0LVxcdG10NzZ4MDJfZG1hX2Rpc2FibGUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIyNTpcXHRtdDc2eDJfcmVzZXRfd2xhbihkZXYsIHRydWUpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1NS4zNjczNzQ1NzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjk4MTA1NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzZ4MiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBtdDc2eDJgIGRyaXZlciwgYW5kIEkgc2VlIGl0IGhhcyBib3RoIFBDSSAoYG10NzZ4MmVgKSBhbmQgVVNCIChgbXQ3NngydWApIHZlcnNpb25zLiBXYWl0LCAqYG10NzZ4MnVgKiBpcyBzcGVjaWZpY2FsbHkgdGhlIFVTQiBkcml2ZXIsIHJpZ2h0PyBJbnRlcmVzdGluZy4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBzZWUgaWYgd2UgY2FuIGdldCBpdCBydW5uaW5nIGluIFFFTVUgb3IgcGVyaGFwcyB1c2UgYSBVU0IgZ2FkZ2V0IHNldHVwIGZvciB0ZXN0aW5nLiBCdXQgdGhlbiBJIHJlbWVtYmVyLCBzeXprYWxsZXIgaGFzIHRoYXQgbmlmdHkgVVNCIGZ1enppbmcgc3Vic3lzdGVtLCBgdmhjaWAuIEJyaWxsaWFudCEgVGhhdCBtZWFucyBVU0IgZHJpdmVycyBhcmUgZGVmaW5pdGVseSBmdXp6YWJsZSB3aXRoIHN5emthbGxlci5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCBhIHNwZWNpZmljIHRhcmdldC4gSSByZWNhbGwgc2VlaW5nIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNgLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIFVTQiB2YXJpYW50LCBgbXQ3NngydWAsIGFjdHVhbGx5IHVzZSB0aGlzIGNvZGU/IFRpbWUgdG8gaW52ZXN0aWdhdGUuIEknbGwgZGlnIGludG8gdGhlIGJ1aWxkIHN5c3RlbS4gQWgsIGhlcmUncyB3aGF0IEkgbmVlZGVkOiBgcGh5LmNgIGlzIHBhcnQgb2YgYG10NzZ4Mi1jb21tb24teWAsIHdoaWNoIGlzIHRoZW4gbGlua2VkIGludG8gYm90aCB0aGUgUENJIGFuZCBVU0IgdmFyaWFudHMuIFNvLCBgbXQ3NngyLWNvbW1vbmAgaXMgYSBzaGFyZWQgbW9kdWxlLiBFeGNlbGxlbnQhIExldCdzIHZlcmlmeSB0aGlzIGluIHRoZSBgTWFrZWZpbGVgIGluIHRoZSBgbXQ3NngyYCBkaXJlY3RvcnkgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk3NjQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDEuNjY1NDgyODMyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzU2ODUyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJ1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX01UNzZ4MkUpICs9IG10NzZ4MmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX01UNzZ4MlUpICs9IG10NzZ4MnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZT05PW10NzZ4MmUteSA6PSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZToxMzptdDc2eDJ1LXkgOj0gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTE0LVxcdHVzYi5vIHVzYl9pbml0Lm8gdXNiX21haW4ubyB1c2JfbWFjLm8gdXNiX21jdS5vIFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDEuNzY5MDU1NDYxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0NzU2MTA2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkV4YW1pbmluZyB0aGUgTVQ3NngyIENvbW1vbiBNb2R1bGUgQnVpbGQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgYG10NzZ4Mi1jb21tb24teWAgYnVpbGQgZmxhZy4gUmlnaHQsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgaXQncyBjb25kaXRpb25hbGx5IGJ1aWx0LCBidXQgdGhlIGNvbmRpdGlvbiBpcyBrZXkuIEl0J3MgYnVpbHQgb25seSB3aGVuIGBDT05GSUdfTVQ3NngyX0NPTU1PTmAgaXMgZGVmaW5lZC4gVGhpcyBpcyBzdGFuZGFyZCBrZXJuZWwgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbG9naWMuIE5vdywgSSBuZWVkIHRvIHNlZSAqd2hlcmUqIGBDT05GSUdfTVQ3NngyX0NPTU1PTmAgZ2V0cyBpdHMgdmFsdWUuIFRoZSBsb2dpY2FsIHBsYWNlIHRvIGxvb2sgaXMgdGhlIEtjb25maWcgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gb3BlbiBhbmQgZXhhbWluZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJJ2xsIGZpbmQgdGhlIGRlZmluaXRpb24sIGRlZmF1bHRzLCBhbmQgcG90ZW50aWFsbHksIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBpbXBhY3QgdGhlIHNldHRpbmcgb2YgdGhhdCBjb25maWcgb3B0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSBmaW5kIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDY1OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA1LjMxNjYyMDUwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjI2NzA0OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3NngyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDUuMzcyODk2ODY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwNDkzNjc2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHRoaXMgdGFzaywgYXMgaWYgdGhlc2Ugd2VyZSBteSBpbnRlcm5hbCB0aG91Z2h0czpcblxuKipJbnZlc3RpZ2F0aW5nIE1UNzYgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYE1UNzZgIGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBzb3VyY2UgdHJlZS4gU3BlY2lmaWNhbGx5LCBJJ20gZ29pbmcgc3RyYWlnaHQgdG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgaXQncyB3aGVyZSB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlcnMgc2hvdWxkIGJlIGRlZmluZWQuIEZyb20gdGhlcmUgSSdsbCBiZSBhYmxlIHRvIHdvcmsgb3V0IHdoYXQncyBhdmFpbGFibGUgYW5kLCBpZiBuZWNlc3NhcnksIHRyYWNlIGRlcGVuZGVuY2llcyBvciBmaW5kIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb25zLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgdGhlIHBvc3NpYmxlIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk4MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA4Ljc3NzgzNTY2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzYwMjYzNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Njpjb25maWcgTVQ3Nl9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTctXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo4OlxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjk6XFx0ZGVwZW5kcyBvbiBMRURTX0NMQVNTPXkgfHwgTVQ3Nl9DT1JFPUxFRFNfQ0xBU1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTAtXFx0ZGVmYXVsdCB5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTQ6XFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTg6XFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMjpcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjY6XFx0c2VsZWN0IE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTMyPWNvbmZpZyBNVDc5MnhfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM0OlxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTM2PWNvbmZpZyBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM4OlxcdHNlbGVjdCBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQyOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA4Ljg1Mzg2NjIzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk3Mjc3ODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgYG10NzZ4MmAgZmFtaWx5LCBhbmQgSSdtIHN0YXJ0aW5nIHdpdGggdGhlIEtjb25maWcgZmlsZS4gTGV0IG1lIHNlZS4uLiBJJ2xsIHB1bGwgdXAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciB2ZXJzaW9uIGFyZSBkZWZpbmVkLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGZlYXR1cmUgdG9nZ2xlcyAoODAyLjExYWMgc3VwcG9ydCwgc2VjdXJpdHkgcHJvdG9jb2xzLCBldGMuKSwgZGVidWcgc2V0dGluZ3MsIGFuZCBtYXliZSBzb21lIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zLiBVbmRlcnN0YW5kaW5nIHRoaXMgS2NvbmZpZyBpcyBjcnVjaWFsIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgZHJpdmVyJ3MgY29yZSBsb2dpYyBiZWNhdXNlIGl0IGRpY3RhdGVzIHdoaWNoIHBhcnRzIG9mIHRoZSBkcml2ZXIgYXJlIGNvbXBpbGVkIGFuZCBob3cgdGhleSBiZWhhdmUgb24gZGlmZmVyZW50IHN5c3RlbXMuIEl0J2xsIGdpdmUgbWUgYSByb2FkbWFwIG9mIHdoYXQncyAqcG9zc2libGUqIHRvIGNvbmZpZ3VyZSBhbmQgaGVscHMgbmFycm93IGRvd24gd2hhdCdzIHJlbGV2YW50IHRvIG15IGN1cnJlbnQgdGFzayBvciBkZWJ1Z2dpbmcgZWZmb3J0LiBMZXQncyBzZWUgd2hhdCBnb29kaWVzIGFyZSBpbiB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjI5NywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjEyLjY1MTE0NjMyNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTUzMTA0MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiLipcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyOmNvbmZpZyBNVDc2eDJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzozOlxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo0OlxcdHNlbGVjdCBNVDc2eDAyX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6NTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjc6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MkUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo4OlxcdHNlbGVjdCBNVDc2eDJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo5OlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjEwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMTpcXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMjpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTIvTVQ3NjAyL01UNzY2Mi1iYXNlZCBQQ0llIHdpcmVsZXNzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMzpcXHQgIGRldmljZXMsIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNDpcXHQgIDJTUyB0byA4NjZNYml0L3MgUEhZIHJhdGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE2OlxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE3OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTg6Y29uZmlnIE1UNzZ4MlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE5OlxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDJVIChVU0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMDpcXHRzZWxlY3QgTVQ3NngyX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjE6XFx0c2VsZWN0IE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMzpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjQ6XFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjU6XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjEyVS1iYXNlZCBVU0IgMy4wIHdpcmVsZXNzIGRvbmdsZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNjpcXHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDJTUyB0b1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjc6XFx0ICA4NjZNYml0L3MgUEhZIHJhdGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyODpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjI5OlxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTIuNzQ2NDYxNDk1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNjA0MjkzMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNVDc2eDJVIFVTQiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ09ORklHX01UNzZ4MlVgLiBSaWdodCwgdGhhdCdzIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgTVQ3NngyVSBjaGlwc2V0LiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGl0IGRlcGVuZHMgb24gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2ssIGBNQUM4MDIxMWAsIGFuZCB0aGUgYFVTQmAgc3Vic3lzdGVtLCBuYXR1cmFsbHkuIElmIEkgZW5hYmxlIHRoaXMgZHJpdmVyLCB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHB1bGwgaW4gYE1UNzZ4Ml9DT01NT05gLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBidWlsZHMgdGhlIGBwaHkuY2AgZmlsZS5cblxuTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSB0aGlua2luZyBjbGVhcmx5IGFib3V0IHRoaXMgY29ubmVjdGlvbi4gVGhlIHF1ZXN0aW9uIHRoYXQgaGFzIHBvcHBlZCBpbnRvIG15IGhlYWQgaXMgd2hldGhlciB0aGUgZnVuY3Rpb24gYG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJgIGlzIGFjY2Vzc2libGUgYW5kIHVzZWQgZGlyZWN0bHkgZnJvbSB0aGUgVVNCIGRyaXZlciBjb2RlIHBhdGguIEl0J3MgcG90ZW50aWFsbHkgYSBrZXkgcGllY2UsIGFuZCBJIGRvbid0IHdhbnQgYW55IGFzc3VtcHRpb25zIHRvIGJpdGUgbWUgbGF0ZXIuIFRpbWUgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGg7IEkgc2hvdWxkIGdvIGRvdWJsZS1jaGVjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIFVTQiBkcml2ZXIgY2FuIGluZGVlZCBjYWxsIGludG8gdGhhdCBQSFktcmVsYXRlZCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2MzIsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTcuMTA2ODk0MDU5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTE3OTUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjExOTptdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jPTEzMD12b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTUxOlxcdGJhc2VfcG93ZXIgPSBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKFxcdTAwMjZ0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTItXFx0ZGVsdGEgPSBiYXNlX3Bvd2VyIC0gdHhwLnRhcmdldF9wb3dlcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTcuMTY2MDc5MzI4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDk5ODEwODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGVtYmVkZGVkIHdpcmVsZXNzIGRyaXZlciBkZXZlbG9wbWVudDpcblxuKipUcmFjaW5nIERvd24gdGhlIFRyYW5zbWl0dGVyIFBvd2VyIFNldHRpbmcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gaXMgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgLiBJIGtub3cgdGhpcyBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGUgdHJhbnNtaXQgcG93ZXIgbGV2ZWxzIGZvciB0aGUgTVQ3NngyIFBIWS4gVGhlIGdvYWwgaGVyZSBpcyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIGJlaW5nIGNhbGxlZCBhbmQgaG93IHRoZSBwb3dlciBsZXZlbHMgYXJlIHVsdGltYXRlbHkgY29uZmlndXJlZC4gTGV0J3Mgc3RhcnQgd2l0aCBhIHN5c3RlbWF0aWMgYXBwcm9hY2guIFRoZSBtb3N0IGxvZ2ljYWwgZmlyc3Qgc3RlcCBpcyB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIGNoYWluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgaXMgKmFjdHVhbGx5KiBiZWluZyBpbnZva2VkLiBTbywgSSBuZWVkIHRvIHNlZSBleGFjdGx5IHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gd2l0aGluIHRoZSBkcml2ZXIncyBjb2RlLiBLbm93aW5nIHRoZSBjYWxsIGNvbnRleHQgaXMgY3JpdGljYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzMzLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MjAuNzc2MDYyNjQ0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4OTc1MjAyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJfcGh5X3NldF90eHBvd2VyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM9MTE9aW50IG10NzZ4Ml9zZXRfc2FyX3NwZWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMxLVxcdGlmICh0ZXN0X2JpdChNVDc2X1NUQVRFX1JVTk5JTkcsIFxcdTAwMjZtcGh5LVxcdTAwM2VzdGF0ZSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjMyOlxcdFxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzMtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NTc9dm9pZCBtdDc2eDJfcGh5X2NhbGlicmF0ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjU4OnZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD03ND12b2lkIG10NzZ4Ml9waHlfdHNzaV9jb21wZW5zYXRlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC03Ni1cXHRcXHRcXHRcXHQgZW51bSBubDgwMjExX2JhbmQgYmFuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jPTU3PW10NzZ4Ml9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy04Mi1cXHRcXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LnN0YXRlKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM6ODM6XFx0XFx0XFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtODQtXFx0XFx0XFx0bXQ3NngwMl90eF9zZXRfdHhwd3JfYXV0byhkZXYsIGRldi1cXHUwMDNldHhwb3dlcl9jb25mKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYz0xMTc9aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmMtMTg0LVxcdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmM6MTg1OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODYtXFx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGJhbmQsIGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmM6MTg3OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmMtMTg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9NDM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2FwcGx5X2dhaW5fYWRqKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzo0NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00Ni1cXHRcXHRcXHRcXHQgZW51bSBubDgwMjExX2JhbmQgYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTE2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTE5PW10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMzA6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEzMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE3NTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfcGh5X3NldF90eHBvd2VyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTUzPW10NzZ4MnVfY29uZmlnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LCB1MzIgY2hhbmdlZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtNzgtXFx0XFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXFx1MDAyNm1waHktXFx1MDAzZXN0YXRlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc5OlxcdFxcdFxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTgwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYz02MD1pbnQgbXQ3NngydV9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIxLVxcdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmM6MTIyOlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGNoYW4tXFx1MDAzZWJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYy0xMjMtXFx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGNoYW4tXFx1MDAzZWJhbmQsIGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmM6MTI0OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTI1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0NDoyMC44NjU4MTg2OTNaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODExNjU4Njk2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgIEZ1bmN0aW9uOiBBIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIGJyZWFrZG93bi4gYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzOiBgbXQ3NngydV9jb25maWdgIGFuZCBgbXQ3NngydV9waHlfc2V0X2NoYW5uZWxgIHdpdGhpbiB0aGUgYHVzYl9tYWluLmNgIGFuZCBgdXNiX3BoeS5jYCBmaWxlcy4gVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSdyZSBkZWFsaW5nIHdpdGggY29kZSBkaXJlY3RseSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGBtdDc2eDJ1YCBVU0IgZHJpdmVyLiBBbmQgc2luY2Ugc3l6a2FsbGVyIGlzIGNhcGFibGUgb2YgZW11bGF0aW5nIFVTQiBkZXZpY2VzIHVzaW5nIGB2aGNpYCwgdGhpcyBsb29rcyB2ZXJ5IHByb21pc2luZyBmb3IgZnV6emluZy4gV2UgaGF2ZSBhIGRpcmVjdCBwYXRoIGluLlxuXG5Ob3csIGEgdGhvdWdodCAtIGBtdDc2eDJ1X2NvbmZpZ2AgaXMgYWxzbyB0cmlnZ2VyZWQgd2hlbiBjb25maWd1cmluZyB0aGUgZGV2aWNlIHRocm91Z2ggbWFjODAyMTEsIHdoaWNoIG9wZW5zIHVwIGFub3RoZXIgYXZlbnVlIC0gYG5ldGxpbmtgIChzcGVjaWZpY2FsbHkgYG5sODAyMTFgKS4gSWYgd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UsIG1hYzgwMjExIHdpbGwgcmVjb2duaXplIGl0LCBhbmQgdGhlbiB3ZSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIGBtdDc2eDJ1X2NvbmZpZ2Agb3IgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB0aHJvdWdoIHRoZSBgbmw4MDIxMWAgY29tbWFuZHMuIFRoaXMgb3BlbnMgdGhlIGRvb3IgdG8gdXNpbmcgdGhlc2UgY29tbWFuZHMgdG8gdHJpZ2dlciB0aGUgdnVsbmVyYWJsZSBjb2RlIGRpcmVjdGx5LlxuXG5CZWZvcmUgd2UgbW92ZSBmb3J3YXJkLCBsZXQncyB2ZXJpZnkgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIFRoZSBjcnVjaWFsIG9wdGlvbiBpcyBgQ09ORklHX01UNzZ4MlVgLiBCdXQgZG9lcyBpdCBoYXZlIGFueSBkZXBlbmRlbmNpZXM/IExvb2tzIGxpa2UgaXQgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYCwgYnV0IHRoYXQgaXMgaXQuIEl0IHNlZW1zIGBDT05GSUdfTVQ3NngyVWAgaXRzZWxmIGlzIHN1ZmZpY2llbnQuIEdvb2QsIGl0IHNlbGVjdHMgYE1UNzZ4Ml9DT01NT05gLCB3aGljaCwgaW4gdHVybiwgYnVpbGRzIHRoZSBgcGh5LmNgIGZpbGUuXG5cbk5vdywgdGhlIGZpbmFsIHBvaW50IC0gdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBzdGF0aWMuIEl0J3Mgc3RhdGljIHdpdGhpbiBgcGh5LmNgLlxuVGhlIHBhdGNoIG11c3QgaGF2ZSBtb2RpZmllZCB0aGlzIGZ1bmN0aW9uLiBXZSBtdXN0IGNvbmZpcm0gdGhpcyBieSBjaGVja2luZyB0aGUgYHBoeS5jYCBmaWxlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2MjUsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MjguOTgyNDA5MDRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyNTk5Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTE4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTk6bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMzA9dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE1MTpcXHRiYXNlX3Bvd2VyID0gbXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihcXHUwMDI2dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUyLVxcdGRlbHRhID0gYmFzZV9wb3dlciAtIHR4cC50YXJnZXRfcG93ZXI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjI5LjA1NTAxNjExOVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDQ4MDQzOTI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoOiBSZWZhY3RvcmluZyB2cy4gRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJZZXMsIHRoaXMgc2VlbXMgcHJldHR5IHN0YXRpYy5cIiBUaGUgY2FsbGVyIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCwgd2hpY2ggaXMgZXhwb3J0ZWQuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIHNvIGl0IHNlZW1zIGxpa2UgYEZvY3VzU3ltYm9sc2Agc2hvdWxkIGluZGVlZCBiZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAuXG5cbkxldCdzIHF1aWNrbHkgdmVyaWZ5IOKAkyBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGNhbGwgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgPyBMb29rcyBsaWtlIGl0J3MgY2FsbGVkIGZyb20gYG10NzZ4MnVfY29uZmlnYCwgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCwgYG10NzZ4Ml9zZXRfc2FyX3NwZWNzYCwgYG10NzZ4Ml9jb25maWdgLCBhbmQgYG10NzZ4Ml9waHlfc2V0X2NoYW5uZWxgLiBDb25maXJtcyBteSBpbml0aWFsIGFzc2Vzc21lbnQsIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC5cblxuQnV0IHdhaXQsIGxvb2tpbmcgYXQgdGhlIGFjdHVhbCBjb2RlIGNoYW5nZTpcblxuYGBgY1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc2l6ZW9mKHItXHUwMDNlYWxsKTsgaSsrKSB7XG4tXHRcdGlmICghci1cdTAwM2VhbGxbaV0pXG4tXHRcdFx0Y29udGludWU7XG4tXG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0ID0gbWluKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuLVx0XHRlbHNlXG4tXHRcdFx0cmV0ID0gci1cdTAwM2VhbGxbaV07XG4tXHR9XG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzaXplb2Yoci1cdTAwM2VhbGwpOyBpKyspXG4rXHRcdHJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItXHUwMDNlYWxsW2ldKTtcbmBgYFxuXG5UaGF0J3Mgd2hlcmUgdGhlIHF1ZXN0aW9uIG1hcmsgcG9wcyB1cC4gSXMgdGhpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhICpyZWFsKiBjaGFuZ2U/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2xvc2VseS4gSXQgc2VlbXMgdG8ganVzdCByZXBsYWNlIGFuIGV4aXN0aW5nIGxvb3Agd2l0aCBgbWluX25vdF96ZXJvYC4gQnV0IGRvZXMgdGhpcyBmdW5kYW1lbnRhbGx5IGNoYW5nZSBob3cgdGhlIHByb2dyYW0gYmVoYXZlcz8gTGV0J3MgYnJlYWsgaXQgZG93bjpcblxuRXNzZW50aWFsbHksIGBtaW5fbm90X3plcm9gIGFwcGVhcnMgdG8gYmUgZG9pbmcgZXhhY3RseSB3aGF0IHRoZSBvbGQgY29kZSB3YXMgZG9pbmcuIElmIGByZXRgIGlzIDAsIGl0IHJldHVybnMgYHItXHUwMDNlYWxsW2ldYCAocHJvdmlkZWQgYHItXHUwMDNlYWxsW2ldYCBpc24ndCBhbHNvIDApLiBJZiBgci1cdTAwM2VhbGxbaV1gIGlzIDAsIGl0IHJldHVybnMgYHJldGAuIElmIG5laXRoZXIgaXMgemVybywgaXQgZmluZHMgdGhlIG1pbmltdW0uIE5vdywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkgdGhlIG9sZCBjb2RlIGhhZCBhbiBlcXVpdmFsZW50IGxvZ2ljOiBpZiBgIXItXHUwMDNlYWxsW2ldYCwgd2Ugc2tpcCB0byB0aGUgbmV4dCBlbGVtZW50LCBpZiBgcmV0YCBpcyBub3QgMCwgYHJldGAgd2lsbCBiZWNvbWUgdGhlIG1pbmltdW0gYmV0d2VlbiBgcmV0YCBhbmQgYHItXHUwMDNlYWxsW2ldYCwgYW5kIGlmIGByZXRgIGlzIDAsIGByZXRgIGlzIGByLVx1MDAzZWFsbFtpXWAuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgYG1pbl9ub3RfemVyb2AuXG5cblNvLCBpdCdzIG5vdCBhIGZ1bmN0aW9uYWwgKmNoYW5nZSosIG5vdCBhIGNoYW5nZSBpbiBiZWhhdmlvciwgYnV0IHJhdGhlciBhICpyZWZhY3RvcmluZyogdG8gdXNlIGBtaW5fbm90X3plcm9gLiBJcyB0aGF0IHJpZ2h0PyBJIHRoaW5rIGl0IGlzLlxuXG5Ob3csIHdhaXQgYSBtaW51dGUsIHRoZSBwcm9tcHQgc2F5cy4uLiBhbmQgSSByZWFkIHRocm91Z2ggdGhlIGxpc3Q6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBbc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlc10uLi5cIiBhbmQgb25lIG9mIHRob3NlIGlzOiBcIkNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvd1wiLlxuXG5TbywgdGhpcyBjaGFuZ2UgYm9pbHMgZG93biB0byByZXBsYWNpbmcgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgYG1pbl9ub3RfemVyb2Agd2l0aCBhIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZXhlY3V0aW9uIGZsb3cgaXMgZnVuY3Rpb25hbGx5IGFsdGVyZWQuIFNpbmNlIGBtaW5fbm90X3plcm9gIGlzIGEgbWFjcm8sIEkgc2hvdWxkIGNoZWNrIGhvdyB0aGUgbWFjcm8gaXMgZGVmaW5lZCwgYnV0IGl0IHNlZW1zIHVubGlrZWx5IHRoYXQgdGhlIHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3ODI1LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjM5LjUzNTQ1OTMzOVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxODA1ODk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlZmluZSBtaW5fbm90X3plcm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9saW51eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9taW5tYXguaC0xNzUtICovXFxuaW5jbHVkZS9saW51eC9taW5tYXguaDoxNzY6I2RlZmluZSBtaW5fbm90X3plcm8oeCwgeSkgKHtcXHRcXHRcXHRcXFxcXFxuaW5jbHVkZS9saW51eC9taW5tYXguaC0xNzctXFx0dHlwZW9mKHgpIF9feCA9ICh4KTtcXHRcXHRcXHRcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjM5LjY3NzI2OTI3N1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjg5MjMzNjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBgbWluX25vdF96ZXJvYCBNYWNybyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIFRoZSBjb3JlIHRob3VnaHQgaGVyZSBpcyB0byBleGFtaW5lIHRoZSBgbWluX25vdF96ZXJvYCBtYWNyby4gSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IGl0cyBpbnRlbmRlZCBmdW5jdGlvbmFsaXR5LiBXaGF0J3MgaXQgZGVzaWduZWQgdG8gZG8/IE15IGd1ZXNzLCBiYXNlZCBvbiB0aGUgbmFtZSwgaXMgdGhhdCBpdCBhaW1zIHRvIGZpbmQgdGhlIG1pbmltdW0gdmFsdWUgZnJvbSBhIHNldCBvZiBpbnB1dHMsIGJ1dCB3aXRoIHRoZSBhZGRlZCBjb25zdHJhaW50IG9mIGV4Y2x1ZGluZyBhbnkgemVybyB2YWx1ZXMuIFRoaXMgaW1wbGllcyBhIG5lZWQgZm9yIGEgc3BlY2lmaWMgbG9naWMgdG8gaGFuZGxlIHBvdGVudGlhbCB6ZXJvIGlucHV0cyBhbmQgY29ycmVjdGx5IGlkZW50aWZ5IHRoZSBzbWFsbGVzdCAqbm9uLXplcm8qIHZhbHVlLiBJIHdvbmRlciBob3cgdGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgZWRnZSBjYXNlczogd2hhdCBoYXBwZW5zIGlmIGFsbCBpbnB1dHMgYXJlIHplcm8/IERvZXMgaXQgcmV0dXJuIGEgc3BlY2lmaWMgdmFsdWUsIGFuIGVycm9yLCBvciBwZXJoYXBzIGFuIG9wdGlvbmFsIHR5cGU/IEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBxdWVzdGlvbnMgYWJvdXQgcGVyZm9ybWFuY2U7IGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBlZmZpY2llbnQsIG9yIGFyZSB0aGVyZSBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBJIGNvdWxkIGNvbnNpZGVyIHJlZ2FyZGluZyBicmFuY2hpbmcgb3Igc2hvcnQtY2lyY3VpdGluZz8gRmluYWxseSwgSSBuZWVkIHRvIGV2YWx1YXRlIGl0cyBvdmVyYWxsIGRlc2lnbjogZG9lcyBpdCBhZGhlcmUgdG8gZXN0YWJsaXNoZWQgY29kaW5nIGNvbnZlbnRpb25zLCBhbmQgaXMgaXQgZWFzaWx5IHVuZGVyc3RhbmRhYmxlIGFuZCBtYWludGFpbmFibGU/IEknbSByZWFkeSB0byBkaWcgaW4gYW5kIHNlZSBob3cgaXQgd29ya3MgdW5kZXIgdGhlIGhvb2QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NDgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NDMuMzY2NTA1ODUxWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImluY2x1ZGUvbGludXgvbWlubWF4LmhcIixcbiAgXCJGaXJzdExpbmVcIjogMTcwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTcwOlxcdFxcbiAxNzE6XFx0LyoqXFxuIDE3MjpcXHQgKiBtaW5fbm90X3plcm8gLSByZXR1cm4gdGhlIG1pbmltdW0gdGhhdCBpcyBfbm90XyB6ZXJvLCB1bmxlc3MgYm90aCBhcmUgemVyb1xcbiAxNzM6XFx0ICogQHg6IHZhbHVlMVxcbiAxNzQ6XFx0ICogQHk6IHZhbHVlMlxcbiAxNzU6XFx0ICovXFxuIDE3NjpcXHQjZGVmaW5lIG1pbl9ub3RfemVybyh4LCB5KSAoe1xcdFxcdFxcdFxcXFxcXG4gMTc3OlxcdFxcdHR5cGVvZih4KSBfX3ggPSAoeCk7XFx0XFx0XFx0XFxcXFxcbiAxNzg6XFx0XFx0dHlwZW9mKHkpIF9feSA9ICh5KTtcXHRcXHRcXHRcXFxcXFxuIDE3OTpcXHRcXHRfX3ggPT0gMCA/IF9feSA6ICgoX195ID09IDApID8gX194IDogbWluKF9feCwgX195KSk7IH0pXFxuIDE4MDpcXHRcXG4gMTgxOlxcdCNkZWZpbmUgX19jbGFtcCh2YWwsIGxvLCBoaSlcXHRcXFxcXFxuIDE4MjpcXHRcXHQoKHZhbCkgXFx1MDAzZT0gKGhpKSA/IChoaSkgOiAoKHZhbCkgXFx1MDAzYz0gKGxvKSA/IChsbykgOiAodmFsKSkpXFxuIDE4MzpcXHRcXG4gMTg0OlxcdCNkZWZpbmUgX19jbGFtcF9vbmNlKHR5cGUsIHZhbCwgbG8sIGhpLCB1dmFsLCB1bG8sIHVoaSkgKHtcXHRcXHRcXHRcXFxcXFxuIDE4NTpcXHRcXHR0eXBlIHV2YWwgPSAodmFsKTtcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIDE4NjpcXHRcXHR0eXBlIHVsbyA9IChsbyk7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiAxODc6XFx0XFx0dHlwZSB1aGkgPSAoaGkpO1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gMTg4OlxcdFxcdEJVSUxEX0JVR19PTl9NU0coc3RhdGljYWxseV90cnVlKHVsbyBcXHUwMDNlIHVoaSksXFx0XFx0XFx0XFx0XFxcXFxcbiAxODk6XFx0XFx0XFx0XFxcImNsYW1wKCkgbG93IGxpbWl0IFxcXCIgI2xvIFxcXCIgZ3JlYXRlciB0aGFuIGhpZ2ggbGltaXQgXFxcIiAjaGkpO1xcdFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NDMuMzY2NTcwNzkxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTIyNzY4OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS5cblxuKipBbmFseXppbmcgdGhlIE1hY3JvJ3MgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGZpcnN0IHRoaW5ncyBmaXJzdCwgdGhlIG1hY3JvIHNlZW1zIHRvIGJlIHJlcGxpY2F0aW5nIHRoZSBiZWhhdmlvciBvZiB0aGUgZXhpc3RpbmcgY29kZS4gVGhhdCdzIGdvb2QsIGEgZ29vZCBzdGFydGluZyBwb2ludC4gQnV0LCBoYW5nIG9uIGEgc2Vjb25kLi4uIEkgc2VlIGByLVx1MDAzZWFsbGAsIHdoaWNoIGlzIGFuIGFycmF5IG9mIGBzOGAuIE9rYXksIGxldCdzIGp1c3QgbWFrZSBzdXJlIEkgaGF2ZSB0aGF0IGNvcnJlY3QgaW4gbXkgaGVhZC5cblxuYGBgY1xuc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciB7XG5cdHM4IGFsbFsuLi5dO1xufTtcbmBgYFxuXG5SaWdodCwgYSBgc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlcmAgd2hlcmUgYGFsbGAgaXMgYW4gYXJyYXkgb2Ygc2lnbmVkIDgtYml0IGludGVnZXJzLiBMZXQgbWUgdGFrZSBhIGxvb2sgYXQgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXJgIGp1c3QgdG8gYmUgY2VydGFpbiBhYm91dCB0aGUgY29udGV4dCBvZiB0aGUgYXJyYXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBhcnJheSByZXByZXNlbnRzIHdpdGhpbiB0aGUgbGFyZ2VyIGRhdGEgc3RydWN0dXJlIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgcmF0ZSBjb250cm9sIHByb2Nlc3MuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTU4LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0NDo0Ny4xNTg4NDk4OTRaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0ODAxMzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgXFxcXHtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmg9NjM9c3RydWN0IG10NzZ4MDJfYmVhY29uX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaDo3NTpzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03Ni1cXHR1bmlvbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjQ3LjI1MzY1NTMyMloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTYwNTk1MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDpcblxuKipEaXZpbmcgaW50byB0aGUgYG10NzZ4MDJfcmF0ZV9wb3dlcmAgU3RydWN0dXJlKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYC4gTXkgZ3Vlc3MgaXMgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBNZWRpYXRlayA3NjAyIGRyaXZlciAob3IgYSByZWxhdGVkIGZhbWlseSkgc3RvcmVzIHRoZSBwb3dlciBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGRpZmZlcmVudCBkYXRhIHJhdGVzLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJ20gZXhwZWN0aW5nIHRvIHNlZSBtZW1iZXJzIHJlbGF0ZWQgdG8gb3V0cHV0IHBvd2VyIGxldmVscyAoaW4gZEJtLCBwcm9iYWJseSwgb3IgbWF5YmUgYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLiBUaGVyZSBtaWdodCBiZSBkaWZmZXJlbnQgcG93ZXIgdGFibGVzIGZvciBkaWZmZXJlbnQgYmFuZHMgKDIuNCBHSHogdnMuIDUgR0h6KSwgY2hhbm5lbCB3aWR0aHMgKDIwLzQwLzgwIE1IeiksIGFuZCBtb2R1bGF0aW9uIHNjaGVtZXMgKE9GRE0sIEhULCBWSFQsIGV0Yy4pLlxuXG5JJ2QgYmUgcGFydGljdWxhcmx5IGludGVyZXN0ZWQgdG8gc2VlIGhvdyB0aGV5IGhhbmRsZSBwb3dlciBiYWNrLW9mZiBtZWNoYW5pc21zLiBEbyB0aGV5IGFjY291bnQgZm9yIHRlbXBlcmF0dXJlLCBvciBwZXJoYXBzIGxpbmsgcXVhbGl0eSBmZWVkYmFjayB0byBkeW5hbWljYWxseSBhZGp1c3QgdGhlIHRyYW5zbWl0IHBvd2VyPyBBcmUgdGhlcmUgYW55IHBlci1hbnRlbm5hIHBvd2VyIGFkanVzdG1lbnRzIGluIGhlcmU/IEFuZCBob3cgaXMgdGhpcyBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnM/IElzIHRoZXJlIGEgZGlyZWN0IG1hcHBpbmcsIG9yIGRvIHRoZXkgdXNlIHNvbWUga2luZCBvZiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gZm9yIHBvd2VyIGNvbnRyb2w/XG5cblRoaXMgc3RydWN0dXJlIGlzIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgcHV6emxlIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIG1hbmFnZXMgdHJhbnNtaXQgcG93ZXIsIGFuZCBJJ20gZWFnZXIgdG8gZGlnIGluIGFuZCB1bmRlcnN0YW5kIGl0cyBudWFuY2VzLiBUaGlzIGlzIHdoZXJlIEknbGwgZ2V0IGFuIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGRhdGEgcmF0ZXMsIG1vZHVsYXRpb24vY29kaW5nIHNjaGVtZXMgYW5kIHBvd2VyIHNldHRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDYzNiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjUxLjQxNDI1MzE5OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA1NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmhcIixcbiAgXCJGaXJzdExpbmVcIjogNzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNzA6XFx0I2RlZmluZSBtdDc2eDAyX2JlYWNvbl9lbmFibGUoZGV2LCBlbmFibGUpXFx0XFxcXFxcbiAgNzE6XFx0XFx0KGRldiktXFx1MDAzZWJlYWNvbl9vcHMtXFx1MDAzZWJlYWNvbl9lbmFibGUoZGV2LCBlbmFibGUpXFxuICA3MjpcXHQjZGVmaW5lIG10NzZ4MDJfcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVxcdFxcXFxcXG4gIDczOlxcdFxcdChkZXYpLVxcdTAwM2ViZWFjb25fb3BzLVxcdTAwM2VwcmVfdGJ0dF9lbmFibGUoZGV2LCBlbmFibGUpXFxuICA3NDpcXHRcXG4gIDc1OlxcdHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xcbiAgNzY6XFx0XFx0dW5pb24ge1xcbiAgNzc6XFx0XFx0XFx0c3RydWN0IHtcXG4gIDc4OlxcdFxcdFxcdFxcdHM4IGNja1s0XTtcXG4gIDc5OlxcdFxcdFxcdFxcdHM4IG9mZG1bOF07XFxuICA4MDpcXHRcXHRcXHRcXHRzOCBodFsxNl07XFxuICA4MTpcXHRcXHRcXHRcXHRzOCB2aHRbMl07XFxuICA4MjpcXHRcXHRcXHR9O1xcbiAgODM6XFx0XFx0XFx0czggYWxsWzMwXTtcXG4gIDg0OlxcdFxcdH07XFxuICA4NTpcXHR9O1xcbiAgODY6XFx0XFxuICA4NzpcXHRzdHJ1Y3QgbXQ3NngwMl9kZXYge1xcbiAgODg6XFx0XFx0dW5pb24geyAvKiBtdXN0IGJlIGZpcnN0ICovXFxuICA4OTpcXHRcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgbXQ3NjtcXG4gIDkwOlxcdFxcdFxcdHN0cnVjdCBtdDc2X3BoeSBtcGh5O1xcbiAgOTE6XFx0XFx0fTtcXG4gIDkyOlxcdFxcbiAgOTM6XFx0XFx0c3RydWN0IG1hY19hZGRyZXNzIG1hY2FkZHJfbGlzdFs4XTtcXG4gIDk0OlxcdFxcbiAgOTU6XFx0XFx0c3RydWN0IG11dGV4IHBoeV9tdXRleDtcXG4gIDk2OlxcdFxcbiAgOTc6XFx0XFx0dTggdHhkb25lX3NlcTtcXG4gIDk4OlxcdFxcdERFQ0xBUkVfS0ZJRk9fUFRSKHR4c3RhdHVzX2ZpZm8sIHN0cnVjdCBtdDc2eDAyX3R4X3N0YXR1cyk7XFxuICA5OTpcXHRcXHRzcGlubG9ja190IHR4c3RhdHVzX2ZpZm9fbG9jaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NTEuNDE0Mzg2MTc5WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NjI1NTk3NTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2guIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCByZXBsYWNpbmcgYSBsb29wIHRoYXQgZmluZHMgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgd2l0aCBhIGNhbGwgdG8gdGhlIGBtaW5fbm90X3plcm9gIG1hY3JvLiBMZXQncyBicmVhayB0aGlzIGRvd24uXG5cbkluaXRpYWxseSwgSSBzZWUgdGhhdCBgci1cdTAwM2VhbGxgIGlzIGFuIGFycmF5IG9mIGBzOGAgKHNpZ25lZCA4LWJpdCBpbnRlZ2Vycykgb2Ygc2l6ZSAzMC4gVGhlIG9sZCBjb2RlIGl0ZXJhdGVkIHRocm91Z2ggdGhpcyBhcnJheSwgc2tpcHBpbmcgemVybyB2YWx1ZXMsIGFuZCBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlLiBUaGUgbmV3IGNvZGUgc2ltcGx5IHVzZXMgYG1pbl9ub3RfemVyb2AuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIFwiSXMgdGhlcmUgYW55ICpmdW5jdGlvbmFsKiBkaWZmZXJlbmNlIGhlcmU/XCIgSXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gYG1pbl9ub3RfemVyb2AgdXNlcyBgdHlwZW9mKHgpYCBhbmQgYHR5cGVvZih5KWAuIEJvdGggYHJldGAgYW5kIGByLVx1MDAzZWFsbFtpXWAgYXJlIGBzOGAsIHNvIHRoZSBgbWluYCBtYWNybyBpbnNpZGUgc2hvdWxkIGJlIGNvbXBhcmluZyBgczhgIHZhbHVlcy4gSXQgYXBwZWFycyB0aGF0IHRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb3JpZ2luYWwgbG9vcCwgYnV0IHVzaW5nIHRoZSBtYWNybywgd2hpY2ggSSB1bmRlcnN0YW5kLlxuXG5JIGhhdmUgdG8gY2FyZWZ1bGx5IGNvbnNpZGVyIGVkZ2UgY2FzZXMuIExldCdzIHNheSBgci1cdTAwM2VhbGxbaV1gIGlzIG5lZ2F0aXZlLiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYCFyLVx1MDAzZWFsbFtpXWAuIEluIHRoZSBjYXNlIG9mIGEgbmVnYXRpdmUgdmFsdWUsIGAhci1cdTAwM2VhbGxbaV1gIHdpbGwgYmUgZmFsc2UsIHNvIGl0IHdvbid0IGBjb250aW51ZWAuIFRoaXMgaXMgaW1wb3J0YW50LiBJZiBgcmV0YCBpcyBhbHNvIG5lZ2F0aXZlLCB0aGUgY29tcGFyaXNvbiB3aXRoaW4gdGhlIGxvb3Agd291bGQgc3RpbGwgd29yayBhcyBleHBlY3RlZCwgdXNpbmcgdGhlIGBtaW5gIG1hY3JvLlxuXG5Ob3csIHdoYXQgZG9lcyBgbWluX25vdF96ZXJvYCBkbz8gSXQgbG9va3MgbGlrZSBpdCBjaGVja3MgYF9feCA9PSAwYCBhbmQgYF9feSA9PSAwYC4gSXQgcmV0dXJucyBgX195YCBpZiBgX194YCBpcyB6ZXJvLCBhbmQgcmV0dXJucyBgX194YCBpZiBgX195YCBpcyB6ZXJvLiBJZiBib3RoIGFyZSBub24temVybywgaXQgcmV0dXJucyB0aGUgbWluaW11bS4gVGhpcyBpcyB0aGUgc2FtZSBsb2dpYyBhcyB0aGUgb2xkIGNvZGUuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXJlIGlzIG5vIHN1YnRsZSBidWcgaW4gYG1pbl9ub3RfemVyb2Agd2hlbiBkZWFsaW5nIHdpdGggbmVnYXRpdmUgbnVtYmVycy4gSWYgYHhgIGlzIC01IGFuZCBgeWAgaXMgMCwgdGhlbiBgbWluX25vdF96ZXJvKC01LCAwKWAgcmV0dXJucyAtNS4gQ29uc2lkZXIgdGhlIG9sZCBjb2RlOyBpbml0aWFsIGByZXRgID0gMCwgYW5kIGByLVx1MDAzZWFsbFtpXWAgPSAtNS4gVGhlIGAhci1cdTAwM2VhbGxbaV1gIHdvdWxkIGJlIGBmYWxzZWAgKGkuZS4gbm90IGNvbnRpbnVlKSwgYHJldGAgYmVjb21lcyAtNS4gVGhlbiB0aGUgbG9vcCBjb250aW51ZXMsIHdoZW4gYHItXHUwMDNlYWxsW2ldYCBpcyAwLCB0aGUgYCFyLVx1MDAzZWFsbFtpXWAgaXMgdHJ1ZSAoY29udGludWUpLCBhbmQgdGhlIG9sZCBgcmV0YCBzdGF5cyBhdCAtNS4gVGhlcmVmb3JlLCB0aGVyZSdzIG5vIGRpZmZlcmVuY2UuXG5cbkkgYW0gY29uY2x1ZGluZyB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgcmVmYWN0b3JpbmcgY2hhbmdlIGFuZCB0aGF0IGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBleGVjdXRpb24gZmxvdy4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBjb3JyZWN0LiBJIHdpbGwgY2FyZWZ1bGx5IGNvbnNpZGVyIGFueSBvdGhlciBjaGFuZ2VzIGluY2x1ZGVkIGluIHRoZSBkaWZmLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRoYXQgY2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkb24ndCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgbWVhbnMgdGhlIHBhdGNoIGlzIG5vdCB3b3J0aCBmdXp6aW5nLlxuXG5JJ3ZlIGV4YW1pbmVkIHRoZSBmdWxsIGRpZmYsIGl0IG9ubHkgZG9lcyB3aGF0IEkgZGVzY3JpYmVkLiBJIGFtIHNhdGlzZmllZC4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXNuJ3QgYWZmZWN0IGJlaGF2aW9yLiBJdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSBoYXZlIGEgdGhvcm91Z2ggcmVhc29uaW5nIG9mIHdoeSBJIHRoaW5rIHRoZSByZXN1bHQgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBpbXBsZW1lbnRlZCB0byBkbyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb2xkIGltcGxlbWVudGF0aW9uLiBNeSBjaGVja3MgZm9yIHR5cGUgc2FmZXR5IGluIGBtaW5gIGFuZCBuZWdhdGl2ZSBudW1iZXIgaGFuZGxpbmcgYWxzbyBjb25maXJtIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDI1LCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ1OjA2LjAzOTk4NjgyN1oiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGEgbWFudWFsIGltcGxlbWVudGF0aW9uIG9mIGZpbmRpbmcgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgaW4gYW4gYXJyYXkgd2l0aCB0aGUgc3RhbmRhcmQgYG1pbl9ub3RfemVyb2AgbWFjcm8uIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowgws77[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-02 01:58:53 +0000 UTC FinishedAt: 2026-08-02 02:45:06 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGEgbWFudWFsIGltcGxlbWVudGF0aW9uIG9mIGZpbmRpbmcgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgaW4gYW4gYXJyYXkgd2l0aCB0aGUgc3RhbmRhcmQgYG1pbl9ub3RfemVyb2AgbWFjcm8uIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDI6NDM6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY1xuaW5kZXggYTVlZmExM2E4OTJmZC4uODk3MzNmM2ZiMWYyOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY1xuQEAgLTEyMSwxNSAmIzQzOzEyMSw4IEBAIG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcbiBcdGludCBpO1xuIFx0czggcmV0ID0gMDtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNpemVvZihyLVx1MDAzZWFsbCk7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdGlmICghci1cdTAwM2VhbGxbaV0pXG4tXHRcdFx0Y29udGludWU7XG4tXG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0ID0gbWluKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuLVx0XHRlbHNlXG4tXHRcdFx0cmV0ID0gci1cdTAwM2VhbGxbaV07XG4tXHR9XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc2l6ZW9mKHItXHUwMDNlYWxsKTsgaSYjNDM7JiM0MzspXG4mIzQzO1x0XHRyZXQgPSBtaW5fbm90X3plcm8ocmV0LCByLVx1MDAzZWFsbFtpXSk7XG4gXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzNjE4YmM3YTExMzFhYjYzYmJiMzYzMmRhZWMzOTQ5NzJiZmRhYzY2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMiAwMjo0Mzo0OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKaW5kZXggYTVlZmExM2E4OTJmZC4uODk3MzNmM2ZiMWYyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMKQEAgLTEyMSwxNSAmIzQzOzEyMSw4IEBAIG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcikKIAlpbnQgaTsKIAlzOCByZXQgPSAwOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IHNpemVvZihyLSZndDthbGwpOyBpJiM0MzsmIzQzOykgewotCQlpZiAoIXItJmd0O2FsbFtpXSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChyZXQpCi0JCQlyZXQgPSBtaW4ocmV0LCByLSZndDthbGxbaV0pOwotCQllbHNlCi0JCQlyZXQgPSByLSZndDthbGxbaV07Ci0JfQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgc2l6ZW9mKHItJmd0O2FsbCk7IGkmIzQzOyYjNDM7KQomIzQzOwkJcmV0ID0gbWluX25vdF96ZXJvKHJldCwgci0mZ3Q7YWxsW2ldKTsKIAogCXJldHVybiByZXQ7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNjcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2ktRmkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuY2AuIFRoZSBjaGFuZ2UgaXMgaW4gdGhlIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBmdW5jdGlvbiDigJMgaXQmIzM5O3MgYSBzaW1wbGUgbG9vcCBvcHRpbWl6YXRpb24gdXNpbmcgYG1pbl9ub3RfemVybyhyZXQsIHItJmd0O2FsbFtpXSlgLiBOb3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBIbW0sIGBtdDc2eDJgLi4uIHRoYXQmIzM5O3MgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIsIHJpZ2h0PyBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgdGVzdGluZyB0aGlzIHByb3Blcmx5IHdpbGwgYmUgYSBwYWluLiBUaGVzZSBzb3J0cyBvZiBkcml2ZXJzIG9mdGVuIHJlbHkgb24gc3BlY2lmaWMgaGFyZHdhcmUsIHR5cGljYWxseSBQQ0llIG9yIFVTQiBXaS1GaSBhZGFwdGVycy4gQ2FuIEkgZXZlbiB0ZXN0IHRoaXMgaW4gYSBRRU1VIGVudmlyb25tZW50PyBJdCYjMzk7ZCBiZSBncmVhdCBpZiBJIGNvdWxkLCB0aGF0JiMzOTtkIG1ha2UgdGhpbmdzIGEgbG90IGVhc2llci4KCldhaXQgYSBtaW51dGUsIEkgc2VlbSB0byByZWNhbGwgdGhhdCBtdDc2eDIgKmRvZXMqIGhhdmUgVVNCIHZhcmlhbnRzLiBMZXQmIzM5O3MgdmVyaWZ5IHRoYXQuIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGluIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyB0aGF0IGNsZWFybHkgaW5kaWNhdGVzIFVTQiBzdXBwb3J0OiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvYC4KSSBoYXZlIHRvIHNlZSBpZiB0aGVyZSBpcyBzb21ldGhpbmcgVVNCLXNwZWNpZmljIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBRRU1VIHRlc3RpbmcgaXMgdmlhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIyNyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01UNzZ4Ml9DT01NT04pICYjNDM7PSBtdDc2eDItY29tbW9uLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzZ4MkUpICYjNDM7PSBtdDc2eDJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX01UNzZ4MlUpICYjNDM7PSBtdDc2eDJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTo2Om10NzZ4Mi1jb21tb24teSA6PSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtNy1cdGVlcHJvbS5vIG1hYy5vIGluaXQubyBwaHkubyBtY3Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjk6bXQ3NngyZS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMC1cdHBjaS5vIHBjaV9tYWluLm8gcGNpX2luaXQubyBwY2lfbWN1Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjEzOm10NzZ4MnUteSA6PSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMTQtXHR1c2IubyB1c2JfaW5pdC5vIHVzYl9tYWluLm8gdXNiX21hYy5vIHVzYl9tY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTEwLSNpbmNsdWRlIFwmIzM0O2VlcHJvbS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTU6bXQ3NngyX2VlcHJvbV9nZXRfbWFjYWRkcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMz1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjQ6bXQ3NngyX2hhc19jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCAqZWZ1c2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9NDk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwOm10NzZ4Ml9hcHBseV9jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCAqZWZ1c2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5NDpcdGlmICghbXQ3NngyX2hhc19jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtOTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxMjM6c3RhdGljIGludCBtdDc2eDJfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xNDA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTQxOm10NzZ4Ml9lZXByb21fbG9hZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE0Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTUyLVx0aWYgKGZvdW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTUzOlx0XHRmb3VuZCA9ICFtdDc2eDJfY2hlY2tfZWVwcm9tKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY3LVx0aWYgKGZvdW5kKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxNjg6XHRcdG10NzZ4Ml9hcHBseV9jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY5LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xODI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE4MzptdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTk3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxOTg6bXQ3NngyX3NldF9yc3NpX29mZnNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IGNoYWluLCB1OCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xOTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTIwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMDpzdGF0aWMgZW51bSBtdDc2eDJfY2FsX2NoYW5uZWxfZ3JvdXBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMTptdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGludCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMjY9c3RhdGljIHU4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyMjc6bXQ3NngyX2dldF81Z19yeF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjI4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIyOTpcdGVudW0gbXQ3NngyX2NhbF9jaGFubmVsX2dyb3VwIGdyb3VwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjMxOlx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjMyLVx0c3dpdGNoIChncm91cCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI1NDp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2NS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI2NjpcdFx0dmFsID0gbXQ3NngyX2dldF81Z19yeF9nYWluKGRldiwgY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNjg6XHRtdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoZGV2LCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjcwLVx0bXQ3NngwMl9nZXRfcnhfZ2FpbihkZXYsIGNoYW4tXHUwMDNlYmFuZCwgXHUwMDI2dmFsLCBcdTAwMjZsbmFfMmcsIGxuYV81Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNzE6XHRtdDc2eDJfc2V0X3Jzc2lfb2Zmc2V0KGRldiwgMCwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI3MjpcdG10NzZ4Ml9zZXRfcnNzaV9vZmZzZXQoZGV2LCAxLCB2YWwgXHUwMDNlXHUwMDNlIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI4OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyOTA6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3JlYWRfcnhfZ2Fpbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyOTI6dm9pZCBtdDc2eDJfZ2V0X3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTMtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNDE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9yYXRlX3Bvd2VyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTM0Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MzQ0Om10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0NTpcdFx0XHQgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzQ2LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MzczPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNzQ6bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzc1Olx0XHRcdCBzdHJ1Y3QgbXQ3NngyX3R4X3Bvd2VyX2luZm8gKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzYtXHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzktXHRpbnQgY2hhbm5lbCA9IGNoYW4tXHUwMDNlaHdfdmFsdWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozODA6XHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4MS1cdGludCBkZWx0YV9pZHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzg1Olx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMzg2LVx0b2Zmc2V0ICYjNDM7PSBncm91cCAqIE1UX1RYX1BPV0VSX0dST1VQX1NJWkVfNUc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDI1OnZvaWQgbXQ3NngyX2dldF9wb3dlcl9pbmZvKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDI2Olx0XHRcdCAgIHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyAqdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQyNy1cdFx0XHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDM3LVx0XHRidzQwIFx1MDAzZVx1MDAzZT0gODtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQzODpcdFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKGRldiwgdCwgY2hhbiwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQzOS1cdFx0XHRcdFx0IE1UX0VFX1RYX1BPV0VSXzBfU1RBUlRfNUcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQwOlx0XHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fNWcoZGV2LCB0LCBjaGFuLCAxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQxLVx0XHRcdFx0XHQgTVRfRUVfVFhfUE9XRVJfMV9TVEFSVF81Ryk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDItXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQzOlx0XHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fMmcoZGV2LCB0LCBjaGFuLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ0LVx0XHRcdFx0XHQgTVRfRUVfVFhfUE9XRVJfMF9TVEFSVF8yRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDU6XHRcdG10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhkZXYsIHQsIGNoYW4sIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDYtXHRcdFx0XHRcdCBNVF9FRV9UWF9QT1dFUl8xX1NUQVJUXzJHKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDk6XHRpZiAobXQ3NngyX3Rzc2lfZW5hYmxlZChkZXYpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NTAtXHQgICAgIW10NzZ4MDJfZmllbGRfdmFsaWQodC1cdTAwM2V0YXJnZXRfcG93ZXIpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ1NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9wb3dlcl9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ1ODppbnQgbXQ3NngyX2dldF90ZW1wX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDJfdGVtcF9jb21wICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NjY6XHRpZiAoIW10NzZ4Ml90ZW1wX3R4X2FsY19lbmFibGVkKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NjctXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ4OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0OTA6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF90ZW1wX2NvbXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkyOmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00OTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ5NjpcdHJldCA9IG10NzZ4Ml9lZXByb21fbG9hZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDk3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDAtXHRtdDc2eDAyX2VlcHJvbV9wYXJzZV9od19jYXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwMTpcdG10NzZ4Ml9lZXByb21fZ2V0X21hY2FkZHIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTUwMi1cdHJldCA9IG10NzZfZWVwcm9tX292ZXJyaWRlKFx1MDAyNmRldi1cdTAwM2VtcGh5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTA5OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9lZXByb21faW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDoxMTplbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC0xMi1cdE1UX0NIXzVHX0pBUEFOLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MjE6c3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIyLVx0dTggdGFyZ2V0X3Bvd2VyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MzU6c3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMzYtXHR1OCB0ZW1wXzI1X3JlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQzOnZvaWQgbXQ3NngyX2dldF9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDQtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQ1OnZvaWQgbXQ3NngyX2dldF9wb3dlcl9pbmZvKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDY6XHRcdFx0ICAgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDctXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjQ4OmludCBtdDc2eDJfZ2V0X3RlbXBfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgc3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAgKnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDk6dm9pZCBtdDc2eDJfcmVhZF9yeF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg9NTE9c3RhdGljIGlubGluZSBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo1MjptdDc2eDJfaGFzX2V4dF9sbmEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC01My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg9NjI9c3RhdGljIGlubGluZSBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo2MzptdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD03NT1zdGF0aWMgaW5saW5lIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjc2Om10NzZ4Ml90c3NpX2VuYWJsZWQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC03Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3ODpcdHJldHVybiAhbXQ3NngyX3RlbXBfdHhfYWxjX2VuYWJsZWQoZGV2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTc5LVx0ICAgICAgIChtdDc2eDAyX2VlcHJvbV9nZXQoZGV2LCBNVF9FRV9OSUNfQ09ORl8xKSBcdTAwMjZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoxMTppbnQgbXQ3NngyX3NldF9zYXJfc3BlY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTItXHRcdFx0IGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9zYXJfc3BlY3MgKnNhcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzEtXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcdTAwMjZtcGh5LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcdFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjM4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9zZXRfc2FyX3NwZWNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYz00MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjQxOm10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtNDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo1Njp2b2lkIG10NzZ4Ml9yZXNldF93bGFuKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTc4LW91dDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OTpcdG10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShkZXYsIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtODAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjgxOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9yZXNldF93bGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy04Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM9MTc4PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTgwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODEtXHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODMtXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTg0Olx0c3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvIHR4cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xODUtXHRzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHQgPSB7fTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE5MTpcdFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvKGRldiwgXHUwMDI2dHhwLCBjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoxOTI6XHRcdG10NzZ4Ml9nZXRfcmF0ZV9wb3dlcihkZXYsIFx1MDAyNnQsIGNoYW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMjAzLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzoyMDQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2luaXRfdHhwb3dlcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo5OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTQ1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jOjQ2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tYWNfc3RvcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg9MTE9c3RydWN0IG10NzZ4MDJfZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTI6c3RydWN0IG10NzZ4Ml9zdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xMy1zdHJ1Y3QgbXQ3NngwMl92aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjE1OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTc6c3RhdGljIGlubGluZSB2b2lkIG10NzZ4Ml9tYWNfcmVzdW1lKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTE6I2luY2x1ZGUgXCYjMzQ7bXQ3NngyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEyLSNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzoxNTppbnQgbXQ3NngyX21jdV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTggYncsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xNi1cdFx0XHQgICB1OCBid19pbmRleCwgYm9vbCBzY2FuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTQ0LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3Vfc2V0X2NoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo0NzppbnQgbXQ3NngyX21jdV9sb2FkX2NyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCB0eXBlLCB1OCB0ZW1wX2xldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDgtXHRcdCAgICAgICB1OCBjaGFubmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTcyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjczOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfbG9hZF9jcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjc1OmludCBtdDc2eDJfbWN1X2luaXRfZ2FpbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTMyIGdhaW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03Ni1cdFx0XHQgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5MjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfbWN1X2luaXRfZ2Fpbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk0OmludCBtdDc2eDJfbWN1X3Rzc2lfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk1Olx0XHRcdCBzdHJ1Y3QgbXQ3NngyX3Rzc2lfY29tcCAqdHNzaV9kYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTk4LVx0XHRfX2xlMzIgaWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5OTpcdFx0c3RydWN0IG10NzZ4Ml90c3NpX2NvbXAgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwMC1cdH0gX19wYWNrZWQgX19hbGlnbmVkKDQpIG1zZyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xMDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTA4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfdHNzaV9jb21wKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaD0yNz1lbnVtIG1jdV9jYWxpYnJhdGlvbiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaDo0NTplbnVtIG10NzZ4Ml9tY3VfY3JfbW9kZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC00Ni1cdE1UX1JGX0NSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NTI6c3RydWN0IG10NzZ4Ml90c3NpX2NvbXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNTMtXHR1OCBwYV9tb2RlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjM6aW50IG10NzZ4Ml9tY3VfdHNzaV9jb21wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjQ6XHRcdFx0IHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wICp0c3NpX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjU6aW50IG10NzZ4Ml9tY3VfaW5pdF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1MzIgZ2FpbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTY2LVx0XHRcdCBib29sIGZvcmNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD0yNj1zdGF0aWMgaW5saW5lIGJvb2wgaXNfbXQ3NjEyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6MzE6c3RhdGljIGlubGluZSBib29sIG10NzZ4Ml9jaGFubmVsX3NpbGVudChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjM5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MTppbnQgbXQ3NngyX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MjppbnQgbXQ3NngyX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0NDppbnQgbXQ3NngyX3NldF9zYXJfc3BlY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC00NS1cdFx0XHQgY29uc3Qgc3RydWN0IGNmZzgwMjExX3Nhcl9zcGVjcyAqc2FyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ2OnZvaWQgbXQ3NngyX3BoeV9wb3dlcl9vbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0Nzp2b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ4OmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NDk6aW50IG10NzZ4Ml9hcHBseV9jYWxpYnJhdGlvbl9kYXRhKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBpbnQgY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MDppbnQgbXQ3NngyZV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MTppbnQgbXQ3NngydV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjUzOnZvaWQgbXQ3NngyX3BoeV9zZXRfYW50ZW5uYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NDppbnQgbXQ3NngyX3BoeV9zdGFydChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NTppbnQgbXQ3NngyX3BoeV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTU2LVx0XHRcdCAgIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1Nzp2b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1ODp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MDppbnQgbXQ3NngyX21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjYxOmludCBtdDc2eDJfbWN1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTYyLVx0XHRcdCAgIHU4IGJ3X2luZGV4LCBib29sIHNjYW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjM6aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY0LVx0XHQgICAgICAgdTggY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2ODppbnQgbXQ3NngyX21hY19yZXNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBoYXJkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY5OnZvaWQgbXQ3NngyX3Jlc2V0X3dsYW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjcwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTcxLVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD03Mj12b2lkIG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NzQ6dm9pZCBtdDc2eDJfcGh5X3Rzc2lfY29tcGVuc2F0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVx0XHRcdFx0IGVudW0gbmw4MDIxMV9iYW5kIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Nzc6dm9pZCBtdDc2eDJfY29uZmlndXJlX3R4X2RlbGF5KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNzgtXHRcdFx0ICAgICAgIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsIHU4IGJ3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc5OnZvaWQgbXQ3NngyX2FwcGx5X2dhaW5fYWRqKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjgwOnZvaWQgbXQ3NngyX3BoeV91cGRhdGVfY2hhbm5lbF9nYWluKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTgxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoxMTojaW5jbHVkZSBcJiMzNDttdDc2eDIuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEyLSNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjE5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJ1X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyMTppbnQgbXQ3NngydV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIyOmludCBtdDc2eDJ1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIzOnZvaWQgbXQ3NngydV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyNDp2b2lkIG10NzZ4MnVfc3RvcF9odyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjY6aW50IG10NzZ4MnVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoyNzppbnQgbXQ3NngydV9tYWNfc3RvcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjk6aW50IG10NzZ4MnVfcGh5X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTMwLVx0XHRcdCAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjMxOnZvaWQgbXQ3NngydV9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzM6dm9pZCBtdDc2eDJ1X21jdV9jb21wbGV0ZV91cmIoc3RydWN0IHVyYiAqdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDozNDppbnQgbXQ3NngydV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzU6aW50IG10NzZ4MnVfbWN1X2Z3X2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM3OmludCBtdDc2eDJ1X2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzg6dm9pZCBtdDc2eDJ1X3F1ZXVlc19kZWluaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM5OnZvaWQgbXQ3NngydV9zdG9wX3F1ZXVlcyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6NDA6aW50IG10NzZ4MnVfc2tiX2RtYV9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGVudW0gZG1hX21zZ19wb3J0IHBvcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtNDEtXHRcdFx0IHUzMiBmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwOiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc2eDJlX2RldmljZV90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTMtXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgMHg3NjYyKSB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjIwOm10NzZ4MmVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yOC1cdFx0LnVwZGF0ZV9zdXJ2ZXkgPSBtdDc2eDAyX3VwZGF0ZV9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6Mjk6XHRcdC5zZXRfY2hhbm5lbCA9IG10NzZ4MmVfc2V0X2NoYW5uZWwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zMC1cdFx0LnR4X3ByZXBhcmVfc2tiID0gbXQ3NngwMl90eF9wcmVwYXJlX3NrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjU2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzZ4Ml9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy01Ny1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy02Mi1cdG10NzZfbW1pb19pbml0KG1kZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NjM6XHRtdDc2eDJfcmVzZXRfd2xhbihkZXYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NzU6XHRyZXQgPSBtdDc2eDJfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy03Ni1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDE6bXQ3NngyZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDc6XHRtdDc2eDJfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xMTE9c3RhdGljIGludCBfX21heWJlX3VudXNlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTEyOm10NzZ4MmVfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTEzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xNDA9c3RhdGljIGludCBfX21heWJlX3VudXNlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTQxOm10NzZ4MmVfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNjc6XHRyZXR1cm4gbXQ3NngyX3Jlc3VtZV9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE2OC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzZ4MmVfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE3MS1NT0RVTEVfRklSTVdBUkUoTVQ3NjYyX0ZJUk1XQVJFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xNzY9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG10NzZwY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTc3LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3ODpcdC5pZF90YWJsZVx0PSBtdDc2eDJlX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3OTpcdC5wcm9iZVx0XHQ9IG10NzZ4MmVfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxODA6XHQucmVtb3ZlXHRcdD0gbXQ3NngyZV9yZW1vdmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODEtI2lmZGVmIENPTkZJR19QTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTgyOlx0LnN1c3BlbmRcdD0gbXQ3NngyZV9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTgzOlx0LnJlc3VtZVx0XHQ9IG10NzZ4MmVfcmVzdW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTg0LSNlbmRpZiAvKiBDT05GSUdfUE0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvZGVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo3OiNpbmNsdWRlIFwmIzM0O210NzZ4Mi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTgtI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTEyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjEzOm10NzZ4Ml9tYWNfcGJmX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTMwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjMxOm10NzZ4Ml9maXh1cF94dGFsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0zMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy02OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6NzA6aW50IG10NzZ4Ml9tYWNfcmVzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgaGFyZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkwOlx0bXQ3NngyX21hY19wYmZfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy05MS1cdG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkyOlx0bXQ3NngyX2ZpeHVwX3h0YWwoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtOTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0xNDE9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTQyOm10NzZ4Ml9wb3dlcl9vbl9yZl9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMTQzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE2Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxNjM6bXQ3NngyX3Bvd2VyX29uX3JmKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBpbnQgdW5pdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMTY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTc5Olx0bXQ3NngyX3Bvd2VyX29uX3JmX3BhdGNoKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE4MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE4ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxODU6bXQ3NngyX3Bvd2VyX29uKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyMTY6XHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjE3Olx0bXQ3NngyX3Bvd2VyX29uX3JmKGRldiwgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjIwOmludCBtdDc2eDJfcmVzdW1lX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIyNC1cdG10NzZ4MDJfZG1hX2Rpc2FibGUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MjI1Olx0bXQ3NngyX3Jlc2V0X3dsYW4oZGV2LCB0cnVlKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzY0CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1UNzZ4MiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10NzZ4MmAgZHJpdmVyLCBhbmQgSSBzZWUgaXQgaGFzIGJvdGggUENJIChgbXQ3NngyZWApIGFuZCBVU0IgKGBtdDc2eDJ1YCkgdmVyc2lvbnMuIFdhaXQsICpgbXQ3NngydWAqIGlzIHNwZWNpZmljYWxseSB0aGUgVVNCIGRyaXZlciwgcmlnaHQ/IEludGVyZXN0aW5nLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHNlZSBpZiB3ZSBjYW4gZ2V0IGl0IHJ1bm5pbmcgaW4gUUVNVSBvciBwZXJoYXBzIHVzZSBhIFVTQiBnYWRnZXQgc2V0dXAgZm9yIHRlc3RpbmcuIEJ1dCB0aGVuIEkgcmVtZW1iZXIsIHN5emthbGxlciBoYXMgdGhhdCBuaWZ0eSBVU0IgZnV6emluZyBzdWJzeXN0ZW0sIGB2aGNpYC4gQnJpbGxpYW50ISBUaGF0IG1lYW5zIFVTQiBkcml2ZXJzIGFyZSBkZWZpbml0ZWx5IGZ1enphYmxlIHdpdGggc3l6a2FsbGVyLgoKTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCBhIHNwZWNpZmljIHRhcmdldC4gSSByZWNhbGwgc2VlaW5nIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNgLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIFVTQiB2YXJpYW50LCBgbXQ3NngydWAsIGFjdHVhbGx5IHVzZSB0aGlzIGNvZGU/IFRpbWUgdG8gaW52ZXN0aWdhdGUuIEkmIzM5O2xsIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0uIEFoLCBoZXJlJiMzOTtzIHdoYXQgSSBuZWVkZWQ6IGBwaHkuY2AgaXMgcGFydCBvZiBgbXQ3NngyLWNvbW1vbi15YCwgd2hpY2ggaXMgdGhlbiBsaW5rZWQgaW50byBib3RoIHRoZSBQQ0kgYW5kIFVTQiB2YXJpYW50cy4gU28sIGBtdDc2eDItY29tbW9uYCBpcyBhIHNoYXJlZCBtb2R1bGUuIEV4Y2VsbGVudCEgTGV0JiMzOTtzIHZlcmlmeSB0aGlzIGluIHRoZSBgTWFrZWZpbGVgIGluIHRoZSBgbXQ3NngyYCBkaXJlY3RvcnkgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2eDJ1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfTVQ3NngyRSkgJiM0Mzs9IG10NzZ4MmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3NngyVSkgJiM0Mzs9IG10NzZ4MnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZT05PW10NzZ4MmUteSA6PSBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6MTM6bXQ3NngydS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xNC1cdHVzYi5vIHVzYl9pbml0Lm8gdXNiX21haW4ubyB1c2JfbWFjLm8gdXNiX21jdS5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2NTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqRXhhbWluaW5nIHRoZSBNVDc2eDIgQ29tbW9uIE1vZHVsZSBCdWlsZCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGBtdDc2eDItY29tbW9uLXlgIGJ1aWxkIGZsYWcuIFJpZ2h0LCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBpdCYjMzk7cyBjb25kaXRpb25hbGx5IGJ1aWx0LCBidXQgdGhlIGNvbmRpdGlvbiBpcyBrZXkuIEl0JiMzOTtzIGJ1aWx0IG9ubHkgd2hlbiBgQ09ORklHX01UNzZ4Ml9DT01NT05gIGlzIGRlZmluZWQuIFRoaXMgaXMgc3RhbmRhcmQga2VybmVsIG1vZHVsZSBjb25maWd1cmF0aW9uIGxvZ2ljLiBOb3csIEkgbmVlZCB0byBzZWUgKndoZXJlKiBgQ09ORklHX01UNzZ4Ml9DT01NT05gIGdldHMgaXRzIHZhbHVlLiBUaGUgbG9naWNhbCBwbGFjZSB0byBsb29rIGlzIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZHJpdmVyLiBTbywgSSBuZWVkIHRvIG9wZW4gYW5kIGV4YW1pbmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGRlZmluaXRpb24sIGRlZmF1bHRzLCBhbmQgcG90ZW50aWFsbHksIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBpbXBhY3QgdGhlIHNldHRpbmcgb2YgdGhhdCBjb25maWcgb3B0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgZmluZCBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzZ4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzaywgYXMgaWYgdGhlc2Ugd2VyZSBteSBpbnRlcm5hbCB0aG91Z2h0czoKCioqSW52ZXN0aWdhdGluZyBNVDc2IENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpBbHJpZ2h0LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBgTVQ3NmAgY29uZmlndXJhdGlvbnMuIFRpbWUgdG8gZGlnIGludG8gdGhlIHNvdXJjZSB0cmVlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgc3RyYWlnaHQgdG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQg4oCTIGl0JiMzOTtzIHdoZXJlIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVycyBzaG91bGQgYmUgZGVmaW5lZC4gRnJvbSB0aGVyZSBJJiMzOTtsbCBiZSBhYmxlIHRvIHdvcmsgb3V0IHdoYXQmIzM5O3MgYXZhaWxhYmxlIGFuZCwgaWYgbmVjZXNzYXJ5LCB0cmFjZSBkZXBlbmRlbmNpZXMgb3IgZmluZCBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9ucy4gVGhpcyB3aWxsIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBwb3NzaWJsZSBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TVQ3NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjg6XHRkZXBlbmRzIG9uIE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjk6XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEwLVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE0Olx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxNjpjb25maWcgTVQ3Nl9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMDpjb25maWcgTVQ3NngwMl9MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjI6XHRzZWxlY3QgTVQ3Nl9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI2Olx0c2VsZWN0IE1UNzZfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Mjg6Y29uZmlnIE1UNzZfQ09OTkFDX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozMDpcdHNlbGVjdCBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zMj1jb25maWcgTVQ3OTJ4X0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozNDpcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozODpcdHNlbGVjdCBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQwOmNvbmZpZyBNVDc2X05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MjpcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyOTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc2eDJgIGZhbWlseSwgYW5kIEkmIzM5O20gc3RhcnRpbmcgd2l0aCB0aGUgS2NvbmZpZyBmaWxlLiBMZXQgbWUgc2VlLi4uIEkmIzM5O2xsIHB1bGwgdXAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciB2ZXJzaW9uIGFyZSBkZWZpbmVkLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGZlYXR1cmUgdG9nZ2xlcyAoODAyLjExYWMgc3VwcG9ydCwgc2VjdXJpdHkgcHJvdG9jb2xzLCBldGMuKSwgZGVidWcgc2V0dGluZ3MsIGFuZCBtYXliZSBzb21lIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zLiBVbmRlcnN0YW5kaW5nIHRoaXMgS2NvbmZpZyBpcyBjcnVjaWFsIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgZHJpdmVyJiMzOTtzIGNvcmUgbG9naWMgYmVjYXVzZSBpdCBkaWN0YXRlcyB3aGljaCBwYXJ0cyBvZiB0aGUgZHJpdmVyIGFyZSBjb21waWxlZCBhbmQgaG93IHRoZXkgYmVoYXZlIG9uIGRpZmZlcmVudCBzeXN0ZW1zLiBJdCYjMzk7bGwgZ2l2ZSBtZSBhIHJvYWRtYXAgb2Ygd2hhdCYjMzk7cyAqcG9zc2libGUqIHRvIGNvbmZpZ3VyZSBhbmQgaGVscHMgbmFycm93IGRvd24gd2hhdCYjMzk7cyByZWxldmFudCB0byBteSBjdXJyZW50IHRhc2sgb3IgZGVidWdnaW5nIGVmZm9ydC4gTGV0JiMzOTtzIHNlZSB3aGF0IGdvb2RpZXMgYXJlIGluIHRoZXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0Oy4qJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjI6Y29uZmlnIE1UNzZ4Ml9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MzpcdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjQ6XHRzZWxlY3QgTVQ3NngwMl9MSUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6NTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Njpjb25maWcgTVQ3NngyRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo3Olx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngyRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo4Olx0c2VsZWN0IE1UNzZ4Ml9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6OTpcdGRlcGVuZHMgb24gTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMTpcdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTI6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTIvTVQ3NjAyL01UNzY2Mi1iYXNlZCBQQ0llIHdpcmVsZXNzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjEzOlx0ICBkZXZpY2VzLCB3aGljaCBjb21wbHkgd2l0aCBJRUVFIDgwMi4xMWFjIHN0YW5kYXJkcyBhbmQgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNDpcdCAgMlNTIHRvIDg2Nk1iaXQvcyBQSFkgcmF0ZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE2Olx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTg6Y29uZmlnIE1UNzZ4MlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTk6XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2eDJVIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjA6XHRzZWxlY3QgTVQ3NngyX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMTpcdHNlbGVjdCBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjM6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNDpcdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjU6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTJVLWJhc2VkIFVTQiAzLjAgd2lyZWxlc3MgZG9uZ2xlcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjY6XHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDJTUyB0b1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNzpcdCAgODY2TWJpdC9zIFBIWSByYXRlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyODpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjk6XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNjMyCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3NngyVSBVU0IgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQ09ORklHX01UNzZ4MlVgLiBSaWdodCwgdGhhdCYjMzk7cyB0aGUgVVNCIGRyaXZlciBmb3IgdGhlIE1UNzZ4MlUgY2hpcHNldC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgaXQgZGVwZW5kcyBvbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjaywgYE1BQzgwMjExYCwgYW5kIHRoZSBgVVNCYCBzdWJzeXN0ZW0sIG5hdHVyYWxseS4gSWYgSSBlbmFibGUgdGhpcyBkcml2ZXIsIHRoZSBjb25maWd1cmF0aW9uIHdpbGwgcHVsbCBpbiBgTVQ3NngyX0NPTU1PTmAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIGJ1aWxkcyB0aGUgYHBoeS5jYCBmaWxlLgoKTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gdGhpbmtpbmcgY2xlYXJseSBhYm91dCB0aGlzIGNvbm5lY3Rpb24uIFRoZSBxdWVzdGlvbiB0aGF0IGhhcyBwb3BwZWQgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpcyBhY2Nlc3NpYmxlIGFuZCB1c2VkIGRpcmVjdGx5IGZyb20gdGhlIFVTQiBkcml2ZXIgY29kZSBwYXRoLiBJdCYjMzk7cyBwb3RlbnRpYWxseSBhIGtleSBwaWVjZSwgYW5kIEkgZG9uJiMzOTt0IHdhbnQgYW55IGFzc3VtcHRpb25zIHRvIGJpdGUgbWUgbGF0ZXIuIFRpbWUgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGg7IEkgc2hvdWxkIGdvIGRvdWJsZS1jaGVjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIFVTQiBkcml2ZXIgY2FuIGluZGVlZCBjYWxsIGludG8gdGhhdCBQSFktcmVsYXRlZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTE5Om10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTMwPXZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxNTE6XHRiYXNlX3Bvd2VyID0gbXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihcdTAwMjZ0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE1Mi1cdGRlbHRhID0gYmFzZV9wb3dlciAtIHR4cC50YXJnZXRfcG93ZXI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MzMzCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgd2lyZWxlc3MgZHJpdmVyIGRldmVsb3BtZW50OgoKKipUcmFjaW5nIERvd24gdGhlIFRyYW5zbWl0dGVyIFBvd2VyIFNldHRpbmcqKgoKQWxyaWdodCwgc28gdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYC4gSSBrbm93IHRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdGhlIHRyYW5zbWl0IHBvd2VyIGxldmVscyBmb3IgdGhlIE1UNzZ4MiBQSFkuIFRoZSBnb2FsIGhlcmUgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBpcyBiZWluZyBjYWxsZWQgYW5kIGhvdyB0aGUgcG93ZXIgbGV2ZWxzIGFyZSB1bHRpbWF0ZWx5IGNvbmZpZ3VyZWQuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgc3lzdGVtYXRpYyBhcHByb2FjaC4gVGhlIG1vc3QgbG9naWNhbCBmaXJzdCBzdGVwIGlzIHRvIHRyYWNlIGJhY2sgdGhlIGNhbGwgY2hhaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyAqYWN0dWFsbHkqIGJlaW5nIGludm9rZWQuIFNvLCBJIG5lZWQgdG8gc2VlIGV4YWN0bHkgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjb2RlLiBLbm93aW5nIHRoZSBjYWxsIGNvbnRleHQgaXMgY3JpdGljYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4Ml9waHlfc2V0X3R4cG93ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jPTExPWludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzEtXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcdTAwMjZtcGh5LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcdFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD01Nz12b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1ODp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NzQ9dm9pZCBtdDc2eDJfcGh5X3Rzc2lfY29tcGVuc2F0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVx0XHRcdFx0IGVudW0gbmw4MDIxMV9iYW5kIGJhbmQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM9NTc9bXQ3NngyX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy04Mi1cdFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jOjgzOlx0XHRcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtODQtXHRcdFx0bXQ3NngwMl90eF9zZXRfdHhwd3JfYXV0byhkZXYsIGRldi1cdTAwM2V0eHBvd2VyX2NvbmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYz0xMTc9aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX3BoeS5jLTE4NC1cdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYzoxODU6XHRtdDc2eDJfcGh5X3NldF90eHBvd2VyX3JlZ3MoZGV2LCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODYtXHRtdDc2eDJfY29uZmlndXJlX3R4X2RlbGF5KGRldiwgYmFuZCwgYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX3BoeS5jOjE4NzpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9NDM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2FwcGx5X2dhaW5fYWRqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6NDU6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyX3JlZ3Moc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00Ni1cdFx0XHRcdCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3BoeV9zZXRfdHhwb3dlcl9yZWdzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTk9bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjEzMDp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xMzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE3NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxNzU6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3BoeV9zZXRfdHhwb3dlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYz01Mz1tdDc2eDJ1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy03OC1cdFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXHUwMDI2bXBoeS1cdTAwM2VzdGF0ZSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc5Olx0XHRcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtODAtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jPTYwPWludCBtdDc2eDJ1X3BoeV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIxLVx0bXQ3NngyX3JlYWRfcnhfZ2FpbihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jOjEyMjpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGNoYW4tXHUwMDNlYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIzLVx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGNoYW4tXHUwMDNlYmFuZCwgYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX3BoeS5jOjEyNDpcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYy0xMjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NjI1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMzg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgRnVuY3Rpb246IEEgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBoZXJlJiMzOTtzIHRoZSBicmVha2Rvd24uIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyBjYWxsZWQgZnJvbSB0d28ga2V5IHBsYWNlczogYG10NzZ4MnVfY29uZmlnYCBhbmQgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB3aXRoaW4gdGhlIGB1c2JfbWFpbi5jYCBhbmQgYHVzYl9waHkuY2AgZmlsZXMuIFRoaXMgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBjb2RlIGRpcmVjdGx5IGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYG10NzZ4MnVgIFVTQiBkcml2ZXIuIEFuZCBzaW5jZSBzeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBlbXVsYXRpbmcgVVNCIGRldmljZXMgdXNpbmcgYHZoY2lgLCB0aGlzIGxvb2tzIHZlcnkgcHJvbWlzaW5nIGZvciBmdXp6aW5nLiBXZSBoYXZlIGEgZGlyZWN0IHBhdGggaW4uCgpOb3csIGEgdGhvdWdodCAtIGBtdDc2eDJ1X2NvbmZpZ2AgaXMgYWxzbyB0cmlnZ2VyZWQgd2hlbiBjb25maWd1cmluZyB0aGUgZGV2aWNlIHRocm91Z2ggbWFjODAyMTEsIHdoaWNoIG9wZW5zIHVwIGFub3RoZXIgYXZlbnVlIC0gYG5ldGxpbmtgIChzcGVjaWZpY2FsbHkgYG5sODAyMTFgKS4gSWYgd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UsIG1hYzgwMjExIHdpbGwgcmVjb2duaXplIGl0LCBhbmQgdGhlbiB3ZSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIGBtdDc2eDJ1X2NvbmZpZ2Agb3IgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB0aHJvdWdoIHRoZSBgbmw4MDIxMWAgY29tbWFuZHMuIFRoaXMgb3BlbnMgdGhlIGRvb3IgdG8gdXNpbmcgdGhlc2UgY29tbWFuZHMgdG8gdHJpZ2dlciB0aGUgdnVsbmVyYWJsZSBjb2RlIGRpcmVjdGx5LgoKQmVmb3JlIHdlIG1vdmUgZm9yd2FyZCwgbGV0JiMzOTtzIHZlcmlmeSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4gVGhlIGNydWNpYWwgb3B0aW9uIGlzIGBDT05GSUdfTVQ3NngyVWAuIEJ1dCBkb2VzIGl0IGhhdmUgYW55IGRlcGVuZGVuY2llcz8gTG9va3MgbGlrZSBpdCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCBidXQgdGhhdCBpcyBpdC4gSXQgc2VlbXMgYENPTkZJR19NVDc2eDJVYCBpdHNlbGYgaXMgc3VmZmljaWVudC4gR29vZCwgaXQgc2VsZWN0cyBgTVQ3NngyX0NPTU1PTmAsIHdoaWNoLCBpbiB0dXJuLCBidWlsZHMgdGhlIGBwaHkuY2AgZmlsZS4KCk5vdywgdGhlIGZpbmFsIHBvaW50IC0gdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBzdGF0aWMuIEl0JiMzOTtzIHN0YXRpYyB3aXRoaW4gYHBoeS5jYC4KVGhlIHBhdGNoIG11c3QgaGF2ZSBtb2RpZmllZCB0aGlzIGZ1bmN0aW9uLiBXZSBtdXN0IGNvbmZpcm0gdGhpcyBieSBjaGVja2luZyB0aGUgYHBoeS5jYCBmaWxlIGl0c2VsZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jPTExOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTk6bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMzA9dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTE1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE1MTpcdGJhc2VfcG93ZXIgPSBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKFx1MDAyNnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUyLVx0ZGVsdGEgPSBiYXNlX3Bvd2VyIC0gdHhwLnRhcmdldF9wb3dlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc4MjUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3NzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogUmVmYWN0b3JpbmcgdnMuIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtZZXMsIHRoaXMgc2VlbXMgcHJldHR5IHN0YXRpYy4mIzM0OyBUaGUgY2FsbGVyIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCwgd2hpY2ggaXMgZXhwb3J0ZWQuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBzbyBpdCBzZWVtcyBsaWtlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBpbmRlZWQgYmUgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IOKAkyBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGNhbGwgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgPyBMb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBtdDc2eDJ1X2NvbmZpZ2AsIGBtdDc2eDJ1X3BoeV9zZXRfY2hhbm5lbGAsIGBtdDc2eDJfc2V0X3Nhcl9zcGVjc2AsIGBtdDc2eDJfY29uZmlnYCwgYW5kIGBtdDc2eDJfcGh5X3NldF9jaGFubmVsYC4gQ29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LCBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgaXMgYSBzb2xpZCBmb2N1cyBzeW1ib2wuCgpCdXQgd2FpdCwgbG9va2luZyBhdCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlOgoKYGBgYwotCWZvciAoaSA9IDA7IGkgJmx0OyBzaXplb2Yoci0mZ3Q7YWxsKTsgaSYjNDM7JiM0MzspIHsKLQkJaWYgKCFyLSZndDthbGxbaV0pCi0JCQljb250aW51ZTsKLQotCQlpZiAocmV0KQotCQkJcmV0ID0gbWluKHJldCwgci0mZ3Q7YWxsW2ldKTsKLQkJZWxzZQotCQkJcmV0ID0gci0mZ3Q7YWxsW2ldOwotCX0KJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHNpemVvZihyLSZndDthbGwpOyBpJiM0MzsmIzQzOykKJiM0MzsJCXJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItJmd0O2FsbFtpXSk7CmBgYAoKVGhhdCYjMzk7cyB3aGVyZSB0aGUgcXVlc3Rpb24gbWFyayBwb3BzIHVwLiBJcyB0aGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgKnJlYWwqIGNoYW5nZT8gSSBuZWVkIHRvIGFuYWx5emUgdGhpcyBjbG9zZWx5LiBJdCBzZWVtcyB0byBqdXN0IHJlcGxhY2UgYW4gZXhpc3RpbmcgbG9vcCB3aXRoIGBtaW5fbm90X3plcm9gLiBCdXQgZG9lcyB0aGlzIGZ1bmRhbWVudGFsbHkgY2hhbmdlIGhvdyB0aGUgcHJvZ3JhbSBiZWhhdmVzPyBMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKCkVzc2VudGlhbGx5LCBgbWluX25vdF96ZXJvYCBhcHBlYXJzIHRvIGJlIGRvaW5nIGV4YWN0bHkgd2hhdCB0aGUgb2xkIGNvZGUgd2FzIGRvaW5nLiBJZiBgcmV0YCBpcyAwLCBpdCByZXR1cm5zIGByLSZndDthbGxbaV1gIChwcm92aWRlZCBgci0mZ3Q7YWxsW2ldYCBpc24mIzM5O3QgYWxzbyAwKS4gSWYgYHItJmd0O2FsbFtpXWAgaXMgMCwgaXQgcmV0dXJucyBgcmV0YC4gSWYgbmVpdGhlciBpcyB6ZXJvLCBpdCBmaW5kcyB0aGUgbWluaW11bS4gTm93LCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSB0aGUgb2xkIGNvZGUgaGFkIGFuIGVxdWl2YWxlbnQgbG9naWM6IGlmIGAhci0mZ3Q7YWxsW2ldYCwgd2Ugc2tpcCB0byB0aGUgbmV4dCBlbGVtZW50LCBpZiBgcmV0YCBpcyBub3QgMCwgYHJldGAgd2lsbCBiZWNvbWUgdGhlIG1pbmltdW0gYmV0d2VlbiBgcmV0YCBhbmQgYHItJmd0O2FsbFtpXWAsIGFuZCBpZiBgcmV0YCBpcyAwLCBgcmV0YCBpcyBgci0mZ3Q7YWxsW2ldYC4gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBgbWluX25vdF96ZXJvYC4KClNvLCBpdCYjMzk7cyBub3QgYSBmdW5jdGlvbmFsICpjaGFuZ2UqLCBub3QgYSBjaGFuZ2UgaW4gYmVoYXZpb3IsIGJ1dCByYXRoZXIgYSAqcmVmYWN0b3JpbmcqIHRvIHVzZSBgbWluX25vdF96ZXJvYC4gSXMgdGhhdCByaWdodD8gSSB0aGluayBpdCBpcy4KCk5vdywgd2FpdCBhIG1pbnV0ZSwgdGhlIHByb21wdCBzYXlzLi4uIGFuZCBJIHJlYWQgdGhyb3VnaCB0aGUgbGlzdDogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIFtzcGVjaWZpYyB0eXBlcyBvZiBjaGFuZ2VzXS4uLiYjMzQ7IGFuZCBvbmUgb2YgdGhvc2UgaXM6ICYjMzQ7Q2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93JiMzNDsuCgpTbywgdGhpcyBjaGFuZ2UgYm9pbHMgZG93biB0byByZXBsYWNpbmcgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgYG1pbl9ub3RfemVyb2Agd2l0aCBhIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZXhlY3V0aW9uIGZsb3cgaXMgZnVuY3Rpb25hbGx5IGFsdGVyZWQuIFNpbmNlIGBtaW5fbm90X3plcm9gIGlzIGEgbWFjcm8sIEkgc2hvdWxkIGNoZWNrIGhvdyB0aGUgbWFjcm8gaXMgZGVmaW5lZCwgYnV0IGl0IHNlZW1zIHVubGlrZWx5IHRoYXQgdGhlIHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlZmluZSBtaW5fbm90X3plcm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21pbm1heC5oLTE3NS0gKi9cbmluY2x1ZGUvbGludXgvbWlubWF4Lmg6MTc2OiNkZWZpbmUgbWluX25vdF96ZXJvKHgsIHkpICh7XHRcdFx0XFxcbmluY2x1ZGUvbGludXgvbWlubWF4LmgtMTc3LVx0dHlwZW9mKHgpIF9feCA9ICh4KTtcdFx0XHRcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTQ4MgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBtaW5fbm90X3plcm9gIE1hY3JvKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgY29yZSB0aG91Z2h0IGhlcmUgaXMgdG8gZXhhbWluZSB0aGUgYG1pbl9ub3RfemVyb2AgbWFjcm8uIEkmIzM5O20gaW1tZWRpYXRlbHkgdGhpbmtpbmcgYWJvdXQgaXRzIGludGVuZGVkIGZ1bmN0aW9uYWxpdHkuIFdoYXQmIzM5O3MgaXQgZGVzaWduZWQgdG8gZG8/IE15IGd1ZXNzLCBiYXNlZCBvbiB0aGUgbmFtZSwgaXMgdGhhdCBpdCBhaW1zIHRvIGZpbmQgdGhlIG1pbmltdW0gdmFsdWUgZnJvbSBhIHNldCBvZiBpbnB1dHMsIGJ1dCB3aXRoIHRoZSBhZGRlZCBjb25zdHJhaW50IG9mIGV4Y2x1ZGluZyBhbnkgemVybyB2YWx1ZXMuIFRoaXMgaW1wbGllcyBhIG5lZWQgZm9yIGEgc3BlY2lmaWMgbG9naWMgdG8gaGFuZGxlIHBvdGVudGlhbCB6ZXJvIGlucHV0cyBhbmQgY29ycmVjdGx5IGlkZW50aWZ5IHRoZSBzbWFsbGVzdCAqbm9uLXplcm8qIHZhbHVlLiBJIHdvbmRlciBob3cgdGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgZWRnZSBjYXNlczogd2hhdCBoYXBwZW5zIGlmIGFsbCBpbnB1dHMgYXJlIHplcm8/IERvZXMgaXQgcmV0dXJuIGEgc3BlY2lmaWMgdmFsdWUsIGFuIGVycm9yLCBvciBwZXJoYXBzIGFuIG9wdGlvbmFsIHR5cGU/IEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgcXVlc3Rpb25zIGFib3V0IHBlcmZvcm1hbmNlOyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZWZmaWNpZW50LCBvciBhcmUgdGhlcmUgcG90ZW50aWFsIG9wdGltaXphdGlvbnMgSSBjb3VsZCBjb25zaWRlciByZWdhcmRpbmcgYnJhbmNoaW5nIG9yIHNob3J0LWNpcmN1aXRpbmc/IEZpbmFsbHksIEkgbmVlZCB0byBldmFsdWF0ZSBpdHMgb3ZlcmFsbCBkZXNpZ246IGRvZXMgaXQgYWRoZXJlIHRvIGVzdGFibGlzaGVkIGNvZGluZyBjb252ZW50aW9ucywgYW5kIGlzIGl0IGVhc2lseSB1bmRlcnN0YW5kYWJsZSBhbmQgbWFpbnRhaW5hYmxlPyBJJiMzOTttIHJlYWR5IHRvIGRpZyBpbiBhbmQgc2VlIGhvdyBpdCB3b3JrcyB1bmRlciB0aGUgaG9vZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21pbm1heC5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNzA6XHRcbiAxNzE6XHQvKipcbiAxNzI6XHQgKiBtaW5fbm90X3plcm8gLSByZXR1cm4gdGhlIG1pbmltdW0gdGhhdCBpcyBfbm90XyB6ZXJvLCB1bmxlc3MgYm90aCBhcmUgemVyb1xuIDE3MzpcdCAqIEB4OiB2YWx1ZTFcbiAxNzQ6XHQgKiBAeTogdmFsdWUyXG4gMTc1Olx0ICovXG4gMTc2Olx0I2RlZmluZSBtaW5fbm90X3plcm8oeCwgeSkgKHtcdFx0XHRcXFxuIDE3NzpcdFx0dHlwZW9mKHgpIF9feCA9ICh4KTtcdFx0XHRcXFxuIDE3ODpcdFx0dHlwZW9mKHkpIF9feSA9ICh5KTtcdFx0XHRcXFxuIDE3OTpcdFx0X194ID09IDAgPyBfX3kgOiAoKF9feSA9PSAwKSA/IF9feCA6IG1pbihfX3gsIF9feSkpOyB9KVxuIDE4MDpcdFxuIDE4MTpcdCNkZWZpbmUgX19jbGFtcCh2YWwsIGxvLCBoaSlcdFxcXG4gMTgyOlx0XHQoKHZhbCkgXHUwMDNlPSAoaGkpID8gKGhpKSA6ICgodmFsKSBcdTAwM2M9IChsbykgPyAobG8pIDogKHZhbCkpKVxuIDE4MzpcdFxuIDE4NDpcdCNkZWZpbmUgX19jbGFtcF9vbmNlKHR5cGUsIHZhbCwgbG8sIGhpLCB1dmFsLCB1bG8sIHVoaSkgKHtcdFx0XHRcXFxuIDE4NTpcdFx0dHlwZSB1dmFsID0gKHZhbCk7XHRcdFx0XHRcdFx0XHRcXFxuIDE4NjpcdFx0dHlwZSB1bG8gPSAobG8pO1x0XHRcdFx0XHRcdFx0XFxcbiAxODc6XHRcdHR5cGUgdWhpID0gKGhpKTtcdFx0XHRcdFx0XHRcdFxcXG4gMTg4Olx0XHRCVUlMRF9CVUdfT05fTVNHKHN0YXRpY2FsbHlfdHJ1ZSh1bG8gXHUwMDNlIHVoaSksXHRcdFx0XHRcXFxuIDE4OTpcdFx0XHRcJiMzNDtjbGFtcCgpIGxvdyBsaW1pdCBcJiMzNDsgI2xvIFwmIzM0OyBncmVhdGVyIHRoYW4gaGlnaCBsaW1pdCBcJiMzNDsgI2hpKTtcdFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMTU4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUgd2hhdCB3ZSBoYXZlIGhlcmUuCgoqKkFuYWx5emluZyB0aGUgTWFjcm8mIzM5O3MgRnVuY3Rpb25hbGl0eSoqCgpBbHJpZ2h0LCBmaXJzdCB0aGluZ3MgZmlyc3QsIHRoZSBtYWNybyBzZWVtcyB0byBiZSByZXBsaWNhdGluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGV4aXN0aW5nIGNvZGUuIFRoYXQmIzM5O3MgZ29vZCwgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhhbmcgb24gYSBzZWNvbmQuLi4gSSBzZWUgYHItJmd0O2FsbGAsIHdoaWNoIGlzIGFuIGFycmF5IG9mIGBzOGAuIE9rYXksIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhhdCBjb3JyZWN0IGluIG15IGhlYWQuCgpgYGBjCnN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgewoJczggYWxsWy4uLl07Cn07CmBgYAoKUmlnaHQsIGEgYHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXJgIHdoZXJlIGBhbGxgIGlzIGFuIGFycmF5IG9mIHNpZ25lZCA4LWJpdCBpbnRlZ2Vycy4gTGV0IG1lIHRha2UgYSBsb29rIGF0IHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYCBqdXN0IHRvIGJlIGNlcnRhaW4gYWJvdXQgdGhlIGNvbnRleHQgb2YgdGhlIGFycmF5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYXJyYXkgcmVwcmVzZW50cyB3aXRoaW4gdGhlIGxhcmdlciBkYXRhIHN0cnVjdHVyZSBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gdGhlIHJhdGUgY29udHJvbCBwcm9jZXNzLiBUaGF0JiMzOTtzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciBcXHsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaD02Mz1zdHJ1Y3QgbXQ3NngwMl9iZWFjb25fb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oOjc1OnN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmgtNzYtXHR1bmlvbiB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAyOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwNjM2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDoKCioqRGl2aW5nIGludG8gdGhlIGBtdDc2eDAyX3JhdGVfcG93ZXJgIFN0cnVjdHVyZSoqCgpPa2F5LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYC4gTXkgZ3Vlc3MgaXMgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBNZWRpYXRlayA3NjAyIGRyaXZlciAob3IgYSByZWxhdGVkIGZhbWlseSkgc3RvcmVzIHRoZSBwb3dlciBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGRpZmZlcmVudCBkYXRhIHJhdGVzLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJiMzOTttIGV4cGVjdGluZyB0byBzZWUgbWVtYmVycyByZWxhdGVkIHRvIG91dHB1dCBwb3dlciBsZXZlbHMgKGluIGRCbSwgcHJvYmFibHksIG9yIG1heWJlIGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uKS4gVGhlcmUgbWlnaHQgYmUgZGlmZmVyZW50IHBvd2VyIHRhYmxlcyBmb3IgZGlmZmVyZW50IGJhbmRzICgyLjQgR0h6IHZzLiA1IEdIeiksIGNoYW5uZWwgd2lkdGhzICgyMC80MC84MCBNSHopLCBhbmQgbW9kdWxhdGlvbiBzY2hlbWVzIChPRkRNLCBIVCwgVkhULCBldGMuKS4KCkkmIzM5O2QgYmUgcGFydGljdWxhcmx5IGludGVyZXN0ZWQgdG8gc2VlIGhvdyB0aGV5IGhhbmRsZSBwb3dlciBiYWNrLW9mZiBtZWNoYW5pc21zLiBEbyB0aGV5IGFjY291bnQgZm9yIHRlbXBlcmF0dXJlLCBvciBwZXJoYXBzIGxpbmsgcXVhbGl0eSBmZWVkYmFjayB0byBkeW5hbWljYWxseSBhZGp1c3QgdGhlIHRyYW5zbWl0IHBvd2VyPyBBcmUgdGhlcmUgYW55IHBlci1hbnRlbm5hIHBvd2VyIGFkanVzdG1lbnRzIGluIGhlcmU/IEFuZCBob3cgaXMgdGhpcyBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnM/IElzIHRoZXJlIGEgZGlyZWN0IG1hcHBpbmcsIG9yIGRvIHRoZXkgdXNlIHNvbWUga2luZCBvZiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gZm9yIHBvd2VyIGNvbnRyb2w/CgpUaGlzIHN0cnVjdHVyZSBpcyBhIGNydWNpYWwgcGllY2Ugb2YgdGhlIHB1enpsZSBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBtYW5hZ2VzIHRyYW5zbWl0IHBvd2VyLCBhbmQgSSYjMzk7bSBlYWdlciB0byBkaWcgaW4gYW5kIHVuZGVyc3RhbmQgaXRzIG51YW5jZXMuIFRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZ2V0IGFuIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGRhdGEgcmF0ZXMsIG1vZHVsYXRpb24vY29kaW5nIHNjaGVtZXMgYW5kIHBvd2VyIHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA3MDpcdCNkZWZpbmUgbXQ3NngwMl9iZWFjb25fZW5hYmxlKGRldiwgZW5hYmxlKVx0XFxcbiAgNzE6XHRcdChkZXYpLVx1MDAzZWJlYWNvbl9vcHMtXHUwMDNlYmVhY29uX2VuYWJsZShkZXYsIGVuYWJsZSlcbiAgNzI6XHQjZGVmaW5lIG10NzZ4MDJfcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVx0XFxcbiAgNzM6XHRcdChkZXYpLVx1MDAzZWJlYWNvbl9vcHMtXHUwMDNlcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVxuICA3NDpcdFxuICA3NTpcdHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xuICA3NjpcdFx0dW5pb24ge1xuICA3NzpcdFx0XHRzdHJ1Y3Qge1xuICA3ODpcdFx0XHRcdHM4IGNja1s0XTtcbiAgNzk6XHRcdFx0XHRzOCBvZmRtWzhdO1xuICA4MDpcdFx0XHRcdHM4IGh0WzE2XTtcbiAgODE6XHRcdFx0XHRzOCB2aHRbMl07XG4gIDgyOlx0XHRcdH07XG4gIDgzOlx0XHRcdHM4IGFsbFszMF07XG4gIDg0Olx0XHR9O1xuICA4NTpcdH07XG4gIDg2Olx0XG4gIDg3Olx0c3RydWN0IG10NzZ4MDJfZGV2IHtcbiAgODg6XHRcdHVuaW9uIHsgLyogbXVzdCBiZSBmaXJzdCAqL1xuICA4OTpcdFx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgbXQ3NjtcbiAgOTA6XHRcdFx0c3RydWN0IG10NzZfcGh5IG1waHk7XG4gIDkxOlx0XHR9O1xuICA5MjpcdFxuICA5MzpcdFx0c3RydWN0IG1hY19hZGRyZXNzIG1hY2FkZHJfbGlzdFs4XTtcbiAgOTQ6XHRcbiAgOTU6XHRcdHN0cnVjdCBtdXRleCBwaHlfbXV0ZXg7XG4gIDk2Olx0XG4gIDk3Olx0XHR1OCB0eGRvbmVfc2VxO1xuICA5ODpcdFx0REVDTEFSRV9LRklGT19QVFIodHhzdGF0dXNfZmlmbywgc3RydWN0IG10NzZ4MDJfdHhfc3RhdHVzKTtcbiAgOTk6XHRcdHNwaW5sb2NrX3QgdHhzdGF0dXNfZmlmb19sb2NrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTQyNQoJCQkJCQkJb3V0cHV0OiA4MQoJCQkJCQkJdGhvdWdodHM6IDExODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIENvZGUgQ2hhbmdlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgcmVwbGFjaW5nIGEgbG9vcCB0aGF0IGZpbmRzIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIHdpdGggYSBjYWxsIHRvIHRoZSBgbWluX25vdF96ZXJvYCBtYWNyby4gTGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCkluaXRpYWxseSwgSSBzZWUgdGhhdCBgci0mZ3Q7YWxsYCBpcyBhbiBhcnJheSBvZiBgczhgIChzaWduZWQgOC1iaXQgaW50ZWdlcnMpIG9mIHNpemUgMzAuIFRoZSBvbGQgY29kZSBpdGVyYXRlZCB0aHJvdWdoIHRoaXMgYXJyYXksIHNraXBwaW5nIHplcm8gdmFsdWVzLCBhbmQgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZS4gVGhlIG5ldyBjb2RlIHNpbXBseSB1c2VzIGBtaW5fbm90X3plcm9gLgoKTXkgZmlyc3QgdGhvdWdodCBpcywgJiMzNDtJcyB0aGVyZSBhbnkgKmZ1bmN0aW9uYWwqIGRpZmZlcmVuY2UgaGVyZT8mIzM0OyBJdCBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIHJlZmFjdG9yaW5nLiBgbWluX25vdF96ZXJvYCB1c2VzIGB0eXBlb2YoeClgIGFuZCBgdHlwZW9mKHkpYC4gQm90aCBgcmV0YCBhbmQgYHItJmd0O2FsbFtpXWAgYXJlIGBzOGAsIHNvIHRoZSBgbWluYCBtYWNybyBpbnNpZGUgc2hvdWxkIGJlIGNvbXBhcmluZyBgczhgIHZhbHVlcy4gSXQgYXBwZWFycyB0aGF0IHRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb3JpZ2luYWwgbG9vcCwgYnV0IHVzaW5nIHRoZSBtYWNybywgd2hpY2ggSSB1bmRlcnN0YW5kLgoKSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciBlZGdlIGNhc2VzLiBMZXQmIzM5O3Mgc2F5IGByLSZndDthbGxbaV1gIGlzIG5lZ2F0aXZlLiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYCFyLSZndDthbGxbaV1gLiBJbiB0aGUgY2FzZSBvZiBhIG5lZ2F0aXZlIHZhbHVlLCBgIXItJmd0O2FsbFtpXWAgd2lsbCBiZSBmYWxzZSwgc28gaXQgd29uJiMzOTt0IGBjb250aW51ZWAuIFRoaXMgaXMgaW1wb3J0YW50LiBJZiBgcmV0YCBpcyBhbHNvIG5lZ2F0aXZlLCB0aGUgY29tcGFyaXNvbiB3aXRoaW4gdGhlIGxvb3Agd291bGQgc3RpbGwgd29yayBhcyBleHBlY3RlZCwgdXNpbmcgdGhlIGBtaW5gIG1hY3JvLgoKTm93LCB3aGF0IGRvZXMgYG1pbl9ub3RfemVyb2AgZG8/IEl0IGxvb2tzIGxpa2UgaXQgY2hlY2tzIGBfX3ggPT0gMGAgYW5kIGBfX3kgPT0gMGAuIEl0IHJldHVybnMgYF9feWAgaWYgYF9feGAgaXMgemVybywgYW5kIHJldHVybnMgYF9feGAgaWYgYF9feWAgaXMgemVyby4gSWYgYm90aCBhcmUgbm9uLXplcm8sIGl0IHJldHVybnMgdGhlIG1pbmltdW0uIFRoaXMgaXMgdGhlIHNhbWUgbG9naWMgYXMgdGhlIG9sZCBjb2RlLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgaXMgbm8gc3VidGxlIGJ1ZyBpbiBgbWluX25vdF96ZXJvYCB3aGVuIGRlYWxpbmcgd2l0aCBuZWdhdGl2ZSBudW1iZXJzLiBJZiBgeGAgaXMgLTUgYW5kIGB5YCBpcyAwLCB0aGVuIGBtaW5fbm90X3plcm8oLTUsIDApYCByZXR1cm5zIC01LiBDb25zaWRlciB0aGUgb2xkIGNvZGU7IGluaXRpYWwgYHJldGAgPSAwLCBhbmQgYHItJmd0O2FsbFtpXWAgPSAtNS4gVGhlIGAhci0mZ3Q7YWxsW2ldYCB3b3VsZCBiZSBgZmFsc2VgIChpLmUuIG5vdCBjb250aW51ZSksIGByZXRgIGJlY29tZXMgLTUuIFRoZW4gdGhlIGxvb3AgY29udGludWVzLCB3aGVuIGByLSZndDthbGxbaV1gIGlzIDAsIHRoZSBgIXItJmd0O2FsbFtpXWAgaXMgdHJ1ZSAoY29udGludWUpLCBhbmQgdGhlIG9sZCBgcmV0YCBzdGF5cyBhdCAtNS4gVGhlcmVmb3JlLCB0aGVyZSYjMzk7cyBubyBkaWZmZXJlbmNlLgoKSSBhbSBjb25jbHVkaW5nIHRoYXQgdGhpcyBpcyBhIHB1cmVseSByZWZhY3RvcmluZyBjaGFuZ2UgYW5kIHRoYXQgaXQgZG9lc24mIzM5O3QgY2hhbmdlIHRoZSBleGVjdXRpb24gZmxvdy4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBjb3JyZWN0LiBJIHdpbGwgY2FyZWZ1bGx5IGNvbnNpZGVyIGFueSBvdGhlciBjaGFuZ2VzIGluY2x1ZGVkIGluIHRoZSBkaWZmLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0aGF0IGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG9uJiMzOTt0IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdyBtZWFucyB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcuCgpJJiMzOTt2ZSBleGFtaW5lZCB0aGUgZnVsbCBkaWZmLCBpdCBvbmx5IGRvZXMgd2hhdCBJIGRlc2NyaWJlZC4gSSBhbSBzYXRpc2ZpZWQuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzbiYjMzk7dCBhZmZlY3QgYmVoYXZpb3IuIEl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIGhhdmUgYSB0aG9yb3VnaCByZWFzb25pbmcgb2Ygd2h5IEkgdGhpbmsgdGhlIHJlc3VsdCBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIGBtaW5fbm90X3plcm9gIG1hY3JvIGlzIGltcGxlbWVudGVkIHRvIGRvIHRoZSBzYW1lIHRoaW5nIGFzIHRoZSBvbGQgaW1wbGVtZW50YXRpb24uIE15IGNoZWNrcyBmb3IgdHlwZSBzYWZldHkgaW4gYG1pbmAgYW5kIG5lZ2F0aXZlIG51bWJlciBoYW5kbGluZyBhbHNvIGNvbmZpcm0gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1MC4zOTYzOTkwMjlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTY0MzYzMDYzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgZmluZGluZyB0aGUgbWluaW11bSBub24temVybyB2YWx1ZSBpbiBhbiBhcnJheSB3aXRoIHRoZSBzdGFuZGFyZCBgbWluX25vdF96ZXJvYCBtYWNyby4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjUwLjM5NjQwNTcyOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5OTU1ODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAyOjQzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcXG5pbmRleCBhNWVmYTEzYTg5MmZkLi44OTczM2YzZmIxZjI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcXG5AQCAtMTIxLDE1ICsxMjEsOCBAQCBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXFxuIFxcdGludCBpO1xcbiBcXHRzOCByZXQgPSAwO1xcbiBcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNpemVvZihyLVxcdTAwM2VhbGwpOyBpKyspIHtcXG4tXFx0XFx0aWYgKCFyLVxcdTAwM2VhbGxbaV0pXFxuLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi1cXG4tXFx0XFx0aWYgKHJldClcXG4tXFx0XFx0XFx0cmV0ID0gbWluKHJldCwgci1cXHUwMDNlYWxsW2ldKTtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRyZXQgPSByLVxcdTAwM2VhbGxbaV07XFxuLVxcdH1cXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNpemVvZihyLVxcdTAwM2VhbGwpOyBpKyspXFxuK1xcdFxcdHJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItXFx1MDAzZWFsbFtpXSk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjUwLjgyNzMwNTIzMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjc1MjEyNzE2NzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMzYxOGJjN2ExMTMxYWI2M2JiYjM2MzJkYWVjMzk0OTcyYmZkYWM2NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDI6NDM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG5pbmRleCBhNWVmYTEzYTg5MmZkLi44OTczM2YzZmIxZjI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jXG5AQCAtMTIxLDE1ICsxMjEsOCBAQCBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXG4gXHRpbnQgaTtcbiBcdHM4IHJldCA9IDA7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzaXplb2Yoci1cdTAwM2VhbGwpOyBpKyspIHtcbi1cdFx0aWYgKCFyLVx1MDAzZWFsbFtpXSlcbi1cdFx0XHRjb250aW51ZTtcbi1cbi1cdFx0aWYgKHJldClcbi1cdFx0XHRyZXQgPSBtaW4ocmV0LCByLVx1MDAzZWFsbFtpXSk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRyZXQgPSByLVx1MDAzZWFsbFtpXTtcbi1cdH1cbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNpemVvZihyLVx1MDAzZWFsbCk7IGkrKylcbitcdFx0cmV0ID0gbWluX25vdF96ZXJvKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1MC44MjczMTUxMzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDY2NDU3ODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFdpLUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jYC4gVGhlIGNoYW5nZSBpcyBpbiB0aGUgYG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJgIGZ1bmN0aW9uIOKAkyBpdCdzIGEgc2ltcGxlIGxvb3Agb3B0aW1pemF0aW9uIHVzaW5nIGBtaW5fbm90X3plcm8ocmV0LCByLVx1MDAzZWFsbFtpXSlgLiBOb3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBIbW0sIGBtdDc2eDJgLi4uIHRoYXQncyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlciwgcmlnaHQ/IE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0ZXN0aW5nIHRoaXMgcHJvcGVybHkgd2lsbCBiZSBhIHBhaW4uIFRoZXNlIHNvcnRzIG9mIGRyaXZlcnMgb2Z0ZW4gcmVseSBvbiBzcGVjaWZpYyBoYXJkd2FyZSwgdHlwaWNhbGx5IFBDSWUgb3IgVVNCIFdpLUZpIGFkYXB0ZXJzLiBDYW4gSSBldmVuIHRlc3QgdGhpcyBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IEl0J2QgYmUgZ3JlYXQgaWYgSSBjb3VsZCwgdGhhdCdkIG1ha2UgdGhpbmdzIGEgbG90IGVhc2llci5cblxuV2FpdCBhIG1pbnV0ZSwgSSBzZWVtIHRvIHJlY2FsbCB0aGF0IG10NzZ4MiAqZG9lcyogaGF2ZSBVU0IgdmFyaWFudHMuIExldCdzIHZlcmlmeSB0aGF0LiBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGluIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyB0aGF0IGNsZWFybHkgaW5kaWNhdGVzIFVTQiBzdXBwb3J0OiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvYC5cbkkgaGF2ZSB0byBzZWUgaWYgdGhlcmUgaXMgc29tZXRoaW5nIFVTQi1zcGVjaWZpYyB3aXRoaW4gdGhlIGRyaXZlciB0byBkZXRlcm1pbmUgaWYgUUVNVSB0ZXN0aW5nIGlzIHZpYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2NywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQzOjU1LjI5Mzc3NTU0NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzU5NDE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTIyNyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZToyOm9iai0kKENPTkZJR19NVDc2eDJfQ09NTU9OKSArPSBtdDc2eDItY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc2eDJFKSArPSBtdDc2eDJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19NVDc2eDJVKSArPSBtdDc2eDJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjY6bXQ3NngyLWNvbW1vbi15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS03LVxcdGVlcHJvbS5vIG1hYy5vIGluaXQubyBwaHkubyBtY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6OTptdDc2eDJlLXkgOj0gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTEwLVxcdHBjaS5vIHBjaV9tYWluLm8gcGNpX2luaXQubyBwY2lfbWN1Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGUtMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvTWFrZWZpbGU6MTM6bXQ3NngydS15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xNC1cXHR1c2IubyB1c2JfaW5pdC5vIHVzYl9tYWluLm8gdXNiX21hYy5vIHVzYl9tY3UubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC91bmFsaWduZWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0xND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTU6bXQ3NngyX2VlcHJvbV9nZXRfbWFjYWRkcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMz1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI0Om10NzZ4Ml9oYXNfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggKmVmdXNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTQ5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTA6bXQ3NngyX2FwcGx5X2NhbF9mcmVlX2RhdGEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4ICplZnVzZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo5NDpcXHRpZiAoIW10NzZ4Ml9oYXNfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy05NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTIzOnN0YXRpYyBpbnQgbXQ3NngyX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoxNDE6bXQ3NngyX2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE0Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNTItXFx0aWYgKGZvdW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE1MzpcXHRcXHRmb3VuZCA9ICFtdDc2eDJfY2hlY2tfZWVwcm9tKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMTY3LVxcdGlmIChmb3VuZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE2ODpcXHRcXHRtdDc2eDJfYXBwbHlfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xNjktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jPTE4Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjE4MzptdDc2eDJfc2V0X3J4X2dhaW5fZ3JvdXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0xODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MTk3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MTk4Om10NzZ4Ml9zZXRfcnNzaV9vZmZzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBjaGFpbiwgdTggdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTE5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjEwOnN0YXRpYyBlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIxMTptdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGludCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTIxMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0yMjY9c3RhdGljIHU4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjI3Om10NzZ4Ml9nZXRfNWdfcnhfZ2FpbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjIyOTpcXHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjMxOlxcdGdyb3VwID0gbXQ3NngyX2dldF9jYWxfY2hhbm5lbF9ncm91cChjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yMzItXFx0c3dpdGNoIChncm91cCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI1NDp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2NS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjY2OlxcdFxcdHZhbCA9IG10NzZ4Ml9nZXRfNWdfcnhfZ2FpbihkZXYsIGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNjg6XFx0bXQ3NngyX3NldF9yeF9nYWluX2dyb3VwKGRldiwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtMjcwLVxcdG10NzZ4MDJfZ2V0X3J4X2dhaW4oZGV2LCBjaGFuLVxcdTAwM2ViYW5kLCBcXHUwMDI2dmFsLCBcXHUwMDI2bG5hXzJnLCBsbmFfNWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI3MTpcXHRtdDc2eDJfc2V0X3Jzc2lfb2Zmc2V0KGRldiwgMCwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzoyNzI6XFx0bXQ3NngyX3NldF9yc3NpX29mZnNldChkZXYsIDEsIHZhbCBcXHUwMDNlXFx1MDAzZSA4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yNzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yODktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjI5MDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfcmVhZF9yeF9nYWluKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0yOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6MjkyOnZvaWQgbXQ3NngyX2dldF9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTI5My1cXHRcXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNDAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0MTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfZ2V0X3JhdGVfcG93ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYz0zNDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNDQ6bXQ3NngyX2dldF9wb3dlcl9pbmZvXzJnKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM0NTpcXHRcXHRcXHQgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM0Ni1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM9MzczPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6Mzc0Om10NzZ4Ml9nZXRfcG93ZXJfaW5mb181ZyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozNzU6XFx0XFx0XFx0IHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyAqdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zNzYtXFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM3OS1cXHRpbnQgY2hhbm5lbCA9IGNoYW4tXFx1MDAzZWh3X3ZhbHVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjM4MDpcXHRlbnVtIG10NzZ4Ml9jYWxfY2hhbm5lbF9ncm91cCBncm91cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy0zODEtXFx0aW50IGRlbHRhX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzozODU6XFx0Z3JvdXAgPSBtdDc2eDJfZ2V0X2NhbF9jaGFubmVsX2dyb3VwKGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTM4Ni1cXHRvZmZzZXQgKz0gZ3JvdXAgKiBNVF9UWF9QT1dFUl9HUk9VUF9TSVpFXzVHO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQyNTp2b2lkIG10NzZ4Ml9nZXRfcG93ZXJfaW5mbyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0MjY6XFx0XFx0XFx0ICAgc3RydWN0IG10NzZ4Ml90eF9wb3dlcl9pbmZvICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQyNy1cXHRcXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00MzctXFx0XFx0Ync0MCBcXHUwMDNlXFx1MDAzZT0gODtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0Mzg6XFx0XFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzVnKGRldiwgdCwgY2hhbiwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00MzktXFx0XFx0XFx0XFx0XFx0IE1UX0VFX1RYX1BPV0VSXzBfU1RBUlRfNUcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ0MDpcXHRcXHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm9fNWcoZGV2LCB0LCBjaGFuLCAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ0MS1cXHRcXHRcXHRcXHRcXHQgTVRfRUVfVFhfUE9XRVJfMV9TVEFSVF81Ryk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDQzOlxcdFxcdG10NzZ4Ml9nZXRfcG93ZXJfaW5mb18yZyhkZXYsIHQsIGNoYW4sIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ0LVxcdFxcdFxcdFxcdFxcdCBNVF9FRV9UWF9QT1dFUl8wX1NUQVJUXzJHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NDU6XFx0XFx0bXQ3NngyX2dldF9wb3dlcl9pbmZvXzJnKGRldiwgdCwgY2hhbiwgMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NDYtXFx0XFx0XFx0XFx0XFx0IE1UX0VFX1RYX1BPV0VSXzFfU1RBUlRfMkcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjQ0OTpcXHRpZiAobXQ3NngyX3Rzc2lfZW5hYmxlZChkZXYpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDUwLVxcdCAgICAhbXQ3NngwMl9maWVsZF92YWxpZCh0LVxcdTAwM2V0YXJnZXRfcG93ZXIpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2dldF9wb3dlcl9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00NTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDU4OmludCBtdDc2eDJfZ2V0X3RlbXBfY29tcChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgc3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0NjY6XFx0aWYgKCFtdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ2Ny1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ4OS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkwOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9nZXRfdGVtcF9jb21wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy00OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NDkyOmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTQ5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYzo0OTY6XFx0cmV0ID0gbXQ3NngyX2VlcHJvbV9sb2FkKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmMtNDk3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDAtXFx0bXQ3NngwMl9lZXByb21fcGFyc2VfaHdfY2FwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmM6NTAxOlxcdG10NzZ4Ml9lZXByb21fZ2V0X21hY2FkZHIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDItXFx0cmV0ID0gbXQ3Nl9lZXByb21fb3ZlcnJpZGUoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uYy01MDgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jOjUwOTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfZWVwcm9tX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5jLTUxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjExOmVudW0gbXQ3NngyX2NhbF9jaGFubmVsX2dyb3VwIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC0xMi1cXHRNVF9DSF81R19KQVBBTixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjIxOnN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMjItXFx0dTggdGFyZ2V0X3Bvd2VyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6MzU6c3RydWN0IG10NzZ4Ml90ZW1wX2NvbXAge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTM2LVxcdHU4IHRlbXBfMjVfcmVmO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmg6NDM6dm9pZCBtdDc2eDJfZ2V0X3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDQtXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0NTp2b2lkIG10NzZ4Ml9nZXRfcG93ZXJfaW5mbyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0NjpcXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3NngyX3R4X3Bvd2VyX2luZm8gKnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvZWVwcm9tLmgtNDctXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0ODppbnQgbXQ3NngyX2dldF90ZW1wX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2eDJfdGVtcF9jb21wICp0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo0OTp2b2lkIG10NzZ4Ml9yZWFkX3J4X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oPTUxPXN0YXRpYyBpbmxpbmUgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oOjUyOm10NzZ4Ml9oYXNfZXh0X2xuYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC01My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD02Mj1zdGF0aWMgaW5saW5lIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo2MzptdDc2eDJfdGVtcF90eF9hbGNfZW5hYmxlZChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC02NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaD03NT1zdGF0aWMgaW5saW5lIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3NjptdDc2eDJfdHNzaV9lbmFibGVkKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2VlcHJvbS5oLTc3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaDo3ODpcXHRyZXR1cm4gIW10NzZ4Ml90ZW1wX3R4X2FsY19lbmFibGVkKGRldikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9lZXByb20uaC03OS1cXHQgICAgICAgKG10NzZ4MDJfZWVwcm9tX2dldChkZXYsIE1UX0VFX05JQ19DT05GXzEpIFxcdTAwMjZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzo3OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtOC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjExOmludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTItXFx0XFx0XFx0IGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9zYXJfc3BlY3MgKnNhcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zMS1cXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcXHUwMDI2bXBoeS1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYzozMjpcXHRcXHRtdDc2eDJfcGh5X3NldF90eHBvd2VyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMzLW91dDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0zNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjM4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9zZXRfc2FyX3NwZWNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jPTQwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjQxOm10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6NTY6dm9pZCBtdDc2eDJfcmVzZXRfd2xhbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTU3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy03OC1vdXQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjc5OlxcdG10NzZ4Ml9zZXRfd2xhbl9zdGF0ZShkZXYsIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTgwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6ODE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX3Jlc2V0X3dsYW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYz0xNzg9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl93cml0ZV9tYWNfaW5pdHZhbHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE4MDp2b2lkIG10NzZ4Ml9pbml0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE4MS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTgzLVxcdHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTg0OlxcdHN0cnVjdCBtdDc2eDJfdHhfcG93ZXJfaW5mbyB0eHA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTE4NS1cXHRzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHQgPSB7fTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL2luaXQuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjE5MTpcXHRcXHRtdDc2eDJfZ2V0X3Bvd2VyX2luZm8oZGV2LCBcXHUwMDI2dHhwLCBjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM6MTkyOlxcdFxcdG10NzZ4Ml9nZXRfcmF0ZV9wb3dlcihkZXYsIFxcdTAwMjZ0LCBjaGFuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTIwMy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjIwNDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfaW5pdF90eHBvd2VyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmM6NzojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmMtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo5OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5jLTQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuYzo0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfbWFjX3N0b3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaDo5OiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaD0xMT1zdHJ1Y3QgbXQ3NngwMl9kZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmg6MTI6c3RydWN0IG10NzZ4Ml9zdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTMtc3RydWN0IG10NzZ4MDJfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oLTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21hYy5oOjE1OnZvaWQgbXQ3NngyX21hY19zdG9wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIGZvcmNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tYWMuaDoxNzpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3NngyX21hY19yZXN1bWUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWFjLmgtMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTE6I2luY2x1ZGUgXFxcIm10NzZ4Mi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEyLSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjE1OmludCBtdDc2eDJfbWN1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy0xNi1cXHRcXHRcXHQgICB1OCBid19pbmRleCwgYm9vbCBzY2FuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3Vfc2V0X2NoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjQ3OmludCBtdDc2eDJfbWN1X2xvYWRfY3Ioc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IHR5cGUsIHU4IHRlbXBfbGV2ZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtNDgtXFx0XFx0ICAgICAgIHU4IGNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6NzM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX21jdV9sb2FkX2NyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy03NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo3NTppbnQgbXQ3NngyX21jdV9pbml0X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IGNoYW5uZWwsIHUzMiBnYWluLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTc2LVxcdFxcdFxcdCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjkyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfaW5pdF9nYWluKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuYzo5NDppbnQgbXQ3NngyX21jdV90c3NpX2NvbXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6OTU6XFx0XFx0XFx0IHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wICp0c3NpX2RhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtOTgtXFx0XFx0X19sZTMyIGlkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jOjk5OlxcdFxcdHN0cnVjdCBtdDc2eDJfdHNzaV9jb21wIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmMtMTAwLVxcdH0gX19wYWNrZWQgX19hbGlnbmVkKDQpIG1zZyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5jLTEwNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmM6MTA4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9tY3VfdHNzaV9jb21wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oPTI3PWVudW0gbWN1X2NhbGlicmF0aW9uIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjQ1OmVudW0gbXQ3NngyX21jdV9jcl9tb2RlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC00Ni1cXHRNVF9SRl9DUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjUyOnN0cnVjdCBtdDc2eDJfdHNzaV9jb21wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaC01My1cXHR1OCBwYV9tb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1LmgtNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbWN1Lmg6NjM6aW50IG10NzZ4Ml9tY3VfdHNzaV9jb21wKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oOjY0OlxcdFxcdFxcdCBzdHJ1Y3QgbXQ3NngyX3Rzc2lfY29tcCAqdHNzaV9kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tY3UuaDo2NTppbnQgbXQ3NngyX21jdV9pbml0X2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHU4IGNoYW5uZWwsIHUzMiBnYWluLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL21jdS5oLTY2LVxcdFxcdFxcdCBib29sIGZvcmNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oPTI2PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19tdDc2MTIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC0zMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDozMTpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3NngyX2NoYW5uZWxfc2lsZW50KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjM5OmV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDJfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQxOmludCBtdDc2eDJfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0MjppbnQgbXQ3NngyX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ0OmludCBtdDc2eDJfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC00NS1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IGNmZzgwMjExX3Nhcl9zcGVjcyAqc2FyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo0Njp2b2lkIG10NzZ4Ml9waHlfcG93ZXJfb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ3OnZvaWQgbXQ3NngyX3N0b3BfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ4OmludCBtdDc2eDJfZWVwcm9tX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjQ5OmludCBtdDc2eDJfYXBwbHlfY2FsaWJyYXRpb25fZGF0YShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IGNoYW5uZWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjUwOmludCBtdDc2eDJlX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1MTppbnQgbXQ3NngydV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTM6dm9pZCBtdDc2eDJfcGh5X3NldF9hbnRlbm5hKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1NDppbnQgbXQ3NngyX3BoeV9zdGFydChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTU6aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTYtXFx0XFx0XFx0ICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo1Nzp2b2lkIG10NzZ4Ml9waHlfY2FsaWJyYXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NTg6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MDppbnQgbXQ3NngyX21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo2MTppbnQgbXQ3NngyX21jdV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggY2hhbm5lbCwgdTggYncsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjItXFx0XFx0XFx0ICAgdTggYndfaW5kZXgsIGJvb2wgc2Nhbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjM6aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NC1cXHRcXHQgICAgICAgdTggY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6NjY6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Njg6aW50IG10NzZ4Ml9tYWNfcmVzZXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgaGFyZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6Njk6dm9pZCBtdDc2eDJfcmVzZXRfd2xhbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjcwOnZvaWQgbXQ3NngyX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC03MS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oPTcyPXZvaWQgbXQ3Nl93cml0ZV9tYWNfaW5pdHZhbHMoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc0OnZvaWQgbXQ3NngyX3BoeV90c3NpX2NvbXBlbnNhdGUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjc1OnZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcl9yZWdzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTc2LVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3Nzp2b2lkIG10NzZ4Ml9jb25maWd1cmVfdHhfZGVsYXkoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNzgtXFx0XFx0XFx0ICAgICAgIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsIHU4IGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3OTp2b2lkIG10NzZ4Ml9hcHBseV9nYWluX2FkaihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg6ODA6dm9pZCBtdDc2eDJfcGh5X3VwZGF0ZV9jaGFubmVsX2dhaW4oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDoxMTojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oLTEyLSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MTk6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjE6aW50IG10NzZ4MnVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjI6aW50IG10NzZ4MnVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjIzOnZvaWQgbXQ3NngydV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjQ6dm9pZCBtdDc2eDJ1X3N0b3BfaHcoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MjY6aW50IG10NzZ4MnVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjc6aW50IG10NzZ4MnVfbWFjX3N0b3Aoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mjk6aW50IG10NzZ4MnVfcGh5X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0zMC1cXHRcXHRcXHQgICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzE6dm9pZCBtdDc2eDJ1X3BoeV9jYWxpYnJhdGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjMzOnZvaWQgbXQ3NngydV9tY3VfY29tcGxldGVfdXJiKHN0cnVjdCB1cmIgKnVyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngydS5oOjM0OmludCBtdDc2eDJ1X21jdV9pbml0KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6MzU6aW50IG10NzZ4MnVfbWN1X2Z3X2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaC0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzc6aW50IG10NzZ4MnVfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1Lmg6Mzg6dm9pZCBtdDc2eDJ1X3F1ZXVlc19kZWluaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDozOTp2b2lkIG10NzZ4MnVfc3RvcF9xdWV1ZXMoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4MnUuaDo0MDppbnQgbXQ3NngydV9za2JfZG1hX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgZW51bSBkbWFfbXNnX3BvcnQgcG9ydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDJ1LmgtNDEtXFx0XFx0XFx0IHUzMiBmbGFncyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwOiNpbmNsdWRlIFxcXCJtdDc2eDIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3NngyZV9kZXZpY2VfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xMy1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgMHg3NjYyKSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjIwOm10NzZ4MmVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0yOC1cXHRcXHQudXBkYXRlX3N1cnZleSA9IG10NzZ4MDJfdXBkYXRlX2NoYW5uZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6Mjk6XFx0XFx0LnNldF9jaGFubmVsID0gbXQ3NngyZV9zZXRfY2hhbm5lbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zMC1cXHRcXHQudHhfcHJlcGFyZV9za2IgPSBtdDc2eDAyX3R4X3ByZXBhcmVfc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NTY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4Ml9vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTYyLVxcdG10NzZfbW1pb19pbml0KG1kZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjYzOlxcdG10NzZ4Ml9yZXNldF93bGFuKGRldiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NzU6XFx0cmV0ID0gbXQ3NngyX3JlZ2lzdGVyX2RldmljZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTc2LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0xMDA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDE6bXQ3NngyZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTAyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwNzpcXHRtdDc2eDJfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwOC1cXHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTExPXN0YXRpYyBpbnQgX19tYXliZV91bnVzZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMTI6bXQ3NngyZV9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE0MD1zdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTQxOm10NzZ4MmVfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE0Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTY3OlxcdHJldHVybiBtdDc2eDJfcmVzdW1lX2RldmljZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE2OC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE3MDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbXQ3NngyZV9kZXZpY2VfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTE3MS1NT0RVTEVfRklSTVdBUkUoTVQ3NjYyX0ZJUk1XQVJFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTE3Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbXQ3NnBjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTc3LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzg6XFx0LmlkX3RhYmxlXFx0PSBtdDc2eDJlX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxNzk6XFx0LnByb2JlXFx0XFx0PSBtdDc2eDJlX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MDpcXHQucmVtb3ZlXFx0XFx0PSBtdDc2eDJlX3JlbW92ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODEtI2lmZGVmIENPTkZJR19QTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MjpcXHQuc3VzcGVuZFxcdD0gbXQ3NngyZV9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjE4MzpcXHQucmVzdW1lXFx0XFx0PSBtdDc2eDJlX3Jlc3VtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0xODQtI2VuZGlmIC8qIENPTkZJR19QTSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy02LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWxheS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6NzojaW5jbHVkZSBcXFwibXQ3NngyLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjEzOm10NzZ4Ml9tYWNfcGJmX2luaXQoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTMwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzozMTptdDc2eDJfZml4dXBfeHRhbChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo3MDppbnQgbXQ3NngyX21hY19yZXNldChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgYm9vbCBoYXJkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtNzEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy04OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjkwOlxcdG10NzZ4Ml9tYWNfcGJmX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTkxLVxcdG10NzZfd3JpdGVfbWFjX2luaXR2YWxzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzo5MjpcXHRtdDc2eDJfZml4dXBfeHRhbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE0MT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTQyOm10NzZ4Ml9wb3dlcl9vbl9yZl9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE0My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE2Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTYzOm10NzZ4Ml9wb3dlcl9vbl9yZihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgaW50IHVuaXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoxNzk6XFx0bXQ3NngyX3Bvd2VyX29uX3JmX3BhdGNoKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0xODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTE4ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6MTg1Om10NzZ4Ml9wb3dlcl9vbihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTE4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIxNjpcXHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIxNzpcXHRtdDc2eDJfcG93ZXJfb25fcmYoZGV2LCAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTIxOC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyMjA6aW50IG10NzZ4Ml9yZXN1bWVfZGV2aWNlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjIxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjI0LVxcdG10NzZ4MDJfZG1hX2Rpc2FibGUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjIyNTpcXHRtdDc2eDJfcmVzZXRfd2xhbihkZXYsIHRydWUpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0Mzo1NS4zNjczNzQ1NzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjk4MTA1NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzZ4MiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBtdDc2eDJgIGRyaXZlciwgYW5kIEkgc2VlIGl0IGhhcyBib3RoIFBDSSAoYG10NzZ4MmVgKSBhbmQgVVNCIChgbXQ3NngydWApIHZlcnNpb25zLiBXYWl0LCAqYG10NzZ4MnVgKiBpcyBzcGVjaWZpY2FsbHkgdGhlIFVTQiBkcml2ZXIsIHJpZ2h0PyBJbnRlcmVzdGluZy4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBzZWUgaWYgd2UgY2FuIGdldCBpdCBydW5uaW5nIGluIFFFTVUgb3IgcGVyaGFwcyB1c2UgYSBVU0IgZ2FkZ2V0IHNldHVwIGZvciB0ZXN0aW5nLiBCdXQgdGhlbiBJIHJlbWVtYmVyLCBzeXprYWxsZXIgaGFzIHRoYXQgbmlmdHkgVVNCIGZ1enppbmcgc3Vic3lzdGVtLCBgdmhjaWAuIEJyaWxsaWFudCEgVGhhdCBtZWFucyBVU0IgZHJpdmVycyBhcmUgZGVmaW5pdGVseSBmdXp6YWJsZSB3aXRoIHN5emthbGxlci5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCBhIHNwZWNpZmljIHRhcmdldC4gSSByZWNhbGwgc2VlaW5nIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNgLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIFVTQiB2YXJpYW50LCBgbXQ3NngydWAsIGFjdHVhbGx5IHVzZSB0aGlzIGNvZGU/IFRpbWUgdG8gaW52ZXN0aWdhdGUuIEknbGwgZGlnIGludG8gdGhlIGJ1aWxkIHN5c3RlbS4gQWgsIGhlcmUncyB3aGF0IEkgbmVlZGVkOiBgcGh5LmNgIGlzIHBhcnQgb2YgYG10NzZ4Mi1jb21tb24teWAsIHdoaWNoIGlzIHRoZW4gbGlua2VkIGludG8gYm90aCB0aGUgUENJIGFuZCBVU0IgdmFyaWFudHMuIFNvLCBgbXQ3NngyLWNvbW1vbmAgaXMgYSBzaGFyZWQgbW9kdWxlLiBFeGNlbGxlbnQhIExldCdzIHZlcmlmeSB0aGlzIGluIHRoZSBgTWFrZWZpbGVgIGluIHRoZSBgbXQ3NngyYCBkaXJlY3RvcnkgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk3NjQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDEuNjY1NDgyODMyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzU2ODUyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJ1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX01UNzZ4MkUpICs9IG10NzZ4MmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX01UNzZ4MlUpICs9IG10NzZ4MnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZT05PW10NzZ4MmUteSA6PSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZS0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9NYWtlZmlsZToxMzptdDc2eDJ1LXkgOj0gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL01ha2VmaWxlLTE0LVxcdHVzYi5vIHVzYl9pbml0Lm8gdXNiX21haW4ubyB1c2JfbWFjLm8gdXNiX21jdS5vIFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDEuNzY5MDU1NDYxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0NzU2MTA2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkV4YW1pbmluZyB0aGUgTVQ3NngyIENvbW1vbiBNb2R1bGUgQnVpbGQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgYG10NzZ4Mi1jb21tb24teWAgYnVpbGQgZmxhZy4gUmlnaHQsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgaXQncyBjb25kaXRpb25hbGx5IGJ1aWx0LCBidXQgdGhlIGNvbmRpdGlvbiBpcyBrZXkuIEl0J3MgYnVpbHQgb25seSB3aGVuIGBDT05GSUdfTVQ3NngyX0NPTU1PTmAgaXMgZGVmaW5lZC4gVGhpcyBpcyBzdGFuZGFyZCBrZXJuZWwgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbG9naWMuIE5vdywgSSBuZWVkIHRvIHNlZSAqd2hlcmUqIGBDT05GSUdfTVQ3NngyX0NPTU1PTmAgZ2V0cyBpdHMgdmFsdWUuIFRoZSBsb2dpY2FsIHBsYWNlIHRvIGxvb2sgaXMgdGhlIEtjb25maWcgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gb3BlbiBhbmQgZXhhbWluZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJJ2xsIGZpbmQgdGhlIGRlZmluaXRpb24sIGRlZmF1bHRzLCBhbmQgcG90ZW50aWFsbHksIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBpbXBhY3QgdGhlIHNldHRpbmcgb2YgdGhhdCBjb25maWcgb3B0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSBmaW5kIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDY1OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA1LjMxNjYyMDUwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjI2NzA0OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3NngyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MDUuMzcyODk2ODY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwNDkzNjc2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHRoaXMgdGFzaywgYXMgaWYgdGhlc2Ugd2VyZSBteSBpbnRlcm5hbCB0aG91Z2h0czpcblxuKipJbnZlc3RpZ2F0aW5nIE1UNzYgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYE1UNzZgIGNvbmZpZ3VyYXRpb25zLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBzb3VyY2UgdHJlZS4gU3BlY2lmaWNhbGx5LCBJJ20gZ29pbmcgc3RyYWlnaHQgdG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgaXQncyB3aGVyZSB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlcnMgc2hvdWxkIGJlIGRlZmluZWQuIEZyb20gdGhlcmUgSSdsbCBiZSBhYmxlIHRvIHdvcmsgb3V0IHdoYXQncyBhdmFpbGFibGUgYW5kLCBpZiBuZWNlc3NhcnksIHRyYWNlIGRlcGVuZGVuY2llcyBvciBmaW5kIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb25zLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgdGhlIHBvc3NpYmxlIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk4MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA4Ljc3NzgzNTY2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzYwMjYzNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Njpjb25maWcgTVQ3Nl9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTctXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo4OlxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjk6XFx0ZGVwZW5kcyBvbiBMRURTX0NMQVNTPXkgfHwgTVQ3Nl9DT1JFPUxFRFNfQ0xBU1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTAtXFx0ZGVmYXVsdCB5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTQ6XFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTg6XFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMjpcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjY6XFx0c2VsZWN0IE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTMyPWNvbmZpZyBNVDc5MnhfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM0OlxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTM2PWNvbmZpZyBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM4OlxcdHNlbGVjdCBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQyOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjA4Ljg1Mzg2NjIzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk3Mjc3ODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgYG10NzZ4MmAgZmFtaWx5LCBhbmQgSSdtIHN0YXJ0aW5nIHdpdGggdGhlIEtjb25maWcgZmlsZS4gTGV0IG1lIHNlZS4uLiBJJ2xsIHB1bGwgdXAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciB2ZXJzaW9uIGFyZSBkZWZpbmVkLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGZlYXR1cmUgdG9nZ2xlcyAoODAyLjExYWMgc3VwcG9ydCwgc2VjdXJpdHkgcHJvdG9jb2xzLCBldGMuKSwgZGVidWcgc2V0dGluZ3MsIGFuZCBtYXliZSBzb21lIHBsYXRmb3JtLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zLiBVbmRlcnN0YW5kaW5nIHRoaXMgS2NvbmZpZyBpcyBjcnVjaWFsIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgZHJpdmVyJ3MgY29yZSBsb2dpYyBiZWNhdXNlIGl0IGRpY3RhdGVzIHdoaWNoIHBhcnRzIG9mIHRoZSBkcml2ZXIgYXJlIGNvbXBpbGVkIGFuZCBob3cgdGhleSBiZWhhdmUgb24gZGlmZmVyZW50IHN5c3RlbXMuIEl0J2xsIGdpdmUgbWUgYSByb2FkbWFwIG9mIHdoYXQncyAqcG9zc2libGUqIHRvIGNvbmZpZ3VyZSBhbmQgaGVscHMgbmFycm93IGRvd24gd2hhdCdzIHJlbGV2YW50IHRvIG15IGN1cnJlbnQgdGFzayBvciBkZWJ1Z2dpbmcgZWZmb3J0LiBMZXQncyBzZWUgd2hhdCBnb29kaWVzIGFyZSBpbiB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjI5NywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjEyLjY1MTE0NjMyNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTUzMTA0MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiLipcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE6IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyOmNvbmZpZyBNVDc2eDJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzozOlxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo0OlxcdHNlbGVjdCBNVDc2eDAyX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6NTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjc6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MkUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo4OlxcdHNlbGVjdCBNVDc2eDJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzo5OlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjEwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMTpcXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMjpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MTIvTVQ3NjAyL01UNzY2Mi1iYXNlZCBQQ0llIHdpcmVsZXNzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxMzpcXHQgIGRldmljZXMsIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNDpcXHQgIDJTUyB0byA4NjZNYml0L3MgUEhZIHJhdGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxNTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE2OlxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE3OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MTg6Y29uZmlnIE1UNzZ4MlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE5OlxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDJVIChVU0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMDpcXHRzZWxlY3QgTVQ3NngyX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjE6XFx0c2VsZWN0IE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyMzpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjQ6XFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6MjU6XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjEyVS1iYXNlZCBVU0IgMy4wIHdpcmVsZXNzIGRvbmdsZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyNjpcXHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDJTUyB0b1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjc6XFx0ICA4NjZNYml0L3MgUEhZIHJhdGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoyODpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjI5OlxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTIuNzQ2NDYxNDk1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNjA0MjkzMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNVDc2eDJVIFVTQiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ09ORklHX01UNzZ4MlVgLiBSaWdodCwgdGhhdCdzIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgTVQ3NngyVSBjaGlwc2V0LiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGl0IGRlcGVuZHMgb24gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2ssIGBNQUM4MDIxMWAsIGFuZCB0aGUgYFVTQmAgc3Vic3lzdGVtLCBuYXR1cmFsbHkuIElmIEkgZW5hYmxlIHRoaXMgZHJpdmVyLCB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHB1bGwgaW4gYE1UNzZ4Ml9DT01NT05gLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBidWlsZHMgdGhlIGBwaHkuY2AgZmlsZS5cblxuTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSB0aGlua2luZyBjbGVhcmx5IGFib3V0IHRoaXMgY29ubmVjdGlvbi4gVGhlIHF1ZXN0aW9uIHRoYXQgaGFzIHBvcHBlZCBpbnRvIG15IGhlYWQgaXMgd2hldGhlciB0aGUgZnVuY3Rpb24gYG10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJgIGlzIGFjY2Vzc2libGUgYW5kIHVzZWQgZGlyZWN0bHkgZnJvbSB0aGUgVVNCIGRyaXZlciBjb2RlIHBhdGguIEl0J3MgcG90ZW50aWFsbHkgYSBrZXkgcGllY2UsIGFuZCBJIGRvbid0IHdhbnQgYW55IGFzc3VtcHRpb25zIHRvIGJpdGUgbWUgbGF0ZXIuIFRpbWUgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGg7IEkgc2hvdWxkIGdvIGRvdWJsZS1jaGVjayB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIFVTQiBkcml2ZXIgY2FuIGluZGVlZCBjYWxsIGludG8gdGhhdCBQSFktcmVsYXRlZCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2MzIsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTcuMTA2ODk0MDU5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTE3OTUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjExOTptdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgKnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jPTEzMD12b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTUxOlxcdGJhc2VfcG93ZXIgPSBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyKFxcdTAwMjZ0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNTItXFx0ZGVsdGEgPSBiYXNlX3Bvd2VyIC0gdHhwLnRhcmdldF9wb3dlcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MTcuMTY2MDc5MzI4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDk5ODEwODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGVtYmVkZGVkIHdpcmVsZXNzIGRyaXZlciBkZXZlbG9wbWVudDpcblxuKipUcmFjaW5nIERvd24gdGhlIFRyYW5zbWl0dGVyIFBvd2VyIFNldHRpbmcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gaXMgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgLiBJIGtub3cgdGhpcyBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGUgdHJhbnNtaXQgcG93ZXIgbGV2ZWxzIGZvciB0aGUgTVQ3NngyIFBIWS4gVGhlIGdvYWwgaGVyZSBpcyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIGJlaW5nIGNhbGxlZCBhbmQgaG93IHRoZSBwb3dlciBsZXZlbHMgYXJlIHVsdGltYXRlbHkgY29uZmlndXJlZC4gTGV0J3Mgc3RhcnQgd2l0aCBhIHN5c3RlbWF0aWMgYXBwcm9hY2guIFRoZSBtb3N0IGxvZ2ljYWwgZmlyc3Qgc3RlcCBpcyB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIGNoYWluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAgaXMgKmFjdHVhbGx5KiBiZWluZyBpbnZva2VkLiBTbywgSSBuZWVkIHRvIHNlZSBleGFjdGx5IHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gd2l0aGluIHRoZSBkcml2ZXIncyBjb2RlLiBLbm93aW5nIHRoZSBjYWxsIGNvbnRleHQgaXMgY3JpdGljYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzMzLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MjAuNzc2MDYyNjQ0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4OTc1MjAyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2eDJfcGh5X3NldF90eHBvd2VyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmM9MTE9aW50IG10NzZ4Ml9zZXRfc2FyX3NwZWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jLTMxLVxcdGlmICh0ZXN0X2JpdChNVDc2X1NUQVRFX1JVTk5JTkcsIFxcdTAwMjZtcGh5LVxcdTAwM2VzdGF0ZSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvaW5pdC5jOjMyOlxcdFxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9pbml0LmMtMzMtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NTc9dm9pZCBtdDc2eDJfcGh5X2NhbGlicmF0ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjU4OnZvaWQgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaD03ND12b2lkIG10NzZ4Ml9waHlfdHNzaV9jb21wZW5zYXRlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaDo3NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC03Ni1cXHRcXHRcXHRcXHQgZW51bSBubDgwMjExX2JhbmQgYmFuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jPTU3PW10NzZ4Ml9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy04Mi1cXHRcXHRpZiAodGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCBcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LnN0YXRlKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM6ODM6XFx0XFx0XFx0bXQ3NngyX3BoeV9zZXRfdHhwb3dlcihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtODQtXFx0XFx0XFx0bXQ3NngwMl90eF9zZXRfdHhwd3JfYXV0byhkZXYsIGRldi1cXHUwMDNldHhwb3dlcl9jb25mKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYz0xMTc9aW50IG10NzZ4Ml9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmMtMTg0LVxcdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmM6MTg1OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9waHkuYy0xODYtXFx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGJhbmQsIGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmM6MTg3OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfcGh5LmMtMTg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9NDM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3NngyX2FwcGx5X2dhaW5fYWRqKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzo0NTp2b2lkIG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy00Ni1cXHRcXHRcXHRcXHQgZW51bSBubDgwMjExX2JhbmQgYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTExNS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM6MTE2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTE5PW10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXIoc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciAqcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMzA6dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEzMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE3NTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDJfcGh5X3NldF90eHBvd2VyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTUzPW10NzZ4MnVfY29uZmlnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LCB1MzIgY2hhbmdlZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtNzgtXFx0XFx0aWYgKHRlc3RfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXFx1MDAyNm1waHktXFx1MDAzZXN0YXRlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc5OlxcdFxcdFxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTgwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYz02MD1pbnQgbXQ3NngydV9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTIxLVxcdG10NzZ4Ml9yZWFkX3J4X2dhaW4oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmM6MTIyOlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJfcmVncyhkZXYsIGNoYW4tXFx1MDAzZWJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9waHkuYy0xMjMtXFx0bXQ3NngyX2NvbmZpZ3VyZV90eF9kZWxheShkZXYsIGNoYW4tXFx1MDAzZWJhbmQsIGJ3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmM6MTI0OlxcdG10NzZ4Ml9waHlfc2V0X3R4cG93ZXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfcGh5LmMtMTI1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0NDoyMC44NjU4MTg2OTNaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODExNjU4Njk2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgIEZ1bmN0aW9uOiBBIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIGJyZWFrZG93bi4gYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgIGlzIGNhbGxlZCBmcm9tIHR3byBrZXkgcGxhY2VzOiBgbXQ3NngydV9jb25maWdgIGFuZCBgbXQ3NngydV9waHlfc2V0X2NoYW5uZWxgIHdpdGhpbiB0aGUgYHVzYl9tYWluLmNgIGFuZCBgdXNiX3BoeS5jYCBmaWxlcy4gVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSdyZSBkZWFsaW5nIHdpdGggY29kZSBkaXJlY3RseSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGBtdDc2eDJ1YCBVU0IgZHJpdmVyLiBBbmQgc2luY2Ugc3l6a2FsbGVyIGlzIGNhcGFibGUgb2YgZW11bGF0aW5nIFVTQiBkZXZpY2VzIHVzaW5nIGB2aGNpYCwgdGhpcyBsb29rcyB2ZXJ5IHByb21pc2luZyBmb3IgZnV6emluZy4gV2UgaGF2ZSBhIGRpcmVjdCBwYXRoIGluLlxuXG5Ob3csIGEgdGhvdWdodCAtIGBtdDc2eDJ1X2NvbmZpZ2AgaXMgYWxzbyB0cmlnZ2VyZWQgd2hlbiBjb25maWd1cmluZyB0aGUgZGV2aWNlIHRocm91Z2ggbWFjODAyMTEsIHdoaWNoIG9wZW5zIHVwIGFub3RoZXIgYXZlbnVlIC0gYG5ldGxpbmtgIChzcGVjaWZpY2FsbHkgYG5sODAyMTFgKS4gSWYgd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UsIG1hYzgwMjExIHdpbGwgcmVjb2duaXplIGl0LCBhbmQgdGhlbiB3ZSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIGBtdDc2eDJ1X2NvbmZpZ2Agb3IgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCB0aHJvdWdoIHRoZSBgbmw4MDIxMWAgY29tbWFuZHMuIFRoaXMgb3BlbnMgdGhlIGRvb3IgdG8gdXNpbmcgdGhlc2UgY29tbWFuZHMgdG8gdHJpZ2dlciB0aGUgdnVsbmVyYWJsZSBjb2RlIGRpcmVjdGx5LlxuXG5CZWZvcmUgd2UgbW92ZSBmb3J3YXJkLCBsZXQncyB2ZXJpZnkgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIFRoZSBjcnVjaWFsIG9wdGlvbiBpcyBgQ09ORklHX01UNzZ4MlVgLiBCdXQgZG9lcyBpdCBoYXZlIGFueSBkZXBlbmRlbmNpZXM/IExvb2tzIGxpa2UgaXQgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYCwgYnV0IHRoYXQgaXMgaXQuIEl0IHNlZW1zIGBDT05GSUdfTVQ3NngyVWAgaXRzZWxmIGlzIHN1ZmZpY2llbnQuIEdvb2QsIGl0IHNlbGVjdHMgYE1UNzZ4Ml9DT01NT05gLCB3aGljaCwgaW4gdHVybiwgYnVpbGRzIHRoZSBgcGh5LmNgIGZpbGUuXG5cbk5vdywgdGhlIGZpbmFsIHBvaW50IC0gdGhlIGZ1bmN0aW9uIGBtdDc2eDJfZ2V0X21pbl9yYXRlX3Bvd2VyYC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBzdGF0aWMuIEl0J3Mgc3RhdGljIHdpdGhpbiBgcGh5LmNgLlxuVGhlIHBhdGNoIG11c3QgaGF2ZSBtb2RpZmllZCB0aGlzIGZ1bmN0aW9uLiBXZSBtdXN0IGNvbmZpcm0gdGhpcyBieSBjaGVja2luZyB0aGUgYHBoeS5jYCBmaWxlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2MjUsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6MjguOTgyNDA5MDRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyNTk5Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4Ml9nZXRfbWluX3JhdGVfcG93ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmM9MTE4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYzoxMTk6bXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyICpyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jLTEyMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9waHkuYz0xMzA9dm9pZCBtdDc2eDJfcGh5X3NldF90eHBvd2VyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BoeS5jOjE1MTpcXHRiYXNlX3Bvd2VyID0gbXQ3NngyX2dldF9taW5fcmF0ZV9wb3dlcihcXHUwMDI2dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGh5LmMtMTUyLVxcdGRlbHRhID0gYmFzZV9wb3dlciAtIHR4cC50YXJnZXRfcG93ZXI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjI5LjA1NTAxNjExOVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDQ4MDQzOTI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoOiBSZWZhY3RvcmluZyB2cy4gRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJZZXMsIHRoaXMgc2VlbXMgcHJldHR5IHN0YXRpYy5cIiBUaGUgY2FsbGVyIGlzIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCwgd2hpY2ggaXMgZXhwb3J0ZWQuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIHNvIGl0IHNlZW1zIGxpa2UgYEZvY3VzU3ltYm9sc2Agc2hvdWxkIGluZGVlZCBiZSBgbXQ3NngyX3BoeV9zZXRfdHhwb3dlcmAuXG5cbkxldCdzIHF1aWNrbHkgdmVyaWZ5IOKAkyBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGNhbGwgYG10NzZ4Ml9waHlfc2V0X3R4cG93ZXJgPyBMb29rcyBsaWtlIGl0J3MgY2FsbGVkIGZyb20gYG10NzZ4MnVfY29uZmlnYCwgYG10NzZ4MnVfcGh5X3NldF9jaGFubmVsYCwgYG10NzZ4Ml9zZXRfc2FyX3NwZWNzYCwgYG10NzZ4Ml9jb25maWdgLCBhbmQgYG10NzZ4Ml9waHlfc2V0X2NoYW5uZWxgLiBDb25maXJtcyBteSBpbml0aWFsIGFzc2Vzc21lbnQsIGBtdDc2eDJfcGh5X3NldF90eHBvd2VyYCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC5cblxuQnV0IHdhaXQsIGxvb2tpbmcgYXQgdGhlIGFjdHVhbCBjb2RlIGNoYW5nZTpcblxuYGBgY1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc2l6ZW9mKHItXHUwMDNlYWxsKTsgaSsrKSB7XG4tXHRcdGlmICghci1cdTAwM2VhbGxbaV0pXG4tXHRcdFx0Y29udGludWU7XG4tXG4tXHRcdGlmIChyZXQpXG4tXHRcdFx0cmV0ID0gbWluKHJldCwgci1cdTAwM2VhbGxbaV0pO1xuLVx0XHRlbHNlXG4tXHRcdFx0cmV0ID0gci1cdTAwM2VhbGxbaV07XG4tXHR9XG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzaXplb2Yoci1cdTAwM2VhbGwpOyBpKyspXG4rXHRcdHJldCA9IG1pbl9ub3RfemVybyhyZXQsIHItXHUwMDNlYWxsW2ldKTtcbmBgYFxuXG5UaGF0J3Mgd2hlcmUgdGhlIHF1ZXN0aW9uIG1hcmsgcG9wcyB1cC4gSXMgdGhpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhICpyZWFsKiBjaGFuZ2U/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2xvc2VseS4gSXQgc2VlbXMgdG8ganVzdCByZXBsYWNlIGFuIGV4aXN0aW5nIGxvb3Agd2l0aCBgbWluX25vdF96ZXJvYC4gQnV0IGRvZXMgdGhpcyBmdW5kYW1lbnRhbGx5IGNoYW5nZSBob3cgdGhlIHByb2dyYW0gYmVoYXZlcz8gTGV0J3MgYnJlYWsgaXQgZG93bjpcblxuRXNzZW50aWFsbHksIGBtaW5fbm90X3plcm9gIGFwcGVhcnMgdG8gYmUgZG9pbmcgZXhhY3RseSB3aGF0IHRoZSBvbGQgY29kZSB3YXMgZG9pbmcuIElmIGByZXRgIGlzIDAsIGl0IHJldHVybnMgYHItXHUwMDNlYWxsW2ldYCAocHJvdmlkZWQgYHItXHUwMDNlYWxsW2ldYCBpc24ndCBhbHNvIDApLiBJZiBgci1cdTAwM2VhbGxbaV1gIGlzIDAsIGl0IHJldHVybnMgYHJldGAuIElmIG5laXRoZXIgaXMgemVybywgaXQgZmluZHMgdGhlIG1pbmltdW0uIE5vdywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkgdGhlIG9sZCBjb2RlIGhhZCBhbiBlcXVpdmFsZW50IGxvZ2ljOiBpZiBgIXItXHUwMDNlYWxsW2ldYCwgd2Ugc2tpcCB0byB0aGUgbmV4dCBlbGVtZW50LCBpZiBgcmV0YCBpcyBub3QgMCwgYHJldGAgd2lsbCBiZWNvbWUgdGhlIG1pbmltdW0gYmV0d2VlbiBgcmV0YCBhbmQgYHItXHUwMDNlYWxsW2ldYCwgYW5kIGlmIGByZXRgIGlzIDAsIGByZXRgIGlzIGByLVx1MDAzZWFsbFtpXWAuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgYG1pbl9ub3RfemVyb2AuXG5cblNvLCBpdCdzIG5vdCBhIGZ1bmN0aW9uYWwgKmNoYW5nZSosIG5vdCBhIGNoYW5nZSBpbiBiZWhhdmlvciwgYnV0IHJhdGhlciBhICpyZWZhY3RvcmluZyogdG8gdXNlIGBtaW5fbm90X3plcm9gLiBJcyB0aGF0IHJpZ2h0PyBJIHRoaW5rIGl0IGlzLlxuXG5Ob3csIHdhaXQgYSBtaW51dGUsIHRoZSBwcm9tcHQgc2F5cy4uLiBhbmQgSSByZWFkIHRocm91Z2ggdGhlIGxpc3Q6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBbc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlc10uLi5cIiBhbmQgb25lIG9mIHRob3NlIGlzOiBcIkNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvd1wiLlxuXG5TbywgdGhpcyBjaGFuZ2UgYm9pbHMgZG93biB0byByZXBsYWNpbmcgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gb2YgYG1pbl9ub3RfemVyb2Agd2l0aCBhIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZXhlY3V0aW9uIGZsb3cgaXMgZnVuY3Rpb25hbGx5IGFsdGVyZWQuIFNpbmNlIGBtaW5fbm90X3plcm9gIGlzIGEgbWFjcm8sIEkgc2hvdWxkIGNoZWNrIGhvdyB0aGUgbWFjcm8gaXMgZGVmaW5lZCwgYnV0IGl0IHNlZW1zIHVubGlrZWx5IHRoYXQgdGhlIHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3ODI1LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjM5LjUzNTQ1OTMzOVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxODA1ODk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlZmluZSBtaW5fbm90X3plcm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9saW51eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9taW5tYXguaC0xNzUtICovXFxuaW5jbHVkZS9saW51eC9taW5tYXguaDoxNzY6I2RlZmluZSBtaW5fbm90X3plcm8oeCwgeSkgKHtcXHRcXHRcXHRcXFxcXFxuaW5jbHVkZS9saW51eC9taW5tYXguaC0xNzctXFx0dHlwZW9mKHgpIF9feCA9ICh4KTtcXHRcXHRcXHRcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjM5LjY3NzI2OTI3N1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjg5MjMzNjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBgbWluX25vdF96ZXJvYCBNYWNybyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIFRoZSBjb3JlIHRob3VnaHQgaGVyZSBpcyB0byBleGFtaW5lIHRoZSBgbWluX25vdF96ZXJvYCBtYWNyby4gSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IGl0cyBpbnRlbmRlZCBmdW5jdGlvbmFsaXR5LiBXaGF0J3MgaXQgZGVzaWduZWQgdG8gZG8/IE15IGd1ZXNzLCBiYXNlZCBvbiB0aGUgbmFtZSwgaXMgdGhhdCBpdCBhaW1zIHRvIGZpbmQgdGhlIG1pbmltdW0gdmFsdWUgZnJvbSBhIHNldCBvZiBpbnB1dHMsIGJ1dCB3aXRoIHRoZSBhZGRlZCBjb25zdHJhaW50IG9mIGV4Y2x1ZGluZyBhbnkgemVybyB2YWx1ZXMuIFRoaXMgaW1wbGllcyBhIG5lZWQgZm9yIGEgc3BlY2lmaWMgbG9naWMgdG8gaGFuZGxlIHBvdGVudGlhbCB6ZXJvIGlucHV0cyBhbmQgY29ycmVjdGx5IGlkZW50aWZ5IHRoZSBzbWFsbGVzdCAqbm9uLXplcm8qIHZhbHVlLiBJIHdvbmRlciBob3cgdGhlIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgZWRnZSBjYXNlczogd2hhdCBoYXBwZW5zIGlmIGFsbCBpbnB1dHMgYXJlIHplcm8/IERvZXMgaXQgcmV0dXJuIGEgc3BlY2lmaWMgdmFsdWUsIGFuIGVycm9yLCBvciBwZXJoYXBzIGFuIG9wdGlvbmFsIHR5cGU/IEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBxdWVzdGlvbnMgYWJvdXQgcGVyZm9ybWFuY2U7IGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBlZmZpY2llbnQsIG9yIGFyZSB0aGVyZSBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBJIGNvdWxkIGNvbnNpZGVyIHJlZ2FyZGluZyBicmFuY2hpbmcgb3Igc2hvcnQtY2lyY3VpdGluZz8gRmluYWxseSwgSSBuZWVkIHRvIGV2YWx1YXRlIGl0cyBvdmVyYWxsIGRlc2lnbjogZG9lcyBpdCBhZGhlcmUgdG8gZXN0YWJsaXNoZWQgY29kaW5nIGNvbnZlbnRpb25zLCBhbmQgaXMgaXQgZWFzaWx5IHVuZGVyc3RhbmRhYmxlIGFuZCBtYWludGFpbmFibGU/IEknbSByZWFkeSB0byBkaWcgaW4gYW5kIHNlZSBob3cgaXQgd29ya3MgdW5kZXIgdGhlIGhvb2QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NDgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NDMuMzY2NTA1ODUxWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImluY2x1ZGUvbGludXgvbWlubWF4LmhcIixcbiAgXCJGaXJzdExpbmVcIjogMTcwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTcwOlxcdFxcbiAxNzE6XFx0LyoqXFxuIDE3MjpcXHQgKiBtaW5fbm90X3plcm8gLSByZXR1cm4gdGhlIG1pbmltdW0gdGhhdCBpcyBfbm90XyB6ZXJvLCB1bmxlc3MgYm90aCBhcmUgemVyb1xcbiAxNzM6XFx0ICogQHg6IHZhbHVlMVxcbiAxNzQ6XFx0ICogQHk6IHZhbHVlMlxcbiAxNzU6XFx0ICovXFxuIDE3NjpcXHQjZGVmaW5lIG1pbl9ub3RfemVybyh4LCB5KSAoe1xcdFxcdFxcdFxcXFxcXG4gMTc3OlxcdFxcdHR5cGVvZih4KSBfX3ggPSAoeCk7XFx0XFx0XFx0XFxcXFxcbiAxNzg6XFx0XFx0dHlwZW9mKHkpIF9feSA9ICh5KTtcXHRcXHRcXHRcXFxcXFxuIDE3OTpcXHRcXHRfX3ggPT0gMCA/IF9feSA6ICgoX195ID09IDApID8gX194IDogbWluKF9feCwgX195KSk7IH0pXFxuIDE4MDpcXHRcXG4gMTgxOlxcdCNkZWZpbmUgX19jbGFtcCh2YWwsIGxvLCBoaSlcXHRcXFxcXFxuIDE4MjpcXHRcXHQoKHZhbCkgXFx1MDAzZT0gKGhpKSA/IChoaSkgOiAoKHZhbCkgXFx1MDAzYz0gKGxvKSA/IChsbykgOiAodmFsKSkpXFxuIDE4MzpcXHRcXG4gMTg0OlxcdCNkZWZpbmUgX19jbGFtcF9vbmNlKHR5cGUsIHZhbCwgbG8sIGhpLCB1dmFsLCB1bG8sIHVoaSkgKHtcXHRcXHRcXHRcXFxcXFxuIDE4NTpcXHRcXHR0eXBlIHV2YWwgPSAodmFsKTtcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIDE4NjpcXHRcXHR0eXBlIHVsbyA9IChsbyk7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiAxODc6XFx0XFx0dHlwZSB1aGkgPSAoaGkpO1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gMTg4OlxcdFxcdEJVSUxEX0JVR19PTl9NU0coc3RhdGljYWxseV90cnVlKHVsbyBcXHUwMDNlIHVoaSksXFx0XFx0XFx0XFx0XFxcXFxcbiAxODk6XFx0XFx0XFx0XFxcImNsYW1wKCkgbG93IGxpbWl0IFxcXCIgI2xvIFxcXCIgZ3JlYXRlciB0aGFuIGhpZ2ggbGltaXQgXFxcIiAjaGkpO1xcdFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NDMuMzY2NTcwNzkxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTIyNzY4OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS5cblxuKipBbmFseXppbmcgdGhlIE1hY3JvJ3MgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGZpcnN0IHRoaW5ncyBmaXJzdCwgdGhlIG1hY3JvIHNlZW1zIHRvIGJlIHJlcGxpY2F0aW5nIHRoZSBiZWhhdmlvciBvZiB0aGUgZXhpc3RpbmcgY29kZS4gVGhhdCdzIGdvb2QsIGEgZ29vZCBzdGFydGluZyBwb2ludC4gQnV0LCBoYW5nIG9uIGEgc2Vjb25kLi4uIEkgc2VlIGByLVx1MDAzZWFsbGAsIHdoaWNoIGlzIGFuIGFycmF5IG9mIGBzOGAuIE9rYXksIGxldCdzIGp1c3QgbWFrZSBzdXJlIEkgaGF2ZSB0aGF0IGNvcnJlY3QgaW4gbXkgaGVhZC5cblxuYGBgY1xuc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlciB7XG5cdHM4IGFsbFsuLi5dO1xufTtcbmBgYFxuXG5SaWdodCwgYSBgc3RydWN0IG10NzZ4MDJfcmF0ZV9wb3dlcmAgd2hlcmUgYGFsbGAgaXMgYW4gYXJyYXkgb2Ygc2lnbmVkIDgtYml0IGludGVnZXJzLiBMZXQgbWUgdGFrZSBhIGxvb2sgYXQgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXJgIGp1c3QgdG8gYmUgY2VydGFpbiBhYm91dCB0aGUgY29udGV4dCBvZiB0aGUgYXJyYXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBhcnJheSByZXByZXNlbnRzIHdpdGhpbiB0aGUgbGFyZ2VyIGRhdGEgc3RydWN0dXJlIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgcmF0ZSBjb250cm9sIHByb2Nlc3MuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTU4LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMjo0NDo0Ny4xNTg4NDk4OTRaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0ODAxMzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIgXFxcXHtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmg9NjM9c3RydWN0IG10NzZ4MDJfYmVhY29uX29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaDo3NTpzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC03Ni1cXHR1bmlvbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjQ3LjI1MzY1NTMyMloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTYwNTk1MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDpcblxuKipEaXZpbmcgaW50byB0aGUgYG10NzZ4MDJfcmF0ZV9wb3dlcmAgU3RydWN0dXJlKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGBzdHJ1Y3QgbXQ3NngwMl9yYXRlX3Bvd2VyYC4gTXkgZ3Vlc3MgaXMgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBNZWRpYXRlayA3NjAyIGRyaXZlciAob3IgYSByZWxhdGVkIGZhbWlseSkgc3RvcmVzIHRoZSBwb3dlciBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGRpZmZlcmVudCBkYXRhIHJhdGVzLiBHaXZlbiBteSBleHBlcmllbmNlLCBJJ20gZXhwZWN0aW5nIHRvIHNlZSBtZW1iZXJzIHJlbGF0ZWQgdG8gb3V0cHV0IHBvd2VyIGxldmVscyAoaW4gZEJtLCBwcm9iYWJseSwgb3IgbWF5YmUgYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLiBUaGVyZSBtaWdodCBiZSBkaWZmZXJlbnQgcG93ZXIgdGFibGVzIGZvciBkaWZmZXJlbnQgYmFuZHMgKDIuNCBHSHogdnMuIDUgR0h6KSwgY2hhbm5lbCB3aWR0aHMgKDIwLzQwLzgwIE1IeiksIGFuZCBtb2R1bGF0aW9uIHNjaGVtZXMgKE9GRE0sIEhULCBWSFQsIGV0Yy4pLlxuXG5JJ2QgYmUgcGFydGljdWxhcmx5IGludGVyZXN0ZWQgdG8gc2VlIGhvdyB0aGV5IGhhbmRsZSBwb3dlciBiYWNrLW9mZiBtZWNoYW5pc21zLiBEbyB0aGV5IGFjY291bnQgZm9yIHRlbXBlcmF0dXJlLCBvciBwZXJoYXBzIGxpbmsgcXVhbGl0eSBmZWVkYmFjayB0byBkeW5hbWljYWxseSBhZGp1c3QgdGhlIHRyYW5zbWl0IHBvd2VyPyBBcmUgdGhlcmUgYW55IHBlci1hbnRlbm5hIHBvd2VyIGFkanVzdG1lbnRzIGluIGhlcmU/IEFuZCBob3cgaXMgdGhpcyBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnM/IElzIHRoZXJlIGEgZGlyZWN0IG1hcHBpbmcsIG9yIGRvIHRoZXkgdXNlIHNvbWUga2luZCBvZiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gZm9yIHBvd2VyIGNvbnRyb2w/XG5cblRoaXMgc3RydWN0dXJlIGlzIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgcHV6emxlIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIG1hbmFnZXMgdHJhbnNtaXQgcG93ZXIsIGFuZCBJJ20gZWFnZXIgdG8gZGlnIGluIGFuZCB1bmRlcnN0YW5kIGl0cyBudWFuY2VzLiBUaGlzIGlzIHdoZXJlIEknbGwgZ2V0IGFuIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGRhdGEgcmF0ZXMsIG1vZHVsYXRpb24vY29kaW5nIHNjaGVtZXMgYW5kIHBvd2VyIHNldHRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDYzNiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ0OjUxLjQxNDI1MzE5OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA1NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmhcIixcbiAgXCJGaXJzdExpbmVcIjogNzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNzA6XFx0I2RlZmluZSBtdDc2eDAyX2JlYWNvbl9lbmFibGUoZGV2LCBlbmFibGUpXFx0XFxcXFxcbiAgNzE6XFx0XFx0KGRldiktXFx1MDAzZWJlYWNvbl9vcHMtXFx1MDAzZWJlYWNvbl9lbmFibGUoZGV2LCBlbmFibGUpXFxuICA3MjpcXHQjZGVmaW5lIG10NzZ4MDJfcHJlX3RidHRfZW5hYmxlKGRldiwgZW5hYmxlKVxcdFxcXFxcXG4gIDczOlxcdFxcdChkZXYpLVxcdTAwM2ViZWFjb25fb3BzLVxcdTAwM2VwcmVfdGJ0dF9lbmFibGUoZGV2LCBlbmFibGUpXFxuICA3NDpcXHRcXG4gIDc1OlxcdHN0cnVjdCBtdDc2eDAyX3JhdGVfcG93ZXIge1xcbiAgNzY6XFx0XFx0dW5pb24ge1xcbiAgNzc6XFx0XFx0XFx0c3RydWN0IHtcXG4gIDc4OlxcdFxcdFxcdFxcdHM4IGNja1s0XTtcXG4gIDc5OlxcdFxcdFxcdFxcdHM4IG9mZG1bOF07XFxuICA4MDpcXHRcXHRcXHRcXHRzOCBodFsxNl07XFxuICA4MTpcXHRcXHRcXHRcXHRzOCB2aHRbMl07XFxuICA4MjpcXHRcXHRcXHR9O1xcbiAgODM6XFx0XFx0XFx0czggYWxsWzMwXTtcXG4gIDg0OlxcdFxcdH07XFxuICA4NTpcXHR9O1xcbiAgODY6XFx0XFxuICA4NzpcXHRzdHJ1Y3QgbXQ3NngwMl9kZXYge1xcbiAgODg6XFx0XFx0dW5pb24geyAvKiBtdXN0IGJlIGZpcnN0ICovXFxuICA4OTpcXHRcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgbXQ3NjtcXG4gIDkwOlxcdFxcdFxcdHN0cnVjdCBtdDc2X3BoeSBtcGh5O1xcbiAgOTE6XFx0XFx0fTtcXG4gIDkyOlxcdFxcbiAgOTM6XFx0XFx0c3RydWN0IG1hY19hZGRyZXNzIG1hY2FkZHJfbGlzdFs4XTtcXG4gIDk0OlxcdFxcbiAgOTU6XFx0XFx0c3RydWN0IG11dGV4IHBoeV9tdXRleDtcXG4gIDk2OlxcdFxcbiAgOTc6XFx0XFx0dTggdHhkb25lX3NlcTtcXG4gIDk4OlxcdFxcdERFQ0xBUkVfS0ZJRk9fUFRSKHR4c3RhdHVzX2ZpZm8sIHN0cnVjdCBtdDc2eDAyX3R4X3N0YXR1cyk7XFxuICA5OTpcXHRcXHRzcGlubG9ja190IHR4c3RhdHVzX2ZpZm9fbG9jaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDI6NDQ6NTEuNDE0Mzg2MTc5WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NjI1NTk3NTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2guIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCByZXBsYWNpbmcgYSBsb29wIHRoYXQgZmluZHMgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgd2l0aCBhIGNhbGwgdG8gdGhlIGBtaW5fbm90X3plcm9gIG1hY3JvLiBMZXQncyBicmVhayB0aGlzIGRvd24uXG5cbkluaXRpYWxseSwgSSBzZWUgdGhhdCBgci1cdTAwM2VhbGxgIGlzIGFuIGFycmF5IG9mIGBzOGAgKHNpZ25lZCA4LWJpdCBpbnRlZ2Vycykgb2Ygc2l6ZSAzMC4gVGhlIG9sZCBjb2RlIGl0ZXJhdGVkIHRocm91Z2ggdGhpcyBhcnJheSwgc2tpcHBpbmcgemVybyB2YWx1ZXMsIGFuZCBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlLiBUaGUgbmV3IGNvZGUgc2ltcGx5IHVzZXMgYG1pbl9ub3RfemVyb2AuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIFwiSXMgdGhlcmUgYW55ICpmdW5jdGlvbmFsKiBkaWZmZXJlbmNlIGhlcmU/XCIgSXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gYG1pbl9ub3RfemVyb2AgdXNlcyBgdHlwZW9mKHgpYCBhbmQgYHR5cGVvZih5KWAuIEJvdGggYHJldGAgYW5kIGByLVx1MDAzZWFsbFtpXWAgYXJlIGBzOGAsIHNvIHRoZSBgbWluYCBtYWNybyBpbnNpZGUgc2hvdWxkIGJlIGNvbXBhcmluZyBgczhgIHZhbHVlcy4gSXQgYXBwZWFycyB0aGF0IHRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb3JpZ2luYWwgbG9vcCwgYnV0IHVzaW5nIHRoZSBtYWNybywgd2hpY2ggSSB1bmRlcnN0YW5kLlxuXG5JIGhhdmUgdG8gY2FyZWZ1bGx5IGNvbnNpZGVyIGVkZ2UgY2FzZXMuIExldCdzIHNheSBgci1cdTAwM2VhbGxbaV1gIGlzIG5lZ2F0aXZlLiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYCFyLVx1MDAzZWFsbFtpXWAuIEluIHRoZSBjYXNlIG9mIGEgbmVnYXRpdmUgdmFsdWUsIGAhci1cdTAwM2VhbGxbaV1gIHdpbGwgYmUgZmFsc2UsIHNvIGl0IHdvbid0IGBjb250aW51ZWAuIFRoaXMgaXMgaW1wb3J0YW50LiBJZiBgcmV0YCBpcyBhbHNvIG5lZ2F0aXZlLCB0aGUgY29tcGFyaXNvbiB3aXRoaW4gdGhlIGxvb3Agd291bGQgc3RpbGwgd29yayBhcyBleHBlY3RlZCwgdXNpbmcgdGhlIGBtaW5gIG1hY3JvLlxuXG5Ob3csIHdoYXQgZG9lcyBgbWluX25vdF96ZXJvYCBkbz8gSXQgbG9va3MgbGlrZSBpdCBjaGVja3MgYF9feCA9PSAwYCBhbmQgYF9feSA9PSAwYC4gSXQgcmV0dXJucyBgX195YCBpZiBgX194YCBpcyB6ZXJvLCBhbmQgcmV0dXJucyBgX194YCBpZiBgX195YCBpcyB6ZXJvLiBJZiBib3RoIGFyZSBub24temVybywgaXQgcmV0dXJucyB0aGUgbWluaW11bS4gVGhpcyBpcyB0aGUgc2FtZSBsb2dpYyBhcyB0aGUgb2xkIGNvZGUuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXJlIGlzIG5vIHN1YnRsZSBidWcgaW4gYG1pbl9ub3RfemVyb2Agd2hlbiBkZWFsaW5nIHdpdGggbmVnYXRpdmUgbnVtYmVycy4gSWYgYHhgIGlzIC01IGFuZCBgeWAgaXMgMCwgdGhlbiBgbWluX25vdF96ZXJvKC01LCAwKWAgcmV0dXJucyAtNS4gQ29uc2lkZXIgdGhlIG9sZCBjb2RlOyBpbml0aWFsIGByZXRgID0gMCwgYW5kIGByLVx1MDAzZWFsbFtpXWAgPSAtNS4gVGhlIGAhci1cdTAwM2VhbGxbaV1gIHdvdWxkIGJlIGBmYWxzZWAgKGkuZS4gbm90IGNvbnRpbnVlKSwgYHJldGAgYmVjb21lcyAtNS4gVGhlbiB0aGUgbG9vcCBjb250aW51ZXMsIHdoZW4gYHItXHUwMDNlYWxsW2ldYCBpcyAwLCB0aGUgYCFyLVx1MDAzZWFsbFtpXWAgaXMgdHJ1ZSAoY29udGludWUpLCBhbmQgdGhlIG9sZCBgcmV0YCBzdGF5cyBhdCAtNS4gVGhlcmVmb3JlLCB0aGVyZSdzIG5vIGRpZmZlcmVuY2UuXG5cbkkgYW0gY29uY2x1ZGluZyB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgcmVmYWN0b3JpbmcgY2hhbmdlIGFuZCB0aGF0IGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBleGVjdXRpb24gZmxvdy4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBjb3JyZWN0LiBJIHdpbGwgY2FyZWZ1bGx5IGNvbnNpZGVyIGFueSBvdGhlciBjaGFuZ2VzIGluY2x1ZGVkIGluIHRoZSBkaWZmLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRoYXQgY2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkb24ndCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgbWVhbnMgdGhlIHBhdGNoIGlzIG5vdCB3b3J0aCBmdXp6aW5nLlxuXG5JJ3ZlIGV4YW1pbmVkIHRoZSBmdWxsIGRpZmYsIGl0IG9ubHkgZG9lcyB3aGF0IEkgZGVzY3JpYmVkLiBJIGFtIHNhdGlzZmllZC4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyByZWZhY3RvcmluZyB0aGF0IGRvZXNuJ3QgYWZmZWN0IGJlaGF2aW9yLiBJdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSBoYXZlIGEgdGhvcm91Z2ggcmVhc29uaW5nIG9mIHdoeSBJIHRoaW5rIHRoZSByZXN1bHQgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBgbWluX25vdF96ZXJvYCBtYWNybyBpcyBpbXBsZW1lbnRlZCB0byBkbyB0aGUgc2FtZSB0aGluZyBhcyB0aGUgb2xkIGltcGxlbWVudGF0aW9uLiBNeSBjaGVja3MgZm9yIHR5cGUgc2FmZXR5IGluIGBtaW5gIGFuZCBuZWdhdGl2ZSBudW1iZXIgaGFuZGxpbmcgYWxzbyBjb25maXJtIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDI1LCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAyOjQ1OjA2LjAzOTk4NjgyN1oiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGEgbWFudWFsIGltcGxlbWVudGF0aW9uIG9mIGZpbmRpbmcgdGhlIG1pbmltdW0gbm9uLXplcm8gdmFsdWUgaW4gYW4gYXJyYXkgd2l0aCB0aGUgc3RhbmRhcmQgYG1pbl9ub3RfemVyb2AgbWFjcm8uIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgcmVmYWN0b3JpbmcgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBhIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBvZiBmaW5kaW5nIHRoZSBtaW5pbXVtIG5vbi16ZXJvIHZhbHVlIGluIGFuIGFycmF5IHdpdGggdGhlIHN0YW5kYXJkIGBtaW5fbm90X3plcm9gIG1hY3JvLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIHJlZmFjdG9yaW5nIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowgws77[1] Phase: Running StartedAt: 2026-08-02 02:45:16 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgws77[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-02 02:45:16 +0000 UTC FinishedAt: 2026-08-02 02:45:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}