Name: series-workflowcc9mq Phase: Running StartedAt: 2026-07-02 19:49:18 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[0] Phase: Succeeded StartedAt: 2026-07-02 19:49:18 +0000 UTC FinishedAt: 2026-07-02 20:02:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 19:49:18 +0000 UTC FinishedAt: 2026-07-02 20:02:01 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PCIE_TPH", "PCI_P2PDMA" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PCIE_TPH", "PCI_P2PDMA" ], "series_id": "df55e600-866b-4a21-82ff-ce942b1c92e8" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vfio_pci_core_feature_dma_buf_tph", "pcie_tph_completer_type" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BDSUVfVFBIJiMzNDssCiAgICAmIzM0O1BDSV9QMlBETUEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgmIzM0OywKICAgICYjMzQ7cGNpZV90cGhfY29tcGxldGVyX3R5cGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxOTo1OToxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuaW5kZXggZDUwNGM2MzZkYzI5NGUuLmU4MzE0ZWQyNDBkMzM2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuQEAgLTkzOSw2ICYjNDM7OTM5LDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiAgKiAgICAgLSBkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoKVxuICAqICAgICAtIGRtYV9idWZfdm1hcCgpXG4gICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxuJiM0MzsgKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbiAgKlxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTk3OSw2ICYjNDM7OTgwLDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy51bm1hcF9kbWFfYnVmKClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy52bWFwKClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy52dW5tYXAoKVxuJiM0MzsgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy5nZXRfcGNpX3RwaCgpXG4gICpcbiAgKiAzLiBFeHBvcnRlcnMgbXVzdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTExNDQsNiAmIzQzOzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiB9XG4gRVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4gXG4mIzQzOy8qKlxuJiM0MzsgKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXG4mIzQzOyAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcbiYjNDM7ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuJiM0MzsgKiBAc3RlZXJpbmdfdGFnOiByZXR1cm5zIHRoZSByYXcgc3RlZXJpbmcgdGFnIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZVxuJiM0MzsgKiBAcGg6IHJldHVybnMgdGhlIFRQSCBwcm9jZXNzaW5nIGhpbnRcbiYjNDM7ICpcbiYjNDM7ICogV3JhcHBlciBmb3IgdGhlIG9wdGlvbmFsIFx1MDAyNmRtYV9idWZfb3BzLmdldF9wY2lfdHBoIGNhbGxiYWNrLlxuJiM0MzsgKlxuJiM0MzsgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxuJiM0MzsgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlXG4mIzQzOyAqIHJlcXVlc3RlZCBuYW1lc3BhY2UuXG4mIzQzOyAqXG4mIzQzOyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGVcbiYjNDM7ICogZXhwb3J0ZXIgaW52YWxpZGF0ZXMgdGhlIGN1cnJlbnQgbWFwcGluZyAoc2lnbmFsbGVkIHRvIHRoZSBpbXBvcnRlciB2aWFcbiYjNDM7ICogXHUwMDI2ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXdcbiYjNDM7ICogbWFwcGluZyBpcyBlc3RhYmxpc2hlZCBmb2xsb3dpbmcgaW52YWxpZGF0aW9uLlxuJiM0MzsgKi9cbiYjNDM7aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbiYjNDM7XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbiYjNDM7e1xuJiM0MztcdGRtYV9yZXN2X2Fzc2VydF9oZWxkKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFkbWFidWYtXHUwMDNlb3BzLVx1MDAzZWdldF9wY2lfdHBoKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gZG1hYnVmLVx1MDAzZW9wcy1cdTAwM2VnZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBzdGVlcmluZ190YWcsIHBoKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbiYjNDM7XG4gLyoqXG4gICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50O1xuICAqIG1hcHBlZCBpbnRvIF9kZXZpY2VfIGFkZHJlc3Mgc3BhY2UuIElzIGEgd3JhcHBlciBmb3IgbWFwX2RtYV9idWYoKSBvZiB0aGVcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcbmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O0VsaSBDb2hlbiBcdTAwM2NlbGlAbWVsbGFub3guY29tXHUwMDNlXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXJcJiMzNDspO1xuIE1PRFVMRV9MSUNFTlNFKFwmIzM0O0R1YWwgQlNEL0dQTFwmIzM0Oyk7XG4mIzQzO01PRFVMRV9JTVBPUlRfTlMoXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4gXG4gc3RydWN0IG1seDVfaWJfZXZlbnRfd29yayB7XG4gXHRzdHJ1Y3Qgd29ya19zdHJ1Y3RcdHdvcms7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbmluZGV4IGU2Yjc0OTU1ZDk1ZGNkLi41NTIxNmFlNjM3NjE0MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbkBAIC0zOSw2ICYjNDM7MzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtcmVzdi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3JkbWEvZnJtcl9wb29scy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjcmRtYS9pYl91bWVtX29kcC5oXHUwMDNlXG4gI2luY2x1ZGUgXCYjMzQ7ZG0uaFwmIzM0O1xuQEAgLTE2Nyw2ICYjNDM7MTY4LDM5IEBAIHN0YXRpYyBpbnQgZ2V0X3VuY2hhbmdlYWJsZV9hY2Nlc3NfZmxhZ3Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLIEdFTk1BU0tfVUxMKDIzLCAxNilcbiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0sgR0VOTUFTS19VTEwoMTUsIDApXG4gXG4mIzQzO3N0YXRpYyB1OCBtbHg1X2liX3RwaF9rZXlfcGgodTggcGgpXG4mIzQzO3tcbiYjNDM7XHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxuJiM0MztcdFx0cGggXj0gTUxYNV9JQl9OT19QSDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHBoO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW50IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1seDVfc3RfZ2V0X2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuJiM0Mzt7XG4mIzQzO1x0aWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWClcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4mIzQzO1x0bWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsXG4mIzQzO1x0XHRcdFx0ICAgICAgdTY0IGtlcm5lbF92ZW5kb3Jfa2V5KVxuJiM0Mzt7XG4mIzQzO1x0dTE2IHN0X2luZGV4ID0gRklFTERfR0VUKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXG4mIzQzO1x0XHRcdFx0IGtlcm5lbF92ZW5kb3Jfa2V5KTtcbiYjNDM7XG4mIzQzO1x0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqXG4gX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0ICAgICAgaW50IGFjY2Vzc19mbGFncywgaW50IGFjY2Vzc19tb2RlLFxuQEAgLTE4OSwxMyAmIzQzOzIyMywxMCBAQCBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRcdE1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0sgOlxuIFx0XHRcdDA7XG4gXG4tXHQvKiBOb3JtYWxpemUgcGg6IHN3YXAgMCBhbmQgTUxYNV9JQl9OT19QSCAqL1xuLVx0aWYgKHBoID09IE1MWDVfSUJfTk9fUEggfHwgcGggPT0gMClcbi1cdFx0cGggXj0gTUxYNV9JQl9OT19QSDtcbi1cbiBcdG1yLVx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxuIFx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XG4tXHRcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywgcGgpO1xuJiM0MztcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLFxuJiM0MztcdFx0XHQgICBtbHg1X2liX3RwaF9rZXlfcGgocGgpKTtcbiBcdGVyciA9IGliX2ZybXJfcG9vbF9wb3AoXHUwMDI2ZGV2LVx1MDAzZWliX2RldiwgXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdGtmcmVlKG1yKTtcbkBAIC0yMTgsNyAmIzQzOzI0OSw5IEBAIHN0cnVjdCBtbHg1X2liX21yICptbHg1X21yX2NhY2hlX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxuIFx0XHRcdFx0ICAgICAgMCA6XG4gXHRcdFx0XHQgICAgICBNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLLFxuIFx0XHQubnVtX2RtYV9ibG9ja3MgPSBuZGVzY3MsXG4tXHRcdC5rZXJuZWxfdmVuZG9yX2tleSA9IDAsIC8qIG5vIFBIIGFuZCBubyBTVCBpbmRleCAqL1xuJiM0MztcdFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbiYjNDM7XHRcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLFxuJiM0MztcdFx0XHRcdCAgIE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCksXG4gXHR9O1xuIFx0c3RydWN0IG1seDVfaWJfbXIgKm1yO1xuIFx0aW50IHJldDtcbkBAIC01NTcsNiAmIzQzOzU5MCwxMCBAQCBzdGF0aWMgc3RydWN0IG1seDVfaWJfbXIgKnJlZ19jcmVhdGUoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRtci1cdTAwM2VpYm1yLnBkID0gcGQ7XG4gXHRtci1cdTAwM2VhY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7XG4gXHRtci1cdTAwM2VwYWdlX3NoaWZ0ID0gb3JkZXJfYmFzZV8yKHBhZ2Vfc2l6ZSk7XG4mIzQzO1x0bXItXHUwMDNlaWJtci5mcm1yLmtleS5rZXJuZWxfdmVuZG9yX2tleSA9XG4mIzQzO1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XG4mIzQzO1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXG4mIzQzO1x0XHRcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xuIFxuIFx0aW5sZW4gPSBNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X2luKTtcbiBcdGlmIChwb3B1bGF0ZSlcbkBAIC03NTMsNiAmIzQzOzc5MCwxMiBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0XHRzdF9pbmRleCA9IG1kbWFoLVx1MDAzZXN0X2luZGV4O1xuIFx0fVxuIFxuJiM0MztcdGVyciA9IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoZGV2LCBzdF9pbmRleCk7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0aWJfdW1lbV9yZWxlYXNlKHVtZW0pO1xuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0eGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tXHUwMDNlbGVuZ3RoKTtcbiBcdGlmICh4bHRfd2l0aF91bXIpIHtcbiBcdFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIHVtZW0sIGlvdmEsIGFjY2Vzc19mbGFncyxcbkBAIC03NjksNiAmIzQzOzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZXNsb3dfcGF0aF9tdXRleCk7XG4gXHR9XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuJiM0MztcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UodW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtOTAzLDYgJiM0Mzs5NDcsNTIgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9vcHMgbWx4NV9pYl9kbWFidWZfYXR0YWNoX29wcyA9IHtcbiBcdC5pbnZhbGlkYXRlX21hcHBpbmdzID0gbWx4NV9pYl9kbWFidWZfaW52YWxpZGF0ZV9jYixcbiB9O1xuIFxuJiM0MztzdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4mIzQzO1x0XHRcdFx0ICB1MTYgKnN0X2luZGV4LCB1OCAqcGgpXG4mIzQzO3tcbiYjNDM7XHR1MTYgbG9jYWxfc3RfaW5kZXg7XG4mIzQzO1x0dTE2IHN0ZWVyaW5nX3RhZztcbiYjNDM7XHR1OCBsb2NhbF9waDtcbiYjNDM7XHRib29sIGV4dGVuZGVkO1xuJiM0MztcdGludCByZXQ7XG4mIzQzO1xuJiM0MztcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXHUwMDNlbWRldi1cdTAwM2VwZGV2KSkge1xuJiM0MztcdGNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6XG4mIzQzO1x0XHRleHRlbmRlZCA9IGZhbHNlO1xuJiM0MztcdFx0YnJlYWs7XG4mIzQzO1x0Y2FzZSBQQ0lfVFBIX1JFUV9FWFRfVFBIOlxuJiM0MztcdFx0ZXh0ZW5kZWQgPSB0cnVlO1xuJiM0MztcdFx0YnJlYWs7XG4mIzQzO1x0ZGVmYXVsdDpcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGRtYV9yZXN2X2xvY2soZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuJiM0MztcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG4mIzQzO1x0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbiYjNDM7XHRpZiAocmV0KSB7XG4mIzQzO1x0XHRpZiAocmV0ICE9IC1FT1BOT1RTVVBQKVxuJiM0MztcdFx0XHRtbHg1X2liX2RiZyhkZXYsIFwmIzM0O2dldF9wY2lfdHBoIGZhaWxlZCAoJWQpXFxuXCYjMzQ7LCByZXQpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0ID0gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LVx1MDAzZW1kZXYsIHN0ZWVyaW5nX3RhZyxcbiYjNDM7XHRcdFx0XHRcdCBcdTAwMjZsb2NhbF9zdF9pbmRleCk7XG4mIzQzO1x0aWYgKHJldCkge1xuJiM0MztcdFx0bWx4NV9pYl9kYmcoZGV2LCBcJiMzNDtzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcXG5cJiMzNDssIHJldCk7XG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHQqc3RfaW5kZXggPSBsb2NhbF9zdF9pbmRleDtcbiYjNDM7XHQqcGggPSBsb2NhbF9waDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHZvaWQgbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpXG4mIzQzO3tcbiYjNDM7XHRtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLFxuJiM0MztcdFx0XHRcdCAgbXItXHUwMDNlaWJtci5mcm1yLmtleS5rZXJuZWxfdmVuZG9yX2tleSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCBpYl9tciAqXG4gcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXG4gXHRcdCAgIHU2NCBvZmZzZXQsIHU2NCBsZW5ndGgsIHU2NCB2aXJ0X2FkZHIsXG5AQCAtOTQ1LDEyICYjNDM7MTAzNSwyMiBAQCByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSxcbiBcdFx0cGggPSBkbWFoLVx1MDAzZXBoO1xuIFx0XHRpZiAoZG1haC1cdTAwM2V2YWxpZF9maWVsZHMgXHUwMDI2IEJJVChJQl9ETUFIX0NQVV9JRF9FWElTVFMpKVxuIFx0XHRcdHN0X2luZGV4ID0gbWRtYWgtXHUwMDNlc3RfaW5kZXg7XG4mIzQzO1xuJiM0MztcdFx0ZXJyID0gbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihkZXYsIHN0X2luZGV4KTtcbiYjNDM7XHRcdGlmIChlcnIpIHtcbiYjNDM7XHRcdFx0aWJfdW1lbV9yZWxlYXNlKFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0pO1xuJiM0MztcdFx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0fVxuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRnZXRfcGNpX3RwaF9tcl9kbWFidWYoZGV2LCB1bWVtX2RtYWJ1Zi1cdTAwM2VhdHRhY2gtXHUwMDNlZG1hYnVmLFxuJiM0MztcdFx0XHRcdCAgICAgIFx1MDAyNnN0X2luZGV4LCBcdTAwMjZwaCk7XG4gXHR9XG4gXG4gXHRtciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSwgdmlydF9hZGRyLFxuIFx0XHRcdFx0YWNjZXNzX2ZsYWdzLCBhY2Nlc3NfbW9kZSxcbiBcdFx0XHRcdHN0X2luZGV4LCBwaCk7XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuJiM0MztcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UoXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtMTQwNSw2ICYjNDM7MTUwNSw3IEBAIHN0YXRpYyBpbnQgbWx4NXJfaGFuZGxlX21rZXlfY2xlYW51cChzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpXG4gXHRpZiAobXItXHUwMDNlaWJtci5mcm1yLnBvb2wpIHtcbiBcdFx0aWYgKCFtbHg1X3Vtcl9yZXZva2VfbXJfd2l0aF9sb2NrKG1yKSkge1xuIFx0XHRcdGliX2ZybXJfcG9vbF9wdXNoKG1yLVx1MDAzZWlibXIuZGV2aWNlLCBcdTAwMjZtci1cdTAwM2VpYm1yKTtcbiYjNDM7XHRcdFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XG4gXHRcdFx0cmV0dXJuIDA7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDMyLDYgJiM0MzsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCBcdTAwMjZcdTAwMjYgIXJldClcbiBcdFx0aWJfZnJtcl9wb29sX2Ryb3AoXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXG4mIzQzO1x0aWYgKCFyZXQpXG4mIzQzO1x0XHRtbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKG1yKTtcbiYjNDM7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmNcbmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXG5AQCAtOTIsMjMgJiM0Mzs5MiwxOCBAQCB2b2lkIG1seDVfc3RfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuIFx0a2ZyZWUoc3QpO1xuIH1cbiBcbi1pbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbi1cdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbiYjNDM7aW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB0YWcsXG4mIzQzO1x0XHRcdCAgICAgICB1MTYgKnN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbiBcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbiBcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XG4gXHR1MzIgeGFfaWQ7XG4tXHR1MTYgdGFnO1xuLVx0aW50IHJldDtcbiYjNDM7XHRpbnQgcmV0ID0gMDtcbiBcbiBcdGlmICghc3QpXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcbi1cdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVx1MDAzZXBkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCBcdTAwMjZ0YWcpO1xuLVx0aWYgKHJldClcbi1cdFx0cmV0dXJuIHJldDtcbi1cbiBcdGlmIChzdC1cdTAwM2VkaXJlY3RfbW9kZSkge1xuIFx0XHQqc3RfaW5kZXggPSB0YWc7XG4gXHRcdHJldHVybiAwO1xuQEAgLTE1Miw4ICYjNDM7MTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnN0LVx1MDAzZWxvY2spO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTtcbiYjNDM7XG4mIzQzO2ludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuJiM0MztcdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdHUxNiB0YWc7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFx1MDAyNnRhZyk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYsIHRhZywgc3RfaW5kZXgpO1xuJiM0Mzt9XG4gRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9hbGxvY19pbmRleCk7XG4gXG4mIzQzO2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7XG4mIzQzO1x0c3RydWN0IG1seDVfc3QgKnN0ID0gZGV2LVx1MDAzZXN0O1xuJiM0MztcdGludCByZXQgPSAwO1xuJiM0MztcbiYjNDM7XHRpZiAoIXN0KVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRpZiAoc3QtXHUwMDNlZGlyZWN0X21vZGUpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiYjNDM7XHRpZHhfZGF0YSA9IHhhX2xvYWQoXHUwMDI2c3QtXHUwMDNlaWR4X3hhLCBzdF9pbmRleCk7XG4mIzQzO1x0aWYgKFdBUk5fT05fT05DRSghaWR4X2RhdGEpKVxuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRyZWZjb3VudF9pbmMoXHUwMDI2aWR4X2RhdGEtXHUwMDNldXNlY291bnQpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2dldF9pbmRleCk7XG4mIzQzO1xuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS90cGguYyBiL2RyaXZlcnMvcGNpL3RwaC5jXG5pbmRleCA2NTVmZmQ2MGU2MmY2YS4uZTc2OTNmZDlkNjc2MzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS90cGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wY2kvdHBoLmNcbkBAIC0xNzMsNiAmIzQzOzE3Myw1MSBAQCB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiB9XG4gRVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSYjMzk7cyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxuJiM0MzsgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm46IFBDSV9UUEhfUkVRX0RJU0FCTEUsIFBDSV9UUEhfUkVRX1RQSF9PTkxZIG9yIFBDSV9UUEhfUkVRX0VYVF9UUEguXG4mIzQzOyAqL1xuJiM0Mzt1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIHBkZXYtXHUwMDNldHBoX3JlcV90eXBlO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0wocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSk7XG4mIzQzO1xuJiM0MzsvKipcbiYjNDM7ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSYjMzk7cyBUUEggQ29tcGxldGVyIHN1cHBvcnRcbiYjNDM7ICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbiYjNDM7ICpcbiYjNDM7ICogUmVhZHMgdGhlIFwmIzM0O1RQSCBDb21wbGV0ZXIgU3VwcG9ydGVkXCYjMzQ7IGZpZWxkIChiaXRzIDEzOjEyKSBvZiBEZXZpY2VcbiYjNDM7ICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXG4mIzQzOyAqIFwmIzM0O25vdCBzdXBwb3J0ZWRcJiMzNDsgc28gY2FsbGVycyBvbmx5IG5lZWQgdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSB0aHJlZVxuJiM0MzsgKiBkZWZpbmVkIHZhbHVlcy5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuOiBvbmUgb2YgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FLFxuJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFkgb3JcbiYjNDM7ICogICAgICAgICAlUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEguXG4mIzQzOyAqL1xuJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiYjNDM7e1xuJiM0MztcdHUzMiByZWc7XG4mIzQzO1xuJiM0MztcdGlmIChwY2llX2NhcGFiaWxpdHlfcmVhZF9kd29yZChwZGV2LCBQQ0lfRVhQX0RFVkNBUDIsIFx1MDAyNnJlZykpXG4mIzQzO1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4mIzQzO1x0aWYgKFBDSV9QT1NTSUJMRV9FUlJPUihyZWcpKVxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FO1xuJiM0MztcbiYjNDM7XHRzd2l0Y2ggKEZJRUxEX0dFVChQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTUFTSywgcmVnKSkge1xuJiM0MztcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZOlxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTtcbiYjNDM7XHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIOlxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIO1xuJiM0MztcdGRlZmF1bHQ6XG4mIzQzO1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xuJiM0MztcbiAvKlxuICAqIFJldHVybiB0aGUgc2l6ZSBvZiBTVCB0YWJsZS4gSWYgU1QgdGFibGUgaXMgbm90IGluIFRQSCBSZXF1ZXN0ZXIgRXh0ZW5kZWRcbiAgKiBDYXBhYmlsaXR5IHNwYWNlLCByZXR1cm4gMC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgU1QgVGFibGUgU2l6ZSAmIzQzOyAxLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcbmluZGV4IGEyOGYxZTk5MzYyYzFlLi5jN2Q2OTAyYmM2MWIwNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xuQEAgLTE1NzIsNiAmIzQzOzE1NzIsOSBAQCBpbnQgdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlKHN0cnVjdCB2ZmlvX2RldmljZSAqZGV2aWNlLCB1MzIgZmxhZ3MsXG4gXHRcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfdG9rZW4odmRldiwgZmxhZ3MsIGFyZywgYXJnc3opO1xuIFx0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUY6XG4gXHRcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7XG4mIzQzO1x0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIOlxuJiM0MztcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCh2ZGV2LCBmbGFncywgYXJnLFxuJiM0MztcdFx0XHRcdFx0XHRcdCBhcmdzeik7XG4gXHRkZWZhdWx0OlxuIFx0XHRyZXR1cm4gLUVOT1RUWTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuaW5kZXggYzE2ZjQ2MGMwMWQ2ODEuLjUzNTE4MzljMTMzOGFmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuICAqL1xuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1idWYtbWFwcGluZy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLXAycGRtYS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcJiMzNDt2ZmlvX3BjaV9wcml2LmhcJiMzNDtcbkBAIC0xOSw3ICYjNDM7MjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xuIFx0dTMyIG5yX3JhbmdlcztcbiBcdHN0cnVjdCBrcmVmIGtyZWY7XG4gXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xuLVx0dTggcmV2b2tlZCA6IDE7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgZG1hYnVmLVx1MDAzZXJlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseVxuJiM0MztcdCAqIHByb3RlY3RlZCBieSBtZW1vcnlfbG9jay5cbiYjNDM7XHQgKi9cbiYjNDM7XHR1MTYgdHBoX3N0X2V4dDtcbiYjNDM7XHR1OCB0cGhfc3Q7XG4mIzQzO1x0Ym9vbCByZXZva2VkO1xuJiM0MztcdHU4IHRwaF9zdF92YWxpZDoxO1xuJiM0MztcdHU4IHRwaF9zdF9leHRfdmFsaWQ6MTtcbiYjNDM7XHR1OCB0cGhfcGg6MjtcbiB9O1xuIFxuIHN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcbkBAIC0zMCw3ICYjNDM7NDEsNyBAQCBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRpZiAoIWF0dGFjaG1lbnQtXHUwMDNlcGVlcjJwZWVyKVxuIFx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gXG4tXHRpZiAocHJpdi1cdTAwM2VyZXZva2VkKVxuJiM0MztcdGlmIChSRUFEX09OQ0UocHJpdi1cdTAwM2VyZXZva2VkKSlcbiBcdFx0cmV0dXJuIC1FTk9ERVY7XG4gXG4gXHRpZiAoIWRtYV9idWZfYXR0YWNoX3Jldm9jYWJsZShhdHRhY2htZW50KSlcbkBAIC02OSw2ICYjNDM7ODAsMjYgQEAgdmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuJiM0MztzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbiYjNDM7XHRcdFx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi1cdTAwM2Vwcml2O1xuJiM0MztcbiYjNDM7XHRkbWFfcmVzdl9hc3NlcnRfaGVsZChkbWFidWYtXHUwMDNlcmVzdik7XG4mIzQzO1xuJiM0MztcdGlmIChleHRlbmRlZCkge1xuJiM0MztcdFx0aWYgKCFwcml2LVx1MDAzZXRwaF9zdF9leHRfdmFsaWQpXG4mIzQzO1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHRcdCpzdGVlcmluZ190YWcgPSBwcml2LVx1MDAzZXRwaF9zdF9leHQ7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfdmFsaWQpXG4mIzQzO1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHRcdCpzdGVlcmluZ190YWcgPSBwcml2LVx1MDAzZXRwaF9zdDtcbiYjNDM7XHR9XG4mIzQzO1x0KnBoID0gcHJpdi1cdTAwM2V0cGhfcGg7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuIFx0XHRcdFx0ICAgc3RydWN0IHNnX3RhYmxlICpzZ3QsXG4gXHRcdFx0XHQgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpXG5AQCAtMTAxLDYgJiM0MzsxMzIsNyBAQCBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2Uoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZilcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XG4gXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXG4mIzQzO1x0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbiBcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuIFx0LnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLFxuIFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXG5AQCAtMzMzLDYgJiM0MzszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG4mIzQzO2ludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuJiM0MztcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcbiYjNDM7XHRcdFx0XHQgICAgICBzaXplX3QgYXJnc3opXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBzZXRfdHBoO1xuJiM0MztcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xuJiM0MztcdHN0cnVjdCBkbWFfYnVmICpkbWFidWY7XG4mIzQzO1x0dTggY29tcDtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cdTAwM2VwZGV2KTtcbiYjNDM7XHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gdmZpb19jaGVja19mZWF0dXJlKGZsYWdzLCBhcmdzeiwgVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQsXG4mIzQzO1x0XHRcdFx0IHNpemVvZihzZXRfdHBoKSk7XG4mIzQzO1x0aWYgKHJldCAhPSAxKVxuJiM0MztcdFx0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO1x0aWYgKGNvcHlfZnJvbV91c2VyKFx1MDAyNnNldF90cGgsIGFyZywgc2l6ZW9mKHNldF90cGgpKSlcbiYjNDM7XHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcbiYjNDM7XHRpZiAoc2V0X3RwaC5mbGFncyBcdTAwMjYgfihWRklPX0RNQV9CVUZfVFBIX1NUIHwgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGlmIChzZXRfdHBoLnBoIFx1MDAyNiB+MHgzKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGlmICgoc2V0X3RwaC5mbGFncyBcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBjb21wICE9IFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRkbWFidWYgPSBkbWFfYnVmX2dldChzZXRfdHBoLmRtYWJ1Zl9mZCk7XG4mIzQzO1x0aWYgKElTX0VSUihkbWFidWYpKVxuJiM0MztcdFx0cmV0dXJuIFBUUl9FUlIoZG1hYnVmKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGRtYWJ1Zi1cdTAwM2VvcHMgIT0gXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiYjNDM7XHRcdGdvdG8gb3V0X3B1dDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHByaXYgPSBkbWFidWYtXHUwMDNlcHJpdjtcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2V2ZGV2ICE9IHZkZXYpIHtcbiYjNDM7XHRcdHJldCA9IC1FSU5WQUw7XG4mIzQzO1x0XHRnb3RvIG91dF9wdXQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRyZXQgPSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuJiM0MztcdGlmIChyZXQpXG4mIzQzO1x0XHRnb3RvIG91dF9wdXQ7XG4mIzQzO1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcbiYjNDM7XHRwcml2LVx1MDAzZXRwaF9zdF9leHQgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWdfZXh0O1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3BoICAgICAgICAgPSBzZXRfdHBoLnBoO1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUKTtcbiYjNDM7XHRwcml2LVx1MDAzZXRwaF9zdF9leHRfdmFsaWQgPVxuJiM0MztcdFx0ISEoc2V0X3RwaC5mbGFncyBcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpO1xuJiM0MztcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4mIzQzO1x0cmV0ID0gMDtcbiYjNDM7XG4mIzQzO291dF9wdXQ6XG4mIzQzO1x0ZG1hX2J1Zl9wdXQoZG1hYnVmKTtcbiYjNDM7XHRyZXR1cm4gcmV0O1xuJiM0Mzt9XG4mIzQzO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKVxuIHtcbiBcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcbmluZGV4IGZjYTlkMGRmYWM5MGY4Li5jNThmMzY5YmU0YjM5OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaFxuQEAgLTExOCw2ICYjNDM7MTE4LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2ZmlvX3BjaV9pc192Z2Eoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIFx0XHRcdFx0ICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIF9fdXNlciAqYXJnLFxuIFx0XHRcdFx0ICBzaXplX3QgYXJnc3opO1xuJiM0MztpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbiYjNDM7XHRcdFx0XHQgICAgICB1MzIgZmxhZ3MsXG4mIzQzO1x0XHRcdFx0ICAgICAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXG4mIzQzO1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcbiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfY2xlYW51cChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYpO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTtcbiAjZWxzZVxuQEAgLTEyOCw2ICYjNDM7MTMyLDE0IEBAIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIHtcbiBcdHJldHVybiAtRU5PVFRZO1xuIH1cbiYjNDM7XG4mIzQzO3N0YXRpYyBpbmxpbmUgaW50XG4mIzQzO3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbiYjNDM7XHRcdFx0XHQgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuJiM0MztcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIC1FTk9UVFk7XG4mIzQzO31cbiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldilcbiB7XG4gfVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmhcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxuQEAgLTExMyw2ICYjNDM7MTEzLDI5IEBAIHN0cnVjdCBkbWFfYnVmX29wcyB7XG4gXHQgKi9cbiBcdHZvaWQgKCp1bnBpbikoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcbiBcbiYjNDM7XHQvKipcbiYjNDM7XHQgKiBAZ2V0X3BjaV90cGg6XG4mIzQzO1x0ICpcbiYjNDM7XHQgKiBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgc3RlZXJpbmcgbWV0YWRhdGEgZm9yXG4mIzQzO1x0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXG4mIzQzO1x0ICogb3V0Ym91bmQgVExQcyB0YXJnZXRpbmcgdGhlIGV4cG9ydGVyIGZvciBwZWVyLXRvLXBlZXIgRE1BLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXG4mIzQzO1x0ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuJiM0MztcdCAqIEBzdGVlcmluZ190YWc6IFJldHVybnMgdGhlIHJhdyBUUEggc3RlZXJpbmcgdGFnIGZvciB0aGUgcmVxdWVzdGVkXG4mIzQzO1x0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXG4mIzQzO1x0ICogQHBoOiBSZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50ICgyLWJpdCB2YWx1ZSlcbiYjNDM7XHQgKlxuJiM0MztcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG4mIzQzO1x0ICogXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cbiYjNDM7XHQgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS5cbiYjNDM7XHQgKlxuJiM0MztcdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXG4mIzQzO1x0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxuJiM0MztcdCAqL1xuJiM0MztcdGludCAoKmdldF9wY2lfdHBoKShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuJiM0MztcdFx0XHQgICB1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiYjNDM7XG4gXHQvKipcbiBcdCAqIEBtYXBfZG1hX2J1ZjpcbiBcdCAqXG5AQCAtNTYzLDYgJiM0Mzs1ODYsOCBAQCB2b2lkIGRtYV9idWZfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRcdCAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIGludCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIHZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuJiM0MztpbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuJiM0MztcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiBcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcbiBcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oXG5AQCAtMTE4MiwxNiAmIzQzOzExODIsMzEgQEAgaW50IG1seDVfZG1fc3dfaWNtX2RlYWxsb2Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSBtbHg1X3N3X2ljbV90eXBlIHR5cGVcbiBcdFx0XHQgICB1NjQgbGVuZ3RoLCB1MTYgdWlkLCBwaHlzX2FkZHJfdCBhZGRyLCB1MzIgb2JqX2lkKTtcbiBcbiAjaWZkZWYgQ09ORklHX1BDSUVfVFBIXG4mIzQzO2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxuJiM0MztcdFx0XHQgICAgICAgdTE2ICpzdF9pbmRleCk7XG4mIzQzO2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpO1xuIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdHVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KTtcbiBpbnQgbWx4NV9zdF9kZWFsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XG4gI2Vsc2VcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiYjNDM7XHRcdFx0XHRcdCAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXG4ge1xuIFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIH1cbiYjNDM7XG4gc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9kZWFsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbiB7XG4gXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmggYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxuaW5kZXggYmU2OGNkMTdmMmY4MzMuLjc3NDNhZjZmZTQzMjZlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXG5AQCAtOSw2ICYjNDM7OSw4IEBAXG4gI2lmbmRlZiBMSU5VWF9QQ0lfVFBIX0hcbiAjZGVmaW5lIExJTlVYX1BDSV9UUEhfSFxuIFxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2lfcmVncy5oXHUwMDNlXG4mIzQzO1xuIC8qXG4gICogQWNjb3JkaW5nIHRvIHRoZSBFQ04gZm9yIFBDSSBGaXJtd2FyZSBTcGVjLCBTdGVlcmluZyBUYWcgY2FuIGJlIGRpZmZlcmVudFxuICAqIGRlcGVuZGluZyBvbiB0aGUgbWVtb3J5IHR5cGU6IFZvbGF0aWxlIE1lbW9yeSBvciBQZXJzaXN0ZW50IE1lbW9yeS4gV2hlbiBhXG5AQCAtMzAsNiAmIzQzOzMyLDggQEAgdm9pZCBwY2llX2Rpc2FibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSk7XG4gdTE2IHBjaWVfdHBoX2dldF9zdF90YWJsZV9zaXplKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4mIzQzO3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gI2Vsc2VcbiBzdGF0aWMgaW5saW5lIGludCBwY2llX3RwaF9zZXRfc3RfZW50cnkoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gXHRcdFx0XHRcdHVuc2lnbmVkIGludCBpbmRleCwgdTE2IHRhZylcbkBAIC00MSw2ICYjNDM7NDUsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfZ2V0X2NwdV9zdChzdHJ1Y3QgcGNpX2RldiAqZGV2LFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2llX2Rpc2FibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KSB7IH1cbiBzdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxuIHsgcmV0dXJuIC1FSU5WQUw7IH1cbiYjNDM7c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuJiM0Mzt7IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XG4mIzQzO3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4mIzQzO3sgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4gI2VuZGlmXG4gXG4gI2VuZGlmIC8qIExJTlVYX1BDSV9UUEhfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5AQCAtMTUzNCw2ICYjNDM7MTUzNCw0OSBAQCBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIHtcbiAgKi9cbiAjZGVmaW5lIFZGSU9fREVWSUNFX0ZFQVRVUkVfTUlHX1BSRUNPUFlfSU5GT3YyICAxMlxuIFxuJiM0MzsvKipcbiYjNDM7ICogVXBvbiBWRklPX0RFVklDRV9GRUFUVVJFX1NFVCBhc3NvY2lhdGUgVFBIIChUTFAgUHJvY2Vzc2luZyBIaW50cykgbWV0YWRhdGFcbiYjNDM7ICogd2l0aCBhIHZmaW8tZXhwb3J0ZWQgZG1hLWJ1Zi4gVGhlIGRtYS1idWYgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieVxuJiM0MzsgKiBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYgb24gdGhpcyBkZXZpY2UsIGFuZCB0aGUgZGV2aWNlIG11c3QgcmVwb3J0XG4mIzQzOyAqIFRQSCBDb21wbGV0ZXIgc3VwcG9ydCBpbiBEZXZpY2UgQ2FwYWJpbGl0aWVzIDIgKGJpdHMgMTM6MTIpOyByZXF1ZXN0c1xuJiM0MzsgKiBjYXJyeWluZyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCBhZGRpdGlvbmFsbHkgcmVxdWlyZSB0aGUgZGV2aWNlIHRvXG4mIzQzOyAqIHJlcG9ydCB0aGUgRXh0ZW5kZWQgVFBIIENvbXBsZXRlciBlbmNvZGluZy4gT3RoZXJ3aXNlIHRoZSBpb2N0bFxuJiM0MzsgKiByZXR1cm5zIC1FT1BOT1RTVVBQLlxuJiM0MzsgKlxuJiM0MzsgKiBAZG1hYnVmX2ZkIGlzIHRoZSBmaWxlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGLlxuJiM0MzsgKlxuJiM0MzsgKiA4LWJpdCBTVCAoQHN0ZWVyaW5nX3RhZykgYW5kIDE2LWJpdCBFeHRlbmRlZCBTVCAoQHN0ZWVyaW5nX3RhZ19leHQpIGFyZVxuJiM0MzsgKiBkaXN0aW5jdCBuYW1lc3BhY2VzLiBAZmxhZ3MgaXMgdGhlIGF1dGhvcml0YXRpdmUgdmFsaWRpdHkgbWFzayBmb3IgdGhlXG4mIzQzOyAqIHR3byBuYW1lc3BhY2VzOiBWRklPX0RNQV9CVUZfVFBIX1NUIG1hcmtzIEBzdGVlcmluZ190YWcgdmFsaWQgYW5kXG4mIzQzOyAqIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIG1hcmtzIEBzdGVlcmluZ190YWdfZXh0IHZhbGlkLiBBbiBpbXBvcnRlclxuJiM0MzsgKiByZXF1ZXN0cyBvbmUgbmFtZXNwYWNlIGFuZCByZWNlaXZlcyB0aGUgbWF0Y2hpbmcgdmFsdWUuXG4mIzQzOyAqXG4mIzQzOyAqIEVhY2ggU0VUIGZ1bGx5IHJlcGxhY2VzIHRoZSBkbWEtYnVmJiMzOTtzIFRQSCBzdGF0ZSBmb3IgZnV0dXJlIHF1ZXJpZXNcbiYjNDM7ICogb25seS4gQSBuYW1lc3BhY2Ugd2hvc2UgZmxhZyBiaXQgaXMgY2xlYXIgaXMgcmVwb3J0ZWQgYXMgdW5zdXBwb3J0ZWRcbiYjNDM7ICogdG8gZnV0dXJlIGltcG9ydGVyczsgYW4gaW1wb3J0ZXIgdGhhdCBoYXMgYWxyZWFkeSByZXRyaWV2ZWQgYSB2YWx1ZVxuJiM0MzsgKiBpcyB1bmFmZmVjdGVkLiBAZmxhZ3MgPT0gMCBsZWF2ZXMgYm90aCBuYW1lc3BhY2VzIHVuc3VwcG9ydGVkIGZvclxuJiM0MzsgKiBmdXR1cmUgaW1wb3J0ZXJzLlxuJiM0MzsgKlxuJiM0MzsgKiBAcGggaXMgdGhlIDItYml0IFRMUCBQcm9jZXNzaW5nIEhpbnQgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCAzXS5cbiYjNDM7ICpcbiYjNDM7ICogVW5kZWZpbmVkIEBmbGFncyBhbmQgQHBoIGJpdHMgbXVzdCBhbHdheXMgYmUgemVyby5cbiYjNDM7ICpcbiYjNDM7ICogVXNlcnNwYWNlIG11c3QgY29uZmlndXJlIFRQSCBiZWZvcmUgaGFuZGluZyB0aGUgZG1hLWJ1ZiBmZCB0byBhblxuJiM0MzsgKiBpbXBvcnRlci5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCAxM1xuJiM0MztcbiYjNDM7I2RlZmluZSBWRklPX0RNQV9CVUZfVFBIX1NUXHRcdCgxIFx1MDAzY1x1MDAzYyAwKVxuJiM0MzsjZGVmaW5lIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUXHRcdCgxIFx1MDAzY1x1MDAzYyAxKVxuJiM0MztcbiYjNDM7c3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGgge1xuJiM0MztcdF9fczMyXHRkbWFidWZfZmQ7XG4mIzQzO1x0X191MzJcdGZsYWdzO1xuJiM0MztcdF9fdTE2XHRzdGVlcmluZ190YWdfZXh0O1xuJiM0MztcdF9fdThcdHN0ZWVyaW5nX3RhZztcbiYjNDM7XHRfX3U4XHRwaDtcbiYjNDM7fTtcbiYjNDM7XG4gLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovXG4gXG4gLyoqXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmQ2MDJhOGUxNjc0NjRlMGJkMGExNzhlM2U0MTdiNjJlYmYyMGNlYQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTk6NTk6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwppbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwpAQCAtOTM5LDYgJiM0Mzs5MzksNyBAQCBkbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQogICogICAgIC0gZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KCkKICAqICAgICAtIGRtYV9idWZfdm1hcCgpCiAgKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpCiYjNDM7ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpCiAgKgogICogMi4gSW1wb3J0ZXJzIG11c3Qgbm90IGhvbGQgdGhlIGRtYS1idWYgcmVzZXJ2YXRpb24gbG9jayB3aGVuIGNhbGxpbmcgdGhlc2UKICAqICAgIGZ1bmN0aW9uczoKQEAgLTk3OSw2ICYjNDM7OTgwLDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKICAqICAgICAtICZhbXA7ZG1hX2J1Zl9vcHMudW5tYXBfZG1hX2J1ZigpCiAgKiAgICAgLSAmYW1wO2RtYV9idWZfb3BzLnZtYXAoKQogICogICAgIC0gJmFtcDtkbWFfYnVmX29wcy52dW5tYXAoKQomIzQzOyAqICAgICAtICZhbXA7ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGgoKQogICoKICAqIDMuIEV4cG9ydGVycyBtdXN0IGhvbGQgdGhlIGRtYS1idWYgcmVzZXJ2YXRpb24gbG9jayB3aGVuIGNhbGxpbmcgdGhlc2UKICAqICAgIGZ1bmN0aW9uczoKQEAgLTExNDQsNiAmIzQzOzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKIH0KIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sICYjMzQ7RE1BX0JVRiYjMzQ7KTsKIAomIzQzOy8qKgomIzQzOyAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGEKJiM0MzsgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5CiYjNDM7ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVAomIzQzOyAqIEBzdGVlcmluZ190YWc6IHJldHVybnMgdGhlIHJhdyBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlCiYjNDM7ICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50CiYjNDM7ICoKJiM0MzsgKiBXcmFwcGVyIGZvciB0aGUgb3B0aW9uYWwgJmFtcDtkbWFfYnVmX29wcy5nZXRfcGNpX3RwaCBjYWxsYmFjay4KJiM0MzsgKgomIzQzOyAqIE11c3QgYmUgY2FsbGVkIHdpdGggJmFtcDtkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAtRU9QTk9UU1VQUCBpZiB0aGUKJiM0MzsgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlCiYjNDM7ICogcmVxdWVzdGVkIG5hbWVzcGFjZS4KJiM0MzsgKgomIzQzOyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGUKJiM0MzsgKiBleHBvcnRlciBpbnZhbGlkYXRlcyB0aGUgY3VycmVudCBtYXBwaW5nIChzaWduYWxsZWQgdG8gdGhlIGltcG9ydGVyIHZpYQomIzQzOyAqICZhbXA7ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXcKJiM0MzsgKiBtYXBwaW5nIGlzIGVzdGFibGlzaGVkIGZvbGxvd2luZyBpbnZhbGlkYXRpb24uCiYjNDM7ICovCiYjNDM7aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCwKJiM0MzsJCQl1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKQomIzQzO3sKJiM0MzsJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLSZndDtyZXN2KTsKJiM0MzsKJiM0MzsJaWYgKCFkbWFidWYtJmd0O29wcy0mZ3Q7Z2V0X3BjaV90cGgpCiYjNDM7CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CiYjNDM7CXJldHVybiBkbWFidWYtJmd0O29wcy0mZ3Q7Z2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgc3RlZXJpbmdfdGFnLCBwaCk7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsICYjMzQ7RE1BX0JVRiYjMzQ7KTsKJiM0MzsKIC8qKgogICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50OwogICogbWFwcGVkIGludG8gX2RldmljZV8gYWRkcmVzcyBzcGFjZS4gSXMgYSB3cmFwcGVyIGZvciBtYXBfZG1hX2J1ZigpIG9mIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAKIE1PRFVMRV9BVVRIT1IoJiMzNDtFbGkgQ29oZW4gJmx0O2VsaUBtZWxsYW5veC5jb20mZ3Q7JiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXImIzM0Oyk7CiBNT0RVTEVfTElDRU5TRSgmIzM0O0R1YWwgQlNEL0dQTCYjMzQ7KTsKJiM0MztNT0RVTEVfSU1QT1JUX05TKCYjMzQ7RE1BX0JVRiYjMzQ7KTsKIAogc3RydWN0IG1seDVfaWJfZXZlbnRfd29yayB7CiAJc3RydWN0IHdvcmtfc3RydWN0CXdvcms7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYwppbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYwpAQCAtMzksNiAmIzQzOzM5LDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9kZWxheS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2RtYS1idWYuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtcmVzdi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9wY2ktdHBoLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7cmRtYS9mcm1yX3Bvb2xzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7cmRtYS9pYl91bWVtX29kcC5oJmd0OwogI2luY2x1ZGUgJiMzNDtkbS5oJiMzNDsKQEAgLTE2Nyw2ICYjNDM7MTY4LDM5IEBAIHN0YXRpYyBpbnQgZ2V0X3VuY2hhbmdlYWJsZV9hY2Nlc3NfZmxhZ3Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0sgR0VOTUFTS19VTEwoMjMsIDE2KQogI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLIEdFTk1BU0tfVUxMKDE1LCAwKQogCiYjNDM7c3RhdGljIHU4IG1seDVfaWJfdHBoX2tleV9waCh1OCBwaCkKJiM0Mzt7CiYjNDM7CWlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApCiYjNDM7CQlwaCBePSBNTFg1X0lCX05PX1BIOwomIzQzOwomIzQzOwlyZXR1cm4gcGg7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpbnQgbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJaWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCkKJiM0MzsJCXJldHVybiAwOwomIzQzOwomIzQzOwlyZXR1cm4gbWx4NV9zdF9nZXRfaW5kZXgoZGV2LSZndDttZGV2LCBzdF9pbmRleCk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJaWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJbWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi0mZ3Q7bWRldiwgc3RfaW5kZXgpOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LAomIzQzOwkJCQkgICAgICB1NjQga2VybmVsX3ZlbmRvcl9rZXkpCiYjNDM7ewomIzQzOwl1MTYgc3RfaW5kZXggPSBGSUVMRF9HRVQoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSywKJiM0MzsJCQkJIGtlcm5lbF92ZW5kb3Jfa2V5KTsKJiM0MzsKJiM0MzsJbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqCiBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLAogCQkgICAgICBpbnQgYWNjZXNzX2ZsYWdzLCBpbnQgYWNjZXNzX21vZGUsCkBAIC0xODksMTMgJiM0MzsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJCU1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0sgOgogCQkJMDsKIAotCS8qIE5vcm1hbGl6ZSBwaDogc3dhcCAwIGFuZCBNTFg1X0lCX05PX1BIICovCi0JaWYgKHBoID09IE1MWDVfSUJfTk9fUEggfHwgcGggPT0gMCkKLQkJcGggXj0gTUxYNV9JQl9OT19QSDsKLQogCW1yLSZndDtpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID0KIAkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfAotCQlGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssIHBoKTsKJiM0MzsJCUZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywKJiM0MzsJCQkgICBtbHg1X2liX3RwaF9rZXlfcGgocGgpKTsKIAllcnIgPSBpYl9mcm1yX3Bvb2xfcG9wKCZhbXA7ZGV2LSZndDtpYl9kZXYsICZhbXA7bXItJmd0O2libXIpOwogCWlmIChlcnIpIHsKIAkJa2ZyZWUobXIpOwpAQCAtMjE4LDcgJiM0MzsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIAkJCQkgICAgICAwIDoKIAkJCQkgICAgICBNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLLAogCQkubnVtX2RtYV9ibG9ja3MgPSBuZGVzY3MsCi0JCS5rZXJuZWxfdmVuZG9yX2tleSA9IDAsIC8qIG5vIFBIIGFuZCBubyBTVCBpbmRleCAqLwomIzQzOwkJLmtlcm5lbF92ZW5kb3Jfa2V5ID0KJiM0MzsJCQlGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssCiYjNDM7CQkJCSAgIE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCksCiAJfTsKIAlzdHJ1Y3QgbWx4NV9pYl9tciAqbXI7CiAJaW50IHJldDsKQEAgLTU1Nyw2ICYjNDM7NTkwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqcmVnX2NyZWF0ZShzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAltci0mZ3Q7aWJtci5wZCA9IHBkOwogCW1yLSZndDthY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7CiAJbXItJmd0O3BhZ2Vfc2hpZnQgPSBvcmRlcl9iYXNlXzIocGFnZV9zaXplKTsKJiM0MzsJbXItJmd0O2libXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPQomIzQzOwkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfAomIzQzOwkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLAomIzQzOwkJCSAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpOwogCiAJaW5sZW4gPSBNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X2luKTsKIAlpZiAocG9wdWxhdGUpCkBAIC03NTMsNiAmIzQzOzc5MCwxMiBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJCXN0X2luZGV4ID0gbWRtYWgtJmd0O3N0X2luZGV4OwogCX0KIAomIzQzOwllcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlpYl91bWVtX3JlbGVhc2UodW1lbSk7CiYjNDM7CQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwl9CiYjNDM7CiAJeGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tJmd0O2xlbmd0aCk7CiAJaWYgKHhsdF93aXRoX3VtcikgewogCQltciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgdW1lbSwgaW92YSwgYWNjZXNzX2ZsYWdzLApAQCAtNzY5LDYgJiM0Mzs4MTIsNyBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7ZGV2LSZndDtzbG93X3BhdGhfbXV0ZXgpOwogCX0KIAlpZiAoSVNfRVJSKG1yKSkgewomIzQzOwkJbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpOwogCQlpYl91bWVtX3JlbGVhc2UodW1lbSk7CiAJCXJldHVybiBFUlJfQ0FTVChtcik7CiAJfQpAQCAtOTAzLDYgJiM0Mzs5NDcsNTIgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9vcHMgbWx4NV9pYl9kbWFidWZfYXR0YWNoX29wcyA9IHsKIAkuaW52YWxpZGF0ZV9tYXBwaW5ncyA9IG1seDVfaWJfZG1hYnVmX2ludmFsaWRhdGVfY2IsCiB9OwogCiYjNDM7c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAomIzQzOwkJCQkgIHUxNiAqc3RfaW5kZXgsIHU4ICpwaCkKJiM0Mzt7CiYjNDM7CXUxNiBsb2NhbF9zdF9pbmRleDsKJiM0MzsJdTE2IHN0ZWVyaW5nX3RhZzsKJiM0MzsJdTggbG9jYWxfcGg7CiYjNDM7CWJvb2wgZXh0ZW5kZWQ7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CXN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtJmd0O21kZXYtJmd0O3BkZXYpKSB7CiYjNDM7CWNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6CiYjNDM7CQlleHRlbmRlZCA9IGZhbHNlOwomIzQzOwkJYnJlYWs7CiYjNDM7CWNhc2UgUENJX1RQSF9SRVFfRVhUX1RQSDoKJiM0MzsJCWV4dGVuZGVkID0gdHJ1ZTsKJiM0MzsJCWJyZWFrOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiYjNDM7CWRtYV9yZXN2X2xvY2soZG1hYnVmLSZndDtyZXN2LCBOVUxMKTsKJiM0MzsJcmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCAmYW1wO3N0ZWVyaW5nX3RhZywgJmFtcDtsb2NhbF9waCk7CiYjNDM7CWRtYV9yZXN2X3VubG9jayhkbWFidWYtJmd0O3Jlc3YpOwomIzQzOwlpZiAocmV0KSB7CiYjNDM7CQlpZiAocmV0ICE9IC1FT1BOT1RTVVBQKQomIzQzOwkJCW1seDVfaWJfZGJnKGRldiwgJiMzNDtnZXRfcGNpX3RwaCBmYWlsZWQgKCVkKVxuJiMzNDssIHJldCk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0ID0gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LSZndDttZGV2LCBzdGVlcmluZ190YWcsCiYjNDM7CQkJCQkgJmFtcDtsb2NhbF9zdF9pbmRleCk7CiYjNDM7CWlmIChyZXQpIHsKJiM0MzsJCW1seDVfaWJfZGJnKGRldiwgJiMzNDtzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcbiYjMzQ7LCByZXQpOwomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiYjNDM7CSpzdF9pbmRleCA9IGxvY2FsX3N0X2luZGV4OwomIzQzOwkqcGggPSBsb2NhbF9waDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpCiYjNDM7ewomIzQzOwltbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLAomIzQzOwkJCQkgIG1yLSZndDtpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IGliX21yICoKIHJlZ191c2VyX21yX2RtYWJ1ZihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2aWNlLAogCQkgICB1NjQgb2Zmc2V0LCB1NjQgbGVuZ3RoLCB1NjQgdmlydF9hZGRyLApAQCAtOTQ1LDEyICYjNDM7MTAzNSwyMiBAQCByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSwKIAkJcGggPSBkbWFoLSZndDtwaDsKIAkJaWYgKGRtYWgtJmd0O3ZhbGlkX2ZpZWxkcyAmYW1wOyBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSkKIAkJCXN0X2luZGV4ID0gbWRtYWgtJmd0O3N0X2luZGV4OwomIzQzOwomIzQzOwkJZXJyID0gbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihkZXYsIHN0X2luZGV4KTsKJiM0MzsJCWlmIChlcnIpIHsKJiM0MzsJCQlpYl91bWVtX3JlbGVhc2UoJmFtcDt1bWVtX2RtYWJ1Zi0mZ3Q7dW1lbSk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLSZndDthdHRhY2gtJmd0O2RtYWJ1ZiwKJiM0MzsJCQkJICAgICAgJmFtcDtzdF9pbmRleCwgJmFtcDtwaCk7CiAJfQogCiAJbXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsICZhbXA7dW1lbV9kbWFidWYtJmd0O3VtZW0sIHZpcnRfYWRkciwKIAkJCQlhY2Nlc3NfZmxhZ3MsIGFjY2Vzc19tb2RlLAogCQkJCXN0X2luZGV4LCBwaCk7CiAJaWYgKElTX0VSUihtcikpIHsKJiM0MzsJCW1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTsKIAkJaWJfdW1lbV9yZWxlYXNlKCZhbXA7dW1lbV9kbWFidWYtJmd0O3VtZW0pOwogCQlyZXR1cm4gRVJSX0NBU1QobXIpOwogCX0KQEAgLTE0MDUsNiAmIzQzOzE1MDUsNyBAQCBzdGF0aWMgaW50IG1seDVyX2hhbmRsZV9ta2V5X2NsZWFudXAoc3RydWN0IG1seDVfaWJfbXIgKm1yKQogCWlmIChtci0mZ3Q7aWJtci5mcm1yLnBvb2wpIHsKIAkJaWYgKCFtbHg1X3Vtcl9yZXZva2VfbXJfd2l0aF9sb2NrKG1yKSkgewogCQkJaWJfZnJtcl9wb29sX3B1c2gobXItJmd0O2libXIuZGV2aWNlLCAmYW1wO21yLSZndDtpYm1yKTsKJiM0MzsJCQltbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKG1yKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQpAQCAtMTQzMiw2ICYjNDM7MTUzMyw5IEBAIHN0YXRpYyBpbnQgbWx4NXJfaGFuZGxlX21rZXlfY2xlYW51cChzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpCiAJaWYgKG1yLSZndDtpYm1yLmZybXIucG9vbCAmYW1wOyZhbXA7ICFyZXQpCiAJCWliX2ZybXJfcG9vbF9kcm9wKCZhbXA7bXItJmd0O2libXIpOwogCiYjNDM7CWlmICghcmV0KQomIzQzOwkJbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jCmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuYwpAQCAtOTIsMjMgJiM0Mzs5MiwxOCBAQCB2b2lkIG1seDVfc3RfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCWtmcmVlKHN0KTsKIH0KIAotaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSB0cGhfbWVtX3R5cGUgbWVtX3R5cGUsCi0JCQl1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZywKJiM0MzsJCQkgICAgICAgdTE2ICpzdF9pbmRleCkKIHsKIAlzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7CiAJc3RydWN0IG1seDVfc3QgKnN0ID0gZGV2LSZndDtzdDsKIAl1bnNpZ25lZCBsb25nIGluZGV4OwogCXUzMiB4YV9pZDsKLQl1MTYgdGFnOwotCWludCByZXQ7CiYjNDM7CWludCByZXQgPSAwOwogCiAJaWYgKCFzdCkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JcmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtJmd0O3BkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCAmYW1wO3RhZyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCWlmIChzdC0mZ3Q7ZGlyZWN0X21vZGUpIHsKIAkJKnN0X2luZGV4ID0gdGFnOwogCQlyZXR1cm4gMDsKQEAgLTE1Miw4ICYjNDM7MTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLAogCW11dGV4X3VubG9jaygmYW1wO3N0LSZndDtsb2NrKTsKIAlyZXR1cm4gcmV0OwogfQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTsKJiM0MzsKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKJiM0MzsJCQl1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKJiM0Mzt7CiYjNDM7CXUxNiB0YWc7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CXJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LSZndDtwZGV2LCBtZW1fdHlwZSwgY3B1X3VpZCwgJmFtcDt0YWcpOwomIzQzOwlpZiAocmV0KQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKJiM0MzsJcmV0dXJuIG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKGRldiwgdGFnLCBzdF9pbmRleCk7CiYjNDM7fQogRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9hbGxvY19pbmRleCk7CiAKJiM0MztpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJc3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhOwomIzQzOwlzdHJ1Y3QgbWx4NV9zdCAqc3QgPSBkZXYtJmd0O3N0OwomIzQzOwlpbnQgcmV0ID0gMDsKJiM0MzsKJiM0MzsJaWYgKCFzdCkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKHN0LSZndDtkaXJlY3RfbW9kZSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwomIzQzOwltdXRleF9sb2NrKCZhbXA7c3QtJmd0O2xvY2spOwomIzQzOwlpZHhfZGF0YSA9IHhhX2xvYWQoJmFtcDtzdC0mZ3Q7aWR4X3hhLCBzdF9pbmRleCk7CiYjNDM7CWlmIChXQVJOX09OX09OQ0UoIWlkeF9kYXRhKSkKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiYjNDM7CWVsc2UKJiM0MzsJCXJlZmNvdW50X2luYygmYW1wO2lkeF9kYXRhLSZndDt1c2Vjb3VudCk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO3N0LSZndDtsb2NrKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9nZXRfaW5kZXgpOwomIzQzOwogaW50IG1seDVfc3RfZGVhbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpCiB7CiAJc3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdHBoLmMgYi9kcml2ZXJzL3BjaS90cGguYwppbmRleCA2NTVmZmQ2MGU2MmY2YS4uZTc2OTNmZDlkNjc2MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3RwaC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3RwaC5jCkBAIC0xNzMsNiAmIzQzOzE3Myw1MSBAQCB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKIH0KIEVYUE9SVF9TWU1CT0wocGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyk7CiAKJiM0MzsvKioKJiM0MzsgKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgZW5hYmxlZCBUUEggcmVxdWVzdGVyIHR5cGUKJiM0MzsgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeQomIzQzOyAqCiYjNDM7ICogUmV0dXJuOiBQQ0lfVFBIX1JFUV9ESVNBQkxFLCBQQ0lfVFBIX1JFUV9UUEhfT05MWSBvciBQQ0lfVFBIX1JFUV9FWFRfVFBILgomIzQzOyAqLwomIzQzO3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7ewomIzQzOwlyZXR1cm4gcGRldi0mZ3Q7dHBoX3JlcV90eXBlOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpOwomIzQzOwomIzQzOy8qKgomIzQzOyAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgVFBIIENvbXBsZXRlciBzdXBwb3J0CiYjNDM7ICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnkKJiM0MzsgKgomIzQzOyAqIFJlYWRzIHRoZSAmIzM0O1RQSCBDb21wbGV0ZXIgU3VwcG9ydGVkJiMzNDsgZmllbGQgKGJpdHMgMTM6MTIpIG9mIERldmljZQomIzQzOyAqIENhcGFiaWxpdGllcyAyLiBUaGUgcmVzZXJ2ZWQgMGIxMCBlbmNvZGluZyBpcyBmb2xkZWQgaW50bwomIzQzOyAqICYjMzQ7bm90IHN1cHBvcnRlZCYjMzQ7IHNvIGNhbGxlcnMgb25seSBuZWVkIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgdGhyZWUKJiM0MzsgKiBkZWZpbmVkIHZhbHVlcy4KJiM0MzsgKgomIzQzOyAqIFJldHVybjogb25lIG9mICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSwKJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFkgb3IKJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSC4KJiM0MzsgKi8KJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKJiM0Mzt7CiYjNDM7CXUzMiByZWc7CiYjNDM7CiYjNDM7CWlmIChwY2llX2NhcGFiaWxpdHlfcmVhZF9kd29yZChwZGV2LCBQQ0lfRVhQX0RFVkNBUDIsICZhbXA7cmVnKSkKJiM0MzsJCXJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsKJiM0MzsJaWYgKFBDSV9QT1NTSUJMRV9FUlJPUihyZWcpKQomIzQzOwkJcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOwomIzQzOwomIzQzOwlzd2l0Y2ggKEZJRUxEX0dFVChQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTUFTSywgcmVnKSkgewomIzQzOwljYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWToKJiM0MzsJCXJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFk7CiYjNDM7CWNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg6CiYjNDM7CQlyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg7CiYjNDM7CWRlZmF1bHQ6CiYjNDM7CQlyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7CiYjNDM7CiAvKgogICogUmV0dXJuIHRoZSBzaXplIG9mIFNUIHRhYmxlLiBJZiBTVCB0YWJsZSBpcyBub3QgaW4gVFBIIFJlcXVlc3RlciBFeHRlbmRlZAogICogQ2FwYWJpbGl0eSBzcGFjZSwgcmV0dXJuIDAuIE90aGVyd2lzZSByZXR1cm4gdGhlIFNUIFRhYmxlIFNpemUgJiM0MzsgMS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMKaW5kZXggYTI4ZjFlOTkzNjJjMWUuLmM3ZDY5MDJiYzYxYjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYwpAQCAtMTU3Miw2ICYjNDM7MTU3Miw5IEBAIGludCB2ZmlvX3BjaV9jb3JlX2lvY3RsX2ZlYXR1cmUoc3RydWN0IHZmaW9fZGV2aWNlICpkZXZpY2UsIHUzMiBmbGFncywKIAkJcmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV90b2tlbih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7CiAJY2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUY6CiAJCXJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7CiYjNDM7CWNhc2UgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSDoKJiM0MzsJCXJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgodmRldiwgZmxhZ3MsIGFyZywKJiM0MzsJCQkJCQkJIGFyZ3N6KTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT1RUWTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYwppbmRleCBjMTZmNDYwYzAxZDY4MS4uNTM1MTgzOWMxMzM4YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAgKi8KICNpbmNsdWRlICZsdDtsaW51eC9kbWEtYnVmLW1hcHBpbmcuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9wY2ktcDJwZG1hLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3BjaS10cGguaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtcmVzdi5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O3ZmaW9fcGNpX3ByaXYuaCYjMzQ7CkBAIC0xOSw3ICYjNDM7MjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYgewogCXUzMiBucl9yYW5nZXM7CiAJc3RydWN0IGtyZWYga3JlZjsKIAlzdHJ1Y3QgY29tcGxldGlvbiBjb21wOwotCXU4IHJldm9rZWQgOiAxOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBVcGRhdGVzIHByb3RlY3RlZCBieSBkbWFidWYtJmd0O3Jlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseQomIzQzOwkgKiBwcm90ZWN0ZWQgYnkgbWVtb3J5X2xvY2suCiYjNDM7CSAqLwomIzQzOwl1MTYgdHBoX3N0X2V4dDsKJiM0MzsJdTggdHBoX3N0OwomIzQzOwlib29sIHJldm9rZWQ7CiYjNDM7CXU4IHRwaF9zdF92YWxpZDoxOwomIzQzOwl1OCB0cGhfc3RfZXh0X3ZhbGlkOjE7CiYjNDM7CXU4IHRwaF9waDoyOwogfTsKIAogc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLApAQCAtMzAsNyAmIzQzOzQxLDcgQEAgc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAogCWlmICghYXR0YWNobWVudC0mZ3Q7cGVlcjJwZWVyKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQlpZiAocHJpdi0mZ3Q7cmV2b2tlZCkKJiM0MzsJaWYgKFJFQURfT05DRShwcml2LSZndDtyZXZva2VkKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoIWRtYV9idWZfYXR0YWNoX3Jldm9jYWJsZShhdHRhY2htZW50KSkKQEAgLTY5LDYgJiM0Mzs4MCwyNiBAQCB2ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LAogCXJldHVybiByZXQ7CiB9CiAKJiM0MztzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCwKJiM0MzsJCQkJCXUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi0mZ3Q7cHJpdjsKJiM0MzsKJiM0MzsJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLSZndDtyZXN2KTsKJiM0MzsKJiM0MzsJaWYgKGV4dGVuZGVkKSB7CiYjNDM7CQlpZiAoIXByaXYtJmd0O3RwaF9zdF9leHRfdmFsaWQpCiYjNDM7CQkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwkJKnN0ZWVyaW5nX3RhZyA9IHByaXYtJmd0O3RwaF9zdF9leHQ7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlpZiAoIXByaXYtJmd0O3RwaF9zdF92YWxpZCkKJiM0MzsJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CQkqc3RlZXJpbmdfdGFnID0gcHJpdi0mZ3Q7dHBoX3N0OwomIzQzOwl9CiYjNDM7CSpwaCA9IHByaXYtJmd0O3RwaF9waDsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwogc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LAogCQkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCQkJCSAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKQEAgLTEwMSw2ICYjNDM7MTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHsKIAkuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsCiYjNDM7CS5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsCiAJLm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsCiAJLnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLAogCS5yZWxlYXNlID0gdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlLApAQCAtMzMzLDYgJiM0MzszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLAogCXJldHVybiByZXQ7CiB9CiAKJiM0MztpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwKJiM0MzsJCQkJICAgICAgdTMyIGZsYWdzLAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZywKJiM0MzsJCQkJICAgICAgc2l6ZV90IGFyZ3N6KQomIzQzO3sKJiM0MzsJc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggc2V0X3RwaDsKJiM0MzsJc3RydWN0IHZmaW9fcGNpX2RtYV9idWYgKnByaXY7CiYjNDM7CXN0cnVjdCBkbWFfYnVmICpkbWFidWY7CiYjNDM7CXU4IGNvbXA7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CWNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LSZndDtwZGV2KTsKJiM0MzsJaWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpCiYjNDM7CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CiYjNDM7CXJldCA9IHZmaW9fY2hlY2tfZmVhdHVyZShmbGFncywgYXJnc3osIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VULAomIzQzOwkJCQkgc2l6ZW9mKHNldF90cGgpKTsKJiM0MzsJaWYgKHJldCAhPSAxKQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKJiM0MzsJaWYgKGNvcHlfZnJvbV91c2VyKCZhbXA7c2V0X3RwaCwgYXJnLCBzaXplb2Yoc2V0X3RwaCkpKQomIzQzOwkJcmV0dXJuIC1FRkFVTFQ7CiYjNDM7CiYjNDM7CWlmIChzZXRfdHBoLmZsYWdzICZhbXA7IH4oVkZJT19ETUFfQlVGX1RQSF9TVCB8IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKSkKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwlpZiAoc2V0X3RwaC5waCAmYW1wOyB+MHgzKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWlmICgoc2V0X3RwaC5mbGFncyAmYW1wOyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkgJmFtcDsmYW1wOwomIzQzOwkgICAgY29tcCAhPSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSCkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJZG1hYnVmID0gZG1hX2J1Zl9nZXQoc2V0X3RwaC5kbWFidWZfZmQpOwomIzQzOwlpZiAoSVNfRVJSKGRtYWJ1ZikpCiYjNDM7CQlyZXR1cm4gUFRSX0VSUihkbWFidWYpOwomIzQzOwomIzQzOwlpZiAoZG1hYnVmLSZndDtvcHMgIT0gJmFtcDt2ZmlvX3BjaV9kbWFidWZfb3BzKSB7CiYjNDM7CQlyZXQgPSAtRUlOVkFMOwomIzQzOwkJZ290byBvdXRfcHV0OwomIzQzOwl9CiYjNDM7CiYjNDM7CXByaXYgPSBkbWFidWYtJmd0O3ByaXY7CiYjNDM7CWlmIChwcml2LSZndDt2ZGV2ICE9IHZkZXYpIHsKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiYjNDM7CQlnb3RvIG91dF9wdXQ7CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0ID0gZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKGRtYWJ1Zi0mZ3Q7cmVzdiwgTlVMTCk7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlnb3RvIG91dF9wdXQ7CiYjNDM7CiYjNDM7CXByaXYtJmd0O3RwaF9zdCAgICAgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWc7CiYjNDM7CXByaXYtJmd0O3RwaF9zdF9leHQgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWdfZXh0OwomIzQzOwlwcml2LSZndDt0cGhfcGggICAgICAgICA9IHNldF90cGgucGg7CiYjNDM7CXByaXYtJmd0O3RwaF9zdF92YWxpZCAgID0gISEoc2V0X3RwaC5mbGFncyAmYW1wOyBWRklPX0RNQV9CVUZfVFBIX1NUKTsKJiM0MzsJcHJpdi0mZ3Q7dHBoX3N0X2V4dF92YWxpZCA9CiYjNDM7CQkhIShzZXRfdHBoLmZsYWdzICZhbXA7IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKTsKJiM0MzsJZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi0mZ3Q7cmVzdik7CiYjNDM7CXJldCA9IDA7CiYjNDM7CiYjNDM7b3V0X3B1dDoKJiM0MzsJZG1hX2J1Zl9wdXQoZG1hYnVmKTsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfbW92ZShzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIGJvb2wgcmV2b2tlZCkKIHsKIAlzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgKaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaApAQCAtMTE4LDYgJiM0MzsxMTgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHZmaW9fcGNpX2lzX3ZnYShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIGludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKIAkJCQkgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYgX191c2VyICphcmcsCiAJCQkJICBzaXplX3QgYXJnc3opOwomIzQzO2ludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LAomIzQzOwkJCQkgICAgICB1MzIgZmxhZ3MsCiYjNDM7CQkJCSAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLAomIzQzOwkJCQkgICAgICBzaXplX3QgYXJnc3opOwogdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KTsKIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTsKICNlbHNlCkBAIC0xMjgsNiAmIzQzOzEzMiwxNCBAQCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKIHsKIAlyZXR1cm4gLUVOT1RUWTsKIH0KJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIGludAomIzQzO3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKJiM0MzsJCQkJICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZywKJiM0MzsJCQkJICBzaXplX3QgYXJnc3opCiYjNDM7ewomIzQzOwlyZXR1cm4gLUVOT1RUWTsKJiM0Mzt9CiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldikKIHsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKaW5kZXggZDEyMDNkYTU2ZmM1ZjcuLjE0ZThlYjYxYTYyYzA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaApAQCAtMTEzLDYgJiM0MzsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHsKIAkgKi8KIAl2b2lkICgqdW5waW4pKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7CiAKJiM0MzsJLyoqCiYjNDM7CSAqIEBnZXRfcGNpX3RwaDoKJiM0MzsJICoKJiM0MzsJICogUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIHN0ZWVyaW5nIG1ldGFkYXRhIGZvcgomIzQzOwkgKiB0aGlzIGJ1ZmZlciBzbyBhbiBpbXBvcnRlciBjYW4gcHJvZ3JhbSBhIG1hdGNoaW5nIFNUL1BIIGhpbnQgb24KJiM0MzsJICogb3V0Ym91bmQgVExQcyB0YXJnZXRpbmcgdGhlIGV4cG9ydGVyIGZvciBwZWVyLXRvLXBlZXIgRE1BLgomIzQzOwkgKgomIzQzOwkgKiBAZG1hYnVmOiBETUEgYnVmZmVyIGZvciB3aGljaCB0byByZXRyaWV2ZSBUUEggbWV0YWRhdGEKJiM0MzsJICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVAomIzQzOwkgKiBAc3RlZXJpbmdfdGFnOiBSZXR1cm5zIHRoZSByYXcgVFBIIHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZAomIzQzOwkgKiAgICAgICAgICAgICAgICBuYW1lc3BhY2UKJiM0MzsJICogQHBoOiBSZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50ICgyLWJpdCB2YWx1ZSkKJiM0MzsJICoKJiM0MzsJICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGgKJiM0MzsJICogJmFtcDtkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlbgomIzQzOwkgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS4KJiM0MzsJICoKJiM0MzsJICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3IKJiM0MzsJICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLgomIzQzOwkgKi8KJiM0MzsJaW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsCiYjNDM7CQkJICAgdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7CiYjNDM7CiAJLyoqCiAJICogQG1hcF9kbWFfYnVmOgogCSAqCkBAIC01NjMsNiAmIzQzOzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKIAkJICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7CiBpbnQgZG1hX2J1Zl9waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTsKIHZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpOwomIzQzO2ludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsCiYjNDM7CQkJdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7CiAKIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2V4cG9ydChjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyAqZXhwX2luZm8pOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKaW5kZXggYjE4NzFjMDgyMWQwYjkuLmQyNmU1NzQ0Yzg0M2JmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCkBAIC0xMTgyLDE2ICYjNDM7MTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZQogCQkJICAgdTY0IGxlbmd0aCwgdTE2IHVpZCwgcGh5c19hZGRyX3QgYWRkciwgdTMyIG9ial9pZCk7CiAKICNpZmRlZiBDT05GSUdfUENJRV9UUEgKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZywKJiM0MzsJCQkgICAgICAgdTE2ICpzdF9pbmRleCk7CiYjNDM7aW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7CiBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKIAkJCXVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KTsKIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTsKICNlbHNlCiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKJiM0MzsJCQkJCSAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleCkKJiM0Mzt7CiYjNDM7CXJldHVybiAtRU9QTk9UU1VQUDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzO30KJiM0MzsKIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIAkJCQkgICAgICBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKIAkJCQkgICAgICB1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKIHsKIAlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CiYjNDM7CiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQogewogCXJldHVybiAtRU9QTk9UU1VQUDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oIGIvaW5jbHVkZS9saW51eC9wY2ktdHBoLmgKaW5kZXggYmU2OGNkMTdmMmY4MzMuLjc3NDNhZjZmZTQzMjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaApAQCAtOSw2ICYjNDM7OSw4IEBACiAjaWZuZGVmIExJTlVYX1BDSV9UUEhfSAogI2RlZmluZSBMSU5VWF9QQ0lfVFBIX0gKIAomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9wY2lfcmVncy5oJmd0OwomIzQzOwogLyoKICAqIEFjY29yZGluZyB0byB0aGUgRUNOIGZvciBQQ0kgRmlybXdhcmUgU3BlYywgU3RlZXJpbmcgVGFnIGNhbiBiZSBkaWZmZXJlbnQKICAqIGRlcGVuZGluZyBvbiB0aGUgbWVtb3J5IHR5cGU6IFZvbGF0aWxlIE1lbW9yeSBvciBQZXJzaXN0ZW50IE1lbW9yeS4gV2hlbiBhCkBAIC0zMCw2ICYjNDM7MzIsOCBAQCB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpOwogdTE2IHBjaWVfdHBoX2dldF9zdF90YWJsZV9zaXplKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIHUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKJiM0Mzt1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfc2V0X3N0X2VudHJ5KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCQkJCQl1bnNpZ25lZCBpbnQgaW5kZXgsIHUxNiB0YWcpCkBAIC00MSw2ICYjNDM7NDUsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfZ2V0X2NwdV9zdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogc3RhdGljIGlubGluZSB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfQogc3RhdGljIGlubGluZSBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSkKIHsgcmV0dXJuIC1FSU5WQUw7IH0KJiM0MztzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7eyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfQomIzQzO3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7eyByZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7IH0KICNlbmRpZgogCiAjZW5kaWYgLyogTElOVVhfUENJX1RQSF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaAppbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaApAQCAtMTUzNCw2ICYjNDM7MTUzNCw0OSBAQCBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIHsKICAqLwogI2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX01JR19QUkVDT1BZX0lORk92MiAgMTIKIAomIzQzOy8qKgomIzQzOyAqIFVwb24gVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQgYXNzb2NpYXRlIFRQSCAoVExQIFByb2Nlc3NpbmcgSGludHMpIG1ldGFkYXRhCiYjNDM7ICogd2l0aCBhIHZmaW8tZXhwb3J0ZWQgZG1hLWJ1Zi4gVGhlIGRtYS1idWYgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieQomIzQzOyAqIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRiBvbiB0aGlzIGRldmljZSwgYW5kIHRoZSBkZXZpY2UgbXVzdCByZXBvcnQKJiM0MzsgKiBUUEggQ29tcGxldGVyIHN1cHBvcnQgaW4gRGV2aWNlIENhcGFiaWxpdGllcyAyIChiaXRzIDEzOjEyKTsgcmVxdWVzdHMKJiM0MzsgKiBjYXJyeWluZyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCBhZGRpdGlvbmFsbHkgcmVxdWlyZSB0aGUgZGV2aWNlIHRvCiYjNDM7ICogcmVwb3J0IHRoZSBFeHRlbmRlZCBUUEggQ29tcGxldGVyIGVuY29kaW5nLiBPdGhlcndpc2UgdGhlIGlvY3RsCiYjNDM7ICogcmV0dXJucyAtRU9QTk9UU1VQUC4KJiM0MzsgKgomIzQzOyAqIEBkbWFidWZfZmQgaXMgdGhlIGZpbGUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYuCiYjNDM7ICoKJiM0MzsgKiA4LWJpdCBTVCAoQHN0ZWVyaW5nX3RhZykgYW5kIDE2LWJpdCBFeHRlbmRlZCBTVCAoQHN0ZWVyaW5nX3RhZ19leHQpIGFyZQomIzQzOyAqIGRpc3RpbmN0IG5hbWVzcGFjZXMuIEBmbGFncyBpcyB0aGUgYXV0aG9yaXRhdGl2ZSB2YWxpZGl0eSBtYXNrIGZvciB0aGUKJiM0MzsgKiB0d28gbmFtZXNwYWNlczogVkZJT19ETUFfQlVGX1RQSF9TVCBtYXJrcyBAc3RlZXJpbmdfdGFnIHZhbGlkIGFuZAomIzQzOyAqIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIG1hcmtzIEBzdGVlcmluZ190YWdfZXh0IHZhbGlkLiBBbiBpbXBvcnRlcgomIzQzOyAqIHJlcXVlc3RzIG9uZSBuYW1lc3BhY2UgYW5kIHJlY2VpdmVzIHRoZSBtYXRjaGluZyB2YWx1ZS4KJiM0MzsgKgomIzQzOyAqIEVhY2ggU0VUIGZ1bGx5IHJlcGxhY2VzIHRoZSBkbWEtYnVmJiMzOTtzIFRQSCBzdGF0ZSBmb3IgZnV0dXJlIHF1ZXJpZXMKJiM0MzsgKiBvbmx5LiBBIG5hbWVzcGFjZSB3aG9zZSBmbGFnIGJpdCBpcyBjbGVhciBpcyByZXBvcnRlZCBhcyB1bnN1cHBvcnRlZAomIzQzOyAqIHRvIGZ1dHVyZSBpbXBvcnRlcnM7IGFuIGltcG9ydGVyIHRoYXQgaGFzIGFscmVhZHkgcmV0cmlldmVkIGEgdmFsdWUKJiM0MzsgKiBpcyB1bmFmZmVjdGVkLiBAZmxhZ3MgPT0gMCBsZWF2ZXMgYm90aCBuYW1lc3BhY2VzIHVuc3VwcG9ydGVkIGZvcgomIzQzOyAqIGZ1dHVyZSBpbXBvcnRlcnMuCiYjNDM7ICoKJiM0MzsgKiBAcGggaXMgdGhlIDItYml0IFRMUCBQcm9jZXNzaW5nIEhpbnQgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCAzXS4KJiM0MzsgKgomIzQzOyAqIFVuZGVmaW5lZCBAZmxhZ3MgYW5kIEBwaCBiaXRzIG11c3QgYWx3YXlzIGJlIHplcm8uCiYjNDM7ICoKJiM0MzsgKiBVc2Vyc3BhY2UgbXVzdCBjb25maWd1cmUgVFBIIGJlZm9yZSBoYW5kaW5nIHRoZSBkbWEtYnVmIGZkIHRvIGFuCiYjNDM7ICogaW1wb3J0ZXIuCiYjNDM7ICovCiYjNDM7I2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIDEzCiYjNDM7CiYjNDM7I2RlZmluZSBWRklPX0RNQV9CVUZfVFBIX1NUCQkoMSAmbHQ7Jmx0OyAwKQomIzQzOyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQJCSgxICZsdDsmbHQ7IDEpCiYjNDM7CiYjNDM7c3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggewomIzQzOwlfX3MzMglkbWFidWZfZmQ7CiYjNDM7CV9fdTMyCWZsYWdzOwomIzQzOwlfX3UxNglzdGVlcmluZ190YWdfZXh0OwomIzQzOwlfX3U4CXN0ZWVyaW5nX3RhZzsKJiM0MzsJX191OAlwaDsKJiM0Mzt9OwomIzQzOwogLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovCiAKIC8qKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk5MAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDEyMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgZm9yIEZ1enppbmcgUENJZSBUUEggU3VwcG9ydCBpbiBWRklPIGFuZCBETUEtQlVGKioKCk9rYXksIHNvIHdlIGhhdmUgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8uIEl0IHRvdWNoZXMgYSBidW5jaCBvZiBkcml2ZXJzLCBpbmNsdWRpbmcgc29tZSBjb3JlIERNQS1CVUYgYW5kIFZGSU8gY29kZSwgYWxvbmcgd2l0aCBzb21lIE1lbGxhbm94IChtbHg1KSBhbmQgUENJZS1zcGVjaWZpYyBzdHVmZi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHdlIHJlYWNoIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGNhbiB3ZSAqZnV6eiogaXQ/JiMzNDsuCgpWRklPIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBhbmQgRE1BLUJVRiBpcyB0b28sIHNvIHRoYXQmIzM5O3MgZ29vZC4gQnV0IFRQSCBzdXBwb3J0IGl0c2VsZiBoaW5nZXMgb24gdGhlIFBDSWUgZGV2aWNlIGFjdHVhbGx5ICpoYXZpbmcqIHRoZSBUUEggY2FwYWJpbGl0eS4gVGhpcyBjYW4gYmUgZW11bGF0ZWQgb3Igbm90LCBhbmQgdGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uIGhlcmUuIFRoZSBgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSGAgaW9jdGwgc2VlbXMgbGlrZSBvdXIgZW50cnkgcG9pbnQuIEFuZCBhZnRlciBsb29raW5nIGF0IHRoZSBjb2RlIGluIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIHdoaWNoIHVzZXMgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCwgSSBjYW4gc2VlIGEgcGF0aCwgb3IgbW9yZSBzcGVjaWZpY2FsbHksIGEgcG90ZW50aWFsIGJsb2NrZXIuCgpgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGNoZWNrcyBgUENJX0VYUF9ERVZDQVAyYCBmb3IgdGhlIFRQSCBjb21wbGV0ZXIuIElmIHRoZSB2aXJ0dWFsIGRldmljZSAqZG9lc24mIzM5O3QqIGhhdmUgdGhhdCBjYXBhYmlsaXR5LCB0aGUgZnVuY3Rpb24gcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0IG1lYW5zIHdlIHdpbGwgb25seSBmdXp6IHRoZSBsaW5lcyBiZWZvcmUgdGhpcyBjaGVjay4KClRoZSByZWFsIHF1ZXN0aW9uIGlzLCBkb2VzIFFFTVUgKG9yIHdoYXRldmVyIHZpcnR1YWxpemF0aW9uIHdlJiMzOTtyZSB1c2luZykgKmVtdWxhdGUqIFRQSCBjYXBhYmlsaXR5PyBJZiBub3QsIHdlJiMzOTtsbCBvbmx5IGhpdCB0aGF0IGVhcmx5IGAtRU9QTk9UU1VQUGAgcmV0dXJuLiBFdmVuIGlmIGl0ICpkb2VzKiByZXR1cm4gYW4gZXJyb3IsIHRoYXQgY29kZSBwYXRoIGlzIHN0aWxsIHJlYWNoYWJsZS4KCkxvb2tpbmcgYmV5b25kIHRoZSBjaGVjaywgdGhlcmUmIzM5O3MgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGFkZGVkLCBhbmQgc29tZSBgbWx4NWAgZHJpdmVyIGNoYW5nZXMuIEhvd2V2ZXIsIEkgcmFyZWx5IGZ1enogaGFyZHdhcmUgZHJpdmVycyB1bmxlc3MgdGhleSBoYXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBhbmQgbWx4NSBkb2VzbiYjMzk7dCBzZWVtIHRvIGhhdmUgYW55IGluIHRoaXMgY29udGV4dC4KClNvLCBsZXQmIzM5O3MgZm9jdXMgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIElmIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZmFpbHMsIHdlJiMzOTtyZSBvbmx5IGdvaW5nIHRvIGZ1enogYSBjb3VwbGUgb2YgbGluZXMsIHdoaWNoIGlzbiYjMzk7dCBpZGVhbC4gVGhlIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZnVuY3Rpb24gaXRzZWxmIGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVhZGluZyB0aGUgYFBDSV9FWFBfREVWQ0FQMmAgcmVnaXN0ZXIgYW5kIGV4dHJhY3RpbmcgdGhlIFRQSCBjb21wbGV0ZXIgdHlwZS4gCgpJcyB0aGVyZSBldmVuIGEgKnNvZnR3YXJlLWVtdWxhdGVkKiBQQ0kgZGV2aWNlIHdpdGggVFBIIGNhcGFiaWxpdHk/IFByb2JhYmx5IG5vdCBieSBkZWZhdWx0LiBTeXprYWxsZXIsIHdpdGggaXRzIGBzeXpfcGNpX2RldmljZV9hZGRgIG9yIHNpbWlsYXIgbWVjaGFuaXNtcywgKm1pZ2h0KiBhbGxvdyB1cyB0byBpbmplY3Qgb25lLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gaWYgaXQgc3VwcG9ydHMgdGhhdC4gT3IgbWF5YmUgdmdlbT8gTm8sIHZnZW0gaXNuJiMzOTt0IFBDSS4KCkhhbmcgb24uIFN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X2t2bV9zZXR1cF9jcHVgIGV0Yy4gQnV0IGhvdyBpcyBWRklPIGFjdHVhbGx5IGZ1enplZD8gQnkgb3BlbmluZyBgL2Rldi92ZmlvL2AgYW5kIHVzaW5nIHdoYXRldmVyIGR1bW15IFBDSSBkZXZpY2UgaXMgYXZhaWxhYmxlLiBCdXQgYWdhaW4sIHRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgdGhlIGRldmljZSBkb2VzbiYjMzk7dCBoYXZlIFRQSCwgd2UgaGl0IGAtRU9QTk9UU1VQUGAuCgpPa2F5LCBidXQgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgKmlzKiBhIG5ldyBpb2N0bCwgYW5kIHRoYXQmIzM5O3MgdGhlIGNvcmUgZm9jdXMgaGVyZS4KCkFscmlnaHQsIHdoYXQgYWJvdXQgY29uZmlnIG9wdGlvbnM/IExldCYjMzk7cyBxdWlja2x5IGNoZWNrIGlmIGBDT05GSUdfUENJRV9UUEhgIGlzIHJlcXVpcmVkLiBJdCBsb29rcyBsaWtlIGl0ICppcyogdXNlZCBpbiBib3RoIGBpbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhgIGFuZCBgaW5jbHVkZS9saW51eC9wY2ktdHBoLmhgLCBhbmQgdGhhdCBpcyBhbiBpbXBvcnRhbnQgY29uZmlnIG9wdGlvbiB0byBrZWVwIGluIG1pbmQuIFdlIG1pZ2h0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgY29uZmlnIG9wdGlvbiBpcyBlbmFibGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BDSUVfVFBIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjc2OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdD0zOT1FbmFibGUgVFBIIHN1cHBvcnQgaW4gTGludXhcbi0tXG5Eb2N1bWVudGF0aW9uL1BDSS90cGgucnN0LTQxLVxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdDo0MjpUbyBzdXBwb3J0IFRQSCwgdGhlIGtlcm5lbCBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIENPTkZJR19QQ0lFX1RQSCBvcHRpb25cbkRvY3VtZW50YXRpb24vUENJL3RwaC5yc3QtNDMtZW5hYmxlZC5cbi0tXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0LTUyNzAtXHRcdFx0XHRvbmUgUENJIGRvbWFpbiBwZXIgUENJIGZ1bmN0aW9uXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dDo1MjcxOlx0XHRub3RwaFx0XHRbUENJRV0gSWYgdGhlIFBDSUVfVFBIIGtlcm5lbCBjb25maWcgcGFyYW1ldGVyXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC01MjcyLVx0XHRcdFx0aXMgZW5hYmxlZCwgdGhpcyBrZXJuZWwgYm9vdCBvcHRpb24gY2FuIGJlIHVzZWRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwNS0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9kLmg6MzA2OiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiOFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX2QuaDozMDc6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfQ0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwODojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9kLmgtMzA5LSNkZWZpbmUgbW1QQ0lFX01DX0VOSF9DQVBfTElTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiY1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmgtMTg0NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODQ1OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9JRF9NQVNLIDB4ZmZmZlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODQ2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9JRF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX19TSElGVCAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfTUFTSyAweGZmZjAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9NQVNLIDB4MVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODUyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfSU5UX1ZFQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9NQVNLIDB4NFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX01BU0sgMHgxMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9fU0hJRlQgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX19TSElGVCAweDlcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX01BU0sgMHg3ZmYwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9TVF9NT0RFX1NFTF9NQVNLIDB4N1xuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODY0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9TVF9NT0RFX1NFTF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fX1NISUZUIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaC0xODY3LSNkZWZpbmUgUENJRV9NQ19FTkhfQ0FQX0xJU1RfX0NBUF9JRF9NQVNLIDB4ZmZmZlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9kLmgtMzYwLSNkZWZpbmUgbW1QQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiNVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX2QuaDozNjE6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9kLmg6MzYzOiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiYVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX2QuaC0zNjQtI2RlZmluZSBtbVBDSUVfTUNfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGJjXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaC0yMDgwLSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX01BU0sgMHhmMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfX1NISUZUIDB4MTBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fU0hJRlQgMHgxNFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX01BU0sgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfTUFTSyAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19TSElGVCAweDFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfRVhUTkRfVFBIX1JFUVJfU1VQUE9SRURfTUFTSyAweDEwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9NQVNLIDB4NjAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fX1NISUZUIDB4OVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX19TSElGVCAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX01BU0sgMHg3XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjEwMTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fTUFTSyAweDMwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMTAyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fU0hJRlQgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oLTIxMDMtI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX2QuaC0zMzAtI2RlZmluZSBtbVBDSUVfUEFTSURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI1XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9kLmg6MzMyOiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0NBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiOVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX2QuaDozMzM6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGJhXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzNC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oLTE5NDYtI2RlZmluZSBQQ0lFX1BBU0lEX0NOVExfX1BBU0lEX1BSSVZfTU9ERV9TVVBQT1JURURfRU5BQkxFX19TSElGVCAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTQ5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfTUFTSyAweGYwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTUxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX01BU0sgMHhmZmYwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTUyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX19TSElGVCAweDE0XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfSU5UX1ZFQ19NT0RFX1NVUFBPUlRFRF9NQVNLIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfTUFTSyAweDRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX19TSElGVCAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfRVhUTkRfVFBIX1JFUVJfU1VQUE9SRURfX1NISUZUIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX01BU0sgMHg2MDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9NQVNLIDB4N2ZmMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTY0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfX1NISUZUIDB4MTBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTY3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9NQVNLIDB4MzAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmgtMTk2OS0jZGVmaW5lIFBDSUVfTUNfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaC0xODYtI2RlZmluZSBjZmdQQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYgLy8gZHVwbGljYXRlIFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0Lmg6MTg3OiNkZWZpbmUgY2ZnUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmUwIC8vIGR1cGxpY2F0ZSBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oOjE4ODojZGVmaW5lIGNmZ1BDSUVfVFBIX1JFUVJfQ0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlNCAvLyBkdXBsaWNhdGUgXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaDoxODk6I2RlZmluZSBjZmdQQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTggLy8gZHVwbGljYXRlIFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0LmgtMTkwLSNkZWZpbmUgY2ZnUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYwIC8vIGR1cGxpY2F0ZSBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNzI1LSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzI2Oi8vUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzI5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczMDovL1BDSUVfVFBIX1JFUVJfQ0FQXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM1OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNzovL1BDSUVfVFBIX1JFUVJfQ05UTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczOTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTc0MC0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTU4NTQtI2RlZmluZSBQQ0lFX1BBU0lEX0NOVExfX1BBU0lEX1BSSVZfTU9ERV9TVVBQT1JURURfRU5BQkxFX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NTovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1OTovL1BDSUVfVFBIX1JFUVJfQ0FQXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRjAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NjovL1BDSUVfVFBIX1JFUVJfQ05UTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTU4NjktLy9QQ0lFX01DX0VOSF9DQVBfTElTVFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC04MjAtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC04MjQtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTE3Mi0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9TUklPVl9WRl9NSUdSQVRJT05fU1RBVEVfQVJSQVlfT0ZGU0VUX0RFRkFVTFQgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjExNzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxMTc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTE3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTExNzYtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTQ1Ny0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9BUklfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Njc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Nzk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTIyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTI1LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNjUxLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Njg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjcyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Nzc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzMxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzAyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzExOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzYxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE3MTktXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTI5OTUtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoyOTk2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mjk5NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjI5OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0yOTk5LSNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTMzNDctI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozMzQ4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzM0OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjMzNTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zMzUxLSNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM2MzItI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjMzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjUxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjcyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjgxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzUyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzcwMC1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzgyNi0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mjc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODI4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgyOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODMxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzNTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mzk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV85X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Njk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Nzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zODk0LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNDcwOS0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzFfUENJRV9TUklPVl9WRl9NSUdSQVRJT05fU1RBVEVfQVJSQVlfT0ZGU0VUX0RFRkFVTFQgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8xX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzFfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzEzLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX0RMRl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE1MDYxLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDY0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjUtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUzNDYtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzQ4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNDk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzUxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzU0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzU3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzYwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzYzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzY2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzY5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzcyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzc1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzc4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzgxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzODI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzg0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTEwMwoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENPTkZJR19QQ0lFX1RQSCBSZXF1aXJlbWVudCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgZW5hYmxlIGBDT05GSUdfUENJRV9UUEhgIGZvciB0aGlzIHRlc3RpbmcuIFRoZSBwcm9tcHQgaXMgdmVyeSBjbGVhcjogYXZvaWQgYXNzdW1wdGlvbnMsIGRpZyBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLCBhbmQgb25seSBsaXN0IHNwZWNpZmljIGNvbmZpZ3MgcmVsYXRlZCB0byB0aGUgbW9kaWZpZWQgY29kZS4gVGhlIGluc3RydWN0aW9ucyBhbHNvIHNwZWNpZnkgKm5vdCogYWRkaW5nICYjMzQ7Q09ORklHXyYjMzQ7IHRvIHRoZSBgRW5hYmxlQ29uZmlnc2Agb3V0cHV0LgoKRmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIGl0IG5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZC4gVGhlIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgaXMsIGFzIHRoZSBpbnN0cnVjdGlvbnMgc3RhdGUsIGBkcml2ZXJzL3BjaS9LY29uZmlnYC4gTGV0JiMzOTtzIGRpdmUgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBDSUVfVFBIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGNpL0tjb25maWc9MTg1PWNvbmZpZyBQQ0lfUEFTSURcbi0tXG5kcml2ZXJzL3BjaS9LY29uZmlnLTE5Ni1cbmRyaXZlcnMvcGNpL0tjb25maWc6MTk3OmNvbmZpZyBQQ0lFX1RQSFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1RMUCBQcm9jZXNzaW5nIEhpbnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk1MzIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIFBDSSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHNvbWUgUENJIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvcGNpL0tjb25maWdgIGFyb3VuZCBsaW5lIDE5Ny4gVGhpcyBsaWtlbHkgY2VudGVycyBvbiBhIGdyb3VwIG9mIHJlbGF0ZWQgb3B0aW9ucywgcHJvYmFibHkgd2l0aGluIGEgZGVmaW5lZCAmIzM0O21lbnUmIzM0OyBvciBibG9jaywgZ2l2ZW4gdGhlIGBLY29uZmlnYCBmaWxlIHN0cnVjdHVyZS4gSSYjMzk7bSBndWVzc2luZyB0aGF0IGxpbmUgbnVtYmVyIGlzIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludCBmb3IgYSBwYXJ0aWN1bGFyIHNldCBvZiBmZWF0dXJlcy4gSSB3YW50IHRvIHVuZGVyc3RhbmQgaG93IGNlcnRhaW4gUENJLXJlbGF0ZWQgZmVhdHVyZXMgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIHBvc3NpYmx5IGRlcGVuZGVudCBvbiBoYXJkd2FyZSwgb3RoZXIga2VybmVsIGNvbmZpZ3VyYXRpb25zLCBvciBzcGVjaWZpYyB1c2UtY2FzZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhvc2UgZGVwZW5kZW5jaWVzLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMsIGBkZXBlbmRzIG9uYCBjbGF1c2VzLCBhbmQgbWF5YmUgc29tZSBoZWxwIHRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3BjaS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxOTA6XHRcdCAgdG8gYWNjZXNzIG1vcmUgdGhhbiBvbmUgSU8gYWRkcmVzcyBzcGFjZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBtYWtlXG4gMTkxOlx0XHQgIHVzZSBvZiB0aGlzIGZlYXR1cmUgYW4gSU9NTVUgaXMgcmVxdWlyZWQgd2hpY2ggYWxzbyBzdXBwb3J0cyBQQVNJRHMuXG4gMTkyOlx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBzdWNoIGFuIElPTU1VIGFuZCB3YW50IHRvIGNvbXBpbGUgdGhlXG4gMTkzOlx0XHQgIGRyaXZlciBmb3IgaXQgaW50byB5b3VyIGtlcm5lbC5cbiAxOTQ6XHRcbiAxOTU6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAxOTY6XHRcbiAxOTc6XHRjb25maWcgUENJRV9UUEhcbiAxOTg6XHRcdGJvb2wgXCYjMzQ7VExQIFByb2Nlc3NpbmcgSGludHNcJiMzNDtcbiAxOTk6XHRcdGhlbHBcbiAyMDA6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpLlxuIDIwMTpcdFx0ICBUUEggYWxsb3dzIGVuZHBvaW50IGRldmljZXMgdG8gcHJvdmlkZSBvcHRpbWl6YXRpb24gaGludHMsIHN1Y2ggYXNcbiAyMDI6XHRcdCAgZGVzaXJlZCBjYWNoaW5nIGJlaGF2aW9yLCBmb3IgcmVxdWVzdHMgdGhhdCB0YXJnZXQgbWVtb3J5IHNwYWNlLlxuIDIwMzpcdFx0ICBUaGVzZSBoaW50cywgY2FsbGVkIFN0ZWVyaW5nIFRhZ3MsIGNhbiBlbXBvd2VyIHRoZSBzeXN0ZW0gaGFyZHdhcmVcbiAyMDQ6XHRcdCAgdG8gb3B0aW1pemUgdGhlIHV0aWxpemF0aW9uIG9mIHBsYXRmb3JtIHJlc291cmNlcy5cbiAyMDU6XHRcbiAyMDY6XHRjb25maWcgUENJX1AyUERNQVxuIDIwNzpcdFx0Ym9vbCBcJiMzNDtQQ0kgcGVlci10by1wZWVyIHRyYW5zZmVyIHN1cHBvcnRcJiMzNDtcbiAyMDg6XHRcdGRlcGVuZHMgb24gWk9ORV9ERVZJQ0VcbiAyMDk6XHRcdCNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDA4MQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBQQ0lFX1RQSGAgQ29uZmlndXJhdGlvbiBPcHRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFBDSUVfVFBIYCBvcHRpb24uIFJpZ2h0IGF3YXksIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIG5lZWQgdG8gZXhwbGljaXRseSBpbmNsdWRlIHdpdGhpbiBgRW5hYmxlQ29uZmlnc2AuIFRoYXQmIzM5O3MgYSBuby1icmFpbmVyLiBCdXQgbGV0JiMzOTtzIHBhdXNlLiBBcmUgdGhlcmUgKmFueSogb3RoZXIgY29uZmlnIG9wdGlvbnMgbHVya2luZyBhcm91bmQgdGhhdCBhcmUgcmVsYXRlZD8gV2UgbmVlZCB0byBiZSB0aG9yb3VnaC4KClRoZSBjb2RlIHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgIGZpbGUuIFJpZ2h0LiBUaGF0IGZpbGUgaXMgY29tcGlsZWQgKm9ubHkqIGlmIGBDT05GSUdfVkZJT19QQ0lgIGlzIGVuYWJsZWQuIE1ha2VzIHNlbnNlLiAKCldhaXQgYSBtaW51dGUsIEkgc2VlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGJlaW5nIGFkZGVkIHRvIGB2ZmlvX3BjaV9kbWFidWYuY2AuIE9rLCBzbyB0aGUgbmV4dCB0aGluZyBJIG5lZWQgdG8gZG8sIGJlZm9yZSBJIGRyYXcgYW55IGNvbmNsdXNpb25zLCBpcyBjaGVjayBpZiBgdmZpb19wY2lfZG1hYnVmLmNgIGl0c2VsZiBoYXMgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBOZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBzb21ldGhpbmcgZWxzZSB0aGF0JiMzOTtzIHJlbGV2YW50IHRvIHVuZGVyc3RhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3JyZWN0bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZmaW9fcGNpX2RtYWJ1ZlxcLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92ZmlvL3BjaS9NYWtlZmlsZT00PXZmaW8tcGNpLWNvcmUtJChDT05GSUdfVkZJT19QQ0lfWkRFVl9LVk0pICYjNDM7PSB2ZmlvX3BjaV96ZGV2Lm9cbmRyaXZlcnMvdmZpby9wY2kvTWFrZWZpbGU6NTp2ZmlvLXBjaS1jb3JlLSQoQ09ORklHX1ZGSU9fUENJX0RNQUJVRikgJiM0Mzs9IHZmaW9fcGNpX2RtYWJ1Zi5vXG5kcml2ZXJzL3ZmaW8vcGNpL01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX1ZGSU9fUENJX0NPUkUpICYjNDM7PSB2ZmlvLXBjaS1jb3JlLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA2MTkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gSGVyZSYjMzk7cyBob3cgSSYjMzk7ZCBhcHByb2FjaCBzdW1tYXJpemluZyB0aG9zZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBWRklPIFBDSSBETUFCVUYgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYC4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgVkZJTyBhbmQgRE1BIGJ1ZmZlciBzdXBwb3J0LCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZS4gSSYjMzk7bSB0aGlua2luZywgJiMzNDtXaGVyZSB3b3VsZCB0aGlzIGJlIGRlZmluZWQ/IEl0JiMzOTtzIGxpa2VseSBpbiB0aGUgYGRyaXZlcnMvdmZpby9wY2lgIGRpcmVjdG9yeS4mIzM0OyBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL3ZmaW8vcGNpL0tjb25maWdgIGZpbGUgYW5kIGNvbmZpcm0gdGhhdCBgVkZJT19QQ0lfRE1BQlVGYCBpcyBhY3R1YWxseSBkZWZpbmVkIHRoZXJlLiBUaGlzIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBhbmQgYW55IHJlbGV2YW50IGRvY3VtZW50YXRpb24uIFRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBnbyB0byBmaW5kIG91dCB3aGF0IHRoaXMgb3B0aW9uICphY3R1YWxseSBkb2VzKiBpbiB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVkZJT19QQ0lfRE1BQlVGJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmZpby9wY2kvS2NvbmZpZz00Nz1jb25maWcgVkZJT19QQ0lfWkRFVl9LVk1cbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWctNTctXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWc6NTg6Y29uZmlnIFZGSU9fUENJX0RNQUJVRlxuZHJpdmVycy92ZmlvL3BjaS9LY29uZmlnLTU5LVx0ZGVmX2Jvb2wgeSBpZiBWRklPX1BDSV9DT1JFIFx1MDAyNlx1MDAyNiBQQ0lfUDJQRE1BIFx1MDAyNlx1MDAyNiBETUFfU0hBUkVEX0JVRkZFUlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDk5MQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDExNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVhY2hpbmcgdGhlIFZGSU8gVFBIIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgZnV6emFibGUgYW5kIHdoYXQgdG8gZm9jdXMgb24uIEZpcnN0LCBJIHNlZSB0aGF0IHRoZSBgZGVmX2Jvb2xgIGZvciBzb21ldGhpbmcgaXMgY29uZGl0aW9uYWwgb24gYFZGSU9fUENJX0NPUkUgJmFtcDsmYW1wOyBQQ0lfUDJQRE1BICZhbXA7JmFtcDsgRE1BX1NIQVJFRF9CVUZGRVJgLiBUaGlzIHByb2JhYmx5IG1lYW5zIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG9wdGlvbnMgYXJlIHNldC4gYFBDSV9QMlBETUFgIGlzIGEgYm9vbGVhbiwgc28gSSBzaG91bGQgcHJvYmFibHkgYWRkIHRoYXQgdG8gbXkgYEVuYWJsZUNvbmZpZ3NgIGp1c3QgdG8gYmUgc2FmZS4gQW5kIGFsc28gYFBDSUVfVFBIYC4KCkFscmlnaHQsIHRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVFBIIHRvIERNQS1CVUYgYW5kIFZGSU8uICBTcGVjaWZpY2FsbHksIHRoZXJlJiMzOTtzIGEgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bC4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBpcyB0aGlzIGlvY3RsIHJlYWNoYWJsZSBieSBzeXprYWxsZXI/ICBZZXMsIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSB0aGUgdXN1YWwgYC9kZXYvdmZpby9kZXZpY2VzLy4uLmAgb3IgYC9kZXYvdmZpby92ZmlvYCBpb2N0bHMuIEFuZCBJJiMzOTttIHByZXR0eSBzdXJlIHN5emthbGxlciBkb2VzIGluZGVlZCBmdXp6IFZGSU8gaW9jdGxzLiBTbywgdGhlIGlvY3RsIGhhbmRsZXIsIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4KClRoZSBjb2RlIGNhbGxzIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LSZndDtwZGV2KWAuIElmIHRoZSB1bmRlcmx5aW5nIGRldmljZSBkb2VzbiYjMzk7dCAqaGF2ZSogVFBIIGNhcGFiaWxpdGllcywgaXQgcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0JiMzOTtzIGltcG9ydGFudC4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGNyZWF0ZSBhIFBDSSBkZXZpY2Ugd2l0aCAqYXJiaXRyYXJ5KiBjYXBhYmlsaXRpZXM/IElmIGl0IGNhbiwgdGhpcyBjb3VsZCBsZWFkIHRvIGEgZGVlcGVyIGRpdmUuIEl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSBzeXprYWxsZXIgaGFzIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGluamVjdG9yIGxpa2UgYHN5el9wY2lfZGV2aWNlX2FkZGAsIHRob3VnaCBJJiMzOTttIHZhZ3VlbHkgcmVtZW1iZXJpbmcgc29tZXRoaW5nIGFib3V0IGBzeXpfa3ZtX3NldHVwX2NwdWAsIGJ1dCBpdCBkb2VzbiYjMzk7dCBsb29rIGxpa2UgaXQgc3VwcG9ydHMgdGhpcy4gU28gbm8uIEl0IG1pZ2h0IHVzZSBzb21lIFFFTVUgcHJvdmlkZWQgUENJIGRldmljZXMuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgdGhvc2UgZGV2aWNlcyBhcmUgY2FwYWJsZSBvZiBUUEguICBCdXQgZXZlbiBpZiBpdCAqb25seSogaGl0cyB0aGUgYC1FT1BOT1RTVVBQYCBwYXRoLCBpdCYjMzk7cyBzdGlsbCBleGVjdXRpbmcgZnVuY3Rpb25hbCBjb2RlIGFuZCBjb3VsZCBiZSBpbnRlcmVzdGluZy4KCk9rYXksIGxldCYjMzk7cyBzdGVwIGJhY2sgYW5kIGJlIHN1cmUgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgKmlzKiByZWFjaGFibGUuIEl0JiMzOTtzIGhhbmRsZWQgYnkgYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgdmZpb19wY2lfY29yZV9pb2N0bGAgZm9yIGBWRklPX0RFVklDRV9GRUFUVVJFYC4gIFNvLCB5ZXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvbiBmb3IgZnV6emluZz8gRnJvbSBoZXJlIGl0IGxvb2tzIGxpa2U6CgoqICAgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAKKiAgIGBkbWFfYnVmX2dldF9wY2lfdHBoYAoqICAgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgCiogICBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgCiogICBgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWdgCiogICBgbWx4NV9zdF9nZXRfaW5kZXhgCgpCdXQgd2FpdCwgYG1seDVgIGlzIGEgTWVsbGFub3ggaGFyZHdhcmUgZHJpdmVyLCBzbyBJIGNhbiBwcm9iYWJseSBpZ25vcmUgdGhlIGBtbHg1YCBmdW5jdGlvbnMgZm9yIG5vdyBiZWNhdXNlIHRoZXkmIzM5O3JlIG5vdCBnb2luZyB0byBiZSB0cmlnZ2VyZWQgd2l0aG91dCB0aGF0IGhhcmR3YXJlLiBTbyB0aGF0IG5hcnJvd3MgaXQgZG93biBhIGJpdC4KCkkmIzM5O2xsIGRvdWJsZS1jaGVjayB0byBzZWUgaWYgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGlzIHJlYWNoYWJsZS4gVGhhdCYjMzk7cyB0aGUgYGdldF9wY2lfdHBoYCBjYWxsYmFjayBmb3IgYHZmaW9fcGNpX2RtYWJ1Zl9vcHNgLCBhbmQgaXQgZ2V0cyBjYWxsZWQgYnkgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBXaG8gYWN0dWFsbHkgY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgPyAgQWNjb3JkaW5nIHRvIHRoaXMgcGF0Y2gsIGl0JiMzOTtzIGBnZXRfcGNpX3RwaF9tcl9kbWFidWZgIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jYC4gU2luY2UgSSYjMzk7bSBub3QgdXNpbmcgTWVsbGFub3ggaGFyZHdhcmUsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBtYXkgbm90IGJlIHRyaWdnZXJlZCBieSB0aGUgYG1seDVgIGRyaXZlciwgYW5kIHRoYXQgbWlnaHQgbWVhbiBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgbm90IHJlYWNoYWJsZS4gVGhlcmUgYXJlIG5vIG90aGVyIGNhbGxlcnMgaW4gdGhpcyBwYXRjaCwgc28geWVzLCBpdCYjMzk7cyBsaWtlbHkgbm90IHJlYWNoYWJsZS4gQnV0IHRoZSBpb2N0bCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcywgYW5kIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgcmVhY2hhYmxlIGZyb20gdGhlcmUuCgpPa2F5LCBsZXQmIzM5O3MgbWFrZSBkb3VibHkgc3VyZSB0aGF0IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jPTE1NTc9aW50IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmRldmljZSwgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jLTE1NzUtXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEg6XG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYzoxNTc2Olx0XHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYy0xNTc3LVx0XHRcdFx0XHRcdFx0IGFyZ3N6KTtcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTI1Mz1pbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjctXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM2ODppbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzY5LVx0XHRcdFx0ICAgICAgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oPTExOD1pbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgtMTIwLVx0XHRcdFx0ICBzaXplX3QgYXJnc3opO1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTIxOmludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgtMTIyLVx0XHRcdFx0ICAgICAgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oPTEzNj1zdGF0aWMgaW5saW5lIGludFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTM3OnZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEzOC1cdFx0XHRcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzODkwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyaXplZCB0aG91Z2h0IHByb2Nlc3MsIHByZXNlbnRlZCBhcyBpZiBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKlJlYWNoaW5nIHRoZSBUYXJnZXQqKgoKQWxyaWdodCwgdGhlIGluaXRpYWwgYXNzZXNzbWVudCBzdWdnZXN0cyB0aGlzIGlzIHNvbWV0aGluZyBJIGNhbiB0YWNrbGUuIEkgYmVsaWV2ZSB0aGlzICppcyogcmVhY2hhYmxlIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCBjcml0aWNhbCBhc3Nlc3NtZW50LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biwgcmlnaHQ/IExldCYjMzk7cyBnZXQgcmlnaHQgdG8gaXQuLi4gSSB3YW50IHRvIGNoZWNrIHRoZSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCBmaWVsZC4gVGhhdCB3aWxsIGJlIHZlcnkgdGVsbGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpZV90cGhfY29tcGxldGVyX3R5cGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kvdHBoLmM9MTg2PUVYUE9SVF9TWU1CT0wocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSk7XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMTg4LS8qKlxuZHJpdmVycy9wY2kvdHBoLmM6MTg5OiAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgVFBIIENvbXBsZXRlciBzdXBwb3J0XG5kcml2ZXJzL3BjaS90cGguYy0xOTAtICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0yMDAtICovXG5kcml2ZXJzL3BjaS90cGguYzoyMDE6dTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xuLS1cbmRyaXZlcnMvcGNpL3RwaC5jLTIxOC19XG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XG5kcml2ZXJzL3BjaS90cGguYy0yMjAtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNzgtXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcdGNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcbi0tXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjM2OnU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTM3LSNlbHNlXG4tLVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg9NDg9c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtNDkteyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTUxLXsgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzE3CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIFBDSWUgVFBIIENvbXBsZXRlciBUeXBlKioKCkFscmlnaHQsIGl0IGxvb2tzIGxpa2Ugd2UmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgaW5kZWVkIHJlYWNoYWJsZSB3aXRoaW4gdGhlIGNvZGUuIEdvb2QuIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGluIHRoaXMgYW5hbHlzaXMgaXMgdG8gc2NydXRpbml6ZSBgcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZWAuIFVuZGVyc3RhbmRpbmcgaG93IHRoYXQgcmVxdWVzdCB0eXBlIGlzIGhhbmRsZWQgaXMgY3J1Y2lhbCBmb3IgYSBjb21wbGV0ZSBwaWN0dXJlLiBXZSBuZWVkIHRvIGRpc3NlY3QgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gdGhlc2UgdHdvIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTU4LVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NTk6XHRzd2l0Y2ggKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoZGV2LVx1MDAzZW1kZXYtXHUwMDNlcGRldikpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTYwLVx0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcbi0tXG5kcml2ZXJzL3BjaS90cGguYz0xNzQ9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0xNzYtLyoqXG5kcml2ZXJzL3BjaS90cGguYzoxNzc6ICogcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJiMzOTtzIGVuYWJsZWQgVFBIIHJlcXVlc3RlciB0eXBlXG5kcml2ZXJzL3BjaS90cGguYy0xNzgtICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0xODEtICovXG5kcml2ZXJzL3BjaS90cGguYzoxODI6dTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvcGNpL3RwaC5jLTE4My17XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMTg1LX1cbmRyaXZlcnMvcGNpL3RwaC5jOjE4NjpFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuZHJpdmVycy9wY2kvdHBoLmMtMTg3LVxuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTM0PXUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjM1OnU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzYtdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ2PXN0YXRpYyBpbmxpbmUgaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00Ny17IHJldHVybiAtRUlOVkFMOyB9XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDo0ODpzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NTY1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFBDSWUgVFBIIGFuZCBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBUaGUgY29kZSBzaG93cyBpdCYjMzk7cyAqb25seSogY2FsbGVkIGZyb20gYGdldF9wY2lfdHBoX21yX2RtYWJ1ZmAsIHdoaWNoIGlzIGJ1cmllZCBkZWVwIHdpdGhpbiB0aGUgYG1seDVgIGRyaXZlciYjMzk7cyBtZW1vcnkgcmVnaW9uIG1hbmFnZW1lbnQgKGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jYCkuIFJpZ2h0LCBhbmQgYG1seDVgIGlzIGEgaGFyZHdhcmUgZHJpdmVyLi4uIHRoYXQgbWVhbnMgaXQmIzM5O3Mgbm90IGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBteSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgZWZmaWNpZW50IHdpdGggbXkgYEZvY3VzU3ltYm9sc2AgbGlzdCwgYW5kIGluY2x1ZGluZyBjb2RlIHBhdGhzIHRoYXQgYXJlIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaXMganVzdCB3YXN0ZWQgZWZmb3J0LiBUaGVyZWZvcmUsIGBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlYCBzaG91bGQgKmRlZmluaXRlbHkqIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGBGb2N1c1N5bWJvbHNgLiBMZXQmIzM5O3MgbW92ZSBvbiBhbmQgdGFrZSBhIGxvb2sgYXQgYGRtYV9idWZfZ2V0X3BjaV90cGhgIG5vdzsgbWF5YmUgdGhlcmUmIzM5O3Mgc29tZXRoaW5nIHJlbGV2YW50IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkbWFfYnVmX2dldF9wY2lfdHBoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9OTE5PWRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDEtICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzo5NDI6ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0My0gKlxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9MTE0Nz1FWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX3VucGluLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNDktLyoqXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNTA6ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTUxLSAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjYtICovXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNjc6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2OC1cdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3Ni19XG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl9nZXRfcGNpX3RwaCwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzgtXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcwLVx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXHUwMDNlcmVzdiwgTlVMTCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jOjk3MTpcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3Mi1cdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz02Mj12ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODItXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjgzOnN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04NC1cdFx0XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTEzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNC1cdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6MTM1Olx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM2LVx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9Mzc9c3RydWN0IGRtYV9idWZfb3BzIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMjgtXHQgKlxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTI5Olx0ICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGhcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMC1cdCAqIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRU9QTk9UU1VQUCB3aGVuXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMzLVx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEzNDpcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzNS1cdCAqL1xuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTU4OD12b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjU4OTppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtNTkwLVx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzI1OAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDIxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUmVhY2hhYmlsaXR5IGluIHRoZSBGdXp6aW5nIEVudmlyb25tZW50KioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIHNpdHVhdGlvbjogSSYjMzk7dmUgYmVlbiBkaWdnaW5nIGludG8gdGhlIGNvZGUgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgYWN0dWFsbHkgcmVhY2hhYmxlIGluIG91ciBmdXp6aW5nIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgd2l0aCByZWdhcmQgdG8gRE1BIGJ1ZmZlciBpbnRlcmFjdGlvbnMuIEkmIzM5O3ZlIHBpbnBvaW50ZWQgdGhhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKm9ubHkqIGNhbGxlZCBieSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBUaGF0IG1lYW5zLCBhcyB0aGluZ3Mgc3RhbmQsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBhbmQgdGhlIHJlbGF0ZWQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGFyZSBlc3NlbnRpYWxseSBkZWFkIGNvZGUgcGF0aHMgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFdlIGp1c3QgY2FuJiMzOTt0IGdldCB0byB0aGVtIGdpdmVuIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCgpUaGVyZWZvcmUsIHRoZSBvbmx5IGZ1bmN0aW9ucyB3ZSBjYW4gcmVhc29uYWJseSBoaXQgZHVyaW5nIGZ1enppbmcgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBCdXQgbGV0JiMzOTtzIG5vdCBqdXN0IHRha2UgbXkgd29yZCBmb3IgaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZy4KCk5vdywgSSYjMzk7bSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gSSByZW1lbWJlciBzZWVpbmcgaXQgY2FsbGVkIGZyb20gYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgd2UgY2FuIGFic29sdXRlbHkgaGl0IHRoYXQgY29kZSBwYXRoLgoKRmluYWxseSwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXNuJiMzOTt0IGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UgdG8gYmUgZG91Ymx5IHN1cmUgb2YgaXRzIHJlYWNoYWJpbGl0eS4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgdGhhdCBmdW5jdGlvbiB0byBtYWtlIHN1cmUgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvcnJlY3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaWVfdHBoX2NvbXBsZXRlcl90eXBlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGNpL3RwaC5jPTE4Nj1FWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuLS1cbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcbmRyaXZlcnMvcGNpL3RwaC5jOjE4OTogKiBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJiMzOTtzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxuZHJpdmVycy9wY2kvdHBoLmMtMTkwLSAqIEBwZGV2OiBQQ0kgZGV2aWNlIHRvIHF1ZXJ5XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xuZHJpdmVycy9wY2kvdHBoLmM6MjAxOnU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9wY2kvdHBoLmMtMjAyLXtcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0yMTgtfVxuZHJpdmVycy9wY2kvdHBoLmM6MjE5OkVYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MzY4PWludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzc4LVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzozNzk6XHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzgwLVx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXG4tLVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg9MzU9dTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC0zNy0jZWxzZVxuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTQ5LXsgcmV0dXJuIFBDSV9UUEhfUkVRX0RJU0FCTEU7IH1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjUwOnN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODU0OQoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDQ2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFN0cmF0ZWd5IGZvciB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgqKgoKT2theSwgbXkgZm9jdXMgbmVlZHMgdG8gYmUgc29sZWx5IG9uIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLiBUaGUgcHJpbWFyeSBzeW1ib2xzIEkmIzM5O20gY29uY2VybmVkIHdpdGggYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaGUgZ29hbCBoZXJlIGlzIHRvIGRldGVybWluZSB0aGUgZnV6emFiaWxpdHkgb2YgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuCgpNeSBpbml0aWFsIGNvbmNlcm4gaXMgdGhhdCBpZiBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIHJldHVybnMgYFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FYCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FT1BOT1RTVVBQYC4gVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIHJlbGlhYmx5IGNyZWF0ZSBhIFBDSSBkZXZpY2UgKndpdGgqIFRQSCBjb21wbGV0ZXIgY2FwYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudD8gU3l6a2FsbGVyIG9mdGVuIHV0aWxpemVzIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgYC9kZXYvdmZpby9gIHdpdGggZHVtbXkgZGV2aWNlcy4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBkdW1teSBkZXZpY2UgKmxhY2tzKiBUUEggY29tcGxldGVyIGNhcGFiaWxpdHksIHdlJiMzOTtyZSBhbHdheXMgZ29pbmcgdG8gZ2V0IHRoYXQgYC1FT1BOT1RTVVBQYCBlcnJvciwgd2hpY2ggZXNzZW50aWFsbHkgbWVhbnMgd2UmIzM5O2QgbmV2ZXIgcmVhY2ggdGhlIGNvcmUgZnVuY3Rpb24uCgpIb3dldmVyLCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHdheXMgcmV0dXJuZWQsIGl0JiMzOTtzIHN0aWxsICpyZWFjaGFibGUqIGNvZGUsIGF0IGxlYXN0IHRoZSBpbml0aWFsIGxpbmVzLiBUaGlzIG1ha2VzIGl0IHdvcnRoIGZ1enppbmcuIFRoZSBmdW5jdGlvbiAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCB0aGF0IHdlIGNhbiByZWFjaCwgYW5kIHdlIGhhdmUgdG8gc2VlIGlmIHNvbWUgY2xldmVyIGZ1enppbmcgY2FuIGxldmVyYWdlIHRoYXQuIEFuZCwgb25lIGNhbiYjMzk7dCBydWxlIG91dCB0aGUgcG9zc2liaWxpdHkgdGhhdCBzeXprYWxsZXIgKmNvdWxkKiBpbmplY3QgYSBkZXZpY2Ugd2l0aCBUUEggY2FwYWJpbGl0eSBvciB0aGF0IHNvbWUgZGVmYXVsdCBRRU1VIGVtdWxhdGVkIGRldmljZXMgbWlnaHQgaGF2ZSBpdC4gU28sIEkgaGF2ZSB0byBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgYEVuYWJsZUNvbmZpZ3NgLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGBQQ0lFX1RQSGAsIGBWRklPX1BDSWAsIGFuZCBgVkZJT19QQ0lfRE1BQlVGYCBhcmUgZW5hYmxlZC4gYFZGSU9fUENJX0RNQUJVRmAgaXMgZGVwZW5kZW50IG9uIGBWRklPX1BDSV9DT1JFYCwgYFBDSV9QMlBETUFgIGFuZCBgRE1BX1NIQVJFRF9CVUZGRVJgLiBTaW5jZSBgRE1BX1NIQVJFRF9CVUZGRVJgIGlzIHVzdWFsbHkgb24gYnkgZGVmYXVsdCwgdGhlIGtleSBpcyBgUENJX1AyUERNQWAuIE5vdyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYFBDSV9QMlBETUFgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUENJX1AyUERNQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BjaS9LY29uZmlnPTE5Nz1jb25maWcgUENJRV9UUEhcbi0tXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNS1cbmRyaXZlcnMvcGNpL0tjb25maWc6MjA2OmNvbmZpZyBQQ0lfUDJQRE1BXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNy1cdGJvb2wgXCYjMzQ7UENJIHBlZXItdG8tcGVlciB0cmFuc2ZlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NjQ0CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogNTY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyB0aGUgZmlyc3Qgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGFkZCBgUENJRV9UUEhgIGFuZCBgUENJX1AyUERNQWAgdG8gYEVuYWJsZUNvbmZpZ3NgLiBUaGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guCgpOb3csIGxldCYjMzk7cyBnbyB0aHJvdWdoIHRoZSBgV29ydGhGdXp6aW5nYCBjcml0ZXJpYSB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyBhY3R1YWxseSBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzbiYjMzk7dCBqdXN0IGRvY3VtZW50YXRpb24gY2hhbmdlcywgbG9nZ2luZyB0d2Vha3MsIGRlY29yYXRpdmUgbWFjcm8gdXBkYXRlcywgb3IgY29kZSB0aGF0JiMzOTtzIHVucmVhY2hhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4KCkxvb2tpbmcgYXQgdGhlIHBhdGNoLCBpdCB0b3VjaGVzIGBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jYCwgYGRyaXZlcnMvcGNpL3RwaC5jYCwgYW5kIGBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jYC4gQWxsIHRocmVlIG9mIHRob3NlIGFyZSByZWFjaGFibGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBzYWZlIHRvIHNheSB0aGlzIHNob3VsZCBiZSBhIGBXb3J0aEZ1enppbmc9dHJ1ZWAgc2NlbmFyaW8uCgpUaGUgYEZvY3VzU3ltYm9sc2AgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIHR3byBrZXkgYXJlYXMgdG8gZm9jdXMgb24uCgpTbywgbGV0IG1lIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBvdGhlciBrZXkgY29uZmlndXJhdGlvbnMuIEkgY2FuIHNlZSB0aGF0IGBDT05GSUdfVkZJT19QQ0lgIGlzIGFscmVhZHkgZW5hYmxlZCBpbiBzeXprYWxsZXIuIGBDT05GSUdfSU5GSU5JQkFORGAgaXMgYWxzbyBlbmFibGVkLCBidXQgbWx4NSBsb29rcyB0byBiZSBoYXJkd2FyZSBzcGVjaWZpYyBhbmQgbGlrZWx5IGlycmVsZXZhbnQgaGVyZS4gU28sIHllcywgYFBDSUVfVFBIYCBhbmQgYFBDSV9QMlBETUFgIGFyZSB0aGUgbWFpbiBvbmVzIHRoYXQgYXJlIG5ldy4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSSBrbm93IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19WRklPX1BDSV9ETUFCVUZgIGlzIGVuYWJsZWQuIEFuZCwgeWVzLCBpdCYjMzk7cyBpbmRlZWQgaW4gYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgLiBBbHNvLCBJIGNhbiBzZWUgdGhhdCBgQ09ORklHX1ZGSU9fUENJX0RNQUJVRmAgcmVxdWlyZXMgYFBDSV9QMlBETUFgLiBTbywgYFBDSV9QMlBETUFgIGlzIGEgbXVzdC4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZC4gWWVwLCB0aGF0IG9uZSBsaXZlcyBpbiBgZHJpdmVycy9wY2kvdHBoLmNgLiBXYWl0LCBpcyBgZHJpdmVycy9wY2kvdHBoLmNgIGNvbXBpbGVkICpvbmx5KiB3aGVuIGBDT05GSUdfUENJRV9UUEhgIGlzIGVuYWJsZWQ/IE5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQuLi4gYnV0IG92ZXJhbGwsIGl0IGxvb2tzIGdvb2QgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RwaFxcLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kvTWFrZWZpbGU9NDA9b2JqLSQoQ09ORklHX1BDSV9OUEVNKVx0XHQmIzQzOz0gbnBlbS5vXG5kcml2ZXJzL3BjaS9NYWtlZmlsZTo0MTpvYmotJChDT05GSUdfUENJRV9UUEgpXHRcdCYjNDM7PSB0cGgub1xuZHJpdmVycy9wY2kvTWFrZWZpbGUtNDItb2JqLSQoQ09ORklHX0NBUkRCVVMpXHRcdCYjNDM7PSBzZXR1cC1jYXJkYnVzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA4OTMKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQgaW4gZGV2aWNlIGRyaXZlciBkZXZlbG9wbWVudCBhbmQga2VybmVsIGNvbmZpZ3VyYXRpb246CgoqKkFuYWx5emluZyBhIEtlcm5lbCBCdWlsZCBEZXBlbmRlbmN5KioKClJpZ2h0LCBzbyBJIHNlZSBhIGxpbmUgdGhhdCBjbGVhcmx5IGluZGljYXRlcyBgdHBoLm9gIOKAkyBhIG1vZHVsZSwgSSBwcmVzdW1lIOKAkyBpcyBnb2luZyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgb3V0cHV0IGlmIHRoZSBgQ09ORklHX1BDSUVfVFBIYCBvcHRpb24gaXMgc2V0LiBObyBzdXJwcmlzZXMgdGhlcmU7IHRoYXQmIzM5O3Mgc3RhbmRhcmQga2VybmVsIGJ1aWxkIHN5bnRheC4gSXQmIzM5O3MgYSBjbGVhciBkZXBlbmRlbmN5OiBpZiB3ZSB3YW50IHRoYXQgYHRwaC5vYCBvYmplY3QgZmlsZSBpbiB0aGUgYnVpbHQgZHJpdmVyIHRoZW4gd2UgaGF2ZSB0byBlbmFibGUgdGhhdCBjb25maWd1cmF0aW9uIG9wdGlvbi4KClRoZSBrZXkgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiB3aGVyZSAqZWxzZSogZG9lcyB0aGlzIGBQQ0lFX1RQSGAgc2V0dGluZyBhcHBlYXIsIGFuZCB3aGF0JiMzOTtzIGl0cyBvdmVyYWxsIGltcGFjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBjb2RlIHRoYXQgKnVuY29uZGl0aW9uYWxseSogY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBJZiB0aGF0IGZ1bmN0aW9uIGlzIGNhbGxlZCByZWdhcmRsZXNzIG9mIHRoZSBgQ09ORklHX1BDSUVfVFBIYCBzZXR0aW5nLCB0aGVuIHdlIGhhdmUgYSBwb3RlbnRpYWwgcHJvYmxlbS4gSXQgd291bGQgaW1wbHkgdGhhdCB0aGUgc3lzdGVtIG1heSB0cnkgdG8gbGluayB0byB0aGF0IG9iamVjdCBldmVuIGlmIGBDT05GSUdfUENJRV9UUEhgIGlzIHNldCB0byAmIzM0O24mIzM0OyB3aGljaCBjb3VsZCByZXN1bHQgaW4gY29tcGlsZSB0aW1lIGVycm9ycy4gVGhpcyBpcyB0aGUgbW9yZSBpbnRlcmVzdGluZyBzaXR1YXRpb24gdG8gdW5kZXJzdGFuZC4gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIHN1cnJvdW5kaW5nIHRoYXQgcGFydGljdWxhciBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG1hX2J1Zl9nZXRfcGNpX3RwaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTkxOT1kbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQxLSAqICAgICAtIGRtYV9idWZfdnVubWFwKClcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6OTQyOiAqICAgICAtIGRtYV9idWZfZ2V0X3BjaV90cGgoKVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDMtICpcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTExNDc9RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTQ5LS8qKlxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTUwOiAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE1MS0gKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY2LSAqL1xuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTY3OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjgtXHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzYtfVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTc3OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFwmIzM0O0RNQV9CVUZcJiMzNDspO1xuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc4LVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1Zixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3MC1cdGRtYV9yZXN2X2xvY2soZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NzE6XHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFx1MDAyNnN0ZWVyaW5nX3RhZywgXHUwMDI2bG9jYWxfcGgpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzItXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVx1MDAzZXJlc3YpO1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9NjI9dmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTgyLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzo4MzpzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODQtXHRcdFx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0xMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzQtXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjEzNTpcdC5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNi1cdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTM3PXN0cnVjdCBkbWFfYnVmX29wcyB7XG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTI4LVx0ICpcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEyOTpcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzAtXHQgKiBcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMy1cdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMzQ6XHQgKiBkbWFfYnVmX2dldF9wY2lfdHBoKCkuXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzUtXHQgKi9cbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD01ODg9dm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDo1ODk6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTU5MC1cdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI1OTUKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIERNQS1CVUYgYW5kIFBDSS1UUEggU3ltYm9sIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJJiMzOTt2ZSB0cmFja2VkIGRvd24gdGhlIHJlbGV2YW50IGNvZGU7IGBkbWFfYnVmX2dldF9wY2lfdHBoYCBpcyBkZWZpbml0ZWx5IGluIGBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhhdCBpdCYjMzk7cyBjb25kaXRpb25hbCBvbiBgQ09ORklHX0RNQV9TSEFSRURfQlVGRkVSYC4gU28sIGJhc2VkIG9uIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiwgaXQgaXMgY29tcGlsZWQuIE5vdywgdGhlIGNydWNpYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nICp3aGVyZSogaXQmIzM5O3MgYWN0dWFsbHkgdXNlZC4gVGhlIGFuYWx5c2lzIGVhcmxpZXIgZGVmaW5pdGl2ZWx5IHNob3dlZCB0aGF0IGl0JiMzOTtzICpvbmx5KiBjYWxsZWQgYnkgdGhlIG1seDUgZHJpdmVyLCB3aGljaCwgYXMgd2UgZXN0YWJsaXNoZWQsIGlzbiYjMzk7dCBvbiB0aGUgY3JpdGljYWwgcGF0aC4gVGhlcmVmb3JlLCB0aGVyZSYjMzk7cyBubyBuZWVkIHRvIGNsdXR0ZXIgYEZvY3VzU3ltYm9sc2Agd2l0aCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuCgpOb3csIHRoZSBmb2xsb3ctdXA6IHdoYXQgYWJvdXQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgPyBBaCwgcmlnaHQsIHRoYXQmIzM5O3MgYSBjYWxsYmFjayB3aXRoaW4gdGhlIGBkbWFfYnVmX29wc2Agc3RydWN0dXJlLiBCdXQgdGhlIGtleSBoZXJlIGlzIGl0cyAqZGVwZW5kZW5jeSouIEl0JiMzOTtzIG9ubHkgY2FsbGVkIGJ5IGBkbWFfYnVmX2dldF9wY2lfdHBoYCwgd2hpY2ggd2UmIzM5O3ZlIGp1c3QgY29uZmlybWVkIGlzIGl0c2VsZiB1bnJlYWNoYWJsZS4gVGhpcyBtZWFucyBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKmFsc28qIHVucmVhY2hhYmxlLiBTbywgYWRkaW5nIGl0IHRvIGBGb2N1c1N5bWJvbHNgIHdvdWxkIGJlIHVubmVjZXNzYXJ5LgoKVGhlcmVmb3JlLCBhZnRlciB0aGlzIHRob3JvdWdoIGV4YW1pbmF0aW9uLCBteSBjb25jbHVzaW9uIGlzIHRoYXQgdGhlIG9ubHkgcmVhY2hhYmxlIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRoaXMgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBIb3dldmVyLCBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSBpc24mIzM5O3Qgc29tZSBoaWRkZW4gY2FsbCB0aGF0IEkmIzM5O3ZlIG1pc3NlZC4gSSBtdXN0IGJlIGNvbXBsZXRlbHkgY2VydGFpbiB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNhbGxlcnMgb2YgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGluIHRoZSBrZXJuZWwuIExldCBtZSBkb3VibGUtY2hlY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RtYV9idWZfZ2V0X3BjaV90cGgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz05MTk9ZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0MS0gKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjk0MjogKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQzLSAqXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz0xMTQ3PUVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFwmIzM0O0RNQV9CVUZcJiMzNDspO1xuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE0OS0vKipcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE1MDogKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNTEtICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciB0byBxdWVyeVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2Ni0gKi9cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE2NzppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY4LVx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc2LX1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3OC1cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jPTk1MD1zdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzAtXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTcxOlx0cmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBcdTAwMjZzdGVlcmluZ190YWcsIFx1MDAyNmxvY2FsX3BoKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcyLVx0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTYyPXZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04Mi1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6ODM6c3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTg0LVx0XHRcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MTMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHtcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM0LVx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzoxMzU6XHQuZ2V0X3BjaV90cGggPSB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzYtXHQubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX21hcCxcbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD0zNz1zdHJ1Y3QgZG1hX2J1Zl9vcHMge1xuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEyOC1cdCAqXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMjk6XHQgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLiBDYWxsZWQgd2l0aFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMwLVx0ICogXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzMtXHQgKiBSZXR1cm5lZCBtZXRhZGF0YSBmb2xsb3dzIHRoZSBsaWZldGltZSBydWxlcyBkb2N1bWVudGVkIGZvclxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTM0Olx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTM1LVx0ICovXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9NTg4PXZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6NTg5OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC01OTAtXHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NjY5CgkJCQkJCQlvdXRwdXQ6IDE2NAoJCQkJCQkJdGhvdWdodHM6IDU0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGaW5hbCBUaG91Z2h0cyBvbiB0aGUgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBubyBtb3JlIGluY29taW5nIGNhbGxzIOKAkyB0aW1lIHRvIGZpbmFsaXplIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIGZpbmFsIGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2Agc2VlbXMgc29saWQ6IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIGNvcmUgZWxlbWVudHMuCgpOb3csIGZvciB0aGUgYEVuYWJsZUNvbmZpZ3NgLiBXZSYjMzk7dmUgZ290IGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYC4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgYXJlIG5lY2Vzc2FyeSwgZXNwZWNpYWxseSBzaW5jZSB3ZSBhcmUgZGVhbGluZyB3aXRoIERNQS1CVUYgYW5kIFZGSU8uCgpBaCwgcmlnaHQsIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYCBpcyBhIGBkZWZfYm9vbGAgYW5kIGRlcGVuZHMgb24gdGhlIG90aGVycywgc28gd2UgZG9uJiMzOTt0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aGF0JiMzOTtzIHRha2VuIGNhcmUgb2YuIEhvd2V2ZXIsIGBQQ0lfUDJQRE1BYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBaT05FX0RFVklDRWAuIEhtbSwgaXMgYFpPTkVfREVWSUNFYCBhIGRlZmF1bHQgb3Igc29tZXRoaW5nIHdlICptdXN0KiBlbmFibGU/IFN5emthbGxlciBjb25maWdzIHVzdWFsbHkgaGF2ZSBpdCBlbmFibGVkLCBidXQgdG8gYmUgc2FmZSwgSSYjMzk7bGwgYWRkIGl0LiBObywgd2FpdCwgaG9sZCBvbi4gVGhlIGluc3RydWN0aW9ucyBzYXksICYjMzQ7RG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0IHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4mIzM0OyBgWk9ORV9ERVZJQ0VgIGlzIHF1aXRlIGdlbmVyaWMsIGJ1dCBgUENJX1AyUERNQWAgaXMgcXVpdGUgc3BlY2lmaWMuIE9rYXksIGxlYXZlIGl0IG9mZi4KCkxldCYjMzk7cyByZXZpZXcgdGhlIHBhdGNoJiMzOTtzIHB1cnBvc2U6IGl0IGFkZHMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8sIGFuZCB0aGUgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bCBjYW4gYmUgZnV6emVkLiBUaGUgZHJpdmVyIGNvZGUgaXMgcmVhY2hhYmxlLiBUaGUgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLgoKSXMgdGhlcmUgYW55dGhpbmcgZWxzZSB0byBjb25zaWRlcj8gTWF5YmUgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgPyBFdmVuIHRob3VnaCBtbHg1IGRvZXNuJiMzOTt0IGRpcmVjdGx5IGNhbGwgaXQsIGNvdWxkIHN5emthbGxlciBmaW5kIGFub3RoZXIgd2F5PyBCdXQsIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNhbGxlcnMgaW4gdGhlIGtlcm5lbC4gU28sIG5vLiBJdCBjYW4mIzM5O3QgYmUgdHJpZ2dlcmVkLgoKTGV0JiMzOTtzIGNoZWNrIGBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZ2AgYW5kIGBtbHg1X3N0X2dldF9pbmRleGAuIFRoZXNlIGFyZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jYC4gU2luY2UgbWx4NSBpcyBoYXJkd2FyZSBhbmQgbm90IGRpcmVjdGx5IHJlYWNoYWJsZSwgd2UgY2FuIGlnbm9yZSB0aGVtLgoKU28sIEkgdGhpbmsgd2UmIzM5O3JlIGdvb2QuIFRoaXMgbG9va3MgbGlrZSBhIHNvbGlkLCB0YXJnZXRlZCBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjE1LjQ4MzQ2NTM5NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mzc0NjEwNzY5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQQ0lFX1RQSFwiLFxuICAgIFwiUENJX1AyUERNQVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaFwiLFxuICAgIFwicGNpZV90cGhfY29tcGxldGVyX3R5cGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6MTUuNDgzNDcxOTc0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTk4NjIwMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDIgMTk6NTk6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNcXG5pbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xcbisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNcXG5AQCAtOTM5LDYgKzkzOSw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuICAqICAgICAtIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudCgpXFxuICAqICAgICAtIGRtYV9idWZfdm1hcCgpXFxuICAqICAgICAtIGRtYV9idWZfdnVubWFwKClcXG4rICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXFxuICAqXFxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXFxuICAqICAgIGZ1bmN0aW9uczpcXG5AQCAtOTc5LDYgKzk4MCw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuICAqICAgICAtIFxcdTAwMjZkbWFfYnVmX29wcy51bm1hcF9kbWFfYnVmKClcXG4gICogICAgIC0gXFx1MDAyNmRtYV9idWZfb3BzLnZtYXAoKVxcbiAgKiAgICAgLSBcXHUwMDI2ZG1hX2J1Zl9vcHMudnVubWFwKClcXG4rICogICAgIC0gXFx1MDAyNmRtYV9idWZfb3BzLmdldF9wY2lfdHBoKClcXG4gICpcXG4gICogMy4gRXhwb3J0ZXJzIG11c3QgaG9sZCB0aGUgZG1hLWJ1ZiByZXNlcnZhdGlvbiBsb2NrIHdoZW4gY2FsbGluZyB0aGVzZVxcbiAgKiAgICBmdW5jdGlvbnM6XFxuQEAgLTExNDQsNiArMTE0NiwzNiBAQCB2b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFxcXCJETUFfQlVGXFxcIik7XFxuIFxcbisvKipcXG4rICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxcbisgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XFxuKyAqIEBleHRlbmRlZDogZmFsc2UgZm9yIDgtYml0IFNULCB0cnVlIGZvciAxNi1iaXQgRXh0ZW5kZWQgU1RcXG4rICogQHN0ZWVyaW5nX3RhZzogcmV0dXJucyB0aGUgcmF3IHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZCBuYW1lc3BhY2VcXG4rICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50XFxuKyAqXFxuKyAqIFdyYXBwZXIgZm9yIHRoZSBvcHRpb25hbCBcXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGggY2FsbGJhY2suXFxuKyAqXFxuKyAqIE11c3QgYmUgY2FsbGVkIHdpdGggXFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxcbisgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlXFxuKyAqIHJlcXVlc3RlZCBuYW1lc3BhY2UuXFxuKyAqXFxuKyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGVcXG4rICogZXhwb3J0ZXIgaW52YWxpZGF0ZXMgdGhlIGN1cnJlbnQgbWFwcGluZyAoc2lnbmFsbGVkIHRvIHRoZSBpbXBvcnRlciB2aWFcXG4rICogXFx1MDAyNmRtYV9idWZfYXR0YWNoX29wcy5tb3ZlX25vdGlmeSkuIEltcG9ydGVycyBtdXN0IHJlLXF1ZXJ5IGFmdGVyIGEgbmV3XFxuKyAqIG1hcHBpbmcgaXMgZXN0YWJsaXNoZWQgZm9sbG93aW5nIGludmFsaWRhdGlvbi5cXG4rICovXFxuK2ludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuK1xcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuK3tcXG4rXFx0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFxuK1xcdGlmICghZG1hYnVmLVxcdTAwM2VvcHMtXFx1MDAzZWdldF9wY2lfdHBoKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRyZXR1cm4gZG1hYnVmLVxcdTAwM2VvcHMtXFx1MDAzZWdldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIHN0ZWVyaW5nX3RhZywgcGgpO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFxcXCJETUFfQlVGXFxcIik7XFxuK1xcbiAvKipcXG4gICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50O1xcbiAgKiBtYXBwZWQgaW50byBfZGV2aWNlXyBhZGRyZXNzIHNwYWNlLiBJcyBhIHdyYXBwZXIgZm9yIG1hcF9kbWFfYnVmKCkgb2YgdGhlXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xcbmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcXG5AQCAtNjAsNiArNjAsNyBAQFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJFbGkgQ29oZW4gXFx1MDAzY2VsaUBtZWxsYW5veC5jb21cXHUwMDNlXFxcIik7XFxuIE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXJcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcbitNT0RVTEVfSU1QT1JUX05TKFxcXCJETUFfQlVGXFxcIik7XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pYl9ldmVudF93b3JrIHtcXG4gXFx0c3RydWN0IHdvcmtfc3RydWN0XFx0d29yaztcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcXG5pbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuY1xcbisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcXG5AQCAtMzksNiArMzksNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZGVsYXkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1idWYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktdHBoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NyZG1hL2ZybXJfcG9vbHMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY3JkbWEvaWJfdW1lbV9vZHAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImRtLmhcXFwiXFxuQEAgLTE2Nyw2ICsxNjgsMzkgQEAgc3RhdGljIGludCBnZXRfdW5jaGFuZ2VhYmxlX2FjY2Vzc19mbGFncyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLIEdFTk1BU0tfVUxMKDIzLCAxNilcXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLIEdFTk1BU0tfVUxMKDE1LCAwKVxcbiBcXG4rc3RhdGljIHU4IG1seDVfaWJfdHBoX2tleV9waCh1OCBwaClcXG4re1xcbitcXHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxcbitcXHRcXHRwaCBePSBNTFg1X0lCX05PX1BIO1xcbitcXG4rXFx0cmV0dXJuIHBoO1xcbit9XFxuK1xcbitzdGF0aWMgaW50IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcXG4re1xcbitcXHRpZiAoc3RfaW5kZXggPT0gTUxYNV9NS0NfUENJRV9UUEhfTk9fU1RFRVJJTkdfVEFHX0lOREVYKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdHJldHVybiBtbHg1X3N0X2dldF9pbmRleChkZXYtXFx1MDAzZW1kZXYsIHN0X2luZGV4KTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXFxuK3tcXG4rXFx0aWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWClcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0bWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi1cXHUwMDNlbWRldiwgc3RfaW5kZXgpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxcbitcXHRcXHRcXHRcXHQgICAgICB1NjQga2VybmVsX3ZlbmRvcl9rZXkpXFxuK3tcXG4rXFx0dTE2IHN0X2luZGV4ID0gRklFTERfR0VUKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXFxuK1xcdFxcdFxcdFxcdCBrZXJuZWxfdmVuZG9yX2tleSk7XFxuK1xcbitcXHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqXFxuIF9tbHg1X2ZybXJfcG9vbF9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGliX3VtZW0gKnVtZW0sXFxuIFxcdFxcdCAgICAgIGludCBhY2Nlc3NfZmxhZ3MsIGludCBhY2Nlc3NfbW9kZSxcXG5AQCAtMTg5LDEzICsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcXG4gXFx0XFx0XFx0TUxYNV9GUk1SX1BPT0xTX0tFWV9BQ0NFU1NfTU9ERV9LU01fTUFTSyA6XFxuIFxcdFxcdFxcdDA7XFxuIFxcbi1cXHQvKiBOb3JtYWxpemUgcGg6IHN3YXAgMCBhbmQgTUxYNV9JQl9OT19QSCAqL1xcbi1cXHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxcbi1cXHRcXHRwaCBePSBNTFg1X0lCX05PX1BIO1xcbi1cXG4gXFx0bXItXFx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxcbiBcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XFxuLVxcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywgcGgpO1xcbitcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXFxuK1xcdFxcdFxcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xcbiBcXHRlcnIgPSBpYl9mcm1yX3Bvb2xfcG9wKFxcdTAwMjZkZXYtXFx1MDAzZWliX2RldiwgXFx1MDAyNm1yLVxcdTAwM2VpYm1yKTtcXG4gXFx0aWYgKGVycikge1xcbiBcXHRcXHRrZnJlZShtcik7XFxuQEAgLTIxOCw3ICsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcXG4gXFx0XFx0XFx0XFx0ICAgICAgMCA6XFxuIFxcdFxcdFxcdFxcdCAgICAgIE1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0ssXFxuIFxcdFxcdC5udW1fZG1hX2Jsb2NrcyA9IG5kZXNjcyxcXG4tXFx0XFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID0gMCwgLyogbm8gUEggYW5kIG5vIFNUIGluZGV4ICovXFxuK1xcdFxcdC5rZXJuZWxfdmVuZG9yX2tleSA9XFxuK1xcdFxcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSyxcXG4rXFx0XFx0XFx0XFx0ICAgTUxYNV9NS0NfUENJRV9UUEhfTk9fU1RFRVJJTkdfVEFHX0lOREVYKSxcXG4gXFx0fTtcXG4gXFx0c3RydWN0IG1seDVfaWJfbXIgKm1yO1xcbiBcXHRpbnQgcmV0O1xcbkBAIC01NTcsNiArNTkwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqcmVnX2NyZWF0ZShzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcXG4gXFx0bXItXFx1MDAzZWlibXIucGQgPSBwZDtcXG4gXFx0bXItXFx1MDAzZWFjY2Vzc19mbGFncyA9IGFjY2Vzc19mbGFncztcXG4gXFx0bXItXFx1MDAzZXBhZ2Vfc2hpZnQgPSBvcmRlcl9iYXNlXzIocGFnZV9zaXplKTtcXG4rXFx0bXItXFx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxcbitcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XFxuK1xcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSyxcXG4rXFx0XFx0XFx0ICAgbWx4NV9pYl90cGhfa2V5X3BoKHBoKSk7XFxuIFxcbiBcXHRpbmxlbiA9IE1MWDVfU1RfU1pfQllURVMoY3JlYXRlX21rZXlfaW4pO1xcbiBcXHRpZiAocG9wdWxhdGUpXFxuQEAgLTc1Myw2ICs3OTAsMTIgQEAgc3RhdGljIHN0cnVjdCBpYl9tciAqY3JlYXRlX3JlYWxfbXIoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXFxuIFxcdFxcdFxcdHN0X2luZGV4ID0gbWRtYWgtXFx1MDAzZXN0X2luZGV4O1xcbiBcXHR9XFxuIFxcbitcXHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xcbitcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4rXFx0fVxcbitcXG4gXFx0eGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tXFx1MDAzZWxlbmd0aCk7XFxuIFxcdGlmICh4bHRfd2l0aF91bXIpIHtcXG4gXFx0XFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIHVtZW0sIGlvdmEsIGFjY2Vzc19mbGFncyxcXG5AQCAtNzY5LDYgKzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxcbiBcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNlc2xvd19wYXRoX211dGV4KTtcXG4gXFx0fVxcbiBcXHRpZiAoSVNfRVJSKG1yKSkge1xcbitcXHRcXHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XFxuIFxcdFxcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcXG4gXFx0XFx0cmV0dXJuIEVSUl9DQVNUKG1yKTtcXG4gXFx0fVxcbkBAIC05MDMsNiArOTQ3LDUyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfb3BzIG1seDVfaWJfZG1hYnVmX2F0dGFjaF9vcHMgPSB7XFxuIFxcdC5pbnZhbGlkYXRlX21hcHBpbmdzID0gbWx4NV9pYl9kbWFidWZfaW52YWxpZGF0ZV9jYixcXG4gfTtcXG4gXFxuK3N0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4rXFx0XFx0XFx0XFx0ICB1MTYgKnN0X2luZGV4LCB1OCAqcGgpXFxuK3tcXG4rXFx0dTE2IGxvY2FsX3N0X2luZGV4O1xcbitcXHR1MTYgc3RlZXJpbmdfdGFnO1xcbitcXHR1OCBsb2NhbF9waDtcXG4rXFx0Ym9vbCBleHRlbmRlZDtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXFx1MDAzZW1kZXYtXFx1MDAzZXBkZXYpKSB7XFxuK1xcdGNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6XFxuK1xcdFxcdGV4dGVuZGVkID0gZmFsc2U7XFxuK1xcdFxcdGJyZWFrO1xcbitcXHRjYXNlIFBDSV9UUEhfUkVRX0VYVF9UUEg6XFxuK1xcdFxcdGV4dGVuZGVkID0gdHJ1ZTtcXG4rXFx0XFx0YnJlYWs7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4rXFx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXFx1MDAzZXJlc3YsIE5VTEwpO1xcbitcXHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFxcdTAwMjZzdGVlcmluZ190YWcsIFxcdTAwMjZsb2NhbF9waCk7XFxuK1xcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXFx1MDAzZXJlc3YpO1xcbitcXHRpZiAocmV0KSB7XFxuK1xcdFxcdGlmIChyZXQgIT0gLUVPUE5PVFNVUFApXFxuK1xcdFxcdFxcdG1seDVfaWJfZGJnKGRldiwgXFxcImdldF9wY2lfdHBoIGZhaWxlZCAoJWQpXFxcXG5cXFwiLCByZXQpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuK1xcdHJldCA9IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKGRldi1cXHUwMDNlbWRldiwgc3RlZXJpbmdfdGFnLFxcbitcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNmxvY2FsX3N0X2luZGV4KTtcXG4rXFx0aWYgKHJldCkge1xcbitcXHRcXHRtbHg1X2liX2RiZyhkZXYsIFxcXCJzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcXFxcblxcXCIsIHJldCk7XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4rXFx0KnN0X2luZGV4ID0gbG9jYWxfc3RfaW5kZXg7XFxuK1xcdCpwaCA9IGxvY2FsX3BoO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBtbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4re1xcbitcXHRtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLFxcbitcXHRcXHRcXHRcXHQgIG1yLVxcdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5KTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCBpYl9tciAqXFxuIHJlZ191c2VyX21yX2RtYWJ1ZihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2aWNlLFxcbiBcXHRcXHQgICB1NjQgb2Zmc2V0LCB1NjQgbGVuZ3RoLCB1NjQgdmlydF9hZGRyLFxcbkBAIC05NDUsMTIgKzEwMzUsMjIgQEAgcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXFxuIFxcdFxcdHBoID0gZG1haC1cXHUwMDNlcGg7XFxuIFxcdFxcdGlmIChkbWFoLVxcdTAwM2V2YWxpZF9maWVsZHMgXFx1MDAyNiBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSlcXG4gXFx0XFx0XFx0c3RfaW5kZXggPSBtZG1haC1cXHUwMDNlc3RfaW5kZXg7XFxuK1xcbitcXHRcXHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xcbitcXHRcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdFxcdGliX3VtZW1fcmVsZWFzZShcXHUwMDI2dW1lbV9kbWFidWYtXFx1MDAzZXVtZW0pO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHR9XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLVxcdTAwM2VhdHRhY2gtXFx1MDAzZWRtYWJ1ZixcXG4rXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNnN0X2luZGV4LCBcXHUwMDI2cGgpO1xcbiBcXHR9XFxuIFxcbiBcXHRtciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgXFx1MDAyNnVtZW1fZG1hYnVmLVxcdTAwM2V1bWVtLCB2aXJ0X2FkZHIsXFxuIFxcdFxcdFxcdFxcdGFjY2Vzc19mbGFncywgYWNjZXNzX21vZGUsXFxuIFxcdFxcdFxcdFxcdHN0X2luZGV4LCBwaCk7XFxuIFxcdGlmIChJU19FUlIobXIpKSB7XFxuK1xcdFxcdG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTtcXG4gXFx0XFx0aWJfdW1lbV9yZWxlYXNlKFxcdTAwMjZ1bWVtX2RtYWJ1Zi1cXHUwMDNldW1lbSk7XFxuIFxcdFxcdHJldHVybiBFUlJfQ0FTVChtcik7XFxuIFxcdH1cXG5AQCAtMTQwNSw2ICsxNTA1LDcgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4gXFx0aWYgKG1yLVxcdTAwM2VpYm1yLmZybXIucG9vbCkge1xcbiBcXHRcXHRpZiAoIW1seDVfdW1yX3Jldm9rZV9tcl93aXRoX2xvY2sobXIpKSB7XFxuIFxcdFxcdFxcdGliX2ZybXJfcG9vbF9wdXNoKG1yLVxcdTAwM2VpYm1yLmRldmljZSwgXFx1MDAyNm1yLVxcdTAwM2VpYm1yKTtcXG4rXFx0XFx0XFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XFxuIFxcdFxcdFxcdHJldHVybiAwO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG5AQCAtMTQzMiw2ICsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4gXFx0aWYgKG1yLVxcdTAwM2VpYm1yLmZybXIucG9vbCBcXHUwMDI2XFx1MDAyNiAhcmV0KVxcbiBcXHRcXHRpYl9mcm1yX3Bvb2xfZHJvcChcXHUwMDI2bXItXFx1MDAzZWlibXIpO1xcbiBcXG4rXFx0aWYgKCFyZXQpXFxuK1xcdFxcdG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYobXIpO1xcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXFxuaW5kZXggOTk3YmU5MWYwYTEzNWEuLmJmMTRhN2E2ZGYxNWUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xcbkBAIC05MiwyMyArOTIsMTggQEAgdm9pZCBtbHg1X3N0X2Rlc3Ryb3koc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG4gXFx0a2ZyZWUoc3QpO1xcbiB9XFxuIFxcbi1pbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4tXFx0XFx0XFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuK2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxcbitcXHRcXHRcXHQgICAgICAgdTE2ICpzdF9pbmRleClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7XFxuIFxcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cXHUwMDNlc3Q7XFxuIFxcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XFxuIFxcdHUzMiB4YV9pZDtcXG4tXFx0dTE2IHRhZztcXG4tXFx0aW50IHJldDtcXG4rXFx0aW50IHJldCA9IDA7XFxuIFxcbiBcXHRpZiAoIXN0KVxcbiBcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuIFxcbi1cXHRyZXQgPSBwY2llX3RwaF9nZXRfY3B1X3N0KGRldi1cXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFxcdTAwMjZ0YWcpO1xcbi1cXHRpZiAocmV0KVxcbi1cXHRcXHRyZXR1cm4gcmV0O1xcbi1cXG4gXFx0aWYgKHN0LVxcdTAwM2VkaXJlY3RfbW9kZSkge1xcbiBcXHRcXHQqc3RfaW5kZXggPSB0YWc7XFxuIFxcdFxcdHJldHVybiAwO1xcbkBAIC0xNTIsOCArMTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnN0LVxcdTAwM2Vsb2NrKTtcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbitFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyk7XFxuK1xcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4rXFx0XFx0XFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuK3tcXG4rXFx0dTE2IHRhZztcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVxcdTAwM2VwZGV2LCBtZW1fdHlwZSwgY3B1X3VpZCwgXFx1MDAyNnRhZyk7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbitcXHRyZXR1cm4gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LCB0YWcsIHN0X2luZGV4KTtcXG4rfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4KTtcXG4gXFxuK2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXFxuK3tcXG4rXFx0c3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhO1xcbitcXHRzdHJ1Y3QgbWx4NV9zdCAqc3QgPSBkZXYtXFx1MDAzZXN0O1xcbitcXHRpbnQgcmV0ID0gMDtcXG4rXFxuK1xcdGlmICghc3QpXFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFxuK1xcdGlmIChzdC1cXHUwMDNlZGlyZWN0X21vZGUpXFxuK1xcdFxcdHJldHVybiAwO1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2c3QtXFx1MDAzZWxvY2spO1xcbitcXHRpZHhfZGF0YSA9IHhhX2xvYWQoXFx1MDAyNnN0LVxcdTAwM2VpZHhfeGEsIHN0X2luZGV4KTtcXG4rXFx0aWYgKFdBUk5fT05fT05DRSghaWR4X2RhdGEpKVxcbitcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbitcXHRlbHNlXFxuK1xcdFxcdHJlZmNvdW50X2luYyhcXHUwMDI2aWR4X2RhdGEtXFx1MDAzZXVzZWNvdW50KTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzdC1cXHUwMDNlbG9jayk7XFxuK1xcbitcXHRyZXR1cm4gcmV0O1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfZ2V0X2luZGV4KTtcXG4rXFxuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbiB7XFxuIFxcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdHBoLmMgYi9kcml2ZXJzL3BjaS90cGguY1xcbmluZGV4IDY1NWZmZDYwZTYyZjZhLi5lNzY5M2ZkOWQ2NzYzNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3BjaS90cGguY1xcbisrKyBiL2RyaXZlcnMvcGNpL3RwaC5jXFxuQEAgLTE3Myw2ICsxNzMsNTEgQEAgdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcXG4gXFxuKy8qKlxcbisgKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbisgKlxcbisgKiBSZXR1cm46IFBDSV9UUEhfUkVRX0RJU0FCTEUsIFBDSV9UUEhfUkVRX1RQSF9PTkxZIG9yIFBDSV9UUEhfUkVRX0VYVF9UUEguXFxuKyAqL1xcbit1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7XFxuK1xcdHJldHVybiBwZGV2LVxcdTAwM2V0cGhfcmVxX3R5cGU7XFxuK31cXG4rRVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4rXFxuKy8qKlxcbisgKiBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJ3MgVFBIIENvbXBsZXRlciBzdXBwb3J0XFxuKyAqIEBwZGV2OiBQQ0kgZGV2aWNlIHRvIHF1ZXJ5XFxuKyAqXFxuKyAqIFJlYWRzIHRoZSBcXFwiVFBIIENvbXBsZXRlciBTdXBwb3J0ZWRcXFwiIGZpZWxkIChiaXRzIDEzOjEyKSBvZiBEZXZpY2VcXG4rICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXFxuKyAqIFxcXCJub3Qgc3VwcG9ydGVkXFxcIiBzbyBjYWxsZXJzIG9ubHkgbmVlZCB0byBjb21wYXJlIGFnYWluc3QgdGhlIHRocmVlXFxuKyAqIGRlZmluZWQgdmFsdWVzLlxcbisgKlxcbisgKiBSZXR1cm46IG9uZSBvZiAlUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUsXFxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWSBvclxcbisgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSC5cXG4rICovXFxuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7XFxuK1xcdHUzMiByZWc7XFxuK1xcbitcXHRpZiAocGNpZV9jYXBhYmlsaXR5X3JlYWRfZHdvcmQocGRldiwgUENJX0VYUF9ERVZDQVAyLCBcXHUwMDI2cmVnKSlcXG4rXFx0XFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FO1xcbitcXHRpZiAoUENJX1BPU1NJQkxFX0VSUk9SKHJlZykpXFxuK1xcdFxcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcXG4rXFxuK1xcdHN3aXRjaCAoRklFTERfR0VUKFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9NQVNLLCByZWcpKSB7XFxuK1xcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZOlxcbitcXHRcXHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZO1xcbitcXHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIOlxcbitcXHRcXHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcXG4rXFx0fVxcbit9XFxuK0VYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xcbitcXG4gLypcXG4gICogUmV0dXJuIHRoZSBzaXplIG9mIFNUIHRhYmxlLiBJZiBTVCB0YWJsZSBpcyBub3QgaW4gVFBIIFJlcXVlc3RlciBFeHRlbmRlZFxcbiAgKiBDYXBhYmlsaXR5IHNwYWNlLCByZXR1cm4gMC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgU1QgVGFibGUgU2l6ZSArIDEuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcXG5pbmRleCBhMjhmMWU5OTM2MmMxZS4uYzdkNjkwMmJjNjFiMDcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xcbkBAIC0xNTcyLDYgKzE1NzIsOSBAQCBpbnQgdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlKHN0cnVjdCB2ZmlvX2RldmljZSAqZGV2aWNlLCB1MzIgZmxhZ3MsXFxuIFxcdFxcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfdG9rZW4odmRldiwgZmxhZ3MsIGFyZywgYXJnc3opO1xcbiBcXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRjpcXG4gXFx0XFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHZkZXYsIGZsYWdzLCBhcmcsIGFyZ3N6KTtcXG4rXFx0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIOlxcbitcXHRcXHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdFxcdCBhcmdzeik7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHJldHVybiAtRU5PVFRZO1xcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXFxuaW5kZXggYzE2ZjQ2MGMwMWQ2ODEuLjUzNTE4MzljMTMzOGFmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNcXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXFxuQEAgLTMsNiArMyw3IEBAXFxuICAqL1xcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZG1hLWJ1Zi1tYXBwaW5nLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktcDJwZG1hLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktdHBoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9kbWEtcmVzdi5oXFx1MDAzZVxcbiBcXG4gI2luY2x1ZGUgXFxcInZmaW9fcGNpX3ByaXYuaFxcXCJcXG5AQCAtMTksNyArMjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xcbiBcXHR1MzIgbnJfcmFuZ2VzO1xcbiBcXHRzdHJ1Y3Qga3JlZiBrcmVmO1xcbiBcXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xcbi1cXHR1OCByZXZva2VkIDogMTtcXG4rXFxuK1xcdC8qXFxuK1xcdCAqIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IGRtYWJ1Zi1cXHUwMDNlcmVzdiwgQHJldm9rZWQgYWRkaXRpb25hbGx5XFxuK1xcdCAqIHByb3RlY3RlZCBieSBtZW1vcnlfbG9jay5cXG4rXFx0ICovXFxuK1xcdHUxNiB0cGhfc3RfZXh0O1xcbitcXHR1OCB0cGhfc3Q7XFxuK1xcdGJvb2wgcmV2b2tlZDtcXG4rXFx0dTggdHBoX3N0X3ZhbGlkOjE7XFxuK1xcdHU4IHRwaF9zdF9leHRfdmFsaWQ6MTtcXG4rXFx0dTggdHBoX3BoOjI7XFxuIH07XFxuIFxcbiBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXFxuQEAgLTMwLDcgKzQxLDcgQEAgc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxcbiBcXHRpZiAoIWF0dGFjaG1lbnQtXFx1MDAzZXBlZXIycGVlcilcXG4gXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiBcXG4tXFx0aWYgKHByaXYtXFx1MDAzZXJldm9rZWQpXFxuK1xcdGlmIChSRUFEX09OQ0UocHJpdi1cXHUwMDNlcmV2b2tlZCkpXFxuIFxcdFxcdHJldHVybiAtRU5PREVWO1xcbiBcXG4gXFx0aWYgKCFkbWFfYnVmX2F0dGFjaF9yZXZvY2FibGUoYXR0YWNobWVudCkpXFxuQEAgLTY5LDYgKzgwLDI2IEBAIHZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuK3N0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbitcXHRcXHRcXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbit7XFxuK1xcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2ID0gZG1hYnVmLVxcdTAwM2Vwcml2O1xcbitcXG4rXFx0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFxuK1xcdGlmIChleHRlbmRlZCkge1xcbitcXHRcXHRpZiAoIXByaXYtXFx1MDAzZXRwaF9zdF9leHRfdmFsaWQpXFxuK1xcdFxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0XFx0KnN0ZWVyaW5nX3RhZyA9IHByaXYtXFx1MDAzZXRwaF9zdF9leHQ7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGlmICghcHJpdi1cXHUwMDNldHBoX3N0X3ZhbGlkKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcdFxcdCpzdGVlcmluZ190YWcgPSBwcml2LVxcdTAwM2V0cGhfc3Q7XFxuK1xcdH1cXG4rXFx0KnBoID0gcHJpdi1cXHUwMDNldHBoX3BoO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxcbiBcXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCxcXG4gXFx0XFx0XFx0XFx0ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKVxcbkBAIC0xMDEsNiArMTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpXFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XFxuIFxcdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcXG4rXFx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcXG4gXFx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXFxuIFxcdC51bm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl91bm1hcCxcXG4gXFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXFxuQEAgLTMzMyw2ICszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcXG4rXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc2l6ZV90IGFyZ3N6KVxcbit7XFxuK1xcdHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHNldF90cGg7XFxuK1xcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xcbitcXHRzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmO1xcbitcXHR1OCBjb21wO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0Y29tcCA9IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHZkZXYtXFx1MDAzZXBkZXYpO1xcbitcXHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcXG4rXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbitcXG4rXFx0cmV0ID0gdmZpb19jaGVja19mZWF0dXJlKGZsYWdzLCBhcmdzeiwgVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQsXFxuK1xcdFxcdFxcdFxcdCBzaXplb2Yoc2V0X3RwaCkpO1xcbitcXHRpZiAocmV0ICE9IDEpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbitcXHRpZiAoY29weV9mcm9tX3VzZXIoXFx1MDAyNnNldF90cGgsIGFyZywgc2l6ZW9mKHNldF90cGgpKSlcXG4rXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuK1xcbitcXHRpZiAoc2V0X3RwaC5mbGFncyBcXHUwMDI2IH4oVkZJT19ETUFfQlVGX1RQSF9TVCB8IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKSlcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbitcXHRpZiAoc2V0X3RwaC5waCBcXHUwMDI2IH4weDMpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aWYgKChzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBjb21wICE9IFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRkbWFidWYgPSBkbWFfYnVmX2dldChzZXRfdHBoLmRtYWJ1Zl9mZCk7XFxuK1xcdGlmIChJU19FUlIoZG1hYnVmKSlcXG4rXFx0XFx0cmV0dXJuIFBUUl9FUlIoZG1hYnVmKTtcXG4rXFxuK1xcdGlmIChkbWFidWYtXFx1MDAzZW9wcyAhPSBcXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xcbitcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbitcXHRcXHRnb3RvIG91dF9wdXQ7XFxuK1xcdH1cXG4rXFxuK1xcdHByaXYgPSBkbWFidWYtXFx1MDAzZXByaXY7XFxuK1xcdGlmIChwcml2LVxcdTAwM2V2ZGV2ICE9IHZkZXYpIHtcXG4rXFx0XFx0cmV0ID0gLUVJTlZBTDtcXG4rXFx0XFx0Z290byBvdXRfcHV0O1xcbitcXHR9XFxuK1xcbitcXHRyZXQgPSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoZG1hYnVmLVxcdTAwM2VyZXN2LCBOVUxMKTtcXG4rXFx0aWYgKHJldClcXG4rXFx0XFx0Z290byBvdXRfcHV0O1xcbitcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0X2V4dCAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZ19leHQ7XFxuK1xcdHByaXYtXFx1MDAzZXRwaF9waCAgICAgICAgID0gc2V0X3RwaC5waDtcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVCk7XFxuK1xcdHByaXYtXFx1MDAzZXRwaF9zdF9leHRfdmFsaWQgPVxcbitcXHRcXHQhIShzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpO1xcbitcXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFx0cmV0ID0gMDtcXG4rXFxuK291dF9wdXQ6XFxuK1xcdGRtYV9idWZfcHV0KGRtYWJ1Zik7XFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKVxcbiB7XFxuIFxcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaCBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXFxuaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXFxuKysrIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcXG5AQCAtMTE4LDYgKzExOCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdmZpb19wY2lfaXNfdmdhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXFxuIFxcdFxcdFxcdFxcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1ZiBfX3VzZXIgKmFyZyxcXG4gXFx0XFx0XFx0XFx0ICBzaXplX3QgYXJnc3opO1xcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcXG4rXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KTtcXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX21vdmUoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCBib29sIHJldm9rZWQpO1xcbiAjZWxzZVxcbkBAIC0xMjgsNiArMTMyLDE0IEBAIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbiB7XFxuIFxcdHJldHVybiAtRU5PVFRZO1xcbiB9XFxuK1xcbitzdGF0aWMgaW5saW5lIGludFxcbit2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXFxuK1xcdFxcdFxcdFxcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXFxuK1xcdFxcdFxcdFxcdCAgc2l6ZV90IGFyZ3N6KVxcbit7XFxuK1xcdHJldHVybiAtRU5PVFRZO1xcbit9XFxuIHN0YXRpYyBpbmxpbmUgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KVxcbiB7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXFxuQEAgLTExMyw2ICsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHtcXG4gXFx0ICovXFxuIFxcdHZvaWQgKCp1bnBpbikoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG4gXFxuK1xcdC8qKlxcbitcXHQgKiBAZ2V0X3BjaV90cGg6XFxuK1xcdCAqXFxuK1xcdCAqIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBzdGVlcmluZyBtZXRhZGF0YSBmb3JcXG4rXFx0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXFxuK1xcdCAqIG91dGJvdW5kIFRMUHMgdGFyZ2V0aW5nIHRoZSBleHBvcnRlciBmb3IgcGVlci10by1wZWVyIERNQS5cXG4rXFx0ICpcXG4rXFx0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXFxuK1xcdCAqIEBleHRlbmRlZDogZmFsc2UgZm9yIDgtYml0IFNULCB0cnVlIGZvciAxNi1iaXQgRXh0ZW5kZWQgU1RcXG4rXFx0ICogQHN0ZWVyaW5nX3RhZzogUmV0dXJucyB0aGUgcmF3IFRQSCBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWRcXG4rXFx0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXFxuK1xcdCAqIEBwaDogUmV0dXJucyB0aGUgVFBIIHByb2Nlc3NpbmcgaGludCAoMi1iaXQgdmFsdWUpXFxuK1xcdCAqXFxuK1xcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXFxuK1xcdCAqIFxcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxcbitcXHQgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS5cXG4rXFx0ICpcXG4rXFx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcXG4rXFx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxcbitcXHQgKi9cXG4rXFx0aW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuK1xcdFxcdFxcdCAgIHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xcbitcXG4gXFx0LyoqXFxuIFxcdCAqIEBtYXBfZG1hX2J1ZjpcXG4gXFx0ICpcXG5AQCAtNTYzLDYgKzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4gXFx0XFx0ICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XFxuIGludCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xcbiB2b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG4rXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XFxuIFxcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcXG5AQCAtMTE4MiwxNiArMTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZVxcbiBcXHRcXHRcXHQgICB1NjQgbGVuZ3RoLCB1MTYgdWlkLCBwaHlzX2FkZHJfdCBhZGRyLCB1MzIgb2JqX2lkKTtcXG4gXFxuICNpZmRlZiBDT05GSUdfUENJRV9UUEhcXG4raW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB0YWcsXFxuK1xcdFxcdFxcdCAgICAgICB1MTYgKnN0X2luZGV4KTtcXG4raW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XFxuIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxcbiBcXHRcXHRcXHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCk7XFxuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTtcXG4gI2Vsc2VcXG4rc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICB1MTYgdGFnLCB1MTYgKnN0X2luZGV4KVxcbit7XFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitcXG4rc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbit7XFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitcXG4gc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbiBcXHRcXHRcXHRcXHQgICAgICBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuIHtcXG4gXFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiB9XFxuK1xcbiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbiB7XFxuIFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmggYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxcbmluZGV4IGJlNjhjZDE3ZjJmODMzLi43NzQzYWY2ZmU0MzI2ZSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXFxuQEAgLTksNiArOSw4IEBAXFxuICNpZm5kZWYgTElOVVhfUENJX1RQSF9IXFxuICNkZWZpbmUgTElOVVhfUENJX1RQSF9IXFxuIFxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpX3JlZ3MuaFxcdTAwM2VcXG4rXFxuIC8qXFxuICAqIEFjY29yZGluZyB0byB0aGUgRUNOIGZvciBQQ0kgRmlybXdhcmUgU3BlYywgU3RlZXJpbmcgVGFnIGNhbiBiZSBkaWZmZXJlbnRcXG4gICogZGVwZW5kaW5nIG9uIHRoZSBtZW1vcnkgdHlwZTogVm9sYXRpbGUgTWVtb3J5IG9yIFBlcnNpc3RlbnQgTWVtb3J5LiBXaGVuIGFcXG5AQCAtMzAsNiArMzIsOCBAQCB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xcbiBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSk7XFxuIHUxNiBwY2llX3RwaF9nZXRfc3RfdGFibGVfc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuIHUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG4rdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG4gI2Vsc2VcXG4gc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfc2V0X3N0X2VudHJ5KHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaW5kZXgsIHUxNiB0YWcpXFxuQEAgLTQxLDYgKzQ1LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX2dldF9jcHVfc3Qoc3RydWN0IHBjaV9kZXYgKmRldixcXG4gc3RhdGljIGlubGluZSB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfVxcbiBzdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxcbiB7IHJldHVybiAtRUlOVkFMOyB9XFxuK3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4reyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxcbitzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcbiAjZW5kaWZcXG4gXFxuICNlbmRpZiAvKiBMSU5VWF9QQ0lfVFBIX0ggKi9cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmhcXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmhcXG5AQCAtMTUzNCw2ICsxNTM0LDQ5IEBAIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYge1xcbiAgKi9cXG4gI2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX01JR19QUkVDT1BZX0lORk92MiAgMTJcXG4gXFxuKy8qKlxcbisgKiBVcG9uIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VUIGFzc29jaWF0ZSBUUEggKFRMUCBQcm9jZXNzaW5nIEhpbnRzKSBtZXRhZGF0YVxcbisgKiB3aXRoIGEgdmZpby1leHBvcnRlZCBkbWEtYnVmLiBUaGUgZG1hLWJ1ZiBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5XFxuKyAqIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRiBvbiB0aGlzIGRldmljZSwgYW5kIHRoZSBkZXZpY2UgbXVzdCByZXBvcnRcXG4rICogVFBIIENvbXBsZXRlciBzdXBwb3J0IGluIERldmljZSBDYXBhYmlsaXRpZXMgMiAoYml0cyAxMzoxMik7IHJlcXVlc3RzXFxuKyAqIGNhcnJ5aW5nIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIGFkZGl0aW9uYWxseSByZXF1aXJlIHRoZSBkZXZpY2UgdG9cXG4rICogcmVwb3J0IHRoZSBFeHRlbmRlZCBUUEggQ29tcGxldGVyIGVuY29kaW5nLiBPdGhlcndpc2UgdGhlIGlvY3RsXFxuKyAqIHJldHVybnMgLUVPUE5PVFNVUFAuXFxuKyAqXFxuKyAqIEBkbWFidWZfZmQgaXMgdGhlIGZpbGUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYuXFxuKyAqXFxuKyAqIDgtYml0IFNUIChAc3RlZXJpbmdfdGFnKSBhbmQgMTYtYml0IEV4dGVuZGVkIFNUIChAc3RlZXJpbmdfdGFnX2V4dCkgYXJlXFxuKyAqIGRpc3RpbmN0IG5hbWVzcGFjZXMuIEBmbGFncyBpcyB0aGUgYXV0aG9yaXRhdGl2ZSB2YWxpZGl0eSBtYXNrIGZvciB0aGVcXG4rICogdHdvIG5hbWVzcGFjZXM6IFZGSU9fRE1BX0JVRl9UUEhfU1QgbWFya3MgQHN0ZWVyaW5nX3RhZyB2YWxpZCBhbmRcXG4rICogVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQgbWFya3MgQHN0ZWVyaW5nX3RhZ19leHQgdmFsaWQuIEFuIGltcG9ydGVyXFxuKyAqIHJlcXVlc3RzIG9uZSBuYW1lc3BhY2UgYW5kIHJlY2VpdmVzIHRoZSBtYXRjaGluZyB2YWx1ZS5cXG4rICpcXG4rICogRWFjaCBTRVQgZnVsbHkgcmVwbGFjZXMgdGhlIGRtYS1idWYncyBUUEggc3RhdGUgZm9yIGZ1dHVyZSBxdWVyaWVzXFxuKyAqIG9ubHkuIEEgbmFtZXNwYWNlIHdob3NlIGZsYWcgYml0IGlzIGNsZWFyIGlzIHJlcG9ydGVkIGFzIHVuc3VwcG9ydGVkXFxuKyAqIHRvIGZ1dHVyZSBpbXBvcnRlcnM7IGFuIGltcG9ydGVyIHRoYXQgaGFzIGFscmVhZHkgcmV0cmlldmVkIGEgdmFsdWVcXG4rICogaXMgdW5hZmZlY3RlZC4gQGZsYWdzID09IDAgbGVhdmVzIGJvdGggbmFtZXNwYWNlcyB1bnN1cHBvcnRlZCBmb3JcXG4rICogZnV0dXJlIGltcG9ydGVycy5cXG4rICpcXG4rICogQHBoIGlzIHRoZSAyLWJpdCBUTFAgUHJvY2Vzc2luZyBIaW50IGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwgM10uXFxuKyAqXFxuKyAqIFVuZGVmaW5lZCBAZmxhZ3MgYW5kIEBwaCBiaXRzIG11c3QgYWx3YXlzIGJlIHplcm8uXFxuKyAqXFxuKyAqIFVzZXJzcGFjZSBtdXN0IGNvbmZpZ3VyZSBUUEggYmVmb3JlIGhhbmRpbmcgdGhlIGRtYS1idWYgZmQgdG8gYW5cXG4rICogaW1wb3J0ZXIuXFxuKyAqL1xcbisjZGVmaW5lIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEggMTNcXG4rXFxuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVFxcdFxcdCgxIFxcdTAwM2NcXHUwMDNjIDApXFxuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFRcXHRcXHQoMSBcXHUwMDNjXFx1MDAzYyAxKVxcbitcXG4rc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGgge1xcbitcXHRfX3MzMlxcdGRtYWJ1Zl9mZDtcXG4rXFx0X191MzJcXHRmbGFncztcXG4rXFx0X191MTZcXHRzdGVlcmluZ190YWdfZXh0O1xcbitcXHRfX3U4XFx0c3RlZXJpbmdfdGFnO1xcbitcXHRfX3U4XFx0cGg7XFxuK307XFxuK1xcbiAvKiAtLS0tLS0tLSBBUEkgZm9yIFR5cGUxIFZGSU8gSU9NTVUgLS0tLS0tLS0gKi9cXG4gXFxuIC8qKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OToxNi4zMDM4NTc3OTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1MjkyNTcwMzkwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQQ0lFX1RQSFwiLFxuICAgIFwiUENJX1AyUERNQVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaFwiLFxuICAgIFwicGNpZV90cGhfY29tcGxldGVyX3R5cGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxOTo1OToxMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG5pbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG4rKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG5AQCAtOTM5LDYgKzkzOSw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXG4gICogICAgIC0gZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KClcbiAgKiAgICAgLSBkbWFfYnVmX3ZtYXAoKVxuICAqICAgICAtIGRtYV9idWZfdnVubWFwKClcbisgKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbiAgKlxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTk3OSw2ICs5ODAsNyBAQCBkbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnVubWFwX2RtYV9idWYoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnZtYXAoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnZ1bm1hcCgpXG4rICogICAgIC0gXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGgoKVxuICAqXG4gICogMy4gRXhwb3J0ZXJzIG11c3QgaG9sZCB0aGUgZG1hLWJ1ZiByZXNlcnZhdGlvbiBsb2NrIHdoZW4gY2FsbGluZyB0aGVzZVxuICAqICAgIGZ1bmN0aW9uczpcbkBAIC0xMTQ0LDYgKzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiB9XG4gRVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCJETUFfQlVGXCIpO1xuIFxuKy8qKlxuKyAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcbisgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XG4rICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuKyAqIEBzdGVlcmluZ190YWc6IHJldHVybnMgdGhlIHJhdyBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlXG4rICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50XG4rICpcbisgKiBXcmFwcGVyIGZvciB0aGUgb3B0aW9uYWwgXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGggY2FsbGJhY2suXG4rICpcbisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxuKyAqIGV4cG9ydGVyIGRvZXMgbm90IGltcGxlbWVudCB0aGUgY2FsbGJhY2sgb3IgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGVcbisgKiByZXF1ZXN0ZWQgbmFtZXNwYWNlLlxuKyAqXG4rICogVGhlIHJldHVybmVkIHN0ZWVyaW5nIHRhZyBhbmQgcHJvY2Vzc2luZyBoaW50IGFyZSBvbmx5IHZhbGlkIHVudGlsIHRoZVxuKyAqIGV4cG9ydGVyIGludmFsaWRhdGVzIHRoZSBjdXJyZW50IG1hcHBpbmcgKHNpZ25hbGxlZCB0byB0aGUgaW1wb3J0ZXIgdmlhXG4rICogXHUwMDI2ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXdcbisgKiBtYXBwaW5nIGlzIGVzdGFibGlzaGVkIGZvbGxvd2luZyBpbnZhbGlkYXRpb24uXG4rICovXG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuK3tcbitcdGRtYV9yZXN2X2Fzc2VydF9oZWxkKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbitcbitcdGlmICghZG1hYnVmLVx1MDAzZW9wcy1cdTAwM2VnZXRfcGNpX3RwaClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0cmV0dXJuIGRtYWJ1Zi1cdTAwM2VvcHMtXHUwMDNlZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgc3RlZXJpbmdfdGFnLCBwaCk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFwiRE1BX0JVRlwiKTtcbitcbiAvKipcbiAgKiBkbWFfYnVmX21hcF9hdHRhY2htZW50IC0gUmV0dXJucyB0aGUgc2NhdHRlcmxpc3QgdGFibGUgb2YgdGhlIGF0dGFjaG1lbnQ7XG4gICogbWFwcGVkIGludG8gX2RldmljZV8gYWRkcmVzcyBzcGFjZS4gSXMgYSB3cmFwcGVyIGZvciBtYXBfZG1hX2J1ZigpIG9mIHRoZVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xuaW5kZXggMDI4MDkxMTRmYzc5YWYuLmEyYjQ5N2Y2YjE2YmRjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcbkBAIC02MCw2ICs2MCw3IEBAXG4gTU9EVUxFX0FVVEhPUihcIkVsaSBDb2hlbiBcdTAwM2NlbGlAbWVsbGFub3guY29tXHUwMDNlXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgSUIgZHJpdmVyXCIpO1xuIE1PRFVMRV9MSUNFTlNFKFwiRHVhbCBCU0QvR1BMXCIpO1xuK01PRFVMRV9JTVBPUlRfTlMoXCJETUFfQlVGXCIpO1xuIFxuIHN0cnVjdCBtbHg1X2liX2V2ZW50X3dvcmsge1xuIFx0c3RydWN0IHdvcmtfc3RydWN0XHR3b3JrO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG5pbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG5AQCAtMzksNiArMzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtcmVzdi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLXRwaC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjcmRtYS9mcm1yX3Bvb2xzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NyZG1hL2liX3VtZW1fb2RwLmhcdTAwM2VcbiAjaW5jbHVkZSBcImRtLmhcIlxuQEAgLTE2Nyw2ICsxNjgsMzkgQEAgc3RhdGljIGludCBnZXRfdW5jaGFuZ2VhYmxlX2FjY2Vzc19mbGFncyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcbiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0sgR0VOTUFTS19VTEwoMjMsIDE2KVxuICNkZWZpbmUgTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSyBHRU5NQVNLX1VMTCgxNSwgMClcbiBcbitzdGF0aWMgdTggbWx4NV9pYl90cGhfa2V5X3BoKHU4IHBoKVxuK3tcbitcdGlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApXG4rXHRcdHBoIF49IE1MWDVfSUJfTk9fUEg7XG4rXG4rXHRyZXR1cm4gcGg7XG4rfVxuK1xuK3N0YXRpYyBpbnQgbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4rXHRcdHJldHVybiAwO1xuK1xuK1x0cmV0dXJuIG1seDVfc3RfZ2V0X2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4rXHRcdHJldHVybjtcbitcbitcdG1seDVfc3RfZGVhbGxvY19pbmRleChkZXYtXHUwMDNlbWRldiwgc3RfaW5kZXgpO1xuK31cbitcbitzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxuK1x0XHRcdFx0ICAgICAgdTY0IGtlcm5lbF92ZW5kb3Jfa2V5KVxuK3tcbitcdHUxNiBzdF9pbmRleCA9IEZJRUxEX0dFVChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLFxuK1x0XHRcdFx0IGtlcm5lbF92ZW5kb3Jfa2V5KTtcbitcbitcdG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCBtbHg1X2liX21yICpcbiBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHQgICAgICBpbnQgYWNjZXNzX2ZsYWdzLCBpbnQgYWNjZXNzX21vZGUsXG5AQCAtMTg5LDEzICsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0XHRNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLIDpcbiBcdFx0XHQwO1xuIFxuLVx0LyogTm9ybWFsaXplIHBoOiBzd2FwIDAgYW5kIE1MWDVfSUJfTk9fUEggKi9cbi1cdGlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApXG4tXHRcdHBoIF49IE1MWDVfSUJfTk9fUEg7XG4tXG4gXHRtci1cdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbiBcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfFxuLVx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssIHBoKTtcbitcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLFxuK1x0XHRcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xuIFx0ZXJyID0gaWJfZnJtcl9wb29sX3BvcChcdTAwMjZkZXYtXHUwMDNlaWJfZGV2LCBcdTAwMjZtci1cdTAwM2VpYm1yKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0a2ZyZWUobXIpO1xuQEAgLTIxOCw3ICsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIDAgOlxuIFx0XHRcdFx0ICAgICAgTUxYNV9GUk1SX1BPT0xTX0tFWV9BQ0NFU1NfTU9ERV9LU01fTUFTSyxcbiBcdFx0Lm51bV9kbWFfYmxvY2tzID0gbmRlc2NzLFxuLVx0XHQua2VybmVsX3ZlbmRvcl9rZXkgPSAwLCAvKiBubyBQSCBhbmQgbm8gU1QgaW5kZXggKi9cbitcdFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbitcdFx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXG4rXHRcdFx0XHQgICBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpLFxuIFx0fTtcbiBcdHN0cnVjdCBtbHg1X2liX21yICptcjtcbiBcdGludCByZXQ7XG5AQCAtNTU3LDYgKzU5MCwxMCBAQCBzdGF0aWMgc3RydWN0IG1seDVfaWJfbXIgKnJlZ19jcmVhdGUoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRtci1cdTAwM2VpYm1yLnBkID0gcGQ7XG4gXHRtci1cdTAwM2VhY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7XG4gXHRtci1cdTAwM2VwYWdlX3NoaWZ0ID0gb3JkZXJfYmFzZV8yKHBhZ2Vfc2l6ZSk7XG4rXHRtci1cdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbitcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfFxuK1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXG4rXHRcdFx0ICAgbWx4NV9pYl90cGhfa2V5X3BoKHBoKSk7XG4gXG4gXHRpbmxlbiA9IE1MWDVfU1RfU1pfQllURVMoY3JlYXRlX21rZXlfaW4pO1xuIFx0aWYgKHBvcHVsYXRlKVxuQEAgLTc1Myw2ICs3OTAsMTIgQEAgc3RhdGljIHN0cnVjdCBpYl9tciAqY3JlYXRlX3JlYWxfbXIoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRcdFx0c3RfaW5kZXggPSBtZG1haC1cdTAwM2VzdF9pbmRleDtcbiBcdH1cbiBcbitcdGVyciA9IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoZGV2LCBzdF9pbmRleCk7XG4rXHRpZiAoZXJyKSB7XG4rXHRcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcbitcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbitcdH1cbitcbiBcdHhsdF93aXRoX3VtciA9IG1seDVyX3Vtcl9jYW5fbG9hZF9wYXMoZGV2LCB1bWVtLVx1MDAzZWxlbmd0aCk7XG4gXHRpZiAoeGx0X3dpdGhfdW1yKSB7XG4gXHRcdG1yID0gYWxsb2NfY2FjaGVhYmxlX21yKHBkLCB1bWVtLCBpb3ZhLCBhY2Nlc3NfZmxhZ3MsXG5AQCAtNzY5LDYgKzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZXNsb3dfcGF0aF9tdXRleCk7XG4gXHR9XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuK1x0XHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XG4gXHRcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcbiBcdFx0cmV0dXJuIEVSUl9DQVNUKG1yKTtcbiBcdH1cbkBAIC05MDMsNiArOTQ3LDUyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfb3BzIG1seDVfaWJfZG1hYnVmX2F0dGFjaF9vcHMgPSB7XG4gXHQuaW52YWxpZGF0ZV9tYXBwaW5ncyA9IG1seDVfaWJfZG1hYnVmX2ludmFsaWRhdGVfY2IsXG4gfTtcbiBcbitzdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4rXHRcdFx0XHQgIHUxNiAqc3RfaW5kZXgsIHU4ICpwaClcbit7XG4rXHR1MTYgbG9jYWxfc3RfaW5kZXg7XG4rXHR1MTYgc3RlZXJpbmdfdGFnO1xuK1x0dTggbG9jYWxfcGg7XG4rXHRib29sIGV4dGVuZGVkO1xuK1x0aW50IHJldDtcbitcbitcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXHUwMDNlbWRldi1cdTAwM2VwZGV2KSkge1xuK1x0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcbitcdFx0ZXh0ZW5kZWQgPSBmYWxzZTtcbitcdFx0YnJlYWs7XG4rXHRjYXNlIFBDSV9UUEhfUkVRX0VYVF9UUEg6XG4rXHRcdGV4dGVuZGVkID0gdHJ1ZTtcbitcdFx0YnJlYWs7XG4rXHRkZWZhdWx0OlxuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4rXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbitcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG4rXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVx1MDAzZXJlc3YpO1xuK1x0aWYgKHJldCkge1xuK1x0XHRpZiAocmV0ICE9IC1FT1BOT1RTVVBQKVxuK1x0XHRcdG1seDVfaWJfZGJnKGRldiwgXCJnZXRfcGNpX3RwaCBmYWlsZWQgKCVkKVxcblwiLCByZXQpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4rXHRyZXQgPSBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYtXHUwMDNlbWRldiwgc3RlZXJpbmdfdGFnLFxuK1x0XHRcdFx0XHQgXHUwMDI2bG9jYWxfc3RfaW5kZXgpO1xuK1x0aWYgKHJldCkge1xuK1x0XHRtbHg1X2liX2RiZyhkZXYsIFwic3RfYWxsb2NfaW5kZXhfYnlfdGFnIGZhaWxlZCAoJWQpXFxuXCIsIHJldCk7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbitcdCpzdF9pbmRleCA9IGxvY2FsX3N0X2luZGV4O1xuK1x0KnBoID0gbG9jYWxfcGg7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfbXIgKm1yKVxuK3tcbitcdG1seDVfaWJfcHV0X3N0X2hhbmRsZV9yZWYobXJfdG9fbWRldihtciksXG4rXHRcdFx0XHQgIG1yLVx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkpO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IGliX21yICpcbiByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSxcbiBcdFx0ICAgdTY0IG9mZnNldCwgdTY0IGxlbmd0aCwgdTY0IHZpcnRfYWRkcixcbkBAIC05NDUsMTIgKzEwMzUsMjIgQEAgcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXG4gXHRcdHBoID0gZG1haC1cdTAwM2VwaDtcbiBcdFx0aWYgKGRtYWgtXHUwMDNldmFsaWRfZmllbGRzIFx1MDAyNiBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSlcbiBcdFx0XHRzdF9pbmRleCA9IG1kbWFoLVx1MDAzZXN0X2luZGV4O1xuK1xuK1x0XHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xuK1x0XHRpZiAoZXJyKSB7XG4rXHRcdFx0aWJfdW1lbV9yZWxlYXNlKFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0pO1xuK1x0XHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdH1cbitcdH0gZWxzZSB7XG4rXHRcdGdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLVx1MDAzZWF0dGFjaC1cdTAwM2VkbWFidWYsXG4rXHRcdFx0XHQgICAgICBcdTAwMjZzdF9pbmRleCwgXHUwMDI2cGgpO1xuIFx0fVxuIFxuIFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0sIHZpcnRfYWRkcixcbiBcdFx0XHRcdGFjY2Vzc19mbGFncywgYWNjZXNzX21vZGUsXG4gXHRcdFx0XHRzdF9pbmRleCwgcGgpO1xuIFx0aWYgKElTX0VSUihtcikpIHtcbitcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UoXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtMTQwNSw2ICsxNTA1LDcgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCkge1xuIFx0XHRpZiAoIW1seDVfdW1yX3Jldm9rZV9tcl93aXRoX2xvY2sobXIpKSB7XG4gXHRcdFx0aWJfZnJtcl9wb29sX3B1c2gobXItXHUwMDNlaWJtci5kZXZpY2UsIFx1MDAyNm1yLVx1MDAzZWlibXIpO1xuK1x0XHRcdG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYobXIpO1xuIFx0XHRcdHJldHVybiAwO1xuIFx0XHR9XG4gXHR9XG5AQCAtMTQzMiw2ICsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCBcdTAwMjZcdTAwMjYgIXJldClcbiBcdFx0aWJfZnJtcl9wb29sX2Ryb3AoXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXG4rXHRpZiAoIXJldClcbitcdFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XG4rXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmNcbmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXG5AQCAtOTIsMjMgKzkyLDE4IEBAIHZvaWQgbWx4NV9zdF9kZXN0cm95KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG4gXHRrZnJlZShzdCk7XG4gfVxuIFxuLWludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuLVx0XHRcdHVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KVxuK2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxuK1x0XHRcdCAgICAgICB1MTYgKnN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbiBcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbiBcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XG4gXHR1MzIgeGFfaWQ7XG4tXHR1MTYgdGFnO1xuLVx0aW50IHJldDtcbitcdGludCByZXQgPSAwO1xuIFxuIFx0aWYgKCFzdClcbiBcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIFxuLVx0cmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFx1MDAyNnRhZyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuIFx0aWYgKHN0LVx1MDAzZWRpcmVjdF9tb2RlKSB7XG4gXHRcdCpzdF9pbmRleCA9IHRhZztcbiBcdFx0cmV0dXJuIDA7XG5AQCAtMTUyLDggKzE0Nyw0NiBAQCBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbiBcdG11dGV4X3VubG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiBcdHJldHVybiByZXQ7XG4gfVxuK0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTtcbitcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbitcdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbit7XG4rXHR1MTYgdGFnO1xuK1x0aW50IHJldDtcbitcbitcdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVx1MDAzZXBkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCBcdTAwMjZ0YWcpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbitcdHJldHVybiBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYsIHRhZywgc3RfaW5kZXgpO1xuK31cbiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4KTtcbiBcbitpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbitcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbitcdGludCByZXQgPSAwO1xuK1xuK1x0aWYgKCFzdClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKHN0LVx1MDAzZWRpcmVjdF9tb2RlKVxuK1x0XHRyZXR1cm4gMDtcbitcbitcdG11dGV4X2xvY2soXHUwMDI2c3QtXHUwMDNlbG9jayk7XG4rXHRpZHhfZGF0YSA9IHhhX2xvYWQoXHUwMDI2c3QtXHUwMDNlaWR4X3hhLCBzdF9pbmRleCk7XG4rXHRpZiAoV0FSTl9PTl9PTkNFKCFpZHhfZGF0YSkpXG4rXHRcdHJldCA9IC1FSU5WQUw7XG4rXHRlbHNlXG4rXHRcdHJlZmNvdW50X2luYyhcdTAwMjZpZHhfZGF0YS1cdTAwM2V1c2Vjb3VudCk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2c3QtXHUwMDNlbG9jayk7XG4rXG4rXHRyZXR1cm4gcmV0O1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2dldF9pbmRleCk7XG4rXG4gaW50IG1seDVfc3RfZGVhbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXG4ge1xuIFx0c3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3RwaC5jIGIvZHJpdmVycy9wY2kvdHBoLmNcbmluZGV4IDY1NWZmZDYwZTYyZjZhLi5lNzY5M2ZkOWQ2NzYzNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGNpL3RwaC5jXG4rKysgYi9kcml2ZXJzL3BjaS90cGguY1xuQEAgLTE3Myw2ICsxNzMsNTEgQEAgdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gfVxuIEVYUE9SVF9TWU1CT0wocGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyk7XG4gXG4rLyoqXG4rICogcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJ3MgZW5hYmxlZCBUUEggcmVxdWVzdGVyIHR5cGVcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuKyAqXG4rICogUmV0dXJuOiBQQ0lfVFBIX1JFUV9ESVNBQkxFLCBQQ0lfVFBIX1JFUV9UUEhfT05MWSBvciBQQ0lfVFBIX1JFUV9FWFRfVFBILlxuKyAqL1xuK3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4re1xuK1x0cmV0dXJuIHBkZXYtXHUwMDNldHBoX3JlcV90eXBlO1xuK31cbitFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuK1xuKy8qKlxuKyAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBUUEggQ29tcGxldGVyIHN1cHBvcnRcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuKyAqXG4rICogUmVhZHMgdGhlIFwiVFBIIENvbXBsZXRlciBTdXBwb3J0ZWRcIiBmaWVsZCAoYml0cyAxMzoxMikgb2YgRGV2aWNlXG4rICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXG4rICogXCJub3Qgc3VwcG9ydGVkXCIgc28gY2FsbGVycyBvbmx5IG5lZWQgdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSB0aHJlZVxuKyAqIGRlZmluZWQgdmFsdWVzLlxuKyAqXG4rICogUmV0dXJuOiBvbmUgb2YgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FLFxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWSBvclxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBILlxuKyAqL1xuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3tcbitcdHUzMiByZWc7XG4rXG4rXHRpZiAocGNpZV9jYXBhYmlsaXR5X3JlYWRfZHdvcmQocGRldiwgUENJX0VYUF9ERVZDQVAyLCBcdTAwMjZyZWcpKVxuK1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4rXHRpZiAoUENJX1BPU1NJQkxFX0VSUk9SKHJlZykpXG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcbitcbitcdHN3aXRjaCAoRklFTERfR0VUKFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9NQVNLLCByZWcpKSB7XG4rXHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTpcbitcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTtcbitcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg6XG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSDtcbitcdGRlZmF1bHQ6XG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcbitcdH1cbit9XG4rRVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XG4rXG4gLypcbiAgKiBSZXR1cm4gdGhlIHNpemUgb2YgU1QgdGFibGUuIElmIFNUIHRhYmxlIGlzIG5vdCBpbiBUUEggUmVxdWVzdGVyIEV4dGVuZGVkXG4gICogQ2FwYWJpbGl0eSBzcGFjZSwgcmV0dXJuIDAuIE90aGVyd2lzZSByZXR1cm4gdGhlIFNUIFRhYmxlIFNpemUgKyAxLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcbmluZGV4IGEyOGYxZTk5MzYyYzFlLi5jN2Q2OTAyYmM2MWIwNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xuQEAgLTE1NzIsNiArMTU3Miw5IEBAIGludCB2ZmlvX3BjaV9jb3JlX2lvY3RsX2ZlYXR1cmUoc3RydWN0IHZmaW9fZGV2aWNlICpkZXZpY2UsIHUzMiBmbGFncyxcbiBcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV90b2tlbih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7XG4gXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRjpcbiBcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHZkZXYsIGZsYWdzLCBhcmcsIGFyZ3N6KTtcbitcdGNhc2UgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSDpcbitcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCh2ZGV2LCBmbGFncywgYXJnLFxuK1x0XHRcdFx0XHRcdFx0IGFyZ3N6KTtcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiAtRU5PVFRZO1xuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG5pbmRleCBjMTZmNDYwYzAxZDY4MS4uNTM1MTgzOWMxMzM4YWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG5AQCAtMyw2ICszLDcgQEBcbiAgKi9cbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLW1hcHBpbmcuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS1wMnBkbWEuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcInZmaW9fcGNpX3ByaXYuaFwiXG5AQCAtMTksNyArMjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xuIFx0dTMyIG5yX3JhbmdlcztcbiBcdHN0cnVjdCBrcmVmIGtyZWY7XG4gXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xuLVx0dTggcmV2b2tlZCA6IDE7XG4rXG4rXHQvKlxuK1x0ICogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgZG1hYnVmLVx1MDAzZXJlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseVxuK1x0ICogcHJvdGVjdGVkIGJ5IG1lbW9yeV9sb2NrLlxuK1x0ICovXG4rXHR1MTYgdHBoX3N0X2V4dDtcbitcdHU4IHRwaF9zdDtcbitcdGJvb2wgcmV2b2tlZDtcbitcdHU4IHRwaF9zdF92YWxpZDoxO1xuK1x0dTggdHBoX3N0X2V4dF92YWxpZDoxO1xuK1x0dTggdHBoX3BoOjI7XG4gfTtcbiBcbiBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG5AQCAtMzAsNyArNDEsNyBAQCBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRpZiAoIWF0dGFjaG1lbnQtXHUwMDNlcGVlcjJwZWVyKVxuIFx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gXG4tXHRpZiAocHJpdi1cdTAwM2VyZXZva2VkKVxuK1x0aWYgKFJFQURfT05DRShwcml2LVx1MDAzZXJldm9rZWQpKVxuIFx0XHRyZXR1cm4gLUVOT0RFVjtcbiBcbiBcdGlmICghZG1hX2J1Zl9hdHRhY2hfcmV2b2NhYmxlKGF0dGFjaG1lbnQpKVxuQEAgLTY5LDYgKzgwLDI2IEBAIHZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbitzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbit7XG4rXHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi1cdTAwM2Vwcml2O1xuK1xuK1x0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVx1MDAzZXJlc3YpO1xuK1xuK1x0aWYgKGV4dGVuZGVkKSB7XG4rXHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfZXh0X3ZhbGlkKVxuK1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbitcdFx0KnN0ZWVyaW5nX3RhZyA9IHByaXYtXHUwMDNldHBoX3N0X2V4dDtcbitcdH0gZWxzZSB7XG4rXHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfdmFsaWQpXG4rXHRcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0XHQqc3RlZXJpbmdfdGFnID0gcHJpdi1cdTAwM2V0cGhfc3Q7XG4rXHR9XG4rXHQqcGggPSBwcml2LVx1MDAzZXRwaF9waDtcbitcdHJldHVybiAwO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4gXHRcdFx0XHQgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCxcbiBcdFx0XHRcdCAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcilcbkBAIC0xMDEsNiArMTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpXG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xuIFx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxuK1x0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbiBcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuIFx0LnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLFxuIFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXG5AQCAtMzMzLDYgKzM2NSw3MiBAQCBpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbitcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbitcdFx0XHRcdCAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuK1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KVxuK3tcbitcdHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHNldF90cGg7XG4rXHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdjtcbitcdHN0cnVjdCBkbWFfYnVmICpkbWFidWY7XG4rXHR1OCBjb21wO1xuK1x0aW50IHJldDtcbitcbitcdGNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LVx1MDAzZXBkZXYpO1xuK1x0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXG4rXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbitcbitcdHJldCA9IHZmaW9fY2hlY2tfZmVhdHVyZShmbGFncywgYXJnc3osIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VULFxuK1x0XHRcdFx0IHNpemVvZihzZXRfdHBoKSk7XG4rXHRpZiAocmV0ICE9IDEpXG4rXHRcdHJldHVybiByZXQ7XG4rXG4rXHRpZiAoY29weV9mcm9tX3VzZXIoXHUwMDI2c2V0X3RwaCwgYXJnLCBzaXplb2Yoc2V0X3RwaCkpKVxuK1x0XHRyZXR1cm4gLUVGQVVMVDtcbitcbitcdGlmIChzZXRfdHBoLmZsYWdzIFx1MDAyNiB+KFZGSU9fRE1BX0JVRl9UUEhfU1QgfCBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aWYgKHNldF90cGgucGggXHUwMDI2IH4weDMpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aWYgKChzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkgXHUwMDI2XHUwMDI2XG4rXHQgICAgY29tcCAhPSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0ZG1hYnVmID0gZG1hX2J1Zl9nZXQoc2V0X3RwaC5kbWFidWZfZmQpO1xuK1x0aWYgKElTX0VSUihkbWFidWYpKVxuK1x0XHRyZXR1cm4gUFRSX0VSUihkbWFidWYpO1xuK1xuK1x0aWYgKGRtYWJ1Zi1cdTAwM2VvcHMgIT0gXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xuK1x0XHRyZXQgPSAtRUlOVkFMO1xuK1x0XHRnb3RvIG91dF9wdXQ7XG4rXHR9XG4rXG4rXHRwcml2ID0gZG1hYnVmLVx1MDAzZXByaXY7XG4rXHRpZiAocHJpdi1cdTAwM2V2ZGV2ICE9IHZkZXYpIHtcbitcdFx0cmV0ID0gLUVJTlZBTDtcbitcdFx0Z290byBvdXRfcHV0O1xuK1x0fVxuK1xuK1x0cmV0ID0gZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbitcdGlmIChyZXQpXG4rXHRcdGdvdG8gb3V0X3B1dDtcbitcbitcdHByaXYtXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcbitcdHByaXYtXHUwMDNldHBoX3N0X2V4dCAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZ19leHQ7XG4rXHRwcml2LVx1MDAzZXRwaF9waCAgICAgICAgID0gc2V0X3RwaC5waDtcbitcdHByaXYtXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUKTtcbitcdHByaXYtXHUwMDNldHBoX3N0X2V4dF92YWxpZCA9XG4rXHRcdCEhKHNldF90cGguZmxhZ3MgXHUwMDI2IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKTtcbitcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4rXHRyZXQgPSAwO1xuK1xuK291dF9wdXQ6XG4rXHRkbWFfYnVmX3B1dChkbWFidWYpO1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX21vdmUoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCBib29sIHJldm9rZWQpXG4ge1xuIFx0c3RydWN0IHZmaW9fcGNpX2RtYV9idWYgKnByaXY7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmggYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaFxuaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXG5AQCAtMTE4LDYgKzExOCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdmZpb19wY2lfaXNfdmdhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIGludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbiBcdFx0XHRcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1ZiBfX3VzZXIgKmFyZyxcbiBcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KTtcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbitcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbitcdFx0XHRcdCAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuK1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcbiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfY2xlYW51cChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYpO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTtcbiAjZWxzZVxuQEAgLTEyOCw2ICsxMzIsMTQgQEAgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4ge1xuIFx0cmV0dXJuIC1FTk9UVFk7XG4gfVxuK1xuK3N0YXRpYyBpbmxpbmUgaW50XG4rdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuK1x0XHRcdFx0ICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcbitcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KVxuK3tcbitcdHJldHVybiAtRU5PVFRZO1xuK31cbiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldilcbiB7XG4gfVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmhcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxuQEAgLTExMyw2ICsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHtcbiBcdCAqL1xuIFx0dm9pZCAoKnVucGluKShzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIFxuK1x0LyoqXG4rXHQgKiBAZ2V0X3BjaV90cGg6XG4rXHQgKlxuK1x0ICogUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIHN0ZWVyaW5nIG1ldGFkYXRhIGZvclxuK1x0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXG4rXHQgKiBvdXRib3VuZCBUTFBzIHRhcmdldGluZyB0aGUgZXhwb3J0ZXIgZm9yIHBlZXItdG8tcGVlciBETUEuXG4rXHQgKlxuK1x0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXG4rXHQgKiBAZXh0ZW5kZWQ6IGZhbHNlIGZvciA4LWJpdCBTVCwgdHJ1ZSBmb3IgMTYtYml0IEV4dGVuZGVkIFNUXG4rXHQgKiBAc3RlZXJpbmdfdGFnOiBSZXR1cm5zIHRoZSByYXcgVFBIIHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZFxuK1x0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXG4rXHQgKiBAcGg6IFJldHVybnMgdGhlIFRQSCBwcm9jZXNzaW5nIGhpbnQgKDItYml0IHZhbHVlKVxuK1x0ICpcbitcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG4rXHQgKiBcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxuK1x0ICogdGhlIGV4cG9ydGVyIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBuYW1lc3BhY2UuXG4rXHQgKlxuK1x0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcbitcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cbitcdCAqL1xuK1x0aW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG4rXHRcdFx0ICAgdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XG4rXG4gXHQvKipcbiBcdCAqIEBtYXBfZG1hX2J1ZjpcbiBcdCAqXG5AQCAtNTYzLDYgKzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcbiBcdFx0ICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4gaW50IGRtYV9idWZfcGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4gdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiBcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcbiBcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxuKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oXG5AQCAtMTE4MiwxNiArMTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZVxuIFx0XHRcdCAgIHU2NCBsZW5ndGgsIHUxNiB1aWQsIHBoeXNfYWRkcl90IGFkZHIsIHUzMiBvYmpfaWQpO1xuIFxuICNpZmRlZiBDT05GSUdfUENJRV9UUEhcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZyxcbitcdFx0XHQgICAgICAgdTE2ICpzdF9pbmRleCk7XG4raW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XG4gaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSB0cGhfbWVtX3R5cGUgbWVtX3R5cGUsXG4gXHRcdFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpO1xuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTtcbiAjZWxzZVxuK3N0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4rXHRcdFx0XHRcdCAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleClcbit7XG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK1xuK3N0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbit7XG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK1xuIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXG4ge1xuIFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIH1cbitcbiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuIHtcbiBcdHJldHVybiAtRU9QTk9UU1VQUDtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaCBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXG5pbmRleCBiZTY4Y2QxN2YyZjgzMy4uNzc0M2FmNmZlNDMyNmUgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxuKysrIGIvaW5jbHVkZS9saW51eC9wY2ktdHBoLmhcbkBAIC05LDYgKzksOCBAQFxuICNpZm5kZWYgTElOVVhfUENJX1RQSF9IXG4gI2RlZmluZSBMSU5VWF9QQ0lfVFBIX0hcbiBcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2lfcmVncy5oXHUwMDNlXG4rXG4gLypcbiAgKiBBY2NvcmRpbmcgdG8gdGhlIEVDTiBmb3IgUENJIEZpcm13YXJlIFNwZWMsIFN0ZWVyaW5nIFRhZyBjYW4gYmUgZGlmZmVyZW50XG4gICogZGVwZW5kaW5nIG9uIHRoZSBtZW1vcnkgdHlwZTogVm9sYXRpbGUgTWVtb3J5IG9yIFBlcnNpc3RlbnQgTWVtb3J5LiBXaGVuIGFcbkBAIC0zMCw2ICszMiw4IEBAIHZvaWQgcGNpZV9kaXNhYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpO1xuIHUxNiBwY2llX3RwaF9nZXRfc3RfdGFibGVfc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuK3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiAjZWxzZVxuIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX3NldF9zdF9lbnRyeShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbiBcdFx0XHRcdFx0dW5zaWduZWQgaW50IGluZGV4LCB1MTYgdGFnKVxuQEAgLTQxLDYgKzQ1LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX2dldF9jcHVfc3Qoc3RydWN0IHBjaV9kZXYgKmRldixcbiBzdGF0aWMgaW5saW5lIHZvaWQgcGNpZV9kaXNhYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldikgeyB9XG4gc3RhdGljIGlubGluZSBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSlcbiB7IHJldHVybiAtRUlOVkFMOyB9XG4rc3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3sgcmV0dXJuIFBDSV9UUEhfUkVRX0RJU0FCTEU7IH1cbitzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3sgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4gI2VuZGlmXG4gXG4gI2VuZGlmIC8qIExJTlVYX1BDSV9UUEhfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5AQCAtMTUzNCw2ICsxNTM0LDQ5IEBAIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYge1xuICAqL1xuICNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9NSUdfUFJFQ09QWV9JTkZPdjIgIDEyXG4gXG4rLyoqXG4rICogVXBvbiBWRklPX0RFVklDRV9GRUFUVVJFX1NFVCBhc3NvY2lhdGUgVFBIIChUTFAgUHJvY2Vzc2luZyBIaW50cykgbWV0YWRhdGFcbisgKiB3aXRoIGEgdmZpby1leHBvcnRlZCBkbWEtYnVmLiBUaGUgZG1hLWJ1ZiBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5XG4rICogVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGIG9uIHRoaXMgZGV2aWNlLCBhbmQgdGhlIGRldmljZSBtdXN0IHJlcG9ydFxuKyAqIFRQSCBDb21wbGV0ZXIgc3VwcG9ydCBpbiBEZXZpY2UgQ2FwYWJpbGl0aWVzIDIgKGJpdHMgMTM6MTIpOyByZXF1ZXN0c1xuKyAqIGNhcnJ5aW5nIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIGFkZGl0aW9uYWxseSByZXF1aXJlIHRoZSBkZXZpY2UgdG9cbisgKiByZXBvcnQgdGhlIEV4dGVuZGVkIFRQSCBDb21wbGV0ZXIgZW5jb2RpbmcuIE90aGVyd2lzZSB0aGUgaW9jdGxcbisgKiByZXR1cm5zIC1FT1BOT1RTVVBQLlxuKyAqXG4rICogQGRtYWJ1Zl9mZCBpcyB0aGUgZmlsZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRi5cbisgKlxuKyAqIDgtYml0IFNUIChAc3RlZXJpbmdfdGFnKSBhbmQgMTYtYml0IEV4dGVuZGVkIFNUIChAc3RlZXJpbmdfdGFnX2V4dCkgYXJlXG4rICogZGlzdGluY3QgbmFtZXNwYWNlcy4gQGZsYWdzIGlzIHRoZSBhdXRob3JpdGF0aXZlIHZhbGlkaXR5IG1hc2sgZm9yIHRoZVxuKyAqIHR3byBuYW1lc3BhY2VzOiBWRklPX0RNQV9CVUZfVFBIX1NUIG1hcmtzIEBzdGVlcmluZ190YWcgdmFsaWQgYW5kXG4rICogVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQgbWFya3MgQHN0ZWVyaW5nX3RhZ19leHQgdmFsaWQuIEFuIGltcG9ydGVyXG4rICogcmVxdWVzdHMgb25lIG5hbWVzcGFjZSBhbmQgcmVjZWl2ZXMgdGhlIG1hdGNoaW5nIHZhbHVlLlxuKyAqXG4rICogRWFjaCBTRVQgZnVsbHkgcmVwbGFjZXMgdGhlIGRtYS1idWYncyBUUEggc3RhdGUgZm9yIGZ1dHVyZSBxdWVyaWVzXG4rICogb25seS4gQSBuYW1lc3BhY2Ugd2hvc2UgZmxhZyBiaXQgaXMgY2xlYXIgaXMgcmVwb3J0ZWQgYXMgdW5zdXBwb3J0ZWRcbisgKiB0byBmdXR1cmUgaW1wb3J0ZXJzOyBhbiBpbXBvcnRlciB0aGF0IGhhcyBhbHJlYWR5IHJldHJpZXZlZCBhIHZhbHVlXG4rICogaXMgdW5hZmZlY3RlZC4gQGZsYWdzID09IDAgbGVhdmVzIGJvdGggbmFtZXNwYWNlcyB1bnN1cHBvcnRlZCBmb3JcbisgKiBmdXR1cmUgaW1wb3J0ZXJzLlxuKyAqXG4rICogQHBoIGlzIHRoZSAyLWJpdCBUTFAgUHJvY2Vzc2luZyBIaW50IGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwgM10uXG4rICpcbisgKiBVbmRlZmluZWQgQGZsYWdzIGFuZCBAcGggYml0cyBtdXN0IGFsd2F5cyBiZSB6ZXJvLlxuKyAqXG4rICogVXNlcnNwYWNlIG11c3QgY29uZmlndXJlIFRQSCBiZWZvcmUgaGFuZGluZyB0aGUgZG1hLWJ1ZiBmZCB0byBhblxuKyAqIGltcG9ydGVyLlxuKyAqL1xuKyNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCAxM1xuK1xuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVFx0XHQoMSBcdTAwM2NcdTAwM2MgMClcbisjZGVmaW5lIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUXHRcdCgxIFx1MDAzY1x1MDAzYyAxKVxuK1xuK3N0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHtcbitcdF9fczMyXHRkbWFidWZfZmQ7XG4rXHRfX3UzMlx0ZmxhZ3M7XG4rXHRfX3UxNlx0c3RlZXJpbmdfdGFnX2V4dDtcbitcdF9fdThcdHN0ZWVyaW5nX3RhZztcbitcdF9fdThcdHBoO1xuK307XG4rXG4gLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovXG4gXG4gLyoqXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OToxNi4zMDM4NTkxMTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDI0NjE0NjE3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyBQQ0llIFRQSCBTdXBwb3J0IGluIFZGSU8gYW5kIERNQS1CVUYqKlxuXG5Pa2F5LCBzbyB3ZSBoYXZlIHRoaXMgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgc3VwcG9ydCB0byBETUEtQlVGIGFuZCBWRklPLiBJdCB0b3VjaGVzIGEgYnVuY2ggb2YgZHJpdmVycywgaW5jbHVkaW5nIHNvbWUgY29yZSBETUEtQlVGIGFuZCBWRklPIGNvZGUsIGFsb25nIHdpdGggc29tZSBNZWxsYW5veCAobWx4NSkgYW5kIFBDSWUtc3BlY2lmaWMgc3R1ZmYuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkNhbiB3ZSByZWFjaCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBjYW4gd2UgKmZ1enoqIGl0P1wiLlxuXG5WRklPIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBhbmQgRE1BLUJVRiBpcyB0b28sIHNvIHRoYXQncyBnb29kLiBCdXQgVFBIIHN1cHBvcnQgaXRzZWxmIGhpbmdlcyBvbiB0aGUgUENJZSBkZXZpY2UgYWN0dWFsbHkgKmhhdmluZyogdGhlIFRQSCBjYXBhYmlsaXR5LiBUaGlzIGNhbiBiZSBlbXVsYXRlZCBvciBub3QsIGFuZCB0aGF0J3MgdGhlIGtleSBxdWVzdGlvbiBoZXJlLiBUaGUgYFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEhgIGlvY3RsIHNlZW1zIGxpa2Ugb3VyIGVudHJ5IHBvaW50LiBBbmQgYWZ0ZXIgbG9va2luZyBhdCB0aGUgY29kZSBpbiBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCB3aGljaCB1c2VzIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAsIEkgY2FuIHNlZSBhIHBhdGgsIG9yIG1vcmUgc3BlY2lmaWNhbGx5LCBhIHBvdGVudGlhbCBibG9ja2VyLlxuXG5gcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGNoZWNrcyBgUENJX0VYUF9ERVZDQVAyYCBmb3IgdGhlIFRQSCBjb21wbGV0ZXIuIElmIHRoZSB2aXJ0dWFsIGRldmljZSAqZG9lc24ndCogaGF2ZSB0aGF0IGNhcGFiaWxpdHksIHRoZSBmdW5jdGlvbiByZXR1cm5zIGAtRU9QTk9UU1VQUGAuIFRoYXQgbWVhbnMgd2Ugd2lsbCBvbmx5IGZ1enogdGhlIGxpbmVzIGJlZm9yZSB0aGlzIGNoZWNrLlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBpcywgZG9lcyBRRU1VIChvciB3aGF0ZXZlciB2aXJ0dWFsaXphdGlvbiB3ZSdyZSB1c2luZykgKmVtdWxhdGUqIFRQSCBjYXBhYmlsaXR5PyBJZiBub3QsIHdlJ2xsIG9ubHkgaGl0IHRoYXQgZWFybHkgYC1FT1BOT1RTVVBQYCByZXR1cm4uIEV2ZW4gaWYgaXQgKmRvZXMqIHJldHVybiBhbiBlcnJvciwgdGhhdCBjb2RlIHBhdGggaXMgc3RpbGwgcmVhY2hhYmxlLlxuXG5Mb29raW5nIGJleW9uZCB0aGUgY2hlY2ssIHRoZXJlJ3MgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGFkZGVkLCBhbmQgc29tZSBgbWx4NWAgZHJpdmVyIGNoYW5nZXMuIEhvd2V2ZXIsIEkgcmFyZWx5IGZ1enogaGFyZHdhcmUgZHJpdmVycyB1bmxlc3MgdGhleSBoYXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBhbmQgbWx4NSBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhbnkgaW4gdGhpcyBjb250ZXh0LlxuXG5TbywgbGV0J3MgZm9jdXMgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIElmIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZmFpbHMsIHdlJ3JlIG9ubHkgZ29pbmcgdG8gZnV6eiBhIGNvdXBsZSBvZiBsaW5lcywgd2hpY2ggaXNuJ3QgaWRlYWwuIFRoZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGZ1bmN0aW9uIGl0c2VsZiBsb29rcyBsaWtlIGl0J3MgcmVhZGluZyB0aGUgYFBDSV9FWFBfREVWQ0FQMmAgcmVnaXN0ZXIgYW5kIGV4dHJhY3RpbmcgdGhlIFRQSCBjb21wbGV0ZXIgdHlwZS4gXG5cbklzIHRoZXJlIGV2ZW4gYSAqc29mdHdhcmUtZW11bGF0ZWQqIFBDSSBkZXZpY2Ugd2l0aCBUUEggY2FwYWJpbGl0eT8gUHJvYmFibHkgbm90IGJ5IGRlZmF1bHQuIFN5emthbGxlciwgd2l0aCBpdHMgYHN5el9wY2lfZGV2aWNlX2FkZGAgb3Igc2ltaWxhciBtZWNoYW5pc21zLCAqbWlnaHQqIGFsbG93IHVzIHRvIGluamVjdCBvbmUsIGJ1dCBJIG5lZWQgdG8gY29uZmlybSBpZiBpdCBzdXBwb3J0cyB0aGF0LiBPciBtYXliZSB2Z2VtPyBObywgdmdlbSBpc24ndCBQQ0kuXG5cbkhhbmcgb24uIFN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X2t2bV9zZXR1cF9jcHVgIGV0Yy4gQnV0IGhvdyBpcyBWRklPIGFjdHVhbGx5IGZ1enplZD8gQnkgb3BlbmluZyBgL2Rldi92ZmlvL2AgYW5kIHVzaW5nIHdoYXRldmVyIGR1bW15IFBDSSBkZXZpY2UgaXMgYXZhaWxhYmxlLiBCdXQgYWdhaW4sIHRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUgVFBILCB3ZSBoaXQgYC1FT1BOT1RTVVBQYC5cblxuT2theSwgYnV0IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgICppcyogYSBuZXcgaW9jdGwsIGFuZCB0aGF0J3MgdGhlIGNvcmUgZm9jdXMgaGVyZS5cblxuQWxyaWdodCwgd2hhdCBhYm91dCBjb25maWcgb3B0aW9ucz8gTGV0J3MgcXVpY2tseSBjaGVjayBpZiBgQ09ORklHX1BDSUVfVFBIYCBpcyByZXF1aXJlZC4gSXQgbG9va3MgbGlrZSBpdCAqaXMqIHVzZWQgaW4gYm90aCBgaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oYCBhbmQgYGluY2x1ZGUvbGludXgvcGNpLXRwaC5oYCwgYW5kIHRoYXQgaXMgYW4gaW1wb3J0YW50IGNvbmZpZyBvcHRpb24gdG8ga2VlcCBpbiBtaW5kLiBXZSBtaWdodCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbmZpZyBvcHRpb24gaXMgZW5hYmxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI5OTAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjMyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6MzAuNTUwMDA5NzMxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMzEyMjAzMTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUENJRV9UUEhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjc2OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdD0zOT1FbmFibGUgVFBIIHN1cHBvcnQgaW4gTGludXhcXG4tLVxcbkRvY3VtZW50YXRpb24vUENJL3RwaC5yc3QtNDEtXFxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdDo0MjpUbyBzdXBwb3J0IFRQSCwgdGhlIGtlcm5lbCBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIENPTkZJR19QQ0lFX1RQSCBvcHRpb25cXG5Eb2N1bWVudGF0aW9uL1BDSS90cGgucnN0LTQzLWVuYWJsZWQuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNTI3MC1cXHRcXHRcXHRcXHRvbmUgUENJIGRvbWFpbiBwZXIgUENJIGZ1bmN0aW9uXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQ6NTI3MTpcXHRcXHRub3RwaFxcdFxcdFtQQ0lFXSBJZiB0aGUgUENJRV9UUEgga2VybmVsIGNvbmZpZyBwYXJhbWV0ZXJcXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC01MjcyLVxcdFxcdFxcdFxcdGlzIGVuYWJsZWQsIHRoaXMga2VybmVsIGJvb3Qgb3B0aW9uIGNhbiBiZSB1c2VkXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwNS0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwNjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwNzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwODojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwOS0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmgtMTg0NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oLTE4NjctI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oLTM2MC0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oLTM2NC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmgtMjA4MC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDkwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDkyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oLTIxMDMtI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzMC0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzNC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmgtMTk0Ni0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NDg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NDk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oLTE5NjktI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaC0xODYtI2RlZmluZSBjZmdQQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYgLy8gZHVwbGljYXRlIFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oOjE4NzojZGVmaW5lIGNmZ1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMCAvLyBkdXBsaWNhdGUgXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0Lmg6MTg4OiNkZWZpbmUgY2ZnUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU0IC8vIGR1cGxpY2F0ZSBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaDoxODk6I2RlZmluZSBjZmdQQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTggLy8gZHVwbGljYXRlIFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oLTE5MC0jZGVmaW5lIGNmZ1BDSUVfTUNfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMCAvLyBkdXBsaWNhdGUgXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNzI1LSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyNjovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyNzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyOTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMwOi8vUENJRV9UUEhfUkVRUl9DQVBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczMjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3MzM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3MzY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNzovL1BDSUVfVFBIX1JFUVJfQ05UTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mzg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTc0MC0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNTg1NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NTovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NTY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NTk6Ly9QQ0lFX1RQSF9SRVFSX0NBUFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUxcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkYwMDAwTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODY2Oi8vUENJRV9UUEhfUkVRUl9DTlRMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODY4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNTg2OS0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtODIwLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjgyMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6ODIzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTgyNC0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTExNzItI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTE3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxMTc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjExNzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTE3Ni0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NTctI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Njk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Nzg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTIyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyNDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTI1LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE2NTEtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjUzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Njk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Nzg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNzE5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTI5OTUtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mjk5NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoyOTk3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjI5OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMjk5OS0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTMzNDctI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzM0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozMzQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjMzNTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzM1MS0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM2MzItI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzMzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zNzAwLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM4MjYtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgyNzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODI4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mjk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODMxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzNjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zODk0LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzA5LSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzExOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzEzLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX0RMRl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjEtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjUtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTM0Ni0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9BUklfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTozMy42ODEyNDAxODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTg2NzA0MjQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ09ORklHX1BDSUVfVFBIIFJlcXVpcmVtZW50KipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBleHBsaWNpdGx5IGVuYWJsZSBgQ09ORklHX1BDSUVfVFBIYCBmb3IgdGhpcyB0ZXN0aW5nLiBUaGUgcHJvbXB0IGlzIHZlcnkgY2xlYXI6IGF2b2lkIGFzc3VtcHRpb25zLCBkaWcgaW50byB0aGUgS2NvbmZpZyBmaWxlcywgYW5kIG9ubHkgbGlzdCBzcGVjaWZpYyBjb25maWdzIHJlbGF0ZWQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIFRoZSBpbnN0cnVjdGlvbnMgYWxzbyBzcGVjaWZ5ICpub3QqIGFkZGluZyBcIkNPTkZJR19cIiB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIG91dHB1dC5cblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBJJ2xsIG5lZWQgdG8gY29uZmlybSBpZiBgQ09ORklHX1BDSUVfVFBIYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgaXQgbmVlZHMgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkLiBUaGUgcGxhY2UgdG8gc3RhcnQgbG9va2luZyBpcywgYXMgdGhlIGluc3RydWN0aW9ucyBzdGF0ZSwgYGRyaXZlcnMvcGNpL0tjb25maWdgLiBMZXQncyBkaXZlIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTEwMywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTozOC42Njc5NDc1MzVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1MjQzNzQ4MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUENJRV9UUEhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wY2kvS2NvbmZpZz0xODU9Y29uZmlnIFBDSV9QQVNJRFxcbi0tXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTYtXFxuZHJpdmVycy9wY2kvS2NvbmZpZzoxOTc6Y29uZmlnIFBDSUVfVFBIXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVExQIFByb2Nlc3NpbmcgSGludHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjQxLjAyMDM5OTg0NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjU1NTY5NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gUENJIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHNvbWUgUENJIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvcGNpL0tjb25maWdgIGFyb3VuZCBsaW5lIDE5Ny4gVGhpcyBsaWtlbHkgY2VudGVycyBvbiBhIGdyb3VwIG9mIHJlbGF0ZWQgb3B0aW9ucywgcHJvYmFibHkgd2l0aGluIGEgZGVmaW5lZCBcIm1lbnVcIiBvciBibG9jaywgZ2l2ZW4gdGhlIGBLY29uZmlnYCBmaWxlIHN0cnVjdHVyZS4gSSdtIGd1ZXNzaW5nIHRoYXQgbGluZSBudW1iZXIgaXMgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IGZvciBhIHBhcnRpY3VsYXIgc2V0IG9mIGZlYXR1cmVzLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCBob3cgY2VydGFpbiBQQ0ktcmVsYXRlZCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgcG9zc2libHkgZGVwZW5kZW50IG9uIGhhcmR3YXJlLCBvdGhlciBrZXJuZWwgY29uZmlndXJhdGlvbnMsIG9yIHNwZWNpZmljIHVzZS1jYXNlcy4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgcGljdHVyZSBvZiB0aG9zZSBkZXBlbmRlbmNpZXMuIEknbSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBzdGF0ZW1lbnRzLCBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW5kIG1heWJlIHNvbWUgaGVscCB0ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTUzMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjQ1LjY4NTk1OTQ4M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk1NjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvcGNpL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTkwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTkwOlxcdFxcdCAgdG8gYWNjZXNzIG1vcmUgdGhhbiBvbmUgSU8gYWRkcmVzcyBzcGFjZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBtYWtlXFxuIDE5MTpcXHRcXHQgIHVzZSBvZiB0aGlzIGZlYXR1cmUgYW4gSU9NTVUgaXMgcmVxdWlyZWQgd2hpY2ggYWxzbyBzdXBwb3J0cyBQQVNJRHMuXFxuIDE5MjpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBzdWNoIGFuIElPTU1VIGFuZCB3YW50IHRvIGNvbXBpbGUgdGhlXFxuIDE5MzpcXHRcXHQgIGRyaXZlciBmb3IgaXQgaW50byB5b3VyIGtlcm5lbC5cXG4gMTk0OlxcdFxcbiAxOTU6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAxOTY6XFx0XFxuIDE5NzpcXHRjb25maWcgUENJRV9UUEhcXG4gMTk4OlxcdFxcdGJvb2wgXFxcIlRMUCBQcm9jZXNzaW5nIEhpbnRzXFxcIlxcbiAxOTk6XFx0XFx0aGVscFxcbiAyMDA6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkuXFxuIDIwMTpcXHRcXHQgIFRQSCBhbGxvd3MgZW5kcG9pbnQgZGV2aWNlcyB0byBwcm92aWRlIG9wdGltaXphdGlvbiBoaW50cywgc3VjaCBhc1xcbiAyMDI6XFx0XFx0ICBkZXNpcmVkIGNhY2hpbmcgYmVoYXZpb3IsIGZvciByZXF1ZXN0cyB0aGF0IHRhcmdldCBtZW1vcnkgc3BhY2UuXFxuIDIwMzpcXHRcXHQgIFRoZXNlIGhpbnRzLCBjYWxsZWQgU3RlZXJpbmcgVGFncywgY2FuIGVtcG93ZXIgdGhlIHN5c3RlbSBoYXJkd2FyZVxcbiAyMDQ6XFx0XFx0ICB0byBvcHRpbWl6ZSB0aGUgdXRpbGl6YXRpb24gb2YgcGxhdGZvcm0gcmVzb3VyY2VzLlxcbiAyMDU6XFx0XFxuIDIwNjpcXHRjb25maWcgUENJX1AyUERNQVxcbiAyMDc6XFx0XFx0Ym9vbCBcXFwiUENJIHBlZXItdG8tcGVlciB0cmFuc2ZlciBzdXBwb3J0XFxcIlxcbiAyMDg6XFx0XFx0ZGVwZW5kcyBvbiBaT05FX0RFVklDRVxcbiAyMDk6XFx0XFx0I1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTo0NS42ODYwNTczODNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIxNzE5NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYFBDSUVfVFBIYCBDb25maWd1cmF0aW9uIE9wdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFBDSUVfVFBIYCBvcHRpb24uIFJpZ2h0IGF3YXksIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIG5lZWQgdG8gZXhwbGljaXRseSBpbmNsdWRlIHdpdGhpbiBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyBhIG5vLWJyYWluZXIuIEJ1dCBsZXQncyBwYXVzZS4gQXJlIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyBvcHRpb25zIGx1cmtpbmcgYXJvdW5kIHRoYXQgYXJlIHJlbGF0ZWQ/IFdlIG5lZWQgdG8gYmUgdGhvcm91Z2guXG5cblRoZSBjb2RlIHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgIGZpbGUuIFJpZ2h0LiBUaGF0IGZpbGUgaXMgY29tcGlsZWQgKm9ubHkqIGlmIGBDT05GSUdfVkZJT19QQ0lgIGlzIGVuYWJsZWQuIE1ha2VzIHNlbnNlLiBcblxuV2FpdCBhIG1pbnV0ZSwgSSBzZWUgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgYmVpbmcgYWRkZWQgdG8gYHZmaW9fcGNpX2RtYWJ1Zi5jYC4gT2ssIHNvIHRoZSBuZXh0IHRoaW5nIEkgbmVlZCB0byBkbywgYmVmb3JlIEkgZHJhdyBhbnkgY29uY2x1c2lvbnMsIGlzIGNoZWNrIGlmIGB2ZmlvX3BjaV9kbWFidWYuY2AgaXRzZWxmIGhhcyBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIE5lZWQgdG8gc2VlIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIGVsc2UgdGhhdCdzIHJlbGV2YW50IHRvIHVuZGVyc3RhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3JyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDgxLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6NDkuOTA3Nzc5MTYyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjExNjkyMTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZmaW9fcGNpX2RtYWJ1ZlxcXFwub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3ZmaW8vcGNpL01ha2VmaWxlPTQ9dmZpby1wY2ktY29yZS0kKENPTkZJR19WRklPX1BDSV9aREVWX0tWTSkgKz0gdmZpb19wY2lfemRldi5vXFxuZHJpdmVycy92ZmlvL3BjaS9NYWtlZmlsZTo1OnZmaW8tcGNpLWNvcmUtJChDT05GSUdfVkZJT19QQ0lfRE1BQlVGKSArPSB2ZmlvX3BjaV9kbWFidWYub1xcbmRyaXZlcnMvdmZpby9wY2kvTWFrZWZpbGUtNi1vYmotJChDT05GSUdfVkZJT19QQ0lfQ09SRSkgKz0gdmZpby1wY2ktY29yZS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjUyLjUxOTQ3ODk2NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTM5MDg3MzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHN1bW1hcml6aW5nIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgVkZJTyBQQ0kgRE1BQlVGIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYC4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgVkZJTyBhbmQgRE1BIGJ1ZmZlciBzdXBwb3J0LCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZS4gSSdtIHRoaW5raW5nLCBcIldoZXJlIHdvdWxkIHRoaXMgYmUgZGVmaW5lZD8gSXQncyBsaWtlbHkgaW4gdGhlIGBkcml2ZXJzL3ZmaW8vcGNpYCBkaXJlY3RvcnkuXCIgTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy92ZmlvL3BjaS9LY29uZmlnYCBmaWxlIGFuZCBjb25maXJtIHRoYXQgYFZGSU9fUENJX0RNQUJVRmAgaXMgYWN0dWFsbHkgZGVmaW5lZCB0aGVyZS4gVGhpcyBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcywgZGVmYXVsdCBzZXR0aW5ncywgYW5kIGFueSByZWxldmFudCBkb2N1bWVudGF0aW9uLiBUaGlzIGlzIHdoZXJlIEknZCBnbyB0byBmaW5kIG91dCB3aGF0IHRoaXMgb3B0aW9uICphY3R1YWxseSBkb2VzKiBpbiB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDYxOSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjU2LjA1ODU2ODYwNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY3NjgyMDQ2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVkZJT19QQ0lfRE1BQlVGXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZz00Nz1jb25maWcgVkZJT19QQ0lfWkRFVl9LVk1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWc6NTg6Y29uZmlnIFZGSU9fUENJX0RNQUJVRlxcbmRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZy01OS1cXHRkZWZfYm9vbCB5IGlmIFZGSU9fUENJX0NPUkUgXFx1MDAyNlxcdTAwMjYgUENJX1AyUERNQSBcXHUwMDI2XFx1MDAyNiBETUFfU0hBUkVEX0JVRkZFUlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTo1OC43MzUzOTk0NzJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1MjMzODIwNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFZGSU8gVFBIIEZ1bmN0aW9uYWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIGl0J3MgZnV6emFibGUgYW5kIHdoYXQgdG8gZm9jdXMgb24uIEZpcnN0LCBJIHNlZSB0aGF0IHRoZSBgZGVmX2Jvb2xgIGZvciBzb21ldGhpbmcgaXMgY29uZGl0aW9uYWwgb24gYFZGSU9fUENJX0NPUkUgXHUwMDI2XHUwMDI2IFBDSV9QMlBETUEgXHUwMDI2XHUwMDI2IERNQV9TSEFSRURfQlVGRkVSYC4gVGhpcyBwcm9iYWJseSBtZWFucyBJIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIGBQQ0lfUDJQRE1BYCBpcyBhIGJvb2xlYW4sIHNvIEkgc2hvdWxkIHByb2JhYmx5IGFkZCB0aGF0IHRvIG15IGBFbmFibGVDb25maWdzYCBqdXN0IHRvIGJlIHNhZmUuIEFuZCBhbHNvIGBQQ0lFX1RQSGAuXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVFBIIHRvIERNQS1CVUYgYW5kIFZGSU8uICBTcGVjaWZpY2FsbHksIHRoZXJlJ3MgYSBuZXcgYFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEhgIGlvY3RsLiBUaGUgY3JpdGljYWwgcXVlc3Rpb246IGlzIHRoaXMgaW9jdGwgcmVhY2hhYmxlIGJ5IHN5emthbGxlcj8gIFllcywgaXQgbG9va3MgbGlrZSBpdCdzIHJlYWNoYWJsZSB2aWEgdGhlIHVzdWFsIGAvZGV2L3ZmaW8vZGV2aWNlcy8uLi5gIG9yIGAvZGV2L3ZmaW8vdmZpb2AgaW9jdGxzLiBBbmQgSSdtIHByZXR0eSBzdXJlIHN5emthbGxlciBkb2VzIGluZGVlZCBmdXp6IFZGSU8gaW9jdGxzLiBTbywgdGhlIGlvY3RsIGhhbmRsZXIsIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS5cblxuVGhlIGNvZGUgY2FsbHMgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHZkZXYtXHUwMDNlcGRldilgLiBJZiB0aGUgdW5kZXJseWluZyBkZXZpY2UgZG9lc24ndCAqaGF2ZSogVFBIIGNhcGFiaWxpdGllcywgaXQgcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0J3MgaW1wb3J0YW50LiBOb3csIHRoZSBiaWcgcXVlc3Rpb24gaXM6IGNhbiBzeXprYWxsZXIgY3JlYXRlIGEgUENJIGRldmljZSB3aXRoICphcmJpdHJhcnkqIGNhcGFiaWxpdGllcz8gSWYgaXQgY2FuLCB0aGlzIGNvdWxkIGxlYWQgdG8gYSBkZWVwZXIgZGl2ZS4gSXQgZG9lc24ndCBsb29rIGxpa2Ugc3l6a2FsbGVyIGhhcyBhIGdlbmVyaWMgUENJIGRldmljZSBpbmplY3RvciBsaWtlIGBzeXpfcGNpX2RldmljZV9hZGRgLCB0aG91Z2ggSSdtIHZhZ3VlbHkgcmVtZW1iZXJpbmcgc29tZXRoaW5nIGFib3V0IGBzeXpfa3ZtX3NldHVwX2NwdWAsIGJ1dCBpdCBkb2Vzbid0IGxvb2sgbGlrZSBpdCBzdXBwb3J0cyB0aGlzLiBTbyBuby4gSXQgbWlnaHQgdXNlIHNvbWUgUUVNVSBwcm92aWRlZCBQQ0kgZGV2aWNlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIGlmIHRob3NlIGRldmljZXMgYXJlIGNhcGFibGUgb2YgVFBILiAgQnV0IGV2ZW4gaWYgaXQgKm9ubHkqIGhpdHMgdGhlIGAtRU9QTk9UU1VQUGAgcGF0aCwgaXQncyBzdGlsbCBleGVjdXRpbmcgZnVuY3Rpb25hbCBjb2RlIGFuZCBjb3VsZCBiZSBpbnRlcmVzdGluZy5cblxuT2theSwgbGV0J3Mgc3RlcCBiYWNrIGFuZCBiZSBzdXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgICppcyogcmVhY2hhYmxlLiBJdCdzIGhhbmRsZWQgYnkgYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgdmZpb19wY2lfY29yZV9pb2N0bGAgZm9yIGBWRklPX0RFVklDRV9GRUFUVVJFYC4gIFNvLCB5ZXMsIGl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUuXG5cbk5vdywgd2hpY2ggZnVuY3Rpb25zIGFyZSB0aGUga2V5IG9uZXMgdG8gZm9jdXMgb24gZm9yIGZ1enppbmc/IEZyb20gaGVyZSBpdCBsb29rcyBsaWtlOlxuXG4qICAgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGBcbiogICBgZG1hX2J1Zl9nZXRfcGNpX3RwaGBcbiogICBgcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZWBcbiogICBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgXG4qICAgYG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnYFxuKiAgIGBtbHg1X3N0X2dldF9pbmRleGBcblxuQnV0IHdhaXQsIGBtbHg1YCBpcyBhIE1lbGxhbm94IGhhcmR3YXJlIGRyaXZlciwgc28gSSBjYW4gcHJvYmFibHkgaWdub3JlIHRoZSBgbWx4NWAgZnVuY3Rpb25zIGZvciBub3cgYmVjYXVzZSB0aGV5J3JlIG5vdCBnb2luZyB0byBiZSB0cmlnZ2VyZWQgd2l0aG91dCB0aGF0IGhhcmR3YXJlLiBTbyB0aGF0IG5hcnJvd3MgaXQgZG93biBhIGJpdC5cblxuSSdsbCBkb3VibGUtY2hlY2sgdG8gc2VlIGlmIGB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoYCBpcyByZWFjaGFibGUuIFRoYXQncyB0aGUgYGdldF9wY2lfdHBoYCBjYWxsYmFjayBmb3IgYHZmaW9fcGNpX2RtYWJ1Zl9vcHNgLCBhbmQgaXQgZ2V0cyBjYWxsZWQgYnkgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBXaG8gYWN0dWFsbHkgY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgPyAgQWNjb3JkaW5nIHRvIHRoaXMgcGF0Y2gsIGl0J3MgYGdldF9wY2lfdHBoX21yX2RtYWJ1ZmAgaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBTaW5jZSBJJ20gbm90IHVzaW5nIE1lbGxhbm94IGhhcmR3YXJlLCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgbWF5IG5vdCBiZSB0cmlnZ2VyZWQgYnkgdGhlIGBtbHg1YCBkcml2ZXIsIGFuZCB0aGF0IG1pZ2h0IG1lYW4gYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGlzIG5vdCByZWFjaGFibGUuIFRoZXJlIGFyZSBubyBvdGhlciBjYWxsZXJzIGluIHRoaXMgcGF0Y2gsIHNvIHllcywgaXQncyBsaWtlbHkgbm90IHJlYWNoYWJsZS4gQnV0IHRoZSBpb2N0bCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcywgYW5kIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgcmVhY2hhYmxlIGZyb20gdGhlcmUuXG5cbk9rYXksIGxldCdzIG1ha2UgZG91Ymx5IHN1cmUgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYVxuXG4iLCJJbnB1dFRva2VucyI6NTA5OTEsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjEzLjI1ODc4NThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDU2NDE1MzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jPTE1NTc9aW50IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmRldmljZSwgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMtMTU3NS1cXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEg6XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmM6MTU3NjpcXHRcXHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMtMTU3Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgYXJnc3opO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0yNTM9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjctXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzozNjg6aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjktXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg9MTE4PWludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEyMC1cXHRcXHRcXHRcXHQgIHNpemVfdCBhcmdzeik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTIxOmludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEyMi1cXHRcXHRcXHRcXHQgICAgICB1MzIgZmxhZ3MsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaD0xMzY9c3RhdGljIGlubGluZSBpbnRcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaDoxMzc6dmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEzOC1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDoxNS45NjQ0Mzk1NjVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk4NzU0NjA4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcml6ZWQgdGhvdWdodCBwcm9jZXNzLCBwcmVzZW50ZWQgYXMgaWYgSSdtIHRoZSBvbmUgdGhpbmtpbmcgaXQ6XG5cbioqUmVhY2hpbmcgdGhlIFRhcmdldCoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgc3VnZ2VzdHMgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gdGFja2xlLiBJIGJlbGlldmUgdGhpcyAqaXMqIHJlYWNoYWJsZSDigJMgdGhhdCdzIHRoZSBmaXJzdCBjcml0aWNhbCBhc3Nlc3NtZW50LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biwgcmlnaHQ/IExldCdzIGdldCByaWdodCB0byBpdC4uLiBJIHdhbnQgdG8gY2hlY2sgdGhlIHNwZWNpZmljIHZhbHVlIG9mIHRoZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGZpZWxkLiBUaGF0IHdpbGwgYmUgdmVyeSB0ZWxsaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mzg5MCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjIzLjk1MTk4OTQyOVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkyNjM3Mjc1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9jb21wbGV0ZXJfdHlwZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS90cGguYz0xODY9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcXG5kcml2ZXJzL3BjaS90cGguYzoxODk6ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSdzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxcbmRyaXZlcnMvcGNpL3RwaC5jLTE5MC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjIwMTp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjE4LX1cXG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XFxuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTM3OC1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcXHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cXHUwMDNlcGRldik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXFx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzctI2Vsc2VcXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDoyNi44NzgzNzA3NDdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMyMjMyMzc4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIFBDSWUgVFBIIENvbXBsZXRlciBUeXBlKipcblxuQWxyaWdodCwgaXQgbG9va3MgbGlrZSB3ZSd2ZSBjb25maXJtZWQgdGhhdCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGlzIGluZGVlZCByZWFjaGFibGUgd2l0aGluIHRoZSBjb2RlLiBHb29kLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB0aGlzIGFuYWx5c2lzIGlzIHRvIHNjcnV0aW5pemUgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBVbmRlcnN0YW5kaW5nIGhvdyB0aGF0IHJlcXVlc3QgdHlwZSBpcyBoYW5kbGVkIGlzIGNydWNpYWwgZm9yIGEgY29tcGxldGUgcGljdHVyZS4gV2UgbmVlZCB0byBkaXNzZWN0IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZXNlIHR3byB0byBmdWxseSBncmFzcCB0aGUgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDcxNywiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjMwLjIwMDY5NzY5NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc4MjMxNzQxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTU4LVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTU5OlxcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXFx1MDAzZW1kZXYtXFx1MDAzZXBkZXYpKSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NjAtXFx0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jPTE3ND1FWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2MpO1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMTc2LS8qKlxcbmRyaXZlcnMvcGNpL3RwaC5jOjE3NzogKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE3OC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMTgxLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjE4Mjp1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4My17XFxuLS1cXG5kcml2ZXJzL3BjaS90cGguYy0xODUtfVxcbmRyaXZlcnMvcGNpL3RwaC5jOjE4NjpFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xcbmRyaXZlcnMvcGNpL3RwaC5jLTE4Ny1cXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTM0PXUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNTp1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC0zNi11OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD00Nj1zdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTQ3LXsgcmV0dXJuIC1FSU5WQUw7IH1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDo0ODpzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtNDkteyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDozMi45ODMwODIyODNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3NjU0NTQ1MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gUENJZSBUUEggYW5kIEZ1enppbmcgUmVsZXZhbmNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBUaGUgY29kZSBzaG93cyBpdCdzICpvbmx5KiBjYWxsZWQgZnJvbSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCwgd2hpY2ggaXMgYnVyaWVkIGRlZXAgd2l0aGluIHRoZSBgbWx4NWAgZHJpdmVyJ3MgbWVtb3J5IHJlZ2lvbiBtYW5hZ2VtZW50IChgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuY2ApLiBSaWdodCwgYW5kIGBtbHg1YCBpcyBhIGhhcmR3YXJlIGRyaXZlci4uLiB0aGF0IG1lYW5zIGl0J3Mgbm90IGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBteSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgZWZmaWNpZW50IHdpdGggbXkgYEZvY3VzU3ltYm9sc2AgbGlzdCwgYW5kIGluY2x1ZGluZyBjb2RlIHBhdGhzIHRoYXQgYXJlIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaXMganVzdCB3YXN0ZWQgZWZmb3J0LiBUaGVyZWZvcmUsIGBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlYCBzaG91bGQgKmRlZmluaXRlbHkqIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGBGb2N1c1N5bWJvbHNgLiBMZXQncyBtb3ZlIG9uIGFuZCB0YWtlIGEgbG9vayBhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgbm93OyBtYXliZSB0aGVyZSdzIHNvbWV0aGluZyByZWxldmFudCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU1NjUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDA6NDkuNzQ4NTQyNjYxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc2Mzg3MjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRtYV9idWZfZ2V0X3BjaV90cGhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz05MTk9ZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQxLSAqICAgICAtIGRtYV9idWZfdnVubWFwKClcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjk0MjogKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0My0gKlxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz0xMTQ3PUVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFxcXCJETUFfQlVGXFxcIik7XFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNDktLyoqXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTUwOiAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNTEtICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY2LSAqL1xcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE2NzppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2OC1cXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc2LX1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl9nZXRfcGNpX3RwaCwgXFxcIkRNQV9CVUZcXFwiKTtcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzgtXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jPTk1MD1zdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3MC1cXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cXHUwMDNlcmVzdiwgTlVMTCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NzE6XFx0cmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBcXHUwMDI2c3RlZXJpbmdfdGFnLCBcXHUwMDI2bG9jYWxfcGgpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcyLVxcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXFx1MDAzZXJlc3YpO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz02Mj12ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04Mi1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjgzOnN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODQtXFx0XFx0XFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MTMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHtcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNC1cXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzoxMzU6XFx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNi1cXHQubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX21hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTM3PXN0cnVjdCBkbWFfYnVmX29wcyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMjgtXFx0ICpcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMjk6XFx0ICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGhcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzAtXFx0ICogXFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRU9QTk9UU1VQUCB3aGVuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzMtXFx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMzQ6XFx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzNS1cXHQgKi9cXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTU4OD12b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDo1ODk6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC01OTAtXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjUyLjYyNDkzOTMyM1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDY2MjczODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBSZWFjaGFiaWxpdHkgaW4gdGhlIEZ1enppbmcgRW52aXJvbm1lbnQqKlxuXG5Pa2F5LCBzbyBoZXJlJ3MgdGhlIHNpdHVhdGlvbjogSSd2ZSBiZWVuIGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGFjdHVhbGx5IHJlYWNoYWJsZSBpbiBvdXIgZnV6emluZyBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IHdpdGggcmVnYXJkIHRvIERNQSBidWZmZXIgaW50ZXJhY3Rpb25zLiBJJ3ZlIHBpbnBvaW50ZWQgdGhhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKm9ubHkqIGNhbGxlZCBieSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBUaGF0IG1lYW5zLCBhcyB0aGluZ3Mgc3RhbmQsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBhbmQgdGhlIHJlbGF0ZWQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGFyZSBlc3NlbnRpYWxseSBkZWFkIGNvZGUgcGF0aHMgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFdlIGp1c3QgY2FuJ3QgZ2V0IHRvIHRoZW0gZ2l2ZW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cblxuVGhlcmVmb3JlLCB0aGUgb25seSBmdW5jdGlvbnMgd2UgY2FuIHJlYXNvbmFibHkgaGl0IGR1cmluZyBmdXp6aW5nIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gQnV0IGxldCdzIG5vdCBqdXN0IHRha2UgbXkgd29yZCBmb3IgaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLlxuXG5Ob3csIEknbSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gSSByZW1lbWJlciBzZWVpbmcgaXQgY2FsbGVkIGZyb20gYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgd2UgY2FuIGFic29sdXRlbHkgaGl0IHRoYXQgY29kZSBwYXRoLlxuXG5GaW5hbGx5LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCBpc24ndCBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlIHRvIGJlIGRvdWJseSBzdXJlIG9mIGl0cyByZWFjaGFiaWxpdHkuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgdGhhdCBmdW5jdGlvbiB0byBtYWtlIHN1cmUgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvcnJlY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MjU4LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjU4LjY5MTIxNzA5M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUwODEwMTQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9jb21wbGV0ZXJfdHlwZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS90cGguYz0xODY9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcXG5kcml2ZXJzL3BjaS90cGguYzoxODk6ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSdzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxcbmRyaXZlcnMvcGNpL3RwaC5jLTE5MC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjIwMTp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjE4LX1cXG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XFxuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTM3OC1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcXHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cXHUwMDNlcGRldik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXFx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzctI2Vsc2VcXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTowMS4xOTkzMjY2OTNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODcxODA4MzU4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFN0cmF0ZWd5IGZvciB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgqKlxuXG5Pa2F5LCBteSBmb2N1cyBuZWVkcyB0byBiZSBzb2xlbHkgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIFRoZSBwcmltYXJ5IHN5bWJvbHMgSSdtIGNvbmNlcm5lZCB3aXRoIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gVGhlIGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgdGhlIGZ1enphYmlsaXR5IG9mIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLlxuXG5NeSBpbml0aWFsIGNvbmNlcm4gaXMgdGhhdCBpZiBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIHJldHVybnMgYFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FYCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FT1BOT1RTVVBQYC4gVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIHJlbGlhYmx5IGNyZWF0ZSBhIFBDSSBkZXZpY2UgKndpdGgqIFRQSCBjb21wbGV0ZXIgY2FwYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudD8gU3l6a2FsbGVyIG9mdGVuIHV0aWxpemVzIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgYC9kZXYvdmZpby9gIHdpdGggZHVtbXkgZGV2aWNlcy4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBkdW1teSBkZXZpY2UgKmxhY2tzKiBUUEggY29tcGxldGVyIGNhcGFiaWxpdHksIHdlJ3JlIGFsd2F5cyBnb2luZyB0byBnZXQgdGhhdCBgLUVPUE5PVFNVUFBgIGVycm9yLCB3aGljaCBlc3NlbnRpYWxseSBtZWFucyB3ZSdkIG5ldmVyIHJlYWNoIHRoZSBjb3JlIGZ1bmN0aW9uLlxuXG5Ib3dldmVyLCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHdheXMgcmV0dXJuZWQsIGl0J3Mgc3RpbGwgKnJlYWNoYWJsZSogY29kZSwgYXQgbGVhc3QgdGhlIGluaXRpYWwgbGluZXMuIFRoaXMgbWFrZXMgaXQgd29ydGggZnV6emluZy4gVGhlIGZ1bmN0aW9uICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIHRoYXQgd2UgY2FuIHJlYWNoLCBhbmQgd2UgaGF2ZSB0byBzZWUgaWYgc29tZSBjbGV2ZXIgZnV6emluZyBjYW4gbGV2ZXJhZ2UgdGhhdC4gQW5kLCBvbmUgY2FuJ3QgcnVsZSBvdXQgdGhlIHBvc3NpYmlsaXR5IHRoYXQgc3l6a2FsbGVyICpjb3VsZCogaW5qZWN0IGEgZGV2aWNlIHdpdGggVFBIIGNhcGFiaWxpdHkgb3IgdGhhdCBzb21lIGRlZmF1bHQgUUVNVSBlbXVsYXRlZCBkZXZpY2VzIG1pZ2h0IGhhdmUgaXQuIFNvLCBJIGhhdmUgdG8gbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgYEVuYWJsZUNvbmZpZ3NgLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGBQQ0lFX1RQSGAsIGBWRklPX1BDSWAsIGFuZCBgVkZJT19QQ0lfRE1BQlVGYCBhcmUgZW5hYmxlZC4gYFZGSU9fUENJX0RNQUJVRmAgaXMgZGVwZW5kZW50IG9uIGBWRklPX1BDSV9DT1JFYCwgYFBDSV9QMlBETUFgIGFuZCBgRE1BX1NIQVJFRF9CVUZGRVJgLiBTaW5jZSBgRE1BX1NIQVJFRF9CVUZGRVJgIGlzIHVzdWFsbHkgb24gYnkgZGVmYXVsdCwgdGhlIGtleSBpcyBgUENJX1AyUERNQWAuIE5vdyBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBgUENJX1AyUERNQWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NTQ5LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjA5LjkxNzQxMjQ0WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODM0OTAzODk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQQ0lfUDJQRE1BXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGNpL0tjb25maWc9MTk3PWNvbmZpZyBQQ0lFX1RQSFxcbi0tXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9wY2kvS2NvbmZpZzoyMDY6Y29uZmlnIFBDSV9QMlBETUFcXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNy1cXHRib29sIFxcXCJQQ0kgcGVlci10by1wZWVyIHRyYW5zZmVyIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjEyLjc1MjMyNjUwNVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDM5MzQ4MDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoZSBmaXJzdCBzdGVwIGlzIGNsZWFyOiBJIG5lZWQgdG8gYWRkIGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYCB0byBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLlxuXG5Ob3csIGxldCdzIGdvIHRocm91Z2ggdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIGFjdHVhbGx5IHN1aXRhYmxlIGZvciBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXNuJ3QganVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMsIGxvZ2dpbmcgdHdlYWtzLCBkZWNvcmF0aXZlIG1hY3JvIHVwZGF0ZXMsIG9yIGNvZGUgdGhhdCdzIHVucmVhY2hhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC5cblxuTG9va2luZyBhdCB0aGUgcGF0Y2gsIGl0IHRvdWNoZXMgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgLCBgZHJpdmVycy9wY2kvdHBoLmNgLCBhbmQgYGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNgLiBBbGwgdGhyZWUgb2YgdGhvc2UgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50LiBUaGVyZWZvcmUsIGl0J3Mgc2FmZSB0byBzYXkgdGhpcyBzaG91bGQgYmUgYSBgV29ydGhGdXp6aW5nPXRydWVgIHNjZW5hcmlvLlxuXG5UaGUgYEZvY3VzU3ltYm9sc2AgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIHR3byBrZXkgYXJlYXMgdG8gZm9jdXMgb24uXG5cblNvLCBsZXQgbWUgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnkgb3RoZXIga2V5IGNvbmZpZ3VyYXRpb25zLiBJIGNhbiBzZWUgdGhhdCBgQ09ORklHX1ZGSU9fUENJYCBpcyBhbHJlYWR5IGVuYWJsZWQgaW4gc3l6a2FsbGVyLiBgQ09ORklHX0lORklOSUJBTkRgIGlzIGFsc28gZW5hYmxlZCwgYnV0IG1seDUgbG9va3MgdG8gYmUgaGFyZHdhcmUgc3BlY2lmaWMgYW5kIGxpa2VseSBpcnJlbGV2YW50IGhlcmUuIFNvLCB5ZXMsIGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYCBhcmUgdGhlIG1haW4gb25lcyB0aGF0IGFyZSBuZXcuXG5cbkxldCdzIGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jaWVzLiBJIGtub3cgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgaXMgY29tcGlsZWQgd2hlbiBgQ09ORklHX1ZGSU9fUENJX0RNQUJVRmAgaXMgZW5hYmxlZC4gQW5kLCB5ZXMsIGl0J3MgaW5kZWVkIGluIGBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jYC4gQWxzbywgSSBjYW4gc2VlIHRoYXQgYENPTkZJR19WRklPX1BDSV9ETUFCVUZgIHJlcXVpcmVzIGBQQ0lfUDJQRE1BYC4gU28sIGBQQ0lfUDJQRE1BYCBpcyBhIG11c3QuXG5cbk5vdywgbGV0J3MgbWFrZSBzdXJlIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgY29tcGlsZWQgd2hlbiBgQ09ORklHX1BDSUVfVFBIYCBpcyBlbmFibGVkLiBZZXAsIHRoYXQgb25lIGxpdmVzIGluIGBkcml2ZXJzL3BjaS90cGguY2AuIFdhaXQsIGlzIGBkcml2ZXJzL3BjaS90cGguY2AgY29tcGlsZWQgKm9ubHkqIHdoZW4gYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZD8gTmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdC4uLiBidXQgb3ZlcmFsbCwgaXQgbG9va3MgZ29vZCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk2NDQsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDE6MjEuMTkxNjc4NDU1WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDI1MzQ4MzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRwaFxcXFwub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS9NYWtlZmlsZT00MD1vYmotJChDT05GSUdfUENJX05QRU0pXFx0XFx0Kz0gbnBlbS5vXFxuZHJpdmVycy9wY2kvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX1BDSUVfVFBIKVxcdFxcdCs9IHRwaC5vXFxuZHJpdmVycy9wY2kvTWFrZWZpbGUtNDItb2JqLSQoQ09ORklHX0NBUkRCVVMpXFx0XFx0Kz0gc2V0dXAtY2FyZGJ1cy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjI0LjYxNzAzNDY5NVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTYzMzMwODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gZGV2aWNlIGRyaXZlciBkZXZlbG9wbWVudCBhbmQga2VybmVsIGNvbmZpZ3VyYXRpb246XG5cbioqQW5hbHl6aW5nIGEgS2VybmVsIEJ1aWxkIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc28gSSBzZWUgYSBsaW5lIHRoYXQgY2xlYXJseSBpbmRpY2F0ZXMgYHRwaC5vYCDigJMgYSBtb2R1bGUsIEkgcHJlc3VtZSDigJMgaXMgZ29pbmcgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkIG91dHB1dCBpZiB0aGUgYENPTkZJR19QQ0lFX1RQSGAgb3B0aW9uIGlzIHNldC4gTm8gc3VycHJpc2VzIHRoZXJlOyB0aGF0J3Mgc3RhbmRhcmQga2VybmVsIGJ1aWxkIHN5bnRheC4gSXQncyBhIGNsZWFyIGRlcGVuZGVuY3k6IGlmIHdlIHdhbnQgdGhhdCBgdHBoLm9gIG9iamVjdCBmaWxlIGluIHRoZSBidWlsdCBkcml2ZXIgdGhlbiB3ZSBoYXZlIHRvIGVuYWJsZSB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLlxuXG5UaGUga2V5IHF1ZXN0aW9uIHRoZW4gYmVjb21lczogd2hlcmUgKmVsc2UqIGRvZXMgdGhpcyBgUENJRV9UUEhgIHNldHRpbmcgYXBwZWFyLCBhbmQgd2hhdCdzIGl0cyBvdmVyYWxsIGltcGFjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGNoZWNrIGlmIHRoZXJlJ3MgYW55IGNvZGUgdGhhdCAqdW5jb25kaXRpb25hbGx5KiBjYWxscyBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuIElmIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHJlZ2FyZGxlc3Mgb2YgdGhlIGBDT05GSUdfUENJRV9UUEhgIHNldHRpbmcsIHRoZW4gd2UgaGF2ZSBhIHBvdGVudGlhbCBwcm9ibGVtLiBJdCB3b3VsZCBpbXBseSB0aGF0IHRoZSBzeXN0ZW0gbWF5IHRyeSB0byBsaW5rIHRvIHRoYXQgb2JqZWN0IGV2ZW4gaWYgYENPTkZJR19QQ0lFX1RQSGAgaXMgc2V0IHRvIFwiblwiIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBjb21waWxlIHRpbWUgZXJyb3JzLiBUaGlzIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIHNpdHVhdGlvbiB0byB1bmRlcnN0YW5kLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIGRldGVybWluZSB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgdGhhdCBwYXJ0aWN1bGFyIGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDg5MywiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjI4Ljc4MDM2ODgyOVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMzM1ODEzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkbWFfYnVmX2dldF9wY2lfdHBoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9OTE5PWRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0MS0gKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzo5NDI6ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDMtICpcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9MTE0Nz1FWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX3VucGluLCBcXFwiRE1BX0JVRlxcXCIpO1xcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTQ5LS8qKlxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE1MDogKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTUxLSAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2Ni0gKi9cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNjc6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjgtXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3Ni19XFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTc3OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFxcXCJETUFfQlVGXFxcIik7XFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc4LVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzAtXFx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXFx1MDAzZXJlc3YsIE5VTEwpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTcxOlxcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXFx1MDAyNnN0ZWVyaW5nX3RhZywgXFx1MDAyNmxvY2FsX3BoKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3Mi1cXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9NjI9dmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODItXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzo4MzpzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTg0LVxcdFxcdFxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTEzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzQtXFx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6MTM1OlxcdC5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzYtXFx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD0zNz1zdHJ1Y3QgZG1hX2J1Zl9vcHMge1xcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTI4LVxcdCAqXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTI5OlxcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMwLVxcdCAqIFxcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMzLVxcdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTM0OlxcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzUtXFx0ICovXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD01ODg9dm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6NTg5OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtNTkwLVxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTozMS41MDM3MzE1MzNaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkxMDQxMzk2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgRE1BLUJVRiBhbmQgUENJLVRQSCBTeW1ib2wgUmVhY2hhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJJ3ZlIHRyYWNrZWQgZG93biB0aGUgcmVsZXZhbnQgY29kZTsgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGlzIGRlZmluaXRlbHkgaW4gYGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBnaXZlbiB0aGF0IGl0J3MgY29uZGl0aW9uYWwgb24gYENPTkZJR19ETUFfU0hBUkVEX0JVRkZFUmAuIFNvLCBiYXNlZCBvbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIGl0IGlzIGNvbXBpbGVkLiBOb3csIHRoZSBjcnVjaWFsIHBhcnQgaXMgdW5kZXJzdGFuZGluZyAqd2hlcmUqIGl0J3MgYWN0dWFsbHkgdXNlZC4gVGhlIGFuYWx5c2lzIGVhcmxpZXIgZGVmaW5pdGl2ZWx5IHNob3dlZCB0aGF0IGl0J3MgKm9ubHkqIGNhbGxlZCBieSB0aGUgbWx4NSBkcml2ZXIsIHdoaWNoLCBhcyB3ZSBlc3RhYmxpc2hlZCwgaXNuJ3Qgb24gdGhlIGNyaXRpY2FsIHBhdGguIFRoZXJlZm9yZSwgdGhlcmUncyBubyBuZWVkIHRvIGNsdXR0ZXIgYEZvY3VzU3ltYm9sc2Agd2l0aCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuXG5cbk5vdywgdGhlIGZvbGxvdy11cDogd2hhdCBhYm91dCBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGA/IEFoLCByaWdodCwgdGhhdCdzIGEgY2FsbGJhY2sgd2l0aGluIHRoZSBgZG1hX2J1Zl9vcHNgIHN0cnVjdHVyZS4gQnV0IHRoZSBrZXkgaGVyZSBpcyBpdHMgKmRlcGVuZGVuY3kqLiBJdCdzIG9ubHkgY2FsbGVkIGJ5IGBkbWFfYnVmX2dldF9wY2lfdHBoYCwgd2hpY2ggd2UndmUganVzdCBjb25maXJtZWQgaXMgaXRzZWxmIHVucmVhY2hhYmxlLiBUaGlzIG1lYW5zIGB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoYCBpcyAqYWxzbyogdW5yZWFjaGFibGUuIFNvLCBhZGRpbmcgaXQgdG8gYEZvY3VzU3ltYm9sc2Agd291bGQgYmUgdW5uZWNlc3NhcnkuXG5cblRoZXJlZm9yZSwgYWZ0ZXIgdGhpcyB0aG9yb3VnaCBleGFtaW5hdGlvbiwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoZSBvbmx5IHJlYWNoYWJsZSBmdW5jdGlvbnMgcmVsYXRlZCB0byB0aGlzIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gSG93ZXZlciwgSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUgaXNuJ3Qgc29tZSBoaWRkZW4gY2FsbCB0aGF0IEkndmUgbWlzc2VkLiBJIG11c3QgYmUgY29tcGxldGVseSBjZXJ0YWluIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBjYWxsZXJzIG9mIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBpbiB0aGUga2VybmVsLiBMZXQgbWUgZG91YmxlLWNoZWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjU5NSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTozNy40MTQxNDc1MDRaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MTQxMjI5OTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZG1hX2J1Zl9nZXRfcGNpX3RwaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTkxOT1kbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDEtICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6OTQyOiAqICAgICAtIGRtYV9idWZfZ2V0X3BjaV90cGgoKVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQzLSAqXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTExNDc9RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXFxcIkRNQV9CVUZcXFwiKTtcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE0OS0vKipcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNTA6ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE1MS0gKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjYtICovXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTY3OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY4LVxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzYtfVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcXFwiRE1BX0JVRlxcXCIpO1xcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3OC1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcwLVxcdGRtYV9yZXN2X2xvY2soZG1hYnVmLVxcdTAwM2VyZXN2LCBOVUxMKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jOjk3MTpcXHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFxcdTAwMjZzdGVlcmluZ190YWcsIFxcdTAwMjZsb2NhbF9waCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzItXFx0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cXHUwMDNlcmVzdik7XFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTYyPXZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTgyLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6ODM6c3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04NC1cXHRcXHRcXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0xMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM0LVxcdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjEzNTpcXHQuZ2V0X3BjaV90cGggPSB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM2LVxcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9Mzc9c3RydWN0IGRtYV9idWZfb3BzIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEyOC1cXHQgKlxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEyOTpcXHQgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLiBDYWxsZWQgd2l0aFxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMC1cXHQgKiBcXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMy1cXHQgKiBSZXR1cm5lZCBtZXRhZGF0YSBmb2xsb3dzIHRoZSBsaWZldGltZSBydWxlcyBkb2N1bWVudGVkIGZvclxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEzNDpcXHQgKiBkbWFfYnVmX2dldF9wY2lfdHBoKCkuXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTM1LVxcdCAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9NTg4PXZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjU4OTppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTU5MC1cXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDE6NDAuMDI4MjgyNjc2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNTQzNDA4NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRmluYWwgVGhvdWdodHMgb24gdGhlIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBubyBtb3JlIGluY29taW5nIGNhbGxzIOKAkyB0aW1lIHRvIGZpbmFsaXplIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIGZpbmFsIGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2Agc2VlbXMgc29saWQ6IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIGNvcmUgZWxlbWVudHMuXG5cbk5vdywgZm9yIHRoZSBgRW5hYmxlQ29uZmlnc2AuIFdlJ3ZlIGdvdCBgUENJRV9UUEhgIGFuZCBgUENJX1AyUERNQWAuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnksIGVzcGVjaWFsbHkgc2luY2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBETUEtQlVGIGFuZCBWRklPLlxuXG5BaCwgcmlnaHQsIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYCBpcyBhIGBkZWZfYm9vbGAgYW5kIGRlcGVuZHMgb24gdGhlIG90aGVycywgc28gd2UgZG9uJ3QgbmVlZCB0byBzcGVjaWZ5IGl0IGV4cGxpY2l0bHksIHRoYXQncyB0YWtlbiBjYXJlIG9mLiBIb3dldmVyLCBgUENJX1AyUERNQWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgWk9ORV9ERVZJQ0VgLiBIbW0sIGlzIGBaT05FX0RFVklDRWAgYSBkZWZhdWx0IG9yIHNvbWV0aGluZyB3ZSAqbXVzdCogZW5hYmxlPyBTeXprYWxsZXIgY29uZmlncyB1c3VhbGx5IGhhdmUgaXQgZW5hYmxlZCwgYnV0IHRvIGJlIHNhZmUsIEknbGwgYWRkIGl0LiBObywgd2FpdCwgaG9sZCBvbi4gVGhlIGluc3RydWN0aW9ucyBzYXksIFwiRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0IHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS5cIiBgWk9ORV9ERVZJQ0VgIGlzIHF1aXRlIGdlbmVyaWMsIGJ1dCBgUENJX1AyUERNQWAgaXMgcXVpdGUgc3BlY2lmaWMuIE9rYXksIGxlYXZlIGl0IG9mZi5cblxuTGV0J3MgcmV2aWV3IHRoZSBwYXRjaCdzIHB1cnBvc2U6IGl0IGFkZHMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8sIGFuZCB0aGUgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bCBjYW4gYmUgZnV6emVkLiBUaGUgZHJpdmVyIGNvZGUgaXMgcmVhY2hhYmxlLiBUaGUgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLlxuXG5JcyB0aGVyZSBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBNYXliZSBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGA/IEV2ZW4gdGhvdWdoIG1seDUgZG9lc24ndCBkaXJlY3RseSBjYWxsIGl0LCBjb3VsZCBzeXprYWxsZXIgZmluZCBhbm90aGVyIHdheT8gQnV0LCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNhbGxlcnMgaW4gdGhlIGtlcm5lbC4gU28sIG5vLiBJdCBjYW4ndCBiZSB0cmlnZ2VyZWQuXG5cbkxldCdzIGNoZWNrIGBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZ2AgYW5kIGBtbHg1X3N0X2dldF9pbmRleGAuIFRoZXNlIGFyZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jYC4gU2luY2UgbWx4NSBpcyBoYXJkd2FyZSBhbmQgbm90IGRpcmVjdGx5IHJlYWNoYWJsZSwgd2UgY2FuIGlnbm9yZSB0aGVtLlxuXG5TbywgSSB0aGluayB3ZSdyZSBnb29kLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCwgdGFyZ2V0ZWQgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ2NjksIk91dHB1dFRva2VucyI6MTY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjQ5LjA4MjYyODAzOVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjkyNTI5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUENJRV9UUEhcIixcbiAgICBcIlBDSV9QMlBETUFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhcIixcbiAgICBcInBjaWVfdHBoX2NvbXBsZXRlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUENJRV9UUEhcIixcbiAgICBcIlBDSV9QMlBETUFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhcIixcbiAgICBcInBjaWVfdHBoX2NvbXBsZXRlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowcc9mq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 19:49:18 +0000 UTC FinishedAt: 2026-07-02 20:01:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PCIE_TPH", "PCI_P2PDMA" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PCIE_TPH", "PCI_P2PDMA" ], "series_id": "df55e600-866b-4a21-82ff-ce942b1c92e8" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vfio_pci_core_feature_dma_buf_tph", "pcie_tph_completer_type" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BDSUVfVFBIJiMzNDssCiAgICAmIzM0O1BDSV9QMlBETUEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgmIzM0OywKICAgICYjMzQ7cGNpZV90cGhfY29tcGxldGVyX3R5cGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxOTo1OToxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuaW5kZXggZDUwNGM2MzZkYzI5NGUuLmU4MzE0ZWQyNDBkMzM2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xuQEAgLTkzOSw2ICYjNDM7OTM5LDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiAgKiAgICAgLSBkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoKVxuICAqICAgICAtIGRtYV9idWZfdm1hcCgpXG4gICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxuJiM0MzsgKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbiAgKlxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTk3OSw2ICYjNDM7OTgwLDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy51bm1hcF9kbWFfYnVmKClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy52bWFwKClcbiAgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy52dW5tYXAoKVxuJiM0MzsgKiAgICAgLSBcdTAwMjZkbWFfYnVmX29wcy5nZXRfcGNpX3RwaCgpXG4gICpcbiAgKiAzLiBFeHBvcnRlcnMgbXVzdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTExNDQsNiAmIzQzOzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiB9XG4gRVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4gXG4mIzQzOy8qKlxuJiM0MzsgKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXG4mIzQzOyAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcbiYjNDM7ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuJiM0MzsgKiBAc3RlZXJpbmdfdGFnOiByZXR1cm5zIHRoZSByYXcgc3RlZXJpbmcgdGFnIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZVxuJiM0MzsgKiBAcGg6IHJldHVybnMgdGhlIFRQSCBwcm9jZXNzaW5nIGhpbnRcbiYjNDM7ICpcbiYjNDM7ICogV3JhcHBlciBmb3IgdGhlIG9wdGlvbmFsIFx1MDAyNmRtYV9idWZfb3BzLmdldF9wY2lfdHBoIGNhbGxiYWNrLlxuJiM0MzsgKlxuJiM0MzsgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxuJiM0MzsgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlXG4mIzQzOyAqIHJlcXVlc3RlZCBuYW1lc3BhY2UuXG4mIzQzOyAqXG4mIzQzOyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGVcbiYjNDM7ICogZXhwb3J0ZXIgaW52YWxpZGF0ZXMgdGhlIGN1cnJlbnQgbWFwcGluZyAoc2lnbmFsbGVkIHRvIHRoZSBpbXBvcnRlciB2aWFcbiYjNDM7ICogXHUwMDI2ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXdcbiYjNDM7ICogbWFwcGluZyBpcyBlc3RhYmxpc2hlZCBmb2xsb3dpbmcgaW52YWxpZGF0aW9uLlxuJiM0MzsgKi9cbiYjNDM7aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbiYjNDM7XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbiYjNDM7e1xuJiM0MztcdGRtYV9yZXN2X2Fzc2VydF9oZWxkKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFkbWFidWYtXHUwMDNlb3BzLVx1MDAzZWdldF9wY2lfdHBoKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gZG1hYnVmLVx1MDAzZW9wcy1cdTAwM2VnZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBzdGVlcmluZ190YWcsIHBoKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbiYjNDM7XG4gLyoqXG4gICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50O1xuICAqIG1hcHBlZCBpbnRvIF9kZXZpY2VfIGFkZHJlc3Mgc3BhY2UuIElzIGEgd3JhcHBlciBmb3IgbWFwX2RtYV9idWYoKSBvZiB0aGVcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcbmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEBcbiBNT0RVTEVfQVVUSE9SKFwmIzM0O0VsaSBDb2hlbiBcdTAwM2NlbGlAbWVsbGFub3guY29tXHUwMDNlXCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXJcJiMzNDspO1xuIE1PRFVMRV9MSUNFTlNFKFwmIzM0O0R1YWwgQlNEL0dQTFwmIzM0Oyk7XG4mIzQzO01PRFVMRV9JTVBPUlRfTlMoXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4gXG4gc3RydWN0IG1seDVfaWJfZXZlbnRfd29yayB7XG4gXHRzdHJ1Y3Qgd29ya19zdHJ1Y3RcdHdvcms7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbmluZGV4IGU2Yjc0OTU1ZDk1ZGNkLi41NTIxNmFlNjM3NjE0MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcbkBAIC0zOSw2ICYjNDM7MzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtcmVzdi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3JkbWEvZnJtcl9wb29scy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjcmRtYS9pYl91bWVtX29kcC5oXHUwMDNlXG4gI2luY2x1ZGUgXCYjMzQ7ZG0uaFwmIzM0O1xuQEAgLTE2Nyw2ICYjNDM7MTY4LDM5IEBAIHN0YXRpYyBpbnQgZ2V0X3VuY2hhbmdlYWJsZV9hY2Nlc3NfZmxhZ3Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLIEdFTk1BU0tfVUxMKDIzLCAxNilcbiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0sgR0VOTUFTS19VTEwoMTUsIDApXG4gXG4mIzQzO3N0YXRpYyB1OCBtbHg1X2liX3RwaF9rZXlfcGgodTggcGgpXG4mIzQzO3tcbiYjNDM7XHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxuJiM0MztcdFx0cGggXj0gTUxYNV9JQl9OT19QSDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHBoO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW50IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1seDVfc3RfZ2V0X2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuJiM0Mzt7XG4mIzQzO1x0aWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWClcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4mIzQzO1x0bWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsXG4mIzQzO1x0XHRcdFx0ICAgICAgdTY0IGtlcm5lbF92ZW5kb3Jfa2V5KVxuJiM0Mzt7XG4mIzQzO1x0dTE2IHN0X2luZGV4ID0gRklFTERfR0VUKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXG4mIzQzO1x0XHRcdFx0IGtlcm5lbF92ZW5kb3Jfa2V5KTtcbiYjNDM7XG4mIzQzO1x0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqXG4gX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0ICAgICAgaW50IGFjY2Vzc19mbGFncywgaW50IGFjY2Vzc19tb2RlLFxuQEAgLTE4OSwxMyAmIzQzOzIyMywxMCBAQCBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRcdE1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0sgOlxuIFx0XHRcdDA7XG4gXG4tXHQvKiBOb3JtYWxpemUgcGg6IHN3YXAgMCBhbmQgTUxYNV9JQl9OT19QSCAqL1xuLVx0aWYgKHBoID09IE1MWDVfSUJfTk9fUEggfHwgcGggPT0gMClcbi1cdFx0cGggXj0gTUxYNV9JQl9OT19QSDtcbi1cbiBcdG1yLVx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxuIFx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XG4tXHRcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywgcGgpO1xuJiM0MztcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLFxuJiM0MztcdFx0XHQgICBtbHg1X2liX3RwaF9rZXlfcGgocGgpKTtcbiBcdGVyciA9IGliX2ZybXJfcG9vbF9wb3AoXHUwMDI2ZGV2LVx1MDAzZWliX2RldiwgXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdGtmcmVlKG1yKTtcbkBAIC0yMTgsNyAmIzQzOzI0OSw5IEBAIHN0cnVjdCBtbHg1X2liX21yICptbHg1X21yX2NhY2hlX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxuIFx0XHRcdFx0ICAgICAgMCA6XG4gXHRcdFx0XHQgICAgICBNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLLFxuIFx0XHQubnVtX2RtYV9ibG9ja3MgPSBuZGVzY3MsXG4tXHRcdC5rZXJuZWxfdmVuZG9yX2tleSA9IDAsIC8qIG5vIFBIIGFuZCBubyBTVCBpbmRleCAqL1xuJiM0MztcdFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbiYjNDM7XHRcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLFxuJiM0MztcdFx0XHRcdCAgIE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCksXG4gXHR9O1xuIFx0c3RydWN0IG1seDVfaWJfbXIgKm1yO1xuIFx0aW50IHJldDtcbkBAIC01NTcsNiAmIzQzOzU5MCwxMCBAQCBzdGF0aWMgc3RydWN0IG1seDVfaWJfbXIgKnJlZ19jcmVhdGUoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRtci1cdTAwM2VpYm1yLnBkID0gcGQ7XG4gXHRtci1cdTAwM2VhY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7XG4gXHRtci1cdTAwM2VwYWdlX3NoaWZ0ID0gb3JkZXJfYmFzZV8yKHBhZ2Vfc2l6ZSk7XG4mIzQzO1x0bXItXHUwMDNlaWJtci5mcm1yLmtleS5rZXJuZWxfdmVuZG9yX2tleSA9XG4mIzQzO1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XG4mIzQzO1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXG4mIzQzO1x0XHRcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xuIFxuIFx0aW5sZW4gPSBNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X2luKTtcbiBcdGlmIChwb3B1bGF0ZSlcbkBAIC03NTMsNiAmIzQzOzc5MCwxMiBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0XHRzdF9pbmRleCA9IG1kbWFoLVx1MDAzZXN0X2luZGV4O1xuIFx0fVxuIFxuJiM0MztcdGVyciA9IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoZGV2LCBzdF9pbmRleCk7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0aWJfdW1lbV9yZWxlYXNlKHVtZW0pO1xuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0eGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tXHUwMDNlbGVuZ3RoKTtcbiBcdGlmICh4bHRfd2l0aF91bXIpIHtcbiBcdFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIHVtZW0sIGlvdmEsIGFjY2Vzc19mbGFncyxcbkBAIC03NjksNiAmIzQzOzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZXNsb3dfcGF0aF9tdXRleCk7XG4gXHR9XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuJiM0MztcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UodW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtOTAzLDYgJiM0Mzs5NDcsNTIgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9vcHMgbWx4NV9pYl9kbWFidWZfYXR0YWNoX29wcyA9IHtcbiBcdC5pbnZhbGlkYXRlX21hcHBpbmdzID0gbWx4NV9pYl9kbWFidWZfaW52YWxpZGF0ZV9jYixcbiB9O1xuIFxuJiM0MztzdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4mIzQzO1x0XHRcdFx0ICB1MTYgKnN0X2luZGV4LCB1OCAqcGgpXG4mIzQzO3tcbiYjNDM7XHR1MTYgbG9jYWxfc3RfaW5kZXg7XG4mIzQzO1x0dTE2IHN0ZWVyaW5nX3RhZztcbiYjNDM7XHR1OCBsb2NhbF9waDtcbiYjNDM7XHRib29sIGV4dGVuZGVkO1xuJiM0MztcdGludCByZXQ7XG4mIzQzO1xuJiM0MztcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXHUwMDNlbWRldi1cdTAwM2VwZGV2KSkge1xuJiM0MztcdGNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6XG4mIzQzO1x0XHRleHRlbmRlZCA9IGZhbHNlO1xuJiM0MztcdFx0YnJlYWs7XG4mIzQzO1x0Y2FzZSBQQ0lfVFBIX1JFUV9FWFRfVFBIOlxuJiM0MztcdFx0ZXh0ZW5kZWQgPSB0cnVlO1xuJiM0MztcdFx0YnJlYWs7XG4mIzQzO1x0ZGVmYXVsdDpcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGRtYV9yZXN2X2xvY2soZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuJiM0MztcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG4mIzQzO1x0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbiYjNDM7XHRpZiAocmV0KSB7XG4mIzQzO1x0XHRpZiAocmV0ICE9IC1FT1BOT1RTVVBQKVxuJiM0MztcdFx0XHRtbHg1X2liX2RiZyhkZXYsIFwmIzM0O2dldF9wY2lfdHBoIGZhaWxlZCAoJWQpXFxuXCYjMzQ7LCByZXQpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0ID0gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LVx1MDAzZW1kZXYsIHN0ZWVyaW5nX3RhZyxcbiYjNDM7XHRcdFx0XHRcdCBcdTAwMjZsb2NhbF9zdF9pbmRleCk7XG4mIzQzO1x0aWYgKHJldCkge1xuJiM0MztcdFx0bWx4NV9pYl9kYmcoZGV2LCBcJiMzNDtzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcXG5cJiMzNDssIHJldCk7XG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHQqc3RfaW5kZXggPSBsb2NhbF9zdF9pbmRleDtcbiYjNDM7XHQqcGggPSBsb2NhbF9waDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHZvaWQgbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpXG4mIzQzO3tcbiYjNDM7XHRtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLFxuJiM0MztcdFx0XHRcdCAgbXItXHUwMDNlaWJtci5mcm1yLmtleS5rZXJuZWxfdmVuZG9yX2tleSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCBpYl9tciAqXG4gcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXG4gXHRcdCAgIHU2NCBvZmZzZXQsIHU2NCBsZW5ndGgsIHU2NCB2aXJ0X2FkZHIsXG5AQCAtOTQ1LDEyICYjNDM7MTAzNSwyMiBAQCByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSxcbiBcdFx0cGggPSBkbWFoLVx1MDAzZXBoO1xuIFx0XHRpZiAoZG1haC1cdTAwM2V2YWxpZF9maWVsZHMgXHUwMDI2IEJJVChJQl9ETUFIX0NQVV9JRF9FWElTVFMpKVxuIFx0XHRcdHN0X2luZGV4ID0gbWRtYWgtXHUwMDNlc3RfaW5kZXg7XG4mIzQzO1xuJiM0MztcdFx0ZXJyID0gbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihkZXYsIHN0X2luZGV4KTtcbiYjNDM7XHRcdGlmIChlcnIpIHtcbiYjNDM7XHRcdFx0aWJfdW1lbV9yZWxlYXNlKFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0pO1xuJiM0MztcdFx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0fVxuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRnZXRfcGNpX3RwaF9tcl9kbWFidWYoZGV2LCB1bWVtX2RtYWJ1Zi1cdTAwM2VhdHRhY2gtXHUwMDNlZG1hYnVmLFxuJiM0MztcdFx0XHRcdCAgICAgIFx1MDAyNnN0X2luZGV4LCBcdTAwMjZwaCk7XG4gXHR9XG4gXG4gXHRtciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSwgdmlydF9hZGRyLFxuIFx0XHRcdFx0YWNjZXNzX2ZsYWdzLCBhY2Nlc3NfbW9kZSxcbiBcdFx0XHRcdHN0X2luZGV4LCBwaCk7XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuJiM0MztcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UoXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtMTQwNSw2ICYjNDM7MTUwNSw3IEBAIHN0YXRpYyBpbnQgbWx4NXJfaGFuZGxlX21rZXlfY2xlYW51cChzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpXG4gXHRpZiAobXItXHUwMDNlaWJtci5mcm1yLnBvb2wpIHtcbiBcdFx0aWYgKCFtbHg1X3Vtcl9yZXZva2VfbXJfd2l0aF9sb2NrKG1yKSkge1xuIFx0XHRcdGliX2ZybXJfcG9vbF9wdXNoKG1yLVx1MDAzZWlibXIuZGV2aWNlLCBcdTAwMjZtci1cdTAwM2VpYm1yKTtcbiYjNDM7XHRcdFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XG4gXHRcdFx0cmV0dXJuIDA7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDMyLDYgJiM0MzsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCBcdTAwMjZcdTAwMjYgIXJldClcbiBcdFx0aWJfZnJtcl9wb29sX2Ryb3AoXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXG4mIzQzO1x0aWYgKCFyZXQpXG4mIzQzO1x0XHRtbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKG1yKTtcbiYjNDM7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmNcbmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXG5AQCAtOTIsMjMgJiM0Mzs5MiwxOCBAQCB2b2lkIG1seDVfc3RfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuIFx0a2ZyZWUoc3QpO1xuIH1cbiBcbi1pbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbi1cdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbiYjNDM7aW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB0YWcsXG4mIzQzO1x0XHRcdCAgICAgICB1MTYgKnN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbiBcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbiBcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XG4gXHR1MzIgeGFfaWQ7XG4tXHR1MTYgdGFnO1xuLVx0aW50IHJldDtcbiYjNDM7XHRpbnQgcmV0ID0gMDtcbiBcbiBcdGlmICghc3QpXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcbi1cdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVx1MDAzZXBkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCBcdTAwMjZ0YWcpO1xuLVx0aWYgKHJldClcbi1cdFx0cmV0dXJuIHJldDtcbi1cbiBcdGlmIChzdC1cdTAwM2VkaXJlY3RfbW9kZSkge1xuIFx0XHQqc3RfaW5kZXggPSB0YWc7XG4gXHRcdHJldHVybiAwO1xuQEAgLTE1Miw4ICYjNDM7MTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnN0LVx1MDAzZWxvY2spO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTtcbiYjNDM7XG4mIzQzO2ludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuJiM0MztcdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdHUxNiB0YWc7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFx1MDAyNnRhZyk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYsIHRhZywgc3RfaW5kZXgpO1xuJiM0Mzt9XG4gRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9hbGxvY19pbmRleCk7XG4gXG4mIzQzO2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7XG4mIzQzO1x0c3RydWN0IG1seDVfc3QgKnN0ID0gZGV2LVx1MDAzZXN0O1xuJiM0MztcdGludCByZXQgPSAwO1xuJiM0MztcbiYjNDM7XHRpZiAoIXN0KVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRpZiAoc3QtXHUwMDNlZGlyZWN0X21vZGUpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiYjNDM7XHRpZHhfZGF0YSA9IHhhX2xvYWQoXHUwMDI2c3QtXHUwMDNlaWR4X3hhLCBzdF9pbmRleCk7XG4mIzQzO1x0aWYgKFdBUk5fT05fT05DRSghaWR4X2RhdGEpKVxuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRyZWZjb3VudF9pbmMoXHUwMDI2aWR4X2RhdGEtXHUwMDNldXNlY291bnQpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2dldF9pbmRleCk7XG4mIzQzO1xuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS90cGguYyBiL2RyaXZlcnMvcGNpL3RwaC5jXG5pbmRleCA2NTVmZmQ2MGU2MmY2YS4uZTc2OTNmZDlkNjc2MzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS90cGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wY2kvdHBoLmNcbkBAIC0xNzMsNiAmIzQzOzE3Myw1MSBAQCB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiB9XG4gRVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSYjMzk7cyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxuJiM0MzsgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm46IFBDSV9UUEhfUkVRX0RJU0FCTEUsIFBDSV9UUEhfUkVRX1RQSF9PTkxZIG9yIFBDSV9UUEhfUkVRX0VYVF9UUEguXG4mIzQzOyAqL1xuJiM0Mzt1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIHBkZXYtXHUwMDNldHBoX3JlcV90eXBlO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0wocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSk7XG4mIzQzO1xuJiM0MzsvKipcbiYjNDM7ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSYjMzk7cyBUUEggQ29tcGxldGVyIHN1cHBvcnRcbiYjNDM7ICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbiYjNDM7ICpcbiYjNDM7ICogUmVhZHMgdGhlIFwmIzM0O1RQSCBDb21wbGV0ZXIgU3VwcG9ydGVkXCYjMzQ7IGZpZWxkIChiaXRzIDEzOjEyKSBvZiBEZXZpY2VcbiYjNDM7ICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXG4mIzQzOyAqIFwmIzM0O25vdCBzdXBwb3J0ZWRcJiMzNDsgc28gY2FsbGVycyBvbmx5IG5lZWQgdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSB0aHJlZVxuJiM0MzsgKiBkZWZpbmVkIHZhbHVlcy5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuOiBvbmUgb2YgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FLFxuJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFkgb3JcbiYjNDM7ICogICAgICAgICAlUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEguXG4mIzQzOyAqL1xuJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiYjNDM7e1xuJiM0MztcdHUzMiByZWc7XG4mIzQzO1xuJiM0MztcdGlmIChwY2llX2NhcGFiaWxpdHlfcmVhZF9kd29yZChwZGV2LCBQQ0lfRVhQX0RFVkNBUDIsIFx1MDAyNnJlZykpXG4mIzQzO1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4mIzQzO1x0aWYgKFBDSV9QT1NTSUJMRV9FUlJPUihyZWcpKVxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FO1xuJiM0MztcbiYjNDM7XHRzd2l0Y2ggKEZJRUxEX0dFVChQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTUFTSywgcmVnKSkge1xuJiM0MztcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZOlxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTtcbiYjNDM7XHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIOlxuJiM0MztcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIO1xuJiM0MztcdGRlZmF1bHQ6XG4mIzQzO1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xuJiM0MztcbiAvKlxuICAqIFJldHVybiB0aGUgc2l6ZSBvZiBTVCB0YWJsZS4gSWYgU1QgdGFibGUgaXMgbm90IGluIFRQSCBSZXF1ZXN0ZXIgRXh0ZW5kZWRcbiAgKiBDYXBhYmlsaXR5IHNwYWNlLCByZXR1cm4gMC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgU1QgVGFibGUgU2l6ZSAmIzQzOyAxLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcbmluZGV4IGEyOGYxZTk5MzYyYzFlLi5jN2Q2OTAyYmM2MWIwNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xuQEAgLTE1NzIsNiAmIzQzOzE1NzIsOSBAQCBpbnQgdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlKHN0cnVjdCB2ZmlvX2RldmljZSAqZGV2aWNlLCB1MzIgZmxhZ3MsXG4gXHRcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfdG9rZW4odmRldiwgZmxhZ3MsIGFyZywgYXJnc3opO1xuIFx0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUY6XG4gXHRcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7XG4mIzQzO1x0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIOlxuJiM0MztcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCh2ZGV2LCBmbGFncywgYXJnLFxuJiM0MztcdFx0XHRcdFx0XHRcdCBhcmdzeik7XG4gXHRkZWZhdWx0OlxuIFx0XHRyZXR1cm4gLUVOT1RUWTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuaW5kZXggYzE2ZjQ2MGMwMWQ2ODEuLjUzNTE4MzljMTMzOGFmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuICAqL1xuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1idWYtbWFwcGluZy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLXAycGRtYS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcJiMzNDt2ZmlvX3BjaV9wcml2LmhcJiMzNDtcbkBAIC0xOSw3ICYjNDM7MjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xuIFx0dTMyIG5yX3JhbmdlcztcbiBcdHN0cnVjdCBrcmVmIGtyZWY7XG4gXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xuLVx0dTggcmV2b2tlZCA6IDE7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgZG1hYnVmLVx1MDAzZXJlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseVxuJiM0MztcdCAqIHByb3RlY3RlZCBieSBtZW1vcnlfbG9jay5cbiYjNDM7XHQgKi9cbiYjNDM7XHR1MTYgdHBoX3N0X2V4dDtcbiYjNDM7XHR1OCB0cGhfc3Q7XG4mIzQzO1x0Ym9vbCByZXZva2VkO1xuJiM0MztcdHU4IHRwaF9zdF92YWxpZDoxO1xuJiM0MztcdHU4IHRwaF9zdF9leHRfdmFsaWQ6MTtcbiYjNDM7XHR1OCB0cGhfcGg6MjtcbiB9O1xuIFxuIHN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcbkBAIC0zMCw3ICYjNDM7NDEsNyBAQCBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRpZiAoIWF0dGFjaG1lbnQtXHUwMDNlcGVlcjJwZWVyKVxuIFx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gXG4tXHRpZiAocHJpdi1cdTAwM2VyZXZva2VkKVxuJiM0MztcdGlmIChSRUFEX09OQ0UocHJpdi1cdTAwM2VyZXZva2VkKSlcbiBcdFx0cmV0dXJuIC1FTk9ERVY7XG4gXG4gXHRpZiAoIWRtYV9idWZfYXR0YWNoX3Jldm9jYWJsZShhdHRhY2htZW50KSlcbkBAIC02OSw2ICYjNDM7ODAsMjYgQEAgdmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuJiM0MztzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbiYjNDM7XHRcdFx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi1cdTAwM2Vwcml2O1xuJiM0MztcbiYjNDM7XHRkbWFfcmVzdl9hc3NlcnRfaGVsZChkbWFidWYtXHUwMDNlcmVzdik7XG4mIzQzO1xuJiM0MztcdGlmIChleHRlbmRlZCkge1xuJiM0MztcdFx0aWYgKCFwcml2LVx1MDAzZXRwaF9zdF9leHRfdmFsaWQpXG4mIzQzO1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHRcdCpzdGVlcmluZ190YWcgPSBwcml2LVx1MDAzZXRwaF9zdF9leHQ7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfdmFsaWQpXG4mIzQzO1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHRcdCpzdGVlcmluZ190YWcgPSBwcml2LVx1MDAzZXRwaF9zdDtcbiYjNDM7XHR9XG4mIzQzO1x0KnBoID0gcHJpdi1cdTAwM2V0cGhfcGg7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuIFx0XHRcdFx0ICAgc3RydWN0IHNnX3RhYmxlICpzZ3QsXG4gXHRcdFx0XHQgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpXG5AQCAtMTAxLDYgJiM0MzsxMzIsNyBAQCBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2Uoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZilcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XG4gXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXG4mIzQzO1x0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbiBcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuIFx0LnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLFxuIFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXG5AQCAtMzMzLDYgJiM0MzszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG4mIzQzO2ludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuJiM0MztcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcbiYjNDM7XHRcdFx0XHQgICAgICBzaXplX3QgYXJnc3opXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBzZXRfdHBoO1xuJiM0MztcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xuJiM0MztcdHN0cnVjdCBkbWFfYnVmICpkbWFidWY7XG4mIzQzO1x0dTggY29tcDtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cdTAwM2VwZGV2KTtcbiYjNDM7XHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gdmZpb19jaGVja19mZWF0dXJlKGZsYWdzLCBhcmdzeiwgVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQsXG4mIzQzO1x0XHRcdFx0IHNpemVvZihzZXRfdHBoKSk7XG4mIzQzO1x0aWYgKHJldCAhPSAxKVxuJiM0MztcdFx0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO1x0aWYgKGNvcHlfZnJvbV91c2VyKFx1MDAyNnNldF90cGgsIGFyZywgc2l6ZW9mKHNldF90cGgpKSlcbiYjNDM7XHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcbiYjNDM7XHRpZiAoc2V0X3RwaC5mbGFncyBcdTAwMjYgfihWRklPX0RNQV9CVUZfVFBIX1NUIHwgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGlmIChzZXRfdHBoLnBoIFx1MDAyNiB+MHgzKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGlmICgoc2V0X3RwaC5mbGFncyBcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBjb21wICE9IFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiYjNDM7XHRkbWFidWYgPSBkbWFfYnVmX2dldChzZXRfdHBoLmRtYWJ1Zl9mZCk7XG4mIzQzO1x0aWYgKElTX0VSUihkbWFidWYpKVxuJiM0MztcdFx0cmV0dXJuIFBUUl9FUlIoZG1hYnVmKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGRtYWJ1Zi1cdTAwM2VvcHMgIT0gXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiYjNDM7XHRcdGdvdG8gb3V0X3B1dDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHByaXYgPSBkbWFidWYtXHUwMDNlcHJpdjtcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2V2ZGV2ICE9IHZkZXYpIHtcbiYjNDM7XHRcdHJldCA9IC1FSU5WQUw7XG4mIzQzO1x0XHRnb3RvIG91dF9wdXQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRyZXQgPSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuJiM0MztcdGlmIChyZXQpXG4mIzQzO1x0XHRnb3RvIG91dF9wdXQ7XG4mIzQzO1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcbiYjNDM7XHRwcml2LVx1MDAzZXRwaF9zdF9leHQgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWdfZXh0O1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3BoICAgICAgICAgPSBzZXRfdHBoLnBoO1xuJiM0MztcdHByaXYtXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUKTtcbiYjNDM7XHRwcml2LVx1MDAzZXRwaF9zdF9leHRfdmFsaWQgPVxuJiM0MztcdFx0ISEoc2V0X3RwaC5mbGFncyBcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpO1xuJiM0MztcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4mIzQzO1x0cmV0ID0gMDtcbiYjNDM7XG4mIzQzO291dF9wdXQ6XG4mIzQzO1x0ZG1hX2J1Zl9wdXQoZG1hYnVmKTtcbiYjNDM7XHRyZXR1cm4gcmV0O1xuJiM0Mzt9XG4mIzQzO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKVxuIHtcbiBcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcbmluZGV4IGZjYTlkMGRmYWM5MGY4Li5jNThmMzY5YmU0YjM5OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaFxuQEAgLTExOCw2ICYjNDM7MTE4LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2ZmlvX3BjaV9pc192Z2Eoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIFx0XHRcdFx0ICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIF9fdXNlciAqYXJnLFxuIFx0XHRcdFx0ICBzaXplX3QgYXJnc3opO1xuJiM0MztpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbiYjNDM7XHRcdFx0XHQgICAgICB1MzIgZmxhZ3MsXG4mIzQzO1x0XHRcdFx0ICAgICAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXG4mIzQzO1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcbiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfY2xlYW51cChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYpO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTtcbiAjZWxzZVxuQEAgLTEyOCw2ICYjNDM7MTMyLDE0IEBAIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuIHtcbiBcdHJldHVybiAtRU5PVFRZO1xuIH1cbiYjNDM7XG4mIzQzO3N0YXRpYyBpbmxpbmUgaW50XG4mIzQzO3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbiYjNDM7XHRcdFx0XHQgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuJiM0MztcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIC1FTk9UVFk7XG4mIzQzO31cbiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldilcbiB7XG4gfVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmhcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxuQEAgLTExMyw2ICYjNDM7MTEzLDI5IEBAIHN0cnVjdCBkbWFfYnVmX29wcyB7XG4gXHQgKi9cbiBcdHZvaWQgKCp1bnBpbikoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcbiBcbiYjNDM7XHQvKipcbiYjNDM7XHQgKiBAZ2V0X3BjaV90cGg6XG4mIzQzO1x0ICpcbiYjNDM7XHQgKiBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgc3RlZXJpbmcgbWV0YWRhdGEgZm9yXG4mIzQzO1x0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXG4mIzQzO1x0ICogb3V0Ym91bmQgVExQcyB0YXJnZXRpbmcgdGhlIGV4cG9ydGVyIGZvciBwZWVyLXRvLXBlZXIgRE1BLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXG4mIzQzO1x0ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuJiM0MztcdCAqIEBzdGVlcmluZ190YWc6IFJldHVybnMgdGhlIHJhdyBUUEggc3RlZXJpbmcgdGFnIGZvciB0aGUgcmVxdWVzdGVkXG4mIzQzO1x0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXG4mIzQzO1x0ICogQHBoOiBSZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50ICgyLWJpdCB2YWx1ZSlcbiYjNDM7XHQgKlxuJiM0MztcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG4mIzQzO1x0ICogXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cbiYjNDM7XHQgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS5cbiYjNDM7XHQgKlxuJiM0MztcdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXG4mIzQzO1x0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxuJiM0MztcdCAqL1xuJiM0MztcdGludCAoKmdldF9wY2lfdHBoKShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuJiM0MztcdFx0XHQgICB1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiYjNDM7XG4gXHQvKipcbiBcdCAqIEBtYXBfZG1hX2J1ZjpcbiBcdCAqXG5AQCAtNTYzLDYgJiM0Mzs1ODYsOCBAQCB2b2lkIGRtYV9idWZfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRcdCAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIGludCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIHZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuJiM0MztpbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuJiM0MztcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiBcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcbiBcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oXG5AQCAtMTE4MiwxNiAmIzQzOzExODIsMzEgQEAgaW50IG1seDVfZG1fc3dfaWNtX2RlYWxsb2Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSBtbHg1X3N3X2ljbV90eXBlIHR5cGVcbiBcdFx0XHQgICB1NjQgbGVuZ3RoLCB1MTYgdWlkLCBwaHlzX2FkZHJfdCBhZGRyLCB1MzIgb2JqX2lkKTtcbiBcbiAjaWZkZWYgQ09ORklHX1BDSUVfVFBIXG4mIzQzO2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxuJiM0MztcdFx0XHQgICAgICAgdTE2ICpzdF9pbmRleCk7XG4mIzQzO2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpO1xuIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdHVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KTtcbiBpbnQgbWx4NV9zdF9kZWFsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XG4gI2Vsc2VcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiYjNDM7XHRcdFx0XHRcdCAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleClcbiYjNDM7e1xuJiM0MztcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXG4ge1xuIFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIH1cbiYjNDM7XG4gc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9kZWFsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbiB7XG4gXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmggYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxuaW5kZXggYmU2OGNkMTdmMmY4MzMuLjc3NDNhZjZmZTQzMjZlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXG5AQCAtOSw2ICYjNDM7OSw4IEBAXG4gI2lmbmRlZiBMSU5VWF9QQ0lfVFBIX0hcbiAjZGVmaW5lIExJTlVYX1BDSV9UUEhfSFxuIFxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2lfcmVncy5oXHUwMDNlXG4mIzQzO1xuIC8qXG4gICogQWNjb3JkaW5nIHRvIHRoZSBFQ04gZm9yIFBDSSBGaXJtd2FyZSBTcGVjLCBTdGVlcmluZyBUYWcgY2FuIGJlIGRpZmZlcmVudFxuICAqIGRlcGVuZGluZyBvbiB0aGUgbWVtb3J5IHR5cGU6IFZvbGF0aWxlIE1lbW9yeSBvciBQZXJzaXN0ZW50IE1lbW9yeS4gV2hlbiBhXG5AQCAtMzAsNiAmIzQzOzMyLDggQEAgdm9pZCBwY2llX2Rpc2FibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSk7XG4gdTE2IHBjaWVfdHBoX2dldF9zdF90YWJsZV9zaXplKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4mIzQzO3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gI2Vsc2VcbiBzdGF0aWMgaW5saW5lIGludCBwY2llX3RwaF9zZXRfc3RfZW50cnkoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gXHRcdFx0XHRcdHVuc2lnbmVkIGludCBpbmRleCwgdTE2IHRhZylcbkBAIC00MSw2ICYjNDM7NDUsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfZ2V0X2NwdV9zdChzdHJ1Y3QgcGNpX2RldiAqZGV2LFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2llX2Rpc2FibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KSB7IH1cbiBzdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxuIHsgcmV0dXJuIC1FSU5WQUw7IH1cbiYjNDM7c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuJiM0Mzt7IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XG4mIzQzO3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4mIzQzO3sgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4gI2VuZGlmXG4gXG4gI2VuZGlmIC8qIExJTlVYX1BDSV9UUEhfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5AQCAtMTUzNCw2ICYjNDM7MTUzNCw0OSBAQCBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIHtcbiAgKi9cbiAjZGVmaW5lIFZGSU9fREVWSUNFX0ZFQVRVUkVfTUlHX1BSRUNPUFlfSU5GT3YyICAxMlxuIFxuJiM0MzsvKipcbiYjNDM7ICogVXBvbiBWRklPX0RFVklDRV9GRUFUVVJFX1NFVCBhc3NvY2lhdGUgVFBIIChUTFAgUHJvY2Vzc2luZyBIaW50cykgbWV0YWRhdGFcbiYjNDM7ICogd2l0aCBhIHZmaW8tZXhwb3J0ZWQgZG1hLWJ1Zi4gVGhlIGRtYS1idWYgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieVxuJiM0MzsgKiBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYgb24gdGhpcyBkZXZpY2UsIGFuZCB0aGUgZGV2aWNlIG11c3QgcmVwb3J0XG4mIzQzOyAqIFRQSCBDb21wbGV0ZXIgc3VwcG9ydCBpbiBEZXZpY2UgQ2FwYWJpbGl0aWVzIDIgKGJpdHMgMTM6MTIpOyByZXF1ZXN0c1xuJiM0MzsgKiBjYXJyeWluZyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCBhZGRpdGlvbmFsbHkgcmVxdWlyZSB0aGUgZGV2aWNlIHRvXG4mIzQzOyAqIHJlcG9ydCB0aGUgRXh0ZW5kZWQgVFBIIENvbXBsZXRlciBlbmNvZGluZy4gT3RoZXJ3aXNlIHRoZSBpb2N0bFxuJiM0MzsgKiByZXR1cm5zIC1FT1BOT1RTVVBQLlxuJiM0MzsgKlxuJiM0MzsgKiBAZG1hYnVmX2ZkIGlzIHRoZSBmaWxlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGLlxuJiM0MzsgKlxuJiM0MzsgKiA4LWJpdCBTVCAoQHN0ZWVyaW5nX3RhZykgYW5kIDE2LWJpdCBFeHRlbmRlZCBTVCAoQHN0ZWVyaW5nX3RhZ19leHQpIGFyZVxuJiM0MzsgKiBkaXN0aW5jdCBuYW1lc3BhY2VzLiBAZmxhZ3MgaXMgdGhlIGF1dGhvcml0YXRpdmUgdmFsaWRpdHkgbWFzayBmb3IgdGhlXG4mIzQzOyAqIHR3byBuYW1lc3BhY2VzOiBWRklPX0RNQV9CVUZfVFBIX1NUIG1hcmtzIEBzdGVlcmluZ190YWcgdmFsaWQgYW5kXG4mIzQzOyAqIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIG1hcmtzIEBzdGVlcmluZ190YWdfZXh0IHZhbGlkLiBBbiBpbXBvcnRlclxuJiM0MzsgKiByZXF1ZXN0cyBvbmUgbmFtZXNwYWNlIGFuZCByZWNlaXZlcyB0aGUgbWF0Y2hpbmcgdmFsdWUuXG4mIzQzOyAqXG4mIzQzOyAqIEVhY2ggU0VUIGZ1bGx5IHJlcGxhY2VzIHRoZSBkbWEtYnVmJiMzOTtzIFRQSCBzdGF0ZSBmb3IgZnV0dXJlIHF1ZXJpZXNcbiYjNDM7ICogb25seS4gQSBuYW1lc3BhY2Ugd2hvc2UgZmxhZyBiaXQgaXMgY2xlYXIgaXMgcmVwb3J0ZWQgYXMgdW5zdXBwb3J0ZWRcbiYjNDM7ICogdG8gZnV0dXJlIGltcG9ydGVyczsgYW4gaW1wb3J0ZXIgdGhhdCBoYXMgYWxyZWFkeSByZXRyaWV2ZWQgYSB2YWx1ZVxuJiM0MzsgKiBpcyB1bmFmZmVjdGVkLiBAZmxhZ3MgPT0gMCBsZWF2ZXMgYm90aCBuYW1lc3BhY2VzIHVuc3VwcG9ydGVkIGZvclxuJiM0MzsgKiBmdXR1cmUgaW1wb3J0ZXJzLlxuJiM0MzsgKlxuJiM0MzsgKiBAcGggaXMgdGhlIDItYml0IFRMUCBQcm9jZXNzaW5nIEhpbnQgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCAzXS5cbiYjNDM7ICpcbiYjNDM7ICogVW5kZWZpbmVkIEBmbGFncyBhbmQgQHBoIGJpdHMgbXVzdCBhbHdheXMgYmUgemVyby5cbiYjNDM7ICpcbiYjNDM7ICogVXNlcnNwYWNlIG11c3QgY29uZmlndXJlIFRQSCBiZWZvcmUgaGFuZGluZyB0aGUgZG1hLWJ1ZiBmZCB0byBhblxuJiM0MzsgKiBpbXBvcnRlci5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCAxM1xuJiM0MztcbiYjNDM7I2RlZmluZSBWRklPX0RNQV9CVUZfVFBIX1NUXHRcdCgxIFx1MDAzY1x1MDAzYyAwKVxuJiM0MzsjZGVmaW5lIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUXHRcdCgxIFx1MDAzY1x1MDAzYyAxKVxuJiM0MztcbiYjNDM7c3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGgge1xuJiM0MztcdF9fczMyXHRkbWFidWZfZmQ7XG4mIzQzO1x0X191MzJcdGZsYWdzO1xuJiM0MztcdF9fdTE2XHRzdGVlcmluZ190YWdfZXh0O1xuJiM0MztcdF9fdThcdHN0ZWVyaW5nX3RhZztcbiYjNDM7XHRfX3U4XHRwaDtcbiYjNDM7fTtcbiYjNDM7XG4gLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovXG4gXG4gLyoqXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmQ2MDJhOGUxNjc0NjRlMGJkMGExNzhlM2U0MTdiNjJlYmYyMGNlYQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTk6NTk6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwppbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwpAQCAtOTM5LDYgJiM0Mzs5MzksNyBAQCBkbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQogICogICAgIC0gZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KCkKICAqICAgICAtIGRtYV9idWZfdm1hcCgpCiAgKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpCiYjNDM7ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpCiAgKgogICogMi4gSW1wb3J0ZXJzIG11c3Qgbm90IGhvbGQgdGhlIGRtYS1idWYgcmVzZXJ2YXRpb24gbG9jayB3aGVuIGNhbGxpbmcgdGhlc2UKICAqICAgIGZ1bmN0aW9uczoKQEAgLTk3OSw2ICYjNDM7OTgwLDcgQEAgZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKICAqICAgICAtICZhbXA7ZG1hX2J1Zl9vcHMudW5tYXBfZG1hX2J1ZigpCiAgKiAgICAgLSAmYW1wO2RtYV9idWZfb3BzLnZtYXAoKQogICogICAgIC0gJmFtcDtkbWFfYnVmX29wcy52dW5tYXAoKQomIzQzOyAqICAgICAtICZhbXA7ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGgoKQogICoKICAqIDMuIEV4cG9ydGVycyBtdXN0IGhvbGQgdGhlIGRtYS1idWYgcmVzZXJ2YXRpb24gbG9jayB3aGVuIGNhbGxpbmcgdGhlc2UKICAqICAgIGZ1bmN0aW9uczoKQEAgLTExNDQsNiAmIzQzOzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKIH0KIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sICYjMzQ7RE1BX0JVRiYjMzQ7KTsKIAomIzQzOy8qKgomIzQzOyAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGEKJiM0MzsgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5CiYjNDM7ICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVAomIzQzOyAqIEBzdGVlcmluZ190YWc6IHJldHVybnMgdGhlIHJhdyBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlCiYjNDM7ICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50CiYjNDM7ICoKJiM0MzsgKiBXcmFwcGVyIGZvciB0aGUgb3B0aW9uYWwgJmFtcDtkbWFfYnVmX29wcy5nZXRfcGNpX3RwaCBjYWxsYmFjay4KJiM0MzsgKgomIzQzOyAqIE11c3QgYmUgY2FsbGVkIHdpdGggJmFtcDtkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAtRU9QTk9UU1VQUCBpZiB0aGUKJiM0MzsgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlCiYjNDM7ICogcmVxdWVzdGVkIG5hbWVzcGFjZS4KJiM0MzsgKgomIzQzOyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGUKJiM0MzsgKiBleHBvcnRlciBpbnZhbGlkYXRlcyB0aGUgY3VycmVudCBtYXBwaW5nIChzaWduYWxsZWQgdG8gdGhlIGltcG9ydGVyIHZpYQomIzQzOyAqICZhbXA7ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXcKJiM0MzsgKiBtYXBwaW5nIGlzIGVzdGFibGlzaGVkIGZvbGxvd2luZyBpbnZhbGlkYXRpb24uCiYjNDM7ICovCiYjNDM7aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCwKJiM0MzsJCQl1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKQomIzQzO3sKJiM0MzsJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLSZndDtyZXN2KTsKJiM0MzsKJiM0MzsJaWYgKCFkbWFidWYtJmd0O29wcy0mZ3Q7Z2V0X3BjaV90cGgpCiYjNDM7CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CiYjNDM7CXJldHVybiBkbWFidWYtJmd0O29wcy0mZ3Q7Z2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgc3RlZXJpbmdfdGFnLCBwaCk7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsICYjMzQ7RE1BX0JVRiYjMzQ7KTsKJiM0MzsKIC8qKgogICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50OwogICogbWFwcGVkIGludG8gX2RldmljZV8gYWRkcmVzcyBzcGFjZS4gSXMgYSB3cmFwcGVyIGZvciBtYXBfZG1hX2J1ZigpIG9mIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAKIE1PRFVMRV9BVVRIT1IoJiMzNDtFbGkgQ29oZW4gJmx0O2VsaUBtZWxsYW5veC5jb20mZ3Q7JiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXImIzM0Oyk7CiBNT0RVTEVfTElDRU5TRSgmIzM0O0R1YWwgQlNEL0dQTCYjMzQ7KTsKJiM0MztNT0RVTEVfSU1QT1JUX05TKCYjMzQ7RE1BX0JVRiYjMzQ7KTsKIAogc3RydWN0IG1seDVfaWJfZXZlbnRfd29yayB7CiAJc3RydWN0IHdvcmtfc3RydWN0CXdvcms7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYwppbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYwpAQCAtMzksNiAmIzQzOzM5LDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9kZWxheS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2RtYS1idWYuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtcmVzdi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9wY2ktdHBoLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7cmRtYS9mcm1yX3Bvb2xzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7cmRtYS9pYl91bWVtX29kcC5oJmd0OwogI2luY2x1ZGUgJiMzNDtkbS5oJiMzNDsKQEAgLTE2Nyw2ICYjNDM7MTY4LDM5IEBAIHN0YXRpYyBpbnQgZ2V0X3VuY2hhbmdlYWJsZV9hY2Nlc3NfZmxhZ3Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsCiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0sgR0VOTUFTS19VTEwoMjMsIDE2KQogI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLIEdFTk1BU0tfVUxMKDE1LCAwKQogCiYjNDM7c3RhdGljIHU4IG1seDVfaWJfdHBoX2tleV9waCh1OCBwaCkKJiM0Mzt7CiYjNDM7CWlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApCiYjNDM7CQlwaCBePSBNTFg1X0lCX05PX1BIOwomIzQzOwomIzQzOwlyZXR1cm4gcGg7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpbnQgbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJaWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCkKJiM0MzsJCXJldHVybiAwOwomIzQzOwomIzQzOwlyZXR1cm4gbWx4NV9zdF9nZXRfaW5kZXgoZGV2LSZndDttZGV2LCBzdF9pbmRleCk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJaWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJbWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi0mZ3Q7bWRldiwgc3RfaW5kZXgpOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LAomIzQzOwkJCQkgICAgICB1NjQga2VybmVsX3ZlbmRvcl9rZXkpCiYjNDM7ewomIzQzOwl1MTYgc3RfaW5kZXggPSBGSUVMRF9HRVQoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSywKJiM0MzsJCQkJIGtlcm5lbF92ZW5kb3Jfa2V5KTsKJiM0MzsKJiM0MzsJbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqCiBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLAogCQkgICAgICBpbnQgYWNjZXNzX2ZsYWdzLCBpbnQgYWNjZXNzX21vZGUsCkBAIC0xODksMTMgJiM0MzsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJCU1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0sgOgogCQkJMDsKIAotCS8qIE5vcm1hbGl6ZSBwaDogc3dhcCAwIGFuZCBNTFg1X0lCX05PX1BIICovCi0JaWYgKHBoID09IE1MWDVfSUJfTk9fUEggfHwgcGggPT0gMCkKLQkJcGggXj0gTUxYNV9JQl9OT19QSDsKLQogCW1yLSZndDtpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID0KIAkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfAotCQlGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssIHBoKTsKJiM0MzsJCUZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywKJiM0MzsJCQkgICBtbHg1X2liX3RwaF9rZXlfcGgocGgpKTsKIAllcnIgPSBpYl9mcm1yX3Bvb2xfcG9wKCZhbXA7ZGV2LSZndDtpYl9kZXYsICZhbXA7bXItJmd0O2libXIpOwogCWlmIChlcnIpIHsKIAkJa2ZyZWUobXIpOwpAQCAtMjE4LDcgJiM0MzsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwKIAkJCQkgICAgICAwIDoKIAkJCQkgICAgICBNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLLAogCQkubnVtX2RtYV9ibG9ja3MgPSBuZGVzY3MsCi0JCS5rZXJuZWxfdmVuZG9yX2tleSA9IDAsIC8qIG5vIFBIIGFuZCBubyBTVCBpbmRleCAqLwomIzQzOwkJLmtlcm5lbF92ZW5kb3Jfa2V5ID0KJiM0MzsJCQlGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssCiYjNDM7CQkJCSAgIE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWCksCiAJfTsKIAlzdHJ1Y3QgbWx4NV9pYl9tciAqbXI7CiAJaW50IHJldDsKQEAgLTU1Nyw2ICYjNDM7NTkwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqcmVnX2NyZWF0ZShzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAltci0mZ3Q7aWJtci5wZCA9IHBkOwogCW1yLSZndDthY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7CiAJbXItJmd0O3BhZ2Vfc2hpZnQgPSBvcmRlcl9iYXNlXzIocGFnZV9zaXplKTsKJiM0MzsJbXItJmd0O2libXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPQomIzQzOwkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfAomIzQzOwkJRklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLAomIzQzOwkJCSAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpOwogCiAJaW5sZW4gPSBNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X2luKTsKIAlpZiAocG9wdWxhdGUpCkBAIC03NTMsNiAmIzQzOzc5MCwxMiBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJCXN0X2luZGV4ID0gbWRtYWgtJmd0O3N0X2luZGV4OwogCX0KIAomIzQzOwllcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlpYl91bWVtX3JlbGVhc2UodW1lbSk7CiYjNDM7CQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwl9CiYjNDM7CiAJeGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tJmd0O2xlbmd0aCk7CiAJaWYgKHhsdF93aXRoX3VtcikgewogCQltciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgdW1lbSwgaW92YSwgYWNjZXNzX2ZsYWdzLApAQCAtNzY5LDYgJiM0Mzs4MTIsNyBAQCBzdGF0aWMgc3RydWN0IGliX21yICpjcmVhdGVfcmVhbF9tcihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7ZGV2LSZndDtzbG93X3BhdGhfbXV0ZXgpOwogCX0KIAlpZiAoSVNfRVJSKG1yKSkgewomIzQzOwkJbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpOwogCQlpYl91bWVtX3JlbGVhc2UodW1lbSk7CiAJCXJldHVybiBFUlJfQ0FTVChtcik7CiAJfQpAQCAtOTAzLDYgJiM0Mzs5NDcsNTIgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9vcHMgbWx4NV9pYl9kbWFidWZfYXR0YWNoX29wcyA9IHsKIAkuaW52YWxpZGF0ZV9tYXBwaW5ncyA9IG1seDVfaWJfZG1hYnVmX2ludmFsaWRhdGVfY2IsCiB9OwogCiYjNDM7c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAomIzQzOwkJCQkgIHUxNiAqc3RfaW5kZXgsIHU4ICpwaCkKJiM0Mzt7CiYjNDM7CXUxNiBsb2NhbF9zdF9pbmRleDsKJiM0MzsJdTE2IHN0ZWVyaW5nX3RhZzsKJiM0MzsJdTggbG9jYWxfcGg7CiYjNDM7CWJvb2wgZXh0ZW5kZWQ7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CXN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtJmd0O21kZXYtJmd0O3BkZXYpKSB7CiYjNDM7CWNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6CiYjNDM7CQlleHRlbmRlZCA9IGZhbHNlOwomIzQzOwkJYnJlYWs7CiYjNDM7CWNhc2UgUENJX1RQSF9SRVFfRVhUX1RQSDoKJiM0MzsJCWV4dGVuZGVkID0gdHJ1ZTsKJiM0MzsJCWJyZWFrOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiYjNDM7CWRtYV9yZXN2X2xvY2soZG1hYnVmLSZndDtyZXN2LCBOVUxMKTsKJiM0MzsJcmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCAmYW1wO3N0ZWVyaW5nX3RhZywgJmFtcDtsb2NhbF9waCk7CiYjNDM7CWRtYV9yZXN2X3VubG9jayhkbWFidWYtJmd0O3Jlc3YpOwomIzQzOwlpZiAocmV0KSB7CiYjNDM7CQlpZiAocmV0ICE9IC1FT1BOT1RTVVBQKQomIzQzOwkJCW1seDVfaWJfZGJnKGRldiwgJiMzNDtnZXRfcGNpX3RwaCBmYWlsZWQgKCVkKVxuJiMzNDssIHJldCk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0ID0gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LSZndDttZGV2LCBzdGVlcmluZ190YWcsCiYjNDM7CQkJCQkgJmFtcDtsb2NhbF9zdF9pbmRleCk7CiYjNDM7CWlmIChyZXQpIHsKJiM0MzsJCW1seDVfaWJfZGJnKGRldiwgJiMzNDtzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcbiYjMzQ7LCByZXQpOwomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiYjNDM7CSpzdF9pbmRleCA9IGxvY2FsX3N0X2luZGV4OwomIzQzOwkqcGggPSBsb2NhbF9waDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpCiYjNDM7ewomIzQzOwltbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLAomIzQzOwkJCQkgIG1yLSZndDtpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IGliX21yICoKIHJlZ191c2VyX21yX2RtYWJ1ZihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2aWNlLAogCQkgICB1NjQgb2Zmc2V0LCB1NjQgbGVuZ3RoLCB1NjQgdmlydF9hZGRyLApAQCAtOTQ1LDEyICYjNDM7MTAzNSwyMiBAQCByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSwKIAkJcGggPSBkbWFoLSZndDtwaDsKIAkJaWYgKGRtYWgtJmd0O3ZhbGlkX2ZpZWxkcyAmYW1wOyBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSkKIAkJCXN0X2luZGV4ID0gbWRtYWgtJmd0O3N0X2luZGV4OwomIzQzOwomIzQzOwkJZXJyID0gbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihkZXYsIHN0X2luZGV4KTsKJiM0MzsJCWlmIChlcnIpIHsKJiM0MzsJCQlpYl91bWVtX3JlbGVhc2UoJmFtcDt1bWVtX2RtYWJ1Zi0mZ3Q7dW1lbSk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCWdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLSZndDthdHRhY2gtJmd0O2RtYWJ1ZiwKJiM0MzsJCQkJICAgICAgJmFtcDtzdF9pbmRleCwgJmFtcDtwaCk7CiAJfQogCiAJbXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsICZhbXA7dW1lbV9kbWFidWYtJmd0O3VtZW0sIHZpcnRfYWRkciwKIAkJCQlhY2Nlc3NfZmxhZ3MsIGFjY2Vzc19tb2RlLAogCQkJCXN0X2luZGV4LCBwaCk7CiAJaWYgKElTX0VSUihtcikpIHsKJiM0MzsJCW1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTsKIAkJaWJfdW1lbV9yZWxlYXNlKCZhbXA7dW1lbV9kbWFidWYtJmd0O3VtZW0pOwogCQlyZXR1cm4gRVJSX0NBU1QobXIpOwogCX0KQEAgLTE0MDUsNiAmIzQzOzE1MDUsNyBAQCBzdGF0aWMgaW50IG1seDVyX2hhbmRsZV9ta2V5X2NsZWFudXAoc3RydWN0IG1seDVfaWJfbXIgKm1yKQogCWlmIChtci0mZ3Q7aWJtci5mcm1yLnBvb2wpIHsKIAkJaWYgKCFtbHg1X3Vtcl9yZXZva2VfbXJfd2l0aF9sb2NrKG1yKSkgewogCQkJaWJfZnJtcl9wb29sX3B1c2gobXItJmd0O2libXIuZGV2aWNlLCAmYW1wO21yLSZndDtpYm1yKTsKJiM0MzsJCQltbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKG1yKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQpAQCAtMTQzMiw2ICYjNDM7MTUzMyw5IEBAIHN0YXRpYyBpbnQgbWx4NXJfaGFuZGxlX21rZXlfY2xlYW51cChzdHJ1Y3QgbWx4NV9pYl9tciAqbXIpCiAJaWYgKG1yLSZndDtpYm1yLmZybXIucG9vbCAmYW1wOyZhbXA7ICFyZXQpCiAJCWliX2ZybXJfcG9vbF9kcm9wKCZhbXA7bXItJmd0O2libXIpOwogCiYjNDM7CWlmICghcmV0KQomIzQzOwkJbWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jCmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuYwpAQCAtOTIsMjMgJiM0Mzs5MiwxOCBAQCB2b2lkIG1seDVfc3RfZGVzdHJveShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCWtmcmVlKHN0KTsKIH0KIAotaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSB0cGhfbWVtX3R5cGUgbWVtX3R5cGUsCi0JCQl1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZywKJiM0MzsJCQkgICAgICAgdTE2ICpzdF9pbmRleCkKIHsKIAlzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7CiAJc3RydWN0IG1seDVfc3QgKnN0ID0gZGV2LSZndDtzdDsKIAl1bnNpZ25lZCBsb25nIGluZGV4OwogCXUzMiB4YV9pZDsKLQl1MTYgdGFnOwotCWludCByZXQ7CiYjNDM7CWludCByZXQgPSAwOwogCiAJaWYgKCFzdCkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JcmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtJmd0O3BkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCAmYW1wO3RhZyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCWlmIChzdC0mZ3Q7ZGlyZWN0X21vZGUpIHsKIAkJKnN0X2luZGV4ID0gdGFnOwogCQlyZXR1cm4gMDsKQEAgLTE1Miw4ICYjNDM7MTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLAogCW11dGV4X3VubG9jaygmYW1wO3N0LSZndDtsb2NrKTsKIAlyZXR1cm4gcmV0OwogfQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTsKJiM0MzsKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKJiM0MzsJCQl1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKJiM0Mzt7CiYjNDM7CXUxNiB0YWc7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CXJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LSZndDtwZGV2LCBtZW1fdHlwZSwgY3B1X3VpZCwgJmFtcDt0YWcpOwomIzQzOwlpZiAocmV0KQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKJiM0MzsJcmV0dXJuIG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKGRldiwgdGFnLCBzdF9pbmRleCk7CiYjNDM7fQogRVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9hbGxvY19pbmRleCk7CiAKJiM0MztpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJc3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhOwomIzQzOwlzdHJ1Y3QgbWx4NV9zdCAqc3QgPSBkZXYtJmd0O3N0OwomIzQzOwlpbnQgcmV0ID0gMDsKJiM0MzsKJiM0MzsJaWYgKCFzdCkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKHN0LSZndDtkaXJlY3RfbW9kZSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwomIzQzOwltdXRleF9sb2NrKCZhbXA7c3QtJmd0O2xvY2spOwomIzQzOwlpZHhfZGF0YSA9IHhhX2xvYWQoJmFtcDtzdC0mZ3Q7aWR4X3hhLCBzdF9pbmRleCk7CiYjNDM7CWlmIChXQVJOX09OX09OQ0UoIWlkeF9kYXRhKSkKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiYjNDM7CWVsc2UKJiM0MzsJCXJlZmNvdW50X2luYygmYW1wO2lkeF9kYXRhLSZndDt1c2Vjb3VudCk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO3N0LSZndDtsb2NrKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9zdF9nZXRfaW5kZXgpOwomIzQzOwogaW50IG1seDVfc3RfZGVhbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpCiB7CiAJc3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdHBoLmMgYi9kcml2ZXJzL3BjaS90cGguYwppbmRleCA2NTVmZmQ2MGU2MmY2YS4uZTc2OTNmZDlkNjc2MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3RwaC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3RwaC5jCkBAIC0xNzMsNiAmIzQzOzE3Myw1MSBAQCB1MzIgcGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKIH0KIEVYUE9SVF9TWU1CT0wocGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyk7CiAKJiM0MzsvKioKJiM0MzsgKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgZW5hYmxlZCBUUEggcmVxdWVzdGVyIHR5cGUKJiM0MzsgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeQomIzQzOyAqCiYjNDM7ICogUmV0dXJuOiBQQ0lfVFBIX1JFUV9ESVNBQkxFLCBQQ0lfVFBIX1JFUV9UUEhfT05MWSBvciBQQ0lfVFBIX1JFUV9FWFRfVFBILgomIzQzOyAqLwomIzQzO3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7ewomIzQzOwlyZXR1cm4gcGRldi0mZ3Q7dHBoX3JlcV90eXBlOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpOwomIzQzOwomIzQzOy8qKgomIzQzOyAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgVFBIIENvbXBsZXRlciBzdXBwb3J0CiYjNDM7ICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnkKJiM0MzsgKgomIzQzOyAqIFJlYWRzIHRoZSAmIzM0O1RQSCBDb21wbGV0ZXIgU3VwcG9ydGVkJiMzNDsgZmllbGQgKGJpdHMgMTM6MTIpIG9mIERldmljZQomIzQzOyAqIENhcGFiaWxpdGllcyAyLiBUaGUgcmVzZXJ2ZWQgMGIxMCBlbmNvZGluZyBpcyBmb2xkZWQgaW50bwomIzQzOyAqICYjMzQ7bm90IHN1cHBvcnRlZCYjMzQ7IHNvIGNhbGxlcnMgb25seSBuZWVkIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgdGhyZWUKJiM0MzsgKiBkZWZpbmVkIHZhbHVlcy4KJiM0MzsgKgomIzQzOyAqIFJldHVybjogb25lIG9mICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSwKJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFkgb3IKJiM0MzsgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSC4KJiM0MzsgKi8KJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKJiM0Mzt7CiYjNDM7CXUzMiByZWc7CiYjNDM7CiYjNDM7CWlmIChwY2llX2NhcGFiaWxpdHlfcmVhZF9kd29yZChwZGV2LCBQQ0lfRVhQX0RFVkNBUDIsICZhbXA7cmVnKSkKJiM0MzsJCXJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsKJiM0MzsJaWYgKFBDSV9QT1NTSUJMRV9FUlJPUihyZWcpKQomIzQzOwkJcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOwomIzQzOwomIzQzOwlzd2l0Y2ggKEZJRUxEX0dFVChQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTUFTSywgcmVnKSkgewomIzQzOwljYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWToKJiM0MzsJCXJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfVFBIX09OTFk7CiYjNDM7CWNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg6CiYjNDM7CQlyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg7CiYjNDM7CWRlZmF1bHQ6CiYjNDM7CQlyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7CiYjNDM7CiAvKgogICogUmV0dXJuIHRoZSBzaXplIG9mIFNUIHRhYmxlLiBJZiBTVCB0YWJsZSBpcyBub3QgaW4gVFBIIFJlcXVlc3RlciBFeHRlbmRlZAogICogQ2FwYWJpbGl0eSBzcGFjZSwgcmV0dXJuIDAuIE90aGVyd2lzZSByZXR1cm4gdGhlIFNUIFRhYmxlIFNpemUgJiM0MzsgMS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMKaW5kZXggYTI4ZjFlOTkzNjJjMWUuLmM3ZDY5MDJiYzYxYjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYwpAQCAtMTU3Miw2ICYjNDM7MTU3Miw5IEBAIGludCB2ZmlvX3BjaV9jb3JlX2lvY3RsX2ZlYXR1cmUoc3RydWN0IHZmaW9fZGV2aWNlICpkZXZpY2UsIHUzMiBmbGFncywKIAkJcmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV90b2tlbih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7CiAJY2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUY6CiAJCXJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7CiYjNDM7CWNhc2UgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSDoKJiM0MzsJCXJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgodmRldiwgZmxhZ3MsIGFyZywKJiM0MzsJCQkJCQkJIGFyZ3N6KTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT1RUWTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYwppbmRleCBjMTZmNDYwYzAxZDY4MS4uNTM1MTgzOWMxMzM4YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAgKi8KICNpbmNsdWRlICZsdDtsaW51eC9kbWEtYnVmLW1hcHBpbmcuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9wY2ktcDJwZG1hLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3BjaS10cGguaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtcmVzdi5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O3ZmaW9fcGNpX3ByaXYuaCYjMzQ7CkBAIC0xOSw3ICYjNDM7MjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYgewogCXUzMiBucl9yYW5nZXM7CiAJc3RydWN0IGtyZWYga3JlZjsKIAlzdHJ1Y3QgY29tcGxldGlvbiBjb21wOwotCXU4IHJldm9rZWQgOiAxOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBVcGRhdGVzIHByb3RlY3RlZCBieSBkbWFidWYtJmd0O3Jlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseQomIzQzOwkgKiBwcm90ZWN0ZWQgYnkgbWVtb3J5X2xvY2suCiYjNDM7CSAqLwomIzQzOwl1MTYgdHBoX3N0X2V4dDsKJiM0MzsJdTggdHBoX3N0OwomIzQzOwlib29sIHJldm9rZWQ7CiYjNDM7CXU4IHRwaF9zdF92YWxpZDoxOwomIzQzOwl1OCB0cGhfc3RfZXh0X3ZhbGlkOjE7CiYjNDM7CXU4IHRwaF9waDoyOwogfTsKIAogc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLApAQCAtMzAsNyAmIzQzOzQxLDcgQEAgc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAogCWlmICghYXR0YWNobWVudC0mZ3Q7cGVlcjJwZWVyKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQlpZiAocHJpdi0mZ3Q7cmV2b2tlZCkKJiM0MzsJaWYgKFJFQURfT05DRShwcml2LSZndDtyZXZva2VkKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoIWRtYV9idWZfYXR0YWNoX3Jldm9jYWJsZShhdHRhY2htZW50KSkKQEAgLTY5LDYgJiM0Mzs4MCwyNiBAQCB2ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LAogCXJldHVybiByZXQ7CiB9CiAKJiM0MztzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCwKJiM0MzsJCQkJCXUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi0mZ3Q7cHJpdjsKJiM0MzsKJiM0MzsJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLSZndDtyZXN2KTsKJiM0MzsKJiM0MzsJaWYgKGV4dGVuZGVkKSB7CiYjNDM7CQlpZiAoIXByaXYtJmd0O3RwaF9zdF9leHRfdmFsaWQpCiYjNDM7CQkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwkJKnN0ZWVyaW5nX3RhZyA9IHByaXYtJmd0O3RwaF9zdF9leHQ7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlpZiAoIXByaXYtJmd0O3RwaF9zdF92YWxpZCkKJiM0MzsJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CQkqc3RlZXJpbmdfdGFnID0gcHJpdi0mZ3Q7dHBoX3N0OwomIzQzOwl9CiYjNDM7CSpwaCA9IHByaXYtJmd0O3RwaF9waDsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwogc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LAogCQkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCQkJCSAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKQEAgLTEwMSw2ICYjNDM7MTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHsKIAkuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsCiYjNDM7CS5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsCiAJLm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsCiAJLnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLAogCS5yZWxlYXNlID0gdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlLApAQCAtMzMzLDYgJiM0MzszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLAogCXJldHVybiByZXQ7CiB9CiAKJiM0MztpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwKJiM0MzsJCQkJICAgICAgdTMyIGZsYWdzLAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZywKJiM0MzsJCQkJICAgICAgc2l6ZV90IGFyZ3N6KQomIzQzO3sKJiM0MzsJc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggc2V0X3RwaDsKJiM0MzsJc3RydWN0IHZmaW9fcGNpX2RtYV9idWYgKnByaXY7CiYjNDM7CXN0cnVjdCBkbWFfYnVmICpkbWFidWY7CiYjNDM7CXU4IGNvbXA7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CWNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LSZndDtwZGV2KTsKJiM0MzsJaWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpCiYjNDM7CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiYjNDM7CiYjNDM7CXJldCA9IHZmaW9fY2hlY2tfZmVhdHVyZShmbGFncywgYXJnc3osIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VULAomIzQzOwkJCQkgc2l6ZW9mKHNldF90cGgpKTsKJiM0MzsJaWYgKHJldCAhPSAxKQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKJiM0MzsJaWYgKGNvcHlfZnJvbV91c2VyKCZhbXA7c2V0X3RwaCwgYXJnLCBzaXplb2Yoc2V0X3RwaCkpKQomIzQzOwkJcmV0dXJuIC1FRkFVTFQ7CiYjNDM7CiYjNDM7CWlmIChzZXRfdHBoLmZsYWdzICZhbXA7IH4oVkZJT19ETUFfQlVGX1RQSF9TVCB8IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKSkKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwlpZiAoc2V0X3RwaC5waCAmYW1wOyB+MHgzKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWlmICgoc2V0X3RwaC5mbGFncyAmYW1wOyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkgJmFtcDsmYW1wOwomIzQzOwkgICAgY29tcCAhPSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSCkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJZG1hYnVmID0gZG1hX2J1Zl9nZXQoc2V0X3RwaC5kbWFidWZfZmQpOwomIzQzOwlpZiAoSVNfRVJSKGRtYWJ1ZikpCiYjNDM7CQlyZXR1cm4gUFRSX0VSUihkbWFidWYpOwomIzQzOwomIzQzOwlpZiAoZG1hYnVmLSZndDtvcHMgIT0gJmFtcDt2ZmlvX3BjaV9kbWFidWZfb3BzKSB7CiYjNDM7CQlyZXQgPSAtRUlOVkFMOwomIzQzOwkJZ290byBvdXRfcHV0OwomIzQzOwl9CiYjNDM7CiYjNDM7CXByaXYgPSBkbWFidWYtJmd0O3ByaXY7CiYjNDM7CWlmIChwcml2LSZndDt2ZGV2ICE9IHZkZXYpIHsKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiYjNDM7CQlnb3RvIG91dF9wdXQ7CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0ID0gZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKGRtYWJ1Zi0mZ3Q7cmVzdiwgTlVMTCk7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlnb3RvIG91dF9wdXQ7CiYjNDM7CiYjNDM7CXByaXYtJmd0O3RwaF9zdCAgICAgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWc7CiYjNDM7CXByaXYtJmd0O3RwaF9zdF9leHQgICAgID0gc2V0X3RwaC5zdGVlcmluZ190YWdfZXh0OwomIzQzOwlwcml2LSZndDt0cGhfcGggICAgICAgICA9IHNldF90cGgucGg7CiYjNDM7CXByaXYtJmd0O3RwaF9zdF92YWxpZCAgID0gISEoc2V0X3RwaC5mbGFncyAmYW1wOyBWRklPX0RNQV9CVUZfVFBIX1NUKTsKJiM0MzsJcHJpdi0mZ3Q7dHBoX3N0X2V4dF92YWxpZCA9CiYjNDM7CQkhIShzZXRfdHBoLmZsYWdzICZhbXA7IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKTsKJiM0MzsJZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi0mZ3Q7cmVzdik7CiYjNDM7CXJldCA9IDA7CiYjNDM7CiYjNDM7b3V0X3B1dDoKJiM0MzsJZG1hX2J1Zl9wdXQoZG1hYnVmKTsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfbW92ZShzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIGJvb2wgcmV2b2tlZCkKIHsKIAlzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgKaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaApAQCAtMTE4LDYgJiM0MzsxMTgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHZmaW9fcGNpX2lzX3ZnYShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIGludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKIAkJCQkgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYgX191c2VyICphcmcsCiAJCQkJICBzaXplX3QgYXJnc3opOwomIzQzO2ludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LAomIzQzOwkJCQkgICAgICB1MzIgZmxhZ3MsCiYjNDM7CQkJCSAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLAomIzQzOwkJCQkgICAgICBzaXplX3QgYXJnc3opOwogdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KTsKIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTsKICNlbHNlCkBAIC0xMjgsNiAmIzQzOzEzMiwxNCBAQCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKIHsKIAlyZXR1cm4gLUVOT1RUWTsKIH0KJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIGludAomIzQzO3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncywKJiM0MzsJCQkJICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZywKJiM0MzsJCQkJICBzaXplX3QgYXJnc3opCiYjNDM7ewomIzQzOwlyZXR1cm4gLUVOT1RUWTsKJiM0Mzt9CiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldikKIHsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKaW5kZXggZDEyMDNkYTU2ZmM1ZjcuLjE0ZThlYjYxYTYyYzA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaApAQCAtMTEzLDYgJiM0MzsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHsKIAkgKi8KIAl2b2lkICgqdW5waW4pKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7CiAKJiM0MzsJLyoqCiYjNDM7CSAqIEBnZXRfcGNpX3RwaDoKJiM0MzsJICoKJiM0MzsJICogUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIHN0ZWVyaW5nIG1ldGFkYXRhIGZvcgomIzQzOwkgKiB0aGlzIGJ1ZmZlciBzbyBhbiBpbXBvcnRlciBjYW4gcHJvZ3JhbSBhIG1hdGNoaW5nIFNUL1BIIGhpbnQgb24KJiM0MzsJICogb3V0Ym91bmQgVExQcyB0YXJnZXRpbmcgdGhlIGV4cG9ydGVyIGZvciBwZWVyLXRvLXBlZXIgRE1BLgomIzQzOwkgKgomIzQzOwkgKiBAZG1hYnVmOiBETUEgYnVmZmVyIGZvciB3aGljaCB0byByZXRyaWV2ZSBUUEggbWV0YWRhdGEKJiM0MzsJICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVAomIzQzOwkgKiBAc3RlZXJpbmdfdGFnOiBSZXR1cm5zIHRoZSByYXcgVFBIIHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZAomIzQzOwkgKiAgICAgICAgICAgICAgICBuYW1lc3BhY2UKJiM0MzsJICogQHBoOiBSZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50ICgyLWJpdCB2YWx1ZSkKJiM0MzsJICoKJiM0MzsJICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGgKJiM0MzsJICogJmFtcDtkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlbgomIzQzOwkgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS4KJiM0MzsJICoKJiM0MzsJICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3IKJiM0MzsJICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLgomIzQzOwkgKi8KJiM0MzsJaW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsCiYjNDM7CQkJICAgdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7CiYjNDM7CiAJLyoqCiAJICogQG1hcF9kbWFfYnVmOgogCSAqCkBAIC01NjMsNiAmIzQzOzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKIAkJICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7CiBpbnQgZG1hX2J1Zl9waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTsKIHZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpOwomIzQzO2ludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsCiYjNDM7CQkJdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7CiAKIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2V4cG9ydChjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyAqZXhwX2luZm8pOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKaW5kZXggYjE4NzFjMDgyMWQwYjkuLmQyNmU1NzQ0Yzg0M2JmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCkBAIC0xMTgyLDE2ICYjNDM7MTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZQogCQkJICAgdTY0IGxlbmd0aCwgdTE2IHVpZCwgcGh5c19hZGRyX3QgYWRkciwgdTMyIG9ial9pZCk7CiAKICNpZmRlZiBDT05GSUdfUENJRV9UUEgKJiM0MztpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZywKJiM0MzsJCQkgICAgICAgdTE2ICpzdF9pbmRleCk7CiYjNDM7aW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7CiBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKIAkJCXVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KTsKIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTsKICNlbHNlCiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKJiM0MzsJCQkJCSAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleCkKJiM0Mzt7CiYjNDM7CXJldHVybiAtRU9QTk9UU1VQUDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQomIzQzO3sKJiM0MzsJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzO30KJiM0MzsKIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIAkJCQkgICAgICBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSwKIAkJCQkgICAgICB1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCkKIHsKIAlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CiYjNDM7CiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KQogewogCXJldHVybiAtRU9QTk9UU1VQUDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oIGIvaW5jbHVkZS9saW51eC9wY2ktdHBoLmgKaW5kZXggYmU2OGNkMTdmMmY4MzMuLjc3NDNhZjZmZTQzMjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaApAQCAtOSw2ICYjNDM7OSw4IEBACiAjaWZuZGVmIExJTlVYX1BDSV9UUEhfSAogI2RlZmluZSBMSU5VWF9QQ0lfVFBIX0gKIAomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9wY2lfcmVncy5oJmd0OwomIzQzOwogLyoKICAqIEFjY29yZGluZyB0byB0aGUgRUNOIGZvciBQQ0kgRmlybXdhcmUgU3BlYywgU3RlZXJpbmcgVGFnIGNhbiBiZSBkaWZmZXJlbnQKICAqIGRlcGVuZGluZyBvbiB0aGUgbWVtb3J5IHR5cGU6IFZvbGF0aWxlIE1lbW9yeSBvciBQZXJzaXN0ZW50IE1lbW9yeS4gV2hlbiBhCkBAIC0zMCw2ICYjNDM7MzIsOCBAQCB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpOwogdTE2IHBjaWVfdHBoX2dldF9zdF90YWJsZV9zaXplKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIHUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKJiM0Mzt1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKJiM0Mzt1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfc2V0X3N0X2VudHJ5KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCQkJCQl1bnNpZ25lZCBpbnQgaW5kZXgsIHUxNiB0YWcpCkBAIC00MSw2ICYjNDM7NDUsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfZ2V0X2NwdV9zdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogc3RhdGljIGlubGluZSB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfQogc3RhdGljIGlubGluZSBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSkKIHsgcmV0dXJuIC1FSU5WQUw7IH0KJiM0MztzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7eyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfQomIzQzO3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiYjNDM7eyByZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7IH0KICNlbmRpZgogCiAjZW5kaWYgLyogTElOVVhfUENJX1RQSF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaAppbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaApAQCAtMTUzNCw2ICYjNDM7MTUzNCw0OSBAQCBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmIHsKICAqLwogI2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX01JR19QUkVDT1BZX0lORk92MiAgMTIKIAomIzQzOy8qKgomIzQzOyAqIFVwb24gVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQgYXNzb2NpYXRlIFRQSCAoVExQIFByb2Nlc3NpbmcgSGludHMpIG1ldGFkYXRhCiYjNDM7ICogd2l0aCBhIHZmaW8tZXhwb3J0ZWQgZG1hLWJ1Zi4gVGhlIGRtYS1idWYgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieQomIzQzOyAqIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRiBvbiB0aGlzIGRldmljZSwgYW5kIHRoZSBkZXZpY2UgbXVzdCByZXBvcnQKJiM0MzsgKiBUUEggQ29tcGxldGVyIHN1cHBvcnQgaW4gRGV2aWNlIENhcGFiaWxpdGllcyAyIChiaXRzIDEzOjEyKTsgcmVxdWVzdHMKJiM0MzsgKiBjYXJyeWluZyBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCBhZGRpdGlvbmFsbHkgcmVxdWlyZSB0aGUgZGV2aWNlIHRvCiYjNDM7ICogcmVwb3J0IHRoZSBFeHRlbmRlZCBUUEggQ29tcGxldGVyIGVuY29kaW5nLiBPdGhlcndpc2UgdGhlIGlvY3RsCiYjNDM7ICogcmV0dXJucyAtRU9QTk9UU1VQUC4KJiM0MzsgKgomIzQzOyAqIEBkbWFidWZfZmQgaXMgdGhlIGZpbGUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYuCiYjNDM7ICoKJiM0MzsgKiA4LWJpdCBTVCAoQHN0ZWVyaW5nX3RhZykgYW5kIDE2LWJpdCBFeHRlbmRlZCBTVCAoQHN0ZWVyaW5nX3RhZ19leHQpIGFyZQomIzQzOyAqIGRpc3RpbmN0IG5hbWVzcGFjZXMuIEBmbGFncyBpcyB0aGUgYXV0aG9yaXRhdGl2ZSB2YWxpZGl0eSBtYXNrIGZvciB0aGUKJiM0MzsgKiB0d28gbmFtZXNwYWNlczogVkZJT19ETUFfQlVGX1RQSF9TVCBtYXJrcyBAc3RlZXJpbmdfdGFnIHZhbGlkIGFuZAomIzQzOyAqIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIG1hcmtzIEBzdGVlcmluZ190YWdfZXh0IHZhbGlkLiBBbiBpbXBvcnRlcgomIzQzOyAqIHJlcXVlc3RzIG9uZSBuYW1lc3BhY2UgYW5kIHJlY2VpdmVzIHRoZSBtYXRjaGluZyB2YWx1ZS4KJiM0MzsgKgomIzQzOyAqIEVhY2ggU0VUIGZ1bGx5IHJlcGxhY2VzIHRoZSBkbWEtYnVmJiMzOTtzIFRQSCBzdGF0ZSBmb3IgZnV0dXJlIHF1ZXJpZXMKJiM0MzsgKiBvbmx5LiBBIG5hbWVzcGFjZSB3aG9zZSBmbGFnIGJpdCBpcyBjbGVhciBpcyByZXBvcnRlZCBhcyB1bnN1cHBvcnRlZAomIzQzOyAqIHRvIGZ1dHVyZSBpbXBvcnRlcnM7IGFuIGltcG9ydGVyIHRoYXQgaGFzIGFscmVhZHkgcmV0cmlldmVkIGEgdmFsdWUKJiM0MzsgKiBpcyB1bmFmZmVjdGVkLiBAZmxhZ3MgPT0gMCBsZWF2ZXMgYm90aCBuYW1lc3BhY2VzIHVuc3VwcG9ydGVkIGZvcgomIzQzOyAqIGZ1dHVyZSBpbXBvcnRlcnMuCiYjNDM7ICoKJiM0MzsgKiBAcGggaXMgdGhlIDItYml0IFRMUCBQcm9jZXNzaW5nIEhpbnQgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCAzXS4KJiM0MzsgKgomIzQzOyAqIFVuZGVmaW5lZCBAZmxhZ3MgYW5kIEBwaCBiaXRzIG11c3QgYWx3YXlzIGJlIHplcm8uCiYjNDM7ICoKJiM0MzsgKiBVc2Vyc3BhY2UgbXVzdCBjb25maWd1cmUgVFBIIGJlZm9yZSBoYW5kaW5nIHRoZSBkbWEtYnVmIGZkIHRvIGFuCiYjNDM7ICogaW1wb3J0ZXIuCiYjNDM7ICovCiYjNDM7I2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIDEzCiYjNDM7CiYjNDM7I2RlZmluZSBWRklPX0RNQV9CVUZfVFBIX1NUCQkoMSAmbHQ7Jmx0OyAwKQomIzQzOyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQJCSgxICZsdDsmbHQ7IDEpCiYjNDM7CiYjNDM7c3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggewomIzQzOwlfX3MzMglkbWFidWZfZmQ7CiYjNDM7CV9fdTMyCWZsYWdzOwomIzQzOwlfX3UxNglzdGVlcmluZ190YWdfZXh0OwomIzQzOwlfX3U4CXN0ZWVyaW5nX3RhZzsKJiM0MzsJX191OAlwaDsKJiM0Mzt9OwomIzQzOwogLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovCiAKIC8qKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk5MAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDEyMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgZm9yIEZ1enppbmcgUENJZSBUUEggU3VwcG9ydCBpbiBWRklPIGFuZCBETUEtQlVGKioKCk9rYXksIHNvIHdlIGhhdmUgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8uIEl0IHRvdWNoZXMgYSBidW5jaCBvZiBkcml2ZXJzLCBpbmNsdWRpbmcgc29tZSBjb3JlIERNQS1CVUYgYW5kIFZGSU8gY29kZSwgYWxvbmcgd2l0aCBzb21lIE1lbGxhbm94IChtbHg1KSBhbmQgUENJZS1zcGVjaWZpYyBzdHVmZi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHdlIHJlYWNoIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGNhbiB3ZSAqZnV6eiogaXQ/JiMzNDsuCgpWRklPIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBhbmQgRE1BLUJVRiBpcyB0b28sIHNvIHRoYXQmIzM5O3MgZ29vZC4gQnV0IFRQSCBzdXBwb3J0IGl0c2VsZiBoaW5nZXMgb24gdGhlIFBDSWUgZGV2aWNlIGFjdHVhbGx5ICpoYXZpbmcqIHRoZSBUUEggY2FwYWJpbGl0eS4gVGhpcyBjYW4gYmUgZW11bGF0ZWQgb3Igbm90LCBhbmQgdGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uIGhlcmUuIFRoZSBgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSGAgaW9jdGwgc2VlbXMgbGlrZSBvdXIgZW50cnkgcG9pbnQuIEFuZCBhZnRlciBsb29raW5nIGF0IHRoZSBjb2RlIGluIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIHdoaWNoIHVzZXMgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCwgSSBjYW4gc2VlIGEgcGF0aCwgb3IgbW9yZSBzcGVjaWZpY2FsbHksIGEgcG90ZW50aWFsIGJsb2NrZXIuCgpgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGNoZWNrcyBgUENJX0VYUF9ERVZDQVAyYCBmb3IgdGhlIFRQSCBjb21wbGV0ZXIuIElmIHRoZSB2aXJ0dWFsIGRldmljZSAqZG9lc24mIzM5O3QqIGhhdmUgdGhhdCBjYXBhYmlsaXR5LCB0aGUgZnVuY3Rpb24gcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0IG1lYW5zIHdlIHdpbGwgb25seSBmdXp6IHRoZSBsaW5lcyBiZWZvcmUgdGhpcyBjaGVjay4KClRoZSByZWFsIHF1ZXN0aW9uIGlzLCBkb2VzIFFFTVUgKG9yIHdoYXRldmVyIHZpcnR1YWxpemF0aW9uIHdlJiMzOTtyZSB1c2luZykgKmVtdWxhdGUqIFRQSCBjYXBhYmlsaXR5PyBJZiBub3QsIHdlJiMzOTtsbCBvbmx5IGhpdCB0aGF0IGVhcmx5IGAtRU9QTk9UU1VQUGAgcmV0dXJuLiBFdmVuIGlmIGl0ICpkb2VzKiByZXR1cm4gYW4gZXJyb3IsIHRoYXQgY29kZSBwYXRoIGlzIHN0aWxsIHJlYWNoYWJsZS4KCkxvb2tpbmcgYmV5b25kIHRoZSBjaGVjaywgdGhlcmUmIzM5O3MgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGFkZGVkLCBhbmQgc29tZSBgbWx4NWAgZHJpdmVyIGNoYW5nZXMuIEhvd2V2ZXIsIEkgcmFyZWx5IGZ1enogaGFyZHdhcmUgZHJpdmVycyB1bmxlc3MgdGhleSBoYXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBhbmQgbWx4NSBkb2VzbiYjMzk7dCBzZWVtIHRvIGhhdmUgYW55IGluIHRoaXMgY29udGV4dC4KClNvLCBsZXQmIzM5O3MgZm9jdXMgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIElmIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZmFpbHMsIHdlJiMzOTtyZSBvbmx5IGdvaW5nIHRvIGZ1enogYSBjb3VwbGUgb2YgbGluZXMsIHdoaWNoIGlzbiYjMzk7dCBpZGVhbC4gVGhlIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZnVuY3Rpb24gaXRzZWxmIGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVhZGluZyB0aGUgYFBDSV9FWFBfREVWQ0FQMmAgcmVnaXN0ZXIgYW5kIGV4dHJhY3RpbmcgdGhlIFRQSCBjb21wbGV0ZXIgdHlwZS4gCgpJcyB0aGVyZSBldmVuIGEgKnNvZnR3YXJlLWVtdWxhdGVkKiBQQ0kgZGV2aWNlIHdpdGggVFBIIGNhcGFiaWxpdHk/IFByb2JhYmx5IG5vdCBieSBkZWZhdWx0LiBTeXprYWxsZXIsIHdpdGggaXRzIGBzeXpfcGNpX2RldmljZV9hZGRgIG9yIHNpbWlsYXIgbWVjaGFuaXNtcywgKm1pZ2h0KiBhbGxvdyB1cyB0byBpbmplY3Qgb25lLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gaWYgaXQgc3VwcG9ydHMgdGhhdC4gT3IgbWF5YmUgdmdlbT8gTm8sIHZnZW0gaXNuJiMzOTt0IFBDSS4KCkhhbmcgb24uIFN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X2t2bV9zZXR1cF9jcHVgIGV0Yy4gQnV0IGhvdyBpcyBWRklPIGFjdHVhbGx5IGZ1enplZD8gQnkgb3BlbmluZyBgL2Rldi92ZmlvL2AgYW5kIHVzaW5nIHdoYXRldmVyIGR1bW15IFBDSSBkZXZpY2UgaXMgYXZhaWxhYmxlLiBCdXQgYWdhaW4sIHRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgdGhlIGRldmljZSBkb2VzbiYjMzk7dCBoYXZlIFRQSCwgd2UgaGl0IGAtRU9QTk9UU1VQUGAuCgpPa2F5LCBidXQgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgKmlzKiBhIG5ldyBpb2N0bCwgYW5kIHRoYXQmIzM5O3MgdGhlIGNvcmUgZm9jdXMgaGVyZS4KCkFscmlnaHQsIHdoYXQgYWJvdXQgY29uZmlnIG9wdGlvbnM/IExldCYjMzk7cyBxdWlja2x5IGNoZWNrIGlmIGBDT05GSUdfUENJRV9UUEhgIGlzIHJlcXVpcmVkLiBJdCBsb29rcyBsaWtlIGl0ICppcyogdXNlZCBpbiBib3RoIGBpbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhgIGFuZCBgaW5jbHVkZS9saW51eC9wY2ktdHBoLmhgLCBhbmQgdGhhdCBpcyBhbiBpbXBvcnRhbnQgY29uZmlnIG9wdGlvbiB0byBrZWVwIGluIG1pbmQuIFdlIG1pZ2h0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgY29uZmlnIG9wdGlvbiBpcyBlbmFibGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BDSUVfVFBIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjc2OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdD0zOT1FbmFibGUgVFBIIHN1cHBvcnQgaW4gTGludXhcbi0tXG5Eb2N1bWVudGF0aW9uL1BDSS90cGgucnN0LTQxLVxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdDo0MjpUbyBzdXBwb3J0IFRQSCwgdGhlIGtlcm5lbCBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIENPTkZJR19QQ0lFX1RQSCBvcHRpb25cbkRvY3VtZW50YXRpb24vUENJL3RwaC5yc3QtNDMtZW5hYmxlZC5cbi0tXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0LTUyNzAtXHRcdFx0XHRvbmUgUENJIGRvbWFpbiBwZXIgUENJIGZ1bmN0aW9uXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dDo1MjcxOlx0XHRub3RwaFx0XHRbUENJRV0gSWYgdGhlIFBDSUVfVFBIIGtlcm5lbCBjb25maWcgcGFyYW1ldGVyXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC01MjcyLVx0XHRcdFx0aXMgZW5hYmxlZCwgdGhpcyBrZXJuZWwgYm9vdCBvcHRpb24gY2FuIGJlIHVzZWRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwNS0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9kLmg6MzA2OiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiOFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX2QuaDozMDc6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfQ0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwODojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9kLmgtMzA5LSNkZWZpbmUgbW1QQ0lFX01DX0VOSF9DQVBfTElTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiY1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmgtMTg0NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODQ1OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9JRF9NQVNLIDB4ZmZmZlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODQ2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9JRF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX19TSElGVCAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfTUFTSyAweGZmZjAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9NQVNLIDB4MVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODUyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfSU5UX1ZFQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9NQVNLIDB4NFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX01BU0sgMHgxMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9fU0hJRlQgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX19TSElGVCAweDlcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX01BU0sgMHg3ZmYwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9TVF9NT0RFX1NFTF9NQVNLIDB4N1xuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODY0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9TVF9NT0RFX1NFTF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fX1NISUZUIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaC0xODY3LSNkZWZpbmUgUENJRV9NQ19FTkhfQ0FQX0xJU1RfX0NBUF9JRF9NQVNLIDB4ZmZmZlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9kLmgtMzYwLSNkZWZpbmUgbW1QQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiNVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX2QuaDozNjE6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9kLmg6MzYzOiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiYVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX2QuaC0zNjQtI2RlZmluZSBtbVBDSUVfTUNfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGJjXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaC0yMDgwLSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX01BU0sgMHhmMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfX1NISUZUIDB4MTBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fU0hJRlQgMHgxNFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX01BU0sgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDg5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfTUFTSyAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19TSElGVCAweDFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfRVhUTkRfVFBIX1JFUVJfU1VQUE9SRURfTUFTSyAweDEwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9NQVNLIDB4NjAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fX1NISUZUIDB4OVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX19TSElGVCAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX01BU0sgMHg3XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjEwMTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fTUFTSyAweDMwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMTAyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fU0hJRlQgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oLTIxMDMtI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX2QuaC0zMzAtI2RlZmluZSBtbVBDSUVfUEFTSURfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGI1XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9kLmg6MzMyOiNkZWZpbmUgbW1QQ0lFX1RQSF9SRVFSX0NBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhiOVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX2QuaDozMzM6I2RlZmluZSBtbVBDSUVfVFBIX1JFUVJfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGJhXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzNC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oLTE5NDYtI2RlZmluZSBQQ0lFX1BBU0lEX0NOVExfX1BBU0lEX1BSSVZfTU9ERV9TVVBQT1JURURfRU5BQkxFX19TSElGVCAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTQ5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfTUFTSyAweGYwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTUxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX01BU0sgMHhmZmYwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTUyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX19TSElGVCAweDE0XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9fU0hJRlQgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfSU5UX1ZFQ19NT0RFX1NVUFBPUlRFRF9NQVNLIDB4MlxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfTUFTSyAweDRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX19TSElGVCAweDJcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfRVhUTkRfVFBIX1JFUVJfU1VQUE9SRURfX1NISUZUIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX01BU0sgMHg2MDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9NQVNLIDB4N2ZmMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTY0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfX1NISUZUIDB4MTBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfX1NISUZUIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTY3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9NQVNLIDB4MzAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmgtMTk2OS0jZGVmaW5lIFBDSUVfTUNfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaC0xODYtI2RlZmluZSBjZmdQQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYgLy8gZHVwbGljYXRlIFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0Lmg6MTg3OiNkZWZpbmUgY2ZnUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmUwIC8vIGR1cGxpY2F0ZSBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oOjE4ODojZGVmaW5lIGNmZ1BDSUVfVFBIX1JFUVJfQ0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlNCAvLyBkdXBsaWNhdGUgXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaDoxODk6I2RlZmluZSBjZmdQQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTggLy8gZHVwbGljYXRlIFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0LmgtMTkwLSNkZWZpbmUgY2ZnUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmYwIC8vIGR1cGxpY2F0ZSBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNzI1LSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzI2Oi8vUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzI5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX05FWFRfUFRSX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczMDovL1BDSUVfVFBIX1JFUVJfQ0FQXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM1OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX0xPQ0FUSU9OX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5XG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNzovL1BDSUVfVFBIX1JFUVJfQ05UTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczOTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfRU5fX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTc0MC0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTU4NTQtI2RlZmluZSBQQ0lFX1BBU0lEX0NOVExfX1BBU0lEX1BSSVZfTU9ERV9TVVBQT1JURURfRU5BQkxFX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NTovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkZMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfVkVSX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRjAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1OTovL1BDSUVfVFBIX1JFUVJfQ0FQXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9OT19TVF9NT0RFX1NVUFBPUlRFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDRMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9TSVpFX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdGRjAwMDBMXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NjovL1BDSUVfVFBIX1JFUVJfQ05UTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwTFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTU4NjktLy9QQ0lFX01DX0VOSF9DQVBfTElTVFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC04MjAtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC04MjQtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTE3Mi0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9TUklPVl9WRl9NSUdSQVRJT05fU1RBVEVfQVJSQVlfT0ZGU0VUX0RFRkFVTFQgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjExNzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxMTc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTE3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTExNzYtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTQ1Ny0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9BUklfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Njc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Nzk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTIyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTI1LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNjUxLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Njg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjcyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Nzc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzMxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzAyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzExOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzYxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE3MTktXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTI5OTUtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoyOTk2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mjk5NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjI5OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0yOTk5LSNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTMzNDctI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozMzQ4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzM0OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjMzNTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zMzUxLSNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM2MzItI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjMzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjUxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzIyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjcyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjgxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzUyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzcwMC1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzgyNi0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mjc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODI4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgyOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8wX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODMxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzNTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mzk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV85X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Njk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Nzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zODk0LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNDcwOS0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzFfUENJRV9TUklPVl9WRl9NSUdSQVRJT05fU1RBVEVfQVJSQVlfT0ZGU0VUX0RFRkFVTFQgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8xX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzFfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzEzLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX0RMRl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE1MDYxLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDY0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjUtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUzNDYtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzQ4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNDk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzUxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzU0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzU3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNTg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzYwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzYzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzY2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNjc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzY5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzcyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzc1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzc4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzNzk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MzgxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUzODI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8xX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1Mzg0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMV9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTEwMwoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENPTkZJR19QQ0lFX1RQSCBSZXF1aXJlbWVudCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgZW5hYmxlIGBDT05GSUdfUENJRV9UUEhgIGZvciB0aGlzIHRlc3RpbmcuIFRoZSBwcm9tcHQgaXMgdmVyeSBjbGVhcjogYXZvaWQgYXNzdW1wdGlvbnMsIGRpZyBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLCBhbmQgb25seSBsaXN0IHNwZWNpZmljIGNvbmZpZ3MgcmVsYXRlZCB0byB0aGUgbW9kaWZpZWQgY29kZS4gVGhlIGluc3RydWN0aW9ucyBhbHNvIHNwZWNpZnkgKm5vdCogYWRkaW5nICYjMzQ7Q09ORklHXyYjMzQ7IHRvIHRoZSBgRW5hYmxlQ29uZmlnc2Agb3V0cHV0LgoKRmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIGl0IG5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZC4gVGhlIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgaXMsIGFzIHRoZSBpbnN0cnVjdGlvbnMgc3RhdGUsIGBkcml2ZXJzL3BjaS9LY29uZmlnYC4gTGV0JiMzOTtzIGRpdmUgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBDSUVfVFBIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGNpL0tjb25maWc9MTg1PWNvbmZpZyBQQ0lfUEFTSURcbi0tXG5kcml2ZXJzL3BjaS9LY29uZmlnLTE5Ni1cbmRyaXZlcnMvcGNpL0tjb25maWc6MTk3OmNvbmZpZyBQQ0lFX1RQSFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1RMUCBQcm9jZXNzaW5nIEhpbnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk1MzIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIFBDSSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHNvbWUgUENJIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvcGNpL0tjb25maWdgIGFyb3VuZCBsaW5lIDE5Ny4gVGhpcyBsaWtlbHkgY2VudGVycyBvbiBhIGdyb3VwIG9mIHJlbGF0ZWQgb3B0aW9ucywgcHJvYmFibHkgd2l0aGluIGEgZGVmaW5lZCAmIzM0O21lbnUmIzM0OyBvciBibG9jaywgZ2l2ZW4gdGhlIGBLY29uZmlnYCBmaWxlIHN0cnVjdHVyZS4gSSYjMzk7bSBndWVzc2luZyB0aGF0IGxpbmUgbnVtYmVyIGlzIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludCBmb3IgYSBwYXJ0aWN1bGFyIHNldCBvZiBmZWF0dXJlcy4gSSB3YW50IHRvIHVuZGVyc3RhbmQgaG93IGNlcnRhaW4gUENJLXJlbGF0ZWQgZmVhdHVyZXMgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIHBvc3NpYmx5IGRlcGVuZGVudCBvbiBoYXJkd2FyZSwgb3RoZXIga2VybmVsIGNvbmZpZ3VyYXRpb25zLCBvciBzcGVjaWZpYyB1c2UtY2FzZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhvc2UgZGVwZW5kZW5jaWVzLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMsIGBkZXBlbmRzIG9uYCBjbGF1c2VzLCBhbmQgbWF5YmUgc29tZSBoZWxwIHRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3BjaS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxOTA6XHRcdCAgdG8gYWNjZXNzIG1vcmUgdGhhbiBvbmUgSU8gYWRkcmVzcyBzcGFjZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBtYWtlXG4gMTkxOlx0XHQgIHVzZSBvZiB0aGlzIGZlYXR1cmUgYW4gSU9NTVUgaXMgcmVxdWlyZWQgd2hpY2ggYWxzbyBzdXBwb3J0cyBQQVNJRHMuXG4gMTkyOlx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBzdWNoIGFuIElPTU1VIGFuZCB3YW50IHRvIGNvbXBpbGUgdGhlXG4gMTkzOlx0XHQgIGRyaXZlciBmb3IgaXQgaW50byB5b3VyIGtlcm5lbC5cbiAxOTQ6XHRcbiAxOTU6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAxOTY6XHRcbiAxOTc6XHRjb25maWcgUENJRV9UUEhcbiAxOTg6XHRcdGJvb2wgXCYjMzQ7VExQIFByb2Nlc3NpbmcgSGludHNcJiMzNDtcbiAxOTk6XHRcdGhlbHBcbiAyMDA6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpLlxuIDIwMTpcdFx0ICBUUEggYWxsb3dzIGVuZHBvaW50IGRldmljZXMgdG8gcHJvdmlkZSBvcHRpbWl6YXRpb24gaGludHMsIHN1Y2ggYXNcbiAyMDI6XHRcdCAgZGVzaXJlZCBjYWNoaW5nIGJlaGF2aW9yLCBmb3IgcmVxdWVzdHMgdGhhdCB0YXJnZXQgbWVtb3J5IHNwYWNlLlxuIDIwMzpcdFx0ICBUaGVzZSBoaW50cywgY2FsbGVkIFN0ZWVyaW5nIFRhZ3MsIGNhbiBlbXBvd2VyIHRoZSBzeXN0ZW0gaGFyZHdhcmVcbiAyMDQ6XHRcdCAgdG8gb3B0aW1pemUgdGhlIHV0aWxpemF0aW9uIG9mIHBsYXRmb3JtIHJlc291cmNlcy5cbiAyMDU6XHRcbiAyMDY6XHRjb25maWcgUENJX1AyUERNQVxuIDIwNzpcdFx0Ym9vbCBcJiMzNDtQQ0kgcGVlci10by1wZWVyIHRyYW5zZmVyIHN1cHBvcnRcJiMzNDtcbiAyMDg6XHRcdGRlcGVuZHMgb24gWk9ORV9ERVZJQ0VcbiAyMDk6XHRcdCNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDA4MQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBQQ0lFX1RQSGAgQ29uZmlndXJhdGlvbiBPcHRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFBDSUVfVFBIYCBvcHRpb24uIFJpZ2h0IGF3YXksIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIG5lZWQgdG8gZXhwbGljaXRseSBpbmNsdWRlIHdpdGhpbiBgRW5hYmxlQ29uZmlnc2AuIFRoYXQmIzM5O3MgYSBuby1icmFpbmVyLiBCdXQgbGV0JiMzOTtzIHBhdXNlLiBBcmUgdGhlcmUgKmFueSogb3RoZXIgY29uZmlnIG9wdGlvbnMgbHVya2luZyBhcm91bmQgdGhhdCBhcmUgcmVsYXRlZD8gV2UgbmVlZCB0byBiZSB0aG9yb3VnaC4KClRoZSBjb2RlIHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgIGZpbGUuIFJpZ2h0LiBUaGF0IGZpbGUgaXMgY29tcGlsZWQgKm9ubHkqIGlmIGBDT05GSUdfVkZJT19QQ0lgIGlzIGVuYWJsZWQuIE1ha2VzIHNlbnNlLiAKCldhaXQgYSBtaW51dGUsIEkgc2VlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGJlaW5nIGFkZGVkIHRvIGB2ZmlvX3BjaV9kbWFidWYuY2AuIE9rLCBzbyB0aGUgbmV4dCB0aGluZyBJIG5lZWQgdG8gZG8sIGJlZm9yZSBJIGRyYXcgYW55IGNvbmNsdXNpb25zLCBpcyBjaGVjayBpZiBgdmZpb19wY2lfZG1hYnVmLmNgIGl0c2VsZiBoYXMgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBOZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBzb21ldGhpbmcgZWxzZSB0aGF0JiMzOTtzIHJlbGV2YW50IHRvIHVuZGVyc3RhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3JyZWN0bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE5OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZmaW9fcGNpX2RtYWJ1ZlxcLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92ZmlvL3BjaS9NYWtlZmlsZT00PXZmaW8tcGNpLWNvcmUtJChDT05GSUdfVkZJT19QQ0lfWkRFVl9LVk0pICYjNDM7PSB2ZmlvX3BjaV96ZGV2Lm9cbmRyaXZlcnMvdmZpby9wY2kvTWFrZWZpbGU6NTp2ZmlvLXBjaS1jb3JlLSQoQ09ORklHX1ZGSU9fUENJX0RNQUJVRikgJiM0Mzs9IHZmaW9fcGNpX2RtYWJ1Zi5vXG5kcml2ZXJzL3ZmaW8vcGNpL01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX1ZGSU9fUENJX0NPUkUpICYjNDM7PSB2ZmlvLXBjaS1jb3JlLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA2MTkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gSGVyZSYjMzk7cyBob3cgSSYjMzk7ZCBhcHByb2FjaCBzdW1tYXJpemluZyB0aG9zZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBWRklPIFBDSSBETUFCVUYgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYC4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgVkZJTyBhbmQgRE1BIGJ1ZmZlciBzdXBwb3J0LCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZS4gSSYjMzk7bSB0aGlua2luZywgJiMzNDtXaGVyZSB3b3VsZCB0aGlzIGJlIGRlZmluZWQ/IEl0JiMzOTtzIGxpa2VseSBpbiB0aGUgYGRyaXZlcnMvdmZpby9wY2lgIGRpcmVjdG9yeS4mIzM0OyBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL3ZmaW8vcGNpL0tjb25maWdgIGZpbGUgYW5kIGNvbmZpcm0gdGhhdCBgVkZJT19QQ0lfRE1BQlVGYCBpcyBhY3R1YWxseSBkZWZpbmVkIHRoZXJlLiBUaGlzIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBhbmQgYW55IHJlbGV2YW50IGRvY3VtZW50YXRpb24uIFRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBnbyB0byBmaW5kIG91dCB3aGF0IHRoaXMgb3B0aW9uICphY3R1YWxseSBkb2VzKiBpbiB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVkZJT19QQ0lfRE1BQlVGJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmZpby9wY2kvS2NvbmZpZz00Nz1jb25maWcgVkZJT19QQ0lfWkRFVl9LVk1cbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWctNTctXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWc6NTg6Y29uZmlnIFZGSU9fUENJX0RNQUJVRlxuZHJpdmVycy92ZmlvL3BjaS9LY29uZmlnLTU5LVx0ZGVmX2Jvb2wgeSBpZiBWRklPX1BDSV9DT1JFIFx1MDAyNlx1MDAyNiBQQ0lfUDJQRE1BIFx1MDAyNlx1MDAyNiBETUFfU0hBUkVEX0JVRkZFUlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxOTo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDk5MQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDExNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVhY2hpbmcgdGhlIFZGSU8gVFBIIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgZnV6emFibGUgYW5kIHdoYXQgdG8gZm9jdXMgb24uIEZpcnN0LCBJIHNlZSB0aGF0IHRoZSBgZGVmX2Jvb2xgIGZvciBzb21ldGhpbmcgaXMgY29uZGl0aW9uYWwgb24gYFZGSU9fUENJX0NPUkUgJmFtcDsmYW1wOyBQQ0lfUDJQRE1BICZhbXA7JmFtcDsgRE1BX1NIQVJFRF9CVUZGRVJgLiBUaGlzIHByb2JhYmx5IG1lYW5zIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG9wdGlvbnMgYXJlIHNldC4gYFBDSV9QMlBETUFgIGlzIGEgYm9vbGVhbiwgc28gSSBzaG91bGQgcHJvYmFibHkgYWRkIHRoYXQgdG8gbXkgYEVuYWJsZUNvbmZpZ3NgIGp1c3QgdG8gYmUgc2FmZS4gQW5kIGFsc28gYFBDSUVfVFBIYC4KCkFscmlnaHQsIHRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVFBIIHRvIERNQS1CVUYgYW5kIFZGSU8uICBTcGVjaWZpY2FsbHksIHRoZXJlJiMzOTtzIGEgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bC4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBpcyB0aGlzIGlvY3RsIHJlYWNoYWJsZSBieSBzeXprYWxsZXI/ICBZZXMsIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSB0aGUgdXN1YWwgYC9kZXYvdmZpby9kZXZpY2VzLy4uLmAgb3IgYC9kZXYvdmZpby92ZmlvYCBpb2N0bHMuIEFuZCBJJiMzOTttIHByZXR0eSBzdXJlIHN5emthbGxlciBkb2VzIGluZGVlZCBmdXp6IFZGSU8gaW9jdGxzLiBTbywgdGhlIGlvY3RsIGhhbmRsZXIsIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4KClRoZSBjb2RlIGNhbGxzIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LSZndDtwZGV2KWAuIElmIHRoZSB1bmRlcmx5aW5nIGRldmljZSBkb2VzbiYjMzk7dCAqaGF2ZSogVFBIIGNhcGFiaWxpdGllcywgaXQgcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0JiMzOTtzIGltcG9ydGFudC4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGNyZWF0ZSBhIFBDSSBkZXZpY2Ugd2l0aCAqYXJiaXRyYXJ5KiBjYXBhYmlsaXRpZXM/IElmIGl0IGNhbiwgdGhpcyBjb3VsZCBsZWFkIHRvIGEgZGVlcGVyIGRpdmUuIEl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSBzeXprYWxsZXIgaGFzIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGluamVjdG9yIGxpa2UgYHN5el9wY2lfZGV2aWNlX2FkZGAsIHRob3VnaCBJJiMzOTttIHZhZ3VlbHkgcmVtZW1iZXJpbmcgc29tZXRoaW5nIGFib3V0IGBzeXpfa3ZtX3NldHVwX2NwdWAsIGJ1dCBpdCBkb2VzbiYjMzk7dCBsb29rIGxpa2UgaXQgc3VwcG9ydHMgdGhpcy4gU28gbm8uIEl0IG1pZ2h0IHVzZSBzb21lIFFFTVUgcHJvdmlkZWQgUENJIGRldmljZXMuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgdGhvc2UgZGV2aWNlcyBhcmUgY2FwYWJsZSBvZiBUUEguICBCdXQgZXZlbiBpZiBpdCAqb25seSogaGl0cyB0aGUgYC1FT1BOT1RTVVBQYCBwYXRoLCBpdCYjMzk7cyBzdGlsbCBleGVjdXRpbmcgZnVuY3Rpb25hbCBjb2RlIGFuZCBjb3VsZCBiZSBpbnRlcmVzdGluZy4KCk9rYXksIGxldCYjMzk7cyBzdGVwIGJhY2sgYW5kIGJlIHN1cmUgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgKmlzKiByZWFjaGFibGUuIEl0JiMzOTtzIGhhbmRsZWQgYnkgYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgdmZpb19wY2lfY29yZV9pb2N0bGAgZm9yIGBWRklPX0RFVklDRV9GRUFUVVJFYC4gIFNvLCB5ZXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvbiBmb3IgZnV6emluZz8gRnJvbSBoZXJlIGl0IGxvb2tzIGxpa2U6CgoqICAgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAKKiAgIGBkbWFfYnVmX2dldF9wY2lfdHBoYAoqICAgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgCiogICBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgCiogICBgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWdgCiogICBgbWx4NV9zdF9nZXRfaW5kZXhgCgpCdXQgd2FpdCwgYG1seDVgIGlzIGEgTWVsbGFub3ggaGFyZHdhcmUgZHJpdmVyLCBzbyBJIGNhbiBwcm9iYWJseSBpZ25vcmUgdGhlIGBtbHg1YCBmdW5jdGlvbnMgZm9yIG5vdyBiZWNhdXNlIHRoZXkmIzM5O3JlIG5vdCBnb2luZyB0byBiZSB0cmlnZ2VyZWQgd2l0aG91dCB0aGF0IGhhcmR3YXJlLiBTbyB0aGF0IG5hcnJvd3MgaXQgZG93biBhIGJpdC4KCkkmIzM5O2xsIGRvdWJsZS1jaGVjayB0byBzZWUgaWYgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGlzIHJlYWNoYWJsZS4gVGhhdCYjMzk7cyB0aGUgYGdldF9wY2lfdHBoYCBjYWxsYmFjayBmb3IgYHZmaW9fcGNpX2RtYWJ1Zl9vcHNgLCBhbmQgaXQgZ2V0cyBjYWxsZWQgYnkgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBXaG8gYWN0dWFsbHkgY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgPyAgQWNjb3JkaW5nIHRvIHRoaXMgcGF0Y2gsIGl0JiMzOTtzIGBnZXRfcGNpX3RwaF9tcl9kbWFidWZgIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jYC4gU2luY2UgSSYjMzk7bSBub3QgdXNpbmcgTWVsbGFub3ggaGFyZHdhcmUsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBtYXkgbm90IGJlIHRyaWdnZXJlZCBieSB0aGUgYG1seDVgIGRyaXZlciwgYW5kIHRoYXQgbWlnaHQgbWVhbiBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgbm90IHJlYWNoYWJsZS4gVGhlcmUgYXJlIG5vIG90aGVyIGNhbGxlcnMgaW4gdGhpcyBwYXRjaCwgc28geWVzLCBpdCYjMzk7cyBsaWtlbHkgbm90IHJlYWNoYWJsZS4gQnV0IHRoZSBpb2N0bCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcywgYW5kIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgcmVhY2hhYmxlIGZyb20gdGhlcmUuCgpPa2F5LCBsZXQmIzM5O3MgbWFrZSBkb3VibHkgc3VyZSB0aGF0IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jPTE1NTc9aW50IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmRldmljZSwgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jLTE1NzUtXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEg6XG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYzoxNTc2Olx0XHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuYy0xNTc3LVx0XHRcdFx0XHRcdFx0IGFyZ3N6KTtcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTI1Mz1pbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjctXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM2ODppbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzY5LVx0XHRcdFx0ICAgICAgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oPTExOD1pbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgtMTIwLVx0XHRcdFx0ICBzaXplX3QgYXJnc3opO1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTIxOmludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmgtMTIyLVx0XHRcdFx0ICAgICAgdTMyIGZsYWdzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oPTEzNj1zdGF0aWMgaW5saW5lIGludFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTM3OnZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEzOC1cdFx0XHRcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzODkwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyaXplZCB0aG91Z2h0IHByb2Nlc3MsIHByZXNlbnRlZCBhcyBpZiBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKlJlYWNoaW5nIHRoZSBUYXJnZXQqKgoKQWxyaWdodCwgdGhlIGluaXRpYWwgYXNzZXNzbWVudCBzdWdnZXN0cyB0aGlzIGlzIHNvbWV0aGluZyBJIGNhbiB0YWNrbGUuIEkgYmVsaWV2ZSB0aGlzICppcyogcmVhY2hhYmxlIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCBjcml0aWNhbCBhc3Nlc3NtZW50LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biwgcmlnaHQ/IExldCYjMzk7cyBnZXQgcmlnaHQgdG8gaXQuLi4gSSB3YW50IHRvIGNoZWNrIHRoZSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCBmaWVsZC4gVGhhdCB3aWxsIGJlIHZlcnkgdGVsbGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpZV90cGhfY29tcGxldGVyX3R5cGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kvdHBoLmM9MTg2PUVYUE9SVF9TWU1CT0wocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSk7XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMTg4LS8qKlxuZHJpdmVycy9wY2kvdHBoLmM6MTg5OiAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UmIzM5O3MgVFBIIENvbXBsZXRlciBzdXBwb3J0XG5kcml2ZXJzL3BjaS90cGguYy0xOTAtICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0yMDAtICovXG5kcml2ZXJzL3BjaS90cGguYzoyMDE6dTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xuLS1cbmRyaXZlcnMvcGNpL3RwaC5jLTIxOC19XG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XG5kcml2ZXJzL3BjaS90cGguYy0yMjAtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNzgtXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcdGNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcbi0tXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjM2OnU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTM3LSNlbHNlXG4tLVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg9NDg9c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtNDkteyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTUxLXsgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzE3CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIFBDSWUgVFBIIENvbXBsZXRlciBUeXBlKioKCkFscmlnaHQsIGl0IGxvb2tzIGxpa2Ugd2UmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgaW5kZWVkIHJlYWNoYWJsZSB3aXRoaW4gdGhlIGNvZGUuIEdvb2QuIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGluIHRoaXMgYW5hbHlzaXMgaXMgdG8gc2NydXRpbml6ZSBgcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZWAuIFVuZGVyc3RhbmRpbmcgaG93IHRoYXQgcmVxdWVzdCB0eXBlIGlzIGhhbmRsZWQgaXMgY3J1Y2lhbCBmb3IgYSBjb21wbGV0ZSBwaWN0dXJlLiBXZSBuZWVkIHRvIGRpc3NlY3QgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gdGhlc2UgdHdvIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTU4LVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NTk6XHRzd2l0Y2ggKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoZGV2LVx1MDAzZW1kZXYtXHUwMDNlcGRldikpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTYwLVx0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcbi0tXG5kcml2ZXJzL3BjaS90cGguYz0xNzQ9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0xNzYtLyoqXG5kcml2ZXJzL3BjaS90cGguYzoxNzc6ICogcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJiMzOTtzIGVuYWJsZWQgVFBIIHJlcXVlc3RlciB0eXBlXG5kcml2ZXJzL3BjaS90cGguYy0xNzgtICogQHBkZXY6IFBDSSBkZXZpY2UgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0xODEtICovXG5kcml2ZXJzL3BjaS90cGguYzoxODI6dTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvcGNpL3RwaC5jLTE4My17XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMTg1LX1cbmRyaXZlcnMvcGNpL3RwaC5jOjE4NjpFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuZHJpdmVycy9wY2kvdHBoLmMtMTg3LVxuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTM0PXUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjM1OnU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzYtdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ2PXN0YXRpYyBpbmxpbmUgaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00Ny17IHJldHVybiAtRUlOVkFMOyB9XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDo0ODpzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NTY1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFBDSWUgVFBIIGFuZCBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBUaGUgY29kZSBzaG93cyBpdCYjMzk7cyAqb25seSogY2FsbGVkIGZyb20gYGdldF9wY2lfdHBoX21yX2RtYWJ1ZmAsIHdoaWNoIGlzIGJ1cmllZCBkZWVwIHdpdGhpbiB0aGUgYG1seDVgIGRyaXZlciYjMzk7cyBtZW1vcnkgcmVnaW9uIG1hbmFnZW1lbnQgKGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jYCkuIFJpZ2h0LCBhbmQgYG1seDVgIGlzIGEgaGFyZHdhcmUgZHJpdmVyLi4uIHRoYXQgbWVhbnMgaXQmIzM5O3Mgbm90IGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBteSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgZWZmaWNpZW50IHdpdGggbXkgYEZvY3VzU3ltYm9sc2AgbGlzdCwgYW5kIGluY2x1ZGluZyBjb2RlIHBhdGhzIHRoYXQgYXJlIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaXMganVzdCB3YXN0ZWQgZWZmb3J0LiBUaGVyZWZvcmUsIGBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlYCBzaG91bGQgKmRlZmluaXRlbHkqIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGBGb2N1c1N5bWJvbHNgLiBMZXQmIzM5O3MgbW92ZSBvbiBhbmQgdGFrZSBhIGxvb2sgYXQgYGRtYV9idWZfZ2V0X3BjaV90cGhgIG5vdzsgbWF5YmUgdGhlcmUmIzM5O3Mgc29tZXRoaW5nIHJlbGV2YW50IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkbWFfYnVmX2dldF9wY2lfdHBoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9OTE5PWRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDEtICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzo5NDI6ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0My0gKlxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9MTE0Nz1FWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX3VucGluLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNDktLyoqXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNTA6ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTUxLSAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjYtICovXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNjc6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2OC1cdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3Ni19XG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl9nZXRfcGNpX3RwaCwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzgtXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcwLVx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXHUwMDNlcmVzdiwgTlVMTCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jOjk3MTpcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3Mi1cdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz02Mj12ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODItXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjgzOnN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04NC1cdFx0XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTEzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNC1cdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6MTM1Olx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM2LVx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9Mzc9c3RydWN0IGRtYV9idWZfb3BzIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMjgtXHQgKlxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTI5Olx0ICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGhcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMC1cdCAqIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRU9QTk9UU1VQUCB3aGVuXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMzLVx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEzNDpcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzNS1cdCAqL1xuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTU4OD12b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjU4OTppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtNTkwLVx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzI1OAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDIxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUmVhY2hhYmlsaXR5IGluIHRoZSBGdXp6aW5nIEVudmlyb25tZW50KioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIHNpdHVhdGlvbjogSSYjMzk7dmUgYmVlbiBkaWdnaW5nIGludG8gdGhlIGNvZGUgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgYWN0dWFsbHkgcmVhY2hhYmxlIGluIG91ciBmdXp6aW5nIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgd2l0aCByZWdhcmQgdG8gRE1BIGJ1ZmZlciBpbnRlcmFjdGlvbnMuIEkmIzM5O3ZlIHBpbnBvaW50ZWQgdGhhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKm9ubHkqIGNhbGxlZCBieSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBUaGF0IG1lYW5zLCBhcyB0aGluZ3Mgc3RhbmQsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBhbmQgdGhlIHJlbGF0ZWQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGFyZSBlc3NlbnRpYWxseSBkZWFkIGNvZGUgcGF0aHMgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFdlIGp1c3QgY2FuJiMzOTt0IGdldCB0byB0aGVtIGdpdmVuIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCgpUaGVyZWZvcmUsIHRoZSBvbmx5IGZ1bmN0aW9ucyB3ZSBjYW4gcmVhc29uYWJseSBoaXQgZHVyaW5nIGZ1enppbmcgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBCdXQgbGV0JiMzOTtzIG5vdCBqdXN0IHRha2UgbXkgd29yZCBmb3IgaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZy4KCk5vdywgSSYjMzk7bSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gSSByZW1lbWJlciBzZWVpbmcgaXQgY2FsbGVkIGZyb20gYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgd2UgY2FuIGFic29sdXRlbHkgaGl0IHRoYXQgY29kZSBwYXRoLgoKRmluYWxseSwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXNuJiMzOTt0IGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UgdG8gYmUgZG91Ymx5IHN1cmUgb2YgaXRzIHJlYWNoYWJpbGl0eS4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgdGhhdCBmdW5jdGlvbiB0byBtYWtlIHN1cmUgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvcnJlY3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaWVfdHBoX2NvbXBsZXRlcl90eXBlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGNpL3RwaC5jPTE4Nj1FWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuLS1cbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcbmRyaXZlcnMvcGNpL3RwaC5jOjE4OTogKiBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJiMzOTtzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxuZHJpdmVycy9wY2kvdHBoLmMtMTkwLSAqIEBwZGV2OiBQQ0kgZGV2aWNlIHRvIHF1ZXJ5XG4tLVxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xuZHJpdmVycy9wY2kvdHBoLmM6MjAxOnU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9wY2kvdHBoLmMtMjAyLXtcbi0tXG5kcml2ZXJzL3BjaS90cGguYy0yMTgtfVxuZHJpdmVycy9wY2kvdHBoLmM6MjE5OkVYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MzY4PWludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzc4LVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzozNzk6XHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMzgwLVx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXG4tLVxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg9MzU9dTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC0zNy0jZWxzZVxuLS1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTQ5LXsgcmV0dXJuIFBDSV9UUEhfUkVRX0RJU0FCTEU7IH1cbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oOjUwOnN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfY29tcGxldGVyX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODU0OQoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDQ2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFN0cmF0ZWd5IGZvciB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgqKgoKT2theSwgbXkgZm9jdXMgbmVlZHMgdG8gYmUgc29sZWx5IG9uIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLiBUaGUgcHJpbWFyeSBzeW1ib2xzIEkmIzM5O20gY29uY2VybmVkIHdpdGggYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaGUgZ29hbCBoZXJlIGlzIHRvIGRldGVybWluZSB0aGUgZnV6emFiaWxpdHkgb2YgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuCgpNeSBpbml0aWFsIGNvbmNlcm4gaXMgdGhhdCBpZiBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIHJldHVybnMgYFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FYCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FT1BOT1RTVVBQYC4gVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIHJlbGlhYmx5IGNyZWF0ZSBhIFBDSSBkZXZpY2UgKndpdGgqIFRQSCBjb21wbGV0ZXIgY2FwYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudD8gU3l6a2FsbGVyIG9mdGVuIHV0aWxpemVzIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgYC9kZXYvdmZpby9gIHdpdGggZHVtbXkgZGV2aWNlcy4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBkdW1teSBkZXZpY2UgKmxhY2tzKiBUUEggY29tcGxldGVyIGNhcGFiaWxpdHksIHdlJiMzOTtyZSBhbHdheXMgZ29pbmcgdG8gZ2V0IHRoYXQgYC1FT1BOT1RTVVBQYCBlcnJvciwgd2hpY2ggZXNzZW50aWFsbHkgbWVhbnMgd2UmIzM5O2QgbmV2ZXIgcmVhY2ggdGhlIGNvcmUgZnVuY3Rpb24uCgpIb3dldmVyLCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHdheXMgcmV0dXJuZWQsIGl0JiMzOTtzIHN0aWxsICpyZWFjaGFibGUqIGNvZGUsIGF0IGxlYXN0IHRoZSBpbml0aWFsIGxpbmVzLiBUaGlzIG1ha2VzIGl0IHdvcnRoIGZ1enppbmcuIFRoZSBmdW5jdGlvbiAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCB0aGF0IHdlIGNhbiByZWFjaCwgYW5kIHdlIGhhdmUgdG8gc2VlIGlmIHNvbWUgY2xldmVyIGZ1enppbmcgY2FuIGxldmVyYWdlIHRoYXQuIEFuZCwgb25lIGNhbiYjMzk7dCBydWxlIG91dCB0aGUgcG9zc2liaWxpdHkgdGhhdCBzeXprYWxsZXIgKmNvdWxkKiBpbmplY3QgYSBkZXZpY2Ugd2l0aCBUUEggY2FwYWJpbGl0eSBvciB0aGF0IHNvbWUgZGVmYXVsdCBRRU1VIGVtdWxhdGVkIGRldmljZXMgbWlnaHQgaGF2ZSBpdC4gU28sIEkgaGF2ZSB0byBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgYEVuYWJsZUNvbmZpZ3NgLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGBQQ0lFX1RQSGAsIGBWRklPX1BDSWAsIGFuZCBgVkZJT19QQ0lfRE1BQlVGYCBhcmUgZW5hYmxlZC4gYFZGSU9fUENJX0RNQUJVRmAgaXMgZGVwZW5kZW50IG9uIGBWRklPX1BDSV9DT1JFYCwgYFBDSV9QMlBETUFgIGFuZCBgRE1BX1NIQVJFRF9CVUZGRVJgLiBTaW5jZSBgRE1BX1NIQVJFRF9CVUZGRVJgIGlzIHVzdWFsbHkgb24gYnkgZGVmYXVsdCwgdGhlIGtleSBpcyBgUENJX1AyUERNQWAuIE5vdyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYFBDSV9QMlBETUFgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUENJX1AyUERNQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BjaS9LY29uZmlnPTE5Nz1jb25maWcgUENJRV9UUEhcbi0tXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNS1cbmRyaXZlcnMvcGNpL0tjb25maWc6MjA2OmNvbmZpZyBQQ0lfUDJQRE1BXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNy1cdGJvb2wgXCYjMzQ7UENJIHBlZXItdG8tcGVlciB0cmFuc2ZlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NjQ0CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogNTY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyB0aGUgZmlyc3Qgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGFkZCBgUENJRV9UUEhgIGFuZCBgUENJX1AyUERNQWAgdG8gYEVuYWJsZUNvbmZpZ3NgLiBUaGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guCgpOb3csIGxldCYjMzk7cyBnbyB0aHJvdWdoIHRoZSBgV29ydGhGdXp6aW5nYCBjcml0ZXJpYSB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyBhY3R1YWxseSBzdWl0YWJsZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzbiYjMzk7dCBqdXN0IGRvY3VtZW50YXRpb24gY2hhbmdlcywgbG9nZ2luZyB0d2Vha3MsIGRlY29yYXRpdmUgbWFjcm8gdXBkYXRlcywgb3IgY29kZSB0aGF0JiMzOTtzIHVucmVhY2hhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4KCkxvb2tpbmcgYXQgdGhlIHBhdGNoLCBpdCB0b3VjaGVzIGBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jYCwgYGRyaXZlcnMvcGNpL3RwaC5jYCwgYW5kIGBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jYC4gQWxsIHRocmVlIG9mIHRob3NlIGFyZSByZWFjaGFibGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBzYWZlIHRvIHNheSB0aGlzIHNob3VsZCBiZSBhIGBXb3J0aEZ1enppbmc9dHJ1ZWAgc2NlbmFyaW8uCgpUaGUgYEZvY3VzU3ltYm9sc2AgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIHR3byBrZXkgYXJlYXMgdG8gZm9jdXMgb24uCgpTbywgbGV0IG1lIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBvdGhlciBrZXkgY29uZmlndXJhdGlvbnMuIEkgY2FuIHNlZSB0aGF0IGBDT05GSUdfVkZJT19QQ0lgIGlzIGFscmVhZHkgZW5hYmxlZCBpbiBzeXprYWxsZXIuIGBDT05GSUdfSU5GSU5JQkFORGAgaXMgYWxzbyBlbmFibGVkLCBidXQgbWx4NSBsb29rcyB0byBiZSBoYXJkd2FyZSBzcGVjaWZpYyBhbmQgbGlrZWx5IGlycmVsZXZhbnQgaGVyZS4gU28sIHllcywgYFBDSUVfVFBIYCBhbmQgYFBDSV9QMlBETUFgIGFyZSB0aGUgbWFpbiBvbmVzIHRoYXQgYXJlIG5ldy4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSSBrbm93IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19WRklPX1BDSV9ETUFCVUZgIGlzIGVuYWJsZWQuIEFuZCwgeWVzLCBpdCYjMzk7cyBpbmRlZWQgaW4gYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgLiBBbHNvLCBJIGNhbiBzZWUgdGhhdCBgQ09ORklHX1ZGSU9fUENJX0RNQUJVRmAgcmVxdWlyZXMgYFBDSV9QMlBETUFgLiBTbywgYFBDSV9QMlBETUFgIGlzIGEgbXVzdC4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZC4gWWVwLCB0aGF0IG9uZSBsaXZlcyBpbiBgZHJpdmVycy9wY2kvdHBoLmNgLiBXYWl0LCBpcyBgZHJpdmVycy9wY2kvdHBoLmNgIGNvbXBpbGVkICpvbmx5KiB3aGVuIGBDT05GSUdfUENJRV9UUEhgIGlzIGVuYWJsZWQ/IE5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQuLi4gYnV0IG92ZXJhbGwsIGl0IGxvb2tzIGdvb2QgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RwaFxcLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kvTWFrZWZpbGU9NDA9b2JqLSQoQ09ORklHX1BDSV9OUEVNKVx0XHQmIzQzOz0gbnBlbS5vXG5kcml2ZXJzL3BjaS9NYWtlZmlsZTo0MTpvYmotJChDT05GSUdfUENJRV9UUEgpXHRcdCYjNDM7PSB0cGgub1xuZHJpdmVycy9wY2kvTWFrZWZpbGUtNDItb2JqLSQoQ09ORklHX0NBUkRCVVMpXHRcdCYjNDM7PSBzZXR1cC1jYXJkYnVzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA4OTMKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQgaW4gZGV2aWNlIGRyaXZlciBkZXZlbG9wbWVudCBhbmQga2VybmVsIGNvbmZpZ3VyYXRpb246CgoqKkFuYWx5emluZyBhIEtlcm5lbCBCdWlsZCBEZXBlbmRlbmN5KioKClJpZ2h0LCBzbyBJIHNlZSBhIGxpbmUgdGhhdCBjbGVhcmx5IGluZGljYXRlcyBgdHBoLm9gIOKAkyBhIG1vZHVsZSwgSSBwcmVzdW1lIOKAkyBpcyBnb2luZyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgb3V0cHV0IGlmIHRoZSBgQ09ORklHX1BDSUVfVFBIYCBvcHRpb24gaXMgc2V0LiBObyBzdXJwcmlzZXMgdGhlcmU7IHRoYXQmIzM5O3Mgc3RhbmRhcmQga2VybmVsIGJ1aWxkIHN5bnRheC4gSXQmIzM5O3MgYSBjbGVhciBkZXBlbmRlbmN5OiBpZiB3ZSB3YW50IHRoYXQgYHRwaC5vYCBvYmplY3QgZmlsZSBpbiB0aGUgYnVpbHQgZHJpdmVyIHRoZW4gd2UgaGF2ZSB0byBlbmFibGUgdGhhdCBjb25maWd1cmF0aW9uIG9wdGlvbi4KClRoZSBrZXkgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiB3aGVyZSAqZWxzZSogZG9lcyB0aGlzIGBQQ0lFX1RQSGAgc2V0dGluZyBhcHBlYXIsIGFuZCB3aGF0JiMzOTtzIGl0cyBvdmVyYWxsIGltcGFjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBjb2RlIHRoYXQgKnVuY29uZGl0aW9uYWxseSogY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBJZiB0aGF0IGZ1bmN0aW9uIGlzIGNhbGxlZCByZWdhcmRsZXNzIG9mIHRoZSBgQ09ORklHX1BDSUVfVFBIYCBzZXR0aW5nLCB0aGVuIHdlIGhhdmUgYSBwb3RlbnRpYWwgcHJvYmxlbS4gSXQgd291bGQgaW1wbHkgdGhhdCB0aGUgc3lzdGVtIG1heSB0cnkgdG8gbGluayB0byB0aGF0IG9iamVjdCBldmVuIGlmIGBDT05GSUdfUENJRV9UUEhgIGlzIHNldCB0byAmIzM0O24mIzM0OyB3aGljaCBjb3VsZCByZXN1bHQgaW4gY29tcGlsZSB0aW1lIGVycm9ycy4gVGhpcyBpcyB0aGUgbW9yZSBpbnRlcmVzdGluZyBzaXR1YXRpb24gdG8gdW5kZXJzdGFuZC4gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIHN1cnJvdW5kaW5nIHRoYXQgcGFydGljdWxhciBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG1hX2J1Zl9nZXRfcGNpX3RwaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTkxOT1kbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQxLSAqICAgICAtIGRtYV9idWZfdnVubWFwKClcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6OTQyOiAqICAgICAtIGRtYV9idWZfZ2V0X3BjaV90cGgoKVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDMtICpcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTExNDc9RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCYjMzQ7RE1BX0JVRlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTQ5LS8qKlxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTUwOiAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE1MS0gKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY2LSAqL1xuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTY3OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjgtXHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzYtfVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTc3OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFwmIzM0O0RNQV9CVUZcJiMzNDspO1xuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc4LVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1Zixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3MC1cdGRtYV9yZXN2X2xvY2soZG1hYnVmLVx1MDAzZXJlc3YsIE5VTEwpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NzE6XHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFx1MDAyNnN0ZWVyaW5nX3RhZywgXHUwMDI2bG9jYWxfcGgpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzItXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVx1MDAzZXJlc3YpO1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9NjI9dmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTgyLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzo4MzpzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODQtXHRcdFx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0xMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzQtXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjEzNTpcdC5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNi1cdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTM3PXN0cnVjdCBkbWFfYnVmX29wcyB7XG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTI4LVx0ICpcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEyOTpcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzAtXHQgKiBcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMy1cdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMzQ6XHQgKiBkbWFfYnVmX2dldF9wY2lfdHBoKCkuXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzUtXHQgKi9cbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD01ODg9dm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDo1ODk6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTU5MC1cdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjA6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI1OTUKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIERNQS1CVUYgYW5kIFBDSS1UUEggU3ltYm9sIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJJiMzOTt2ZSB0cmFja2VkIGRvd24gdGhlIHJlbGV2YW50IGNvZGU7IGBkbWFfYnVmX2dldF9wY2lfdHBoYCBpcyBkZWZpbml0ZWx5IGluIGBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhhdCBpdCYjMzk7cyBjb25kaXRpb25hbCBvbiBgQ09ORklHX0RNQV9TSEFSRURfQlVGRkVSYC4gU28sIGJhc2VkIG9uIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiwgaXQgaXMgY29tcGlsZWQuIE5vdywgdGhlIGNydWNpYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nICp3aGVyZSogaXQmIzM5O3MgYWN0dWFsbHkgdXNlZC4gVGhlIGFuYWx5c2lzIGVhcmxpZXIgZGVmaW5pdGl2ZWx5IHNob3dlZCB0aGF0IGl0JiMzOTtzICpvbmx5KiBjYWxsZWQgYnkgdGhlIG1seDUgZHJpdmVyLCB3aGljaCwgYXMgd2UgZXN0YWJsaXNoZWQsIGlzbiYjMzk7dCBvbiB0aGUgY3JpdGljYWwgcGF0aC4gVGhlcmVmb3JlLCB0aGVyZSYjMzk7cyBubyBuZWVkIHRvIGNsdXR0ZXIgYEZvY3VzU3ltYm9sc2Agd2l0aCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuCgpOb3csIHRoZSBmb2xsb3ctdXA6IHdoYXQgYWJvdXQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgPyBBaCwgcmlnaHQsIHRoYXQmIzM5O3MgYSBjYWxsYmFjayB3aXRoaW4gdGhlIGBkbWFfYnVmX29wc2Agc3RydWN0dXJlLiBCdXQgdGhlIGtleSBoZXJlIGlzIGl0cyAqZGVwZW5kZW5jeSouIEl0JiMzOTtzIG9ubHkgY2FsbGVkIGJ5IGBkbWFfYnVmX2dldF9wY2lfdHBoYCwgd2hpY2ggd2UmIzM5O3ZlIGp1c3QgY29uZmlybWVkIGlzIGl0c2VsZiB1bnJlYWNoYWJsZS4gVGhpcyBtZWFucyBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKmFsc28qIHVucmVhY2hhYmxlLiBTbywgYWRkaW5nIGl0IHRvIGBGb2N1c1N5bWJvbHNgIHdvdWxkIGJlIHVubmVjZXNzYXJ5LgoKVGhlcmVmb3JlLCBhZnRlciB0aGlzIHRob3JvdWdoIGV4YW1pbmF0aW9uLCBteSBjb25jbHVzaW9uIGlzIHRoYXQgdGhlIG9ubHkgcmVhY2hhYmxlIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRoaXMgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBIb3dldmVyLCBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSBpc24mIzM5O3Qgc29tZSBoaWRkZW4gY2FsbCB0aGF0IEkmIzM5O3ZlIG1pc3NlZC4gSSBtdXN0IGJlIGNvbXBsZXRlbHkgY2VydGFpbiB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNhbGxlcnMgb2YgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGluIHRoZSBrZXJuZWwuIExldCBtZSBkb3VibGUtY2hlY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RtYV9idWZfZ2V0X3BjaV90cGgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz05MTk9ZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbi0tXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0MS0gKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjk0MjogKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQzLSAqXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz0xMTQ3PUVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFwmIzM0O0RNQV9CVUZcJiMzNDspO1xuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE0OS0vKipcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE1MDogKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNTEtICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciB0byBxdWVyeVxuLS1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2Ni0gKi9cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE2NzppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY4LVx0XHRcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXG4tLVxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc2LX1cbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcJiMzNDtETUFfQlVGXCYjMzQ7KTtcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3OC1cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jPTk1MD1zdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzAtXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTcxOlx0cmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBcdTAwMjZzdGVlcmluZ190YWcsIFx1MDAyNmxvY2FsX3BoKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcyLVx0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTYyPXZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04Mi1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6ODM6c3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTg0LVx0XHRcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MTMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHtcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM0LVx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzoxMzU6XHQuZ2V0X3BjaV90cGggPSB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoLFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzYtXHQubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX21hcCxcbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD0zNz1zdHJ1Y3QgZG1hX2J1Zl9vcHMge1xuLS1cbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEyOC1cdCAqXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMjk6XHQgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLiBDYWxsZWQgd2l0aFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMwLVx0ICogXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cbi0tXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzMtXHQgKiBSZXR1cm5lZCBtZXRhZGF0YSBmb2xsb3dzIHRoZSBsaWZldGltZSBydWxlcyBkb2N1bWVudGVkIGZvclxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTM0Olx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTM1LVx0ICovXG4tLVxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9NTg4PXZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6NTg5OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC01OTAtXHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NjY5CgkJCQkJCQlvdXRwdXQ6IDE2NAoJCQkJCQkJdGhvdWdodHM6IDU0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGaW5hbCBUaG91Z2h0cyBvbiB0aGUgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBubyBtb3JlIGluY29taW5nIGNhbGxzIOKAkyB0aW1lIHRvIGZpbmFsaXplIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIGZpbmFsIGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2Agc2VlbXMgc29saWQ6IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIGNvcmUgZWxlbWVudHMuCgpOb3csIGZvciB0aGUgYEVuYWJsZUNvbmZpZ3NgLiBXZSYjMzk7dmUgZ290IGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYC4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgYXJlIG5lY2Vzc2FyeSwgZXNwZWNpYWxseSBzaW5jZSB3ZSBhcmUgZGVhbGluZyB3aXRoIERNQS1CVUYgYW5kIFZGSU8uCgpBaCwgcmlnaHQsIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYCBpcyBhIGBkZWZfYm9vbGAgYW5kIGRlcGVuZHMgb24gdGhlIG90aGVycywgc28gd2UgZG9uJiMzOTt0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aGF0JiMzOTtzIHRha2VuIGNhcmUgb2YuIEhvd2V2ZXIsIGBQQ0lfUDJQRE1BYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBaT05FX0RFVklDRWAuIEhtbSwgaXMgYFpPTkVfREVWSUNFYCBhIGRlZmF1bHQgb3Igc29tZXRoaW5nIHdlICptdXN0KiBlbmFibGU/IFN5emthbGxlciBjb25maWdzIHVzdWFsbHkgaGF2ZSBpdCBlbmFibGVkLCBidXQgdG8gYmUgc2FmZSwgSSYjMzk7bGwgYWRkIGl0LiBObywgd2FpdCwgaG9sZCBvbi4gVGhlIGluc3RydWN0aW9ucyBzYXksICYjMzQ7RG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0IHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4mIzM0OyBgWk9ORV9ERVZJQ0VgIGlzIHF1aXRlIGdlbmVyaWMsIGJ1dCBgUENJX1AyUERNQWAgaXMgcXVpdGUgc3BlY2lmaWMuIE9rYXksIGxlYXZlIGl0IG9mZi4KCkxldCYjMzk7cyByZXZpZXcgdGhlIHBhdGNoJiMzOTtzIHB1cnBvc2U6IGl0IGFkZHMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8sIGFuZCB0aGUgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bCBjYW4gYmUgZnV6emVkLiBUaGUgZHJpdmVyIGNvZGUgaXMgcmVhY2hhYmxlLiBUaGUgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLgoKSXMgdGhlcmUgYW55dGhpbmcgZWxzZSB0byBjb25zaWRlcj8gTWF5YmUgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgPyBFdmVuIHRob3VnaCBtbHg1IGRvZXNuJiMzOTt0IGRpcmVjdGx5IGNhbGwgaXQsIGNvdWxkIHN5emthbGxlciBmaW5kIGFub3RoZXIgd2F5PyBCdXQsIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNhbGxlcnMgaW4gdGhlIGtlcm5lbC4gU28sIG5vLiBJdCBjYW4mIzM5O3QgYmUgdHJpZ2dlcmVkLgoKTGV0JiMzOTtzIGNoZWNrIGBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZ2AgYW5kIGBtbHg1X3N0X2dldF9pbmRleGAuIFRoZXNlIGFyZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jYC4gU2luY2UgbWx4NSBpcyBoYXJkd2FyZSBhbmQgbm90IGRpcmVjdGx5IHJlYWNoYWJsZSwgd2UgY2FuIGlnbm9yZSB0aGVtLgoKU28sIEkgdGhpbmsgd2UmIzM5O3JlIGdvb2QuIFRoaXMgbG9va3MgbGlrZSBhIHNvbGlkLCB0YXJnZXRlZCBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UENJRV9UUEgmIzM0OywKICAgICYjMzQ7UENJX1AyUERNQSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCYjMzQ7LAogICAgJiMzNDtwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjE1LjQ4MzQ2NTM5NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mzc0NjEwNzY5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQQ0lFX1RQSFwiLFxuICAgIFwiUENJX1AyUERNQVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaFwiLFxuICAgIFwicGNpZV90cGhfY29tcGxldGVyX3R5cGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6MTUuNDgzNDcxOTc0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTk4NjIwMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDIgMTk6NTk6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNcXG5pbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY1xcbisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNcXG5AQCAtOTM5LDYgKzkzOSw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuICAqICAgICAtIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudCgpXFxuICAqICAgICAtIGRtYV9idWZfdm1hcCgpXFxuICAqICAgICAtIGRtYV9idWZfdnVubWFwKClcXG4rICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXFxuICAqXFxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXFxuICAqICAgIGZ1bmN0aW9uczpcXG5AQCAtOTc5LDYgKzk4MCw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuICAqICAgICAtIFxcdTAwMjZkbWFfYnVmX29wcy51bm1hcF9kbWFfYnVmKClcXG4gICogICAgIC0gXFx1MDAyNmRtYV9idWZfb3BzLnZtYXAoKVxcbiAgKiAgICAgLSBcXHUwMDI2ZG1hX2J1Zl9vcHMudnVubWFwKClcXG4rICogICAgIC0gXFx1MDAyNmRtYV9idWZfb3BzLmdldF9wY2lfdHBoKClcXG4gICpcXG4gICogMy4gRXhwb3J0ZXJzIG11c3QgaG9sZCB0aGUgZG1hLWJ1ZiByZXNlcnZhdGlvbiBsb2NrIHdoZW4gY2FsbGluZyB0aGVzZVxcbiAgKiAgICBmdW5jdGlvbnM6XFxuQEAgLTExNDQsNiArMTE0NiwzNiBAQCB2b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFxcXCJETUFfQlVGXFxcIik7XFxuIFxcbisvKipcXG4rICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxcbisgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XFxuKyAqIEBleHRlbmRlZDogZmFsc2UgZm9yIDgtYml0IFNULCB0cnVlIGZvciAxNi1iaXQgRXh0ZW5kZWQgU1RcXG4rICogQHN0ZWVyaW5nX3RhZzogcmV0dXJucyB0aGUgcmF3IHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZCBuYW1lc3BhY2VcXG4rICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50XFxuKyAqXFxuKyAqIFdyYXBwZXIgZm9yIHRoZSBvcHRpb25hbCBcXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGggY2FsbGJhY2suXFxuKyAqXFxuKyAqIE11c3QgYmUgY2FsbGVkIHdpdGggXFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxcbisgKiBleHBvcnRlciBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIG9yIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlXFxuKyAqIHJlcXVlc3RlZCBuYW1lc3BhY2UuXFxuKyAqXFxuKyAqIFRoZSByZXR1cm5lZCBzdGVlcmluZyB0YWcgYW5kIHByb2Nlc3NpbmcgaGludCBhcmUgb25seSB2YWxpZCB1bnRpbCB0aGVcXG4rICogZXhwb3J0ZXIgaW52YWxpZGF0ZXMgdGhlIGN1cnJlbnQgbWFwcGluZyAoc2lnbmFsbGVkIHRvIHRoZSBpbXBvcnRlciB2aWFcXG4rICogXFx1MDAyNmRtYV9idWZfYXR0YWNoX29wcy5tb3ZlX25vdGlmeSkuIEltcG9ydGVycyBtdXN0IHJlLXF1ZXJ5IGFmdGVyIGEgbmV3XFxuKyAqIG1hcHBpbmcgaXMgZXN0YWJsaXNoZWQgZm9sbG93aW5nIGludmFsaWRhdGlvbi5cXG4rICovXFxuK2ludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuK1xcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuK3tcXG4rXFx0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFxuK1xcdGlmICghZG1hYnVmLVxcdTAwM2VvcHMtXFx1MDAzZWdldF9wY2lfdHBoKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRyZXR1cm4gZG1hYnVmLVxcdTAwM2VvcHMtXFx1MDAzZWdldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIHN0ZWVyaW5nX3RhZywgcGgpO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFxcXCJETUFfQlVGXFxcIik7XFxuK1xcbiAvKipcXG4gICogZG1hX2J1Zl9tYXBfYXR0YWNobWVudCAtIFJldHVybnMgdGhlIHNjYXR0ZXJsaXN0IHRhYmxlIG9mIHRoZSBhdHRhY2htZW50O1xcbiAgKiBtYXBwZWQgaW50byBfZGV2aWNlXyBhZGRyZXNzIHNwYWNlLiBJcyBhIHdyYXBwZXIgZm9yIG1hcF9kbWFfYnVmKCkgb2YgdGhlXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xcbmluZGV4IDAyODA5MTE0ZmM3OWFmLi5hMmI0OTdmNmIxNmJkYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcXG5AQCAtNjAsNiArNjAsNyBAQFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJFbGkgQ29oZW4gXFx1MDAzY2VsaUBtZWxsYW5veC5jb21cXHUwMDNlXFxcIik7XFxuIE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBJQiBkcml2ZXJcXFwiKTtcXG4gTU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcbitNT0RVTEVfSU1QT1JUX05TKFxcXCJETUFfQlVGXFxcIik7XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pYl9ldmVudF93b3JrIHtcXG4gXFx0c3RydWN0IHdvcmtfc3RydWN0XFx0d29yaztcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcXG5pbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuY1xcbisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNcXG5AQCAtMzksNiArMzksNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZGVsYXkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1idWYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktdHBoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NyZG1hL2ZybXJfcG9vbHMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY3JkbWEvaWJfdW1lbV9vZHAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImRtLmhcXFwiXFxuQEAgLTE2Nyw2ICsxNjgsMzkgQEAgc3RhdGljIGludCBnZXRfdW5jaGFuZ2VhYmxlX2FjY2Vzc19mbGFncyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLIEdFTk1BU0tfVUxMKDIzLCAxNilcXG4gI2RlZmluZSBNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLIEdFTk1BU0tfVUxMKDE1LCAwKVxcbiBcXG4rc3RhdGljIHU4IG1seDVfaWJfdHBoX2tleV9waCh1OCBwaClcXG4re1xcbitcXHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxcbitcXHRcXHRwaCBePSBNTFg1X0lCX05PX1BIO1xcbitcXG4rXFx0cmV0dXJuIHBoO1xcbit9XFxuK1xcbitzdGF0aWMgaW50IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcXG4re1xcbitcXHRpZiAoc3RfaW5kZXggPT0gTUxYNV9NS0NfUENJRV9UUEhfTk9fU1RFRVJJTkdfVEFHX0lOREVYKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdHJldHVybiBtbHg1X3N0X2dldF9pbmRleChkZXYtXFx1MDAzZW1kZXYsIHN0X2luZGV4KTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgbWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXFxuK3tcXG4rXFx0aWYgKHN0X2luZGV4ID09IE1MWDVfTUtDX1BDSUVfVFBIX05PX1NURUVSSU5HX1RBR19JTkRFWClcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0bWx4NV9zdF9kZWFsbG9jX2luZGV4KGRldi1cXHUwMDNlbWRldiwgc3RfaW5kZXgpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxcbitcXHRcXHRcXHRcXHQgICAgICB1NjQga2VybmVsX3ZlbmRvcl9rZXkpXFxuK3tcXG4rXFx0dTE2IHN0X2luZGV4ID0gRklFTERfR0VUKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXFxuK1xcdFxcdFxcdFxcdCBrZXJuZWxfdmVuZG9yX2tleSk7XFxuK1xcbitcXHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqXFxuIF9tbHg1X2ZybXJfcG9vbF9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGliX3VtZW0gKnVtZW0sXFxuIFxcdFxcdCAgICAgIGludCBhY2Nlc3NfZmxhZ3MsIGludCBhY2Nlc3NfbW9kZSxcXG5AQCAtMTg5LDEzICsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcXG4gXFx0XFx0XFx0TUxYNV9GUk1SX1BPT0xTX0tFWV9BQ0NFU1NfTU9ERV9LU01fTUFTSyA6XFxuIFxcdFxcdFxcdDA7XFxuIFxcbi1cXHQvKiBOb3JtYWxpemUgcGg6IHN3YXAgMCBhbmQgTUxYNV9JQl9OT19QSCAqL1xcbi1cXHRpZiAocGggPT0gTUxYNV9JQl9OT19QSCB8fCBwaCA9PSAwKVxcbi1cXHRcXHRwaCBePSBNTFg1X0lCX05PX1BIO1xcbi1cXG4gXFx0bXItXFx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxcbiBcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XFxuLVxcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSywgcGgpO1xcbitcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXFxuK1xcdFxcdFxcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xcbiBcXHRlcnIgPSBpYl9mcm1yX3Bvb2xfcG9wKFxcdTAwMjZkZXYtXFx1MDAzZWliX2RldiwgXFx1MDAyNm1yLVxcdTAwM2VpYm1yKTtcXG4gXFx0aWYgKGVycikge1xcbiBcXHRcXHRrZnJlZShtcik7XFxuQEAgLTIxOCw3ICsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcXG4gXFx0XFx0XFx0XFx0ICAgICAgMCA6XFxuIFxcdFxcdFxcdFxcdCAgICAgIE1MWDVfRlJNUl9QT09MU19LRVlfQUNDRVNTX01PREVfS1NNX01BU0ssXFxuIFxcdFxcdC5udW1fZG1hX2Jsb2NrcyA9IG5kZXNjcyxcXG4tXFx0XFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID0gMCwgLyogbm8gUEggYW5kIG5vIFNUIGluZGV4ICovXFxuK1xcdFxcdC5rZXJuZWxfdmVuZG9yX2tleSA9XFxuK1xcdFxcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSyxcXG4rXFx0XFx0XFx0XFx0ICAgTUxYNV9NS0NfUENJRV9UUEhfTk9fU1RFRVJJTkdfVEFHX0lOREVYKSxcXG4gXFx0fTtcXG4gXFx0c3RydWN0IG1seDVfaWJfbXIgKm1yO1xcbiBcXHRpbnQgcmV0O1xcbkBAIC01NTcsNiArNTkwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9pYl9tciAqcmVnX2NyZWF0ZShzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcXG4gXFx0bXItXFx1MDAzZWlibXIucGQgPSBwZDtcXG4gXFx0bXItXFx1MDAzZWFjY2Vzc19mbGFncyA9IGFjY2Vzc19mbGFncztcXG4gXFx0bXItXFx1MDAzZXBhZ2Vfc2hpZnQgPSBvcmRlcl9iYXNlXzIocGFnZV9zaXplKTtcXG4rXFx0bXItXFx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkgPVxcbitcXHRcXHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssIHN0X2luZGV4KSB8XFxuK1xcdFxcdEZJRUxEX1BSRVAoTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfUEhfTUFTSyxcXG4rXFx0XFx0XFx0ICAgbWx4NV9pYl90cGhfa2V5X3BoKHBoKSk7XFxuIFxcbiBcXHRpbmxlbiA9IE1MWDVfU1RfU1pfQllURVMoY3JlYXRlX21rZXlfaW4pO1xcbiBcXHRpZiAocG9wdWxhdGUpXFxuQEAgLTc1Myw2ICs3OTAsMTIgQEAgc3RhdGljIHN0cnVjdCBpYl9tciAqY3JlYXRlX3JlYWxfbXIoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXFxuIFxcdFxcdFxcdHN0X2luZGV4ID0gbWRtYWgtXFx1MDAzZXN0X2luZGV4O1xcbiBcXHR9XFxuIFxcbitcXHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xcbitcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4rXFx0fVxcbitcXG4gXFx0eGx0X3dpdGhfdW1yID0gbWx4NXJfdW1yX2Nhbl9sb2FkX3BhcyhkZXYsIHVtZW0tXFx1MDAzZWxlbmd0aCk7XFxuIFxcdGlmICh4bHRfd2l0aF91bXIpIHtcXG4gXFx0XFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIHVtZW0sIGlvdmEsIGFjY2Vzc19mbGFncyxcXG5AQCAtNzY5LDYgKzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxcbiBcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNlc2xvd19wYXRoX211dGV4KTtcXG4gXFx0fVxcbiBcXHRpZiAoSVNfRVJSKG1yKSkge1xcbitcXHRcXHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XFxuIFxcdFxcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcXG4gXFx0XFx0cmV0dXJuIEVSUl9DQVNUKG1yKTtcXG4gXFx0fVxcbkBAIC05MDMsNiArOTQ3LDUyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfb3BzIG1seDVfaWJfZG1hYnVmX2F0dGFjaF9vcHMgPSB7XFxuIFxcdC5pbnZhbGlkYXRlX21hcHBpbmdzID0gbWx4NV9pYl9kbWFidWZfaW52YWxpZGF0ZV9jYixcXG4gfTtcXG4gXFxuK3N0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4rXFx0XFx0XFx0XFx0ICB1MTYgKnN0X2luZGV4LCB1OCAqcGgpXFxuK3tcXG4rXFx0dTE2IGxvY2FsX3N0X2luZGV4O1xcbitcXHR1MTYgc3RlZXJpbmdfdGFnO1xcbitcXHR1OCBsb2NhbF9waDtcXG4rXFx0Ym9vbCBleHRlbmRlZDtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXFx1MDAzZW1kZXYtXFx1MDAzZXBkZXYpKSB7XFxuK1xcdGNhc2UgUENJX1RQSF9SRVFfVFBIX09OTFk6XFxuK1xcdFxcdGV4dGVuZGVkID0gZmFsc2U7XFxuK1xcdFxcdGJyZWFrO1xcbitcXHRjYXNlIFBDSV9UUEhfUkVRX0VYVF9UUEg6XFxuK1xcdFxcdGV4dGVuZGVkID0gdHJ1ZTtcXG4rXFx0XFx0YnJlYWs7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4rXFx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXFx1MDAzZXJlc3YsIE5VTEwpO1xcbitcXHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFxcdTAwMjZzdGVlcmluZ190YWcsIFxcdTAwMjZsb2NhbF9waCk7XFxuK1xcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXFx1MDAzZXJlc3YpO1xcbitcXHRpZiAocmV0KSB7XFxuK1xcdFxcdGlmIChyZXQgIT0gLUVPUE5PVFNVUFApXFxuK1xcdFxcdFxcdG1seDVfaWJfZGJnKGRldiwgXFxcImdldF9wY2lfdHBoIGZhaWxlZCAoJWQpXFxcXG5cXFwiLCByZXQpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuK1xcdHJldCA9IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKGRldi1cXHUwMDNlbWRldiwgc3RlZXJpbmdfdGFnLFxcbitcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNmxvY2FsX3N0X2luZGV4KTtcXG4rXFx0aWYgKHJldCkge1xcbitcXHRcXHRtbHg1X2liX2RiZyhkZXYsIFxcXCJzdF9hbGxvY19pbmRleF9ieV90YWcgZmFpbGVkICglZClcXFxcblxcXCIsIHJldCk7XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4rXFx0KnN0X2luZGV4ID0gbG9jYWxfc3RfaW5kZXg7XFxuK1xcdCpwaCA9IGxvY2FsX3BoO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBtbHg1X2liX21yX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4re1xcbitcXHRtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKG1yX3RvX21kZXYobXIpLFxcbitcXHRcXHRcXHRcXHQgIG1yLVxcdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5KTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCBpYl9tciAqXFxuIHJlZ191c2VyX21yX2RtYWJ1ZihzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2aWNlLFxcbiBcXHRcXHQgICB1NjQgb2Zmc2V0LCB1NjQgbGVuZ3RoLCB1NjQgdmlydF9hZGRyLFxcbkBAIC05NDUsMTIgKzEwMzUsMjIgQEAgcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXFxuIFxcdFxcdHBoID0gZG1haC1cXHUwMDNlcGg7XFxuIFxcdFxcdGlmIChkbWFoLVxcdTAwM2V2YWxpZF9maWVsZHMgXFx1MDAyNiBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSlcXG4gXFx0XFx0XFx0c3RfaW5kZXggPSBtZG1haC1cXHUwMDNlc3RfaW5kZXg7XFxuK1xcbitcXHRcXHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xcbitcXHRcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdFxcdGliX3VtZW1fcmVsZWFzZShcXHUwMDI2dW1lbV9kbWFidWYtXFx1MDAzZXVtZW0pO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHR9XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLVxcdTAwM2VhdHRhY2gtXFx1MDAzZWRtYWJ1ZixcXG4rXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNnN0X2luZGV4LCBcXHUwMDI2cGgpO1xcbiBcXHR9XFxuIFxcbiBcXHRtciA9IGFsbG9jX2NhY2hlYWJsZV9tcihwZCwgXFx1MDAyNnVtZW1fZG1hYnVmLVxcdTAwM2V1bWVtLCB2aXJ0X2FkZHIsXFxuIFxcdFxcdFxcdFxcdGFjY2Vzc19mbGFncywgYWNjZXNzX21vZGUsXFxuIFxcdFxcdFxcdFxcdHN0X2luZGV4LCBwaCk7XFxuIFxcdGlmIChJU19FUlIobXIpKSB7XFxuK1xcdFxcdG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTtcXG4gXFx0XFx0aWJfdW1lbV9yZWxlYXNlKFxcdTAwMjZ1bWVtX2RtYWJ1Zi1cXHUwMDNldW1lbSk7XFxuIFxcdFxcdHJldHVybiBFUlJfQ0FTVChtcik7XFxuIFxcdH1cXG5AQCAtMTQwNSw2ICsxNTA1LDcgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4gXFx0aWYgKG1yLVxcdTAwM2VpYm1yLmZybXIucG9vbCkge1xcbiBcXHRcXHRpZiAoIW1seDVfdW1yX3Jldm9rZV9tcl93aXRoX2xvY2sobXIpKSB7XFxuIFxcdFxcdFxcdGliX2ZybXJfcG9vbF9wdXNoKG1yLVxcdTAwM2VpYm1yLmRldmljZSwgXFx1MDAyNm1yLVxcdTAwM2VpYm1yKTtcXG4rXFx0XFx0XFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XFxuIFxcdFxcdFxcdHJldHVybiAwO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG5AQCAtMTQzMiw2ICsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcXG4gXFx0aWYgKG1yLVxcdTAwM2VpYm1yLmZybXIucG9vbCBcXHUwMDI2XFx1MDAyNiAhcmV0KVxcbiBcXHRcXHRpYl9mcm1yX3Bvb2xfZHJvcChcXHUwMDI2bXItXFx1MDAzZWlibXIpO1xcbiBcXG4rXFx0aWYgKCFyZXQpXFxuK1xcdFxcdG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYobXIpO1xcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXFxuaW5kZXggOTk3YmU5MWYwYTEzNWEuLmJmMTRhN2E2ZGYxNWUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xcbkBAIC05MiwyMyArOTIsMTggQEAgdm9pZCBtbHg1X3N0X2Rlc3Ryb3koc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG4gXFx0a2ZyZWUoc3QpO1xcbiB9XFxuIFxcbi1pbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4tXFx0XFx0XFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuK2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxcbitcXHRcXHRcXHQgICAgICAgdTE2ICpzdF9pbmRleClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWx4NV9zdF9pZHhfZGF0YSAqaWR4X2RhdGE7XFxuIFxcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cXHUwMDNlc3Q7XFxuIFxcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XFxuIFxcdHUzMiB4YV9pZDtcXG4tXFx0dTE2IHRhZztcXG4tXFx0aW50IHJldDtcXG4rXFx0aW50IHJldCA9IDA7XFxuIFxcbiBcXHRpZiAoIXN0KVxcbiBcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuIFxcbi1cXHRyZXQgPSBwY2llX3RwaF9nZXRfY3B1X3N0KGRldi1cXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFxcdTAwMjZ0YWcpO1xcbi1cXHRpZiAocmV0KVxcbi1cXHRcXHRyZXR1cm4gcmV0O1xcbi1cXG4gXFx0aWYgKHN0LVxcdTAwM2VkaXJlY3RfbW9kZSkge1xcbiBcXHRcXHQqc3RfaW5kZXggPSB0YWc7XFxuIFxcdFxcdHJldHVybiAwO1xcbkBAIC0xNTIsOCArMTQ3LDQ2IEBAIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnN0LVxcdTAwM2Vsb2NrKTtcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbitFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyk7XFxuK1xcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4rXFx0XFx0XFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuK3tcXG4rXFx0dTE2IHRhZztcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVxcdTAwM2VwZGV2LCBtZW1fdHlwZSwgY3B1X3VpZCwgXFx1MDAyNnRhZyk7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbitcXHRyZXR1cm4gbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoZGV2LCB0YWcsIHN0X2luZGV4KTtcXG4rfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4KTtcXG4gXFxuK2ludCBtbHg1X3N0X2dldF9pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXFxuK3tcXG4rXFx0c3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhO1xcbitcXHRzdHJ1Y3QgbWx4NV9zdCAqc3QgPSBkZXYtXFx1MDAzZXN0O1xcbitcXHRpbnQgcmV0ID0gMDtcXG4rXFxuK1xcdGlmICghc3QpXFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFxuK1xcdGlmIChzdC1cXHUwMDNlZGlyZWN0X21vZGUpXFxuK1xcdFxcdHJldHVybiAwO1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2c3QtXFx1MDAzZWxvY2spO1xcbitcXHRpZHhfZGF0YSA9IHhhX2xvYWQoXFx1MDAyNnN0LVxcdTAwM2VpZHhfeGEsIHN0X2luZGV4KTtcXG4rXFx0aWYgKFdBUk5fT05fT05DRSghaWR4X2RhdGEpKVxcbitcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbitcXHRlbHNlXFxuK1xcdFxcdHJlZmNvdW50X2luYyhcXHUwMDI2aWR4X2RhdGEtXFx1MDAzZXVzZWNvdW50KTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzdC1cXHUwMDNlbG9jayk7XFxuK1xcbitcXHRyZXR1cm4gcmV0O1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfZ2V0X2luZGV4KTtcXG4rXFxuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbiB7XFxuIFxcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdHBoLmMgYi9kcml2ZXJzL3BjaS90cGguY1xcbmluZGV4IDY1NWZmZDYwZTYyZjZhLi5lNzY5M2ZkOWQ2NzYzNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3BjaS90cGguY1xcbisrKyBiL2RyaXZlcnMvcGNpL3RwaC5jXFxuQEAgLTE3Myw2ICsxNzMsNTEgQEAgdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTChwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKTtcXG4gXFxuKy8qKlxcbisgKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbisgKlxcbisgKiBSZXR1cm46IFBDSV9UUEhfUkVRX0RJU0FCTEUsIFBDSV9UUEhfUkVRX1RQSF9PTkxZIG9yIFBDSV9UUEhfUkVRX0VYVF9UUEguXFxuKyAqL1xcbit1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7XFxuK1xcdHJldHVybiBwZGV2LVxcdTAwM2V0cGhfcmVxX3R5cGU7XFxuK31cXG4rRVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4rXFxuKy8qKlxcbisgKiBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJ3MgVFBIIENvbXBsZXRlciBzdXBwb3J0XFxuKyAqIEBwZGV2OiBQQ0kgZGV2aWNlIHRvIHF1ZXJ5XFxuKyAqXFxuKyAqIFJlYWRzIHRoZSBcXFwiVFBIIENvbXBsZXRlciBTdXBwb3J0ZWRcXFwiIGZpZWxkIChiaXRzIDEzOjEyKSBvZiBEZXZpY2VcXG4rICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXFxuKyAqIFxcXCJub3Qgc3VwcG9ydGVkXFxcIiBzbyBjYWxsZXJzIG9ubHkgbmVlZCB0byBjb21wYXJlIGFnYWluc3QgdGhlIHRocmVlXFxuKyAqIGRlZmluZWQgdmFsdWVzLlxcbisgKlxcbisgKiBSZXR1cm46IG9uZSBvZiAlUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUsXFxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWSBvclxcbisgKiAgICAgICAgICVQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSC5cXG4rICovXFxuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7XFxuK1xcdHUzMiByZWc7XFxuK1xcbitcXHRpZiAocGNpZV9jYXBhYmlsaXR5X3JlYWRfZHdvcmQocGRldiwgUENJX0VYUF9ERVZDQVAyLCBcXHUwMDI2cmVnKSlcXG4rXFx0XFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FO1xcbitcXHRpZiAoUENJX1BPU1NJQkxFX0VSUk9SKHJlZykpXFxuK1xcdFxcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcXG4rXFxuK1xcdHN3aXRjaCAoRklFTERfR0VUKFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9NQVNLLCByZWcpKSB7XFxuK1xcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZOlxcbitcXHRcXHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX1RQSF9PTkxZO1xcbitcXHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIOlxcbitcXHRcXHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcXG4rXFx0fVxcbit9XFxuK0VYUE9SVF9TWU1CT0wocGNpZV90cGhfY29tcGxldGVyX3R5cGUpO1xcbitcXG4gLypcXG4gICogUmV0dXJuIHRoZSBzaXplIG9mIFNUIHRhYmxlLiBJZiBTVCB0YWJsZSBpcyBub3QgaW4gVFBIIFJlcXVlc3RlciBFeHRlbmRlZFxcbiAgKiBDYXBhYmlsaXR5IHNwYWNlLCByZXR1cm4gMC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgU1QgVGFibGUgU2l6ZSArIDEuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcXG5pbmRleCBhMjhmMWU5OTM2MmMxZS4uYzdkNjkwMmJjNjFiMDcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xcbkBAIC0xNTcyLDYgKzE1NzIsOSBAQCBpbnQgdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlKHN0cnVjdCB2ZmlvX2RldmljZSAqZGV2aWNlLCB1MzIgZmxhZ3MsXFxuIFxcdFxcdHJldHVybiB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfdG9rZW4odmRldiwgZmxhZ3MsIGFyZywgYXJnc3opO1xcbiBcXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRjpcXG4gXFx0XFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHZkZXYsIGZsYWdzLCBhcmcsIGFyZ3N6KTtcXG4rXFx0Y2FzZSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIOlxcbitcXHRcXHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdFxcdCBhcmdzeik7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHJldHVybiAtRU5PVFRZO1xcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXFxuaW5kZXggYzE2ZjQ2MGMwMWQ2ODEuLjUzNTE4MzljMTMzOGFmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNcXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXFxuQEAgLTMsNiArMyw3IEBAXFxuICAqL1xcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZG1hLWJ1Zi1tYXBwaW5nLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktcDJwZG1hLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2ktdHBoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9kbWEtcmVzdi5oXFx1MDAzZVxcbiBcXG4gI2luY2x1ZGUgXFxcInZmaW9fcGNpX3ByaXYuaFxcXCJcXG5AQCAtMTksNyArMjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xcbiBcXHR1MzIgbnJfcmFuZ2VzO1xcbiBcXHRzdHJ1Y3Qga3JlZiBrcmVmO1xcbiBcXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xcbi1cXHR1OCByZXZva2VkIDogMTtcXG4rXFxuK1xcdC8qXFxuK1xcdCAqIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IGRtYWJ1Zi1cXHUwMDNlcmVzdiwgQHJldm9rZWQgYWRkaXRpb25hbGx5XFxuK1xcdCAqIHByb3RlY3RlZCBieSBtZW1vcnlfbG9jay5cXG4rXFx0ICovXFxuK1xcdHUxNiB0cGhfc3RfZXh0O1xcbitcXHR1OCB0cGhfc3Q7XFxuK1xcdGJvb2wgcmV2b2tlZDtcXG4rXFx0dTggdHBoX3N0X3ZhbGlkOjE7XFxuK1xcdHU4IHRwaF9zdF9leHRfdmFsaWQ6MTtcXG4rXFx0dTggdHBoX3BoOjI7XFxuIH07XFxuIFxcbiBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXFxuQEAgLTMwLDcgKzQxLDcgQEAgc3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxcbiBcXHRpZiAoIWF0dGFjaG1lbnQtXFx1MDAzZXBlZXIycGVlcilcXG4gXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiBcXG4tXFx0aWYgKHByaXYtXFx1MDAzZXJldm9rZWQpXFxuK1xcdGlmIChSRUFEX09OQ0UocHJpdi1cXHUwMDNlcmV2b2tlZCkpXFxuIFxcdFxcdHJldHVybiAtRU5PREVWO1xcbiBcXG4gXFx0aWYgKCFkbWFfYnVmX2F0dGFjaF9yZXZvY2FibGUoYXR0YWNobWVudCkpXFxuQEAgLTY5LDYgKzgwLDI2IEBAIHZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuK3N0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbitcXHRcXHRcXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbit7XFxuK1xcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2ID0gZG1hYnVmLVxcdTAwM2Vwcml2O1xcbitcXG4rXFx0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFxuK1xcdGlmIChleHRlbmRlZCkge1xcbitcXHRcXHRpZiAoIXByaXYtXFx1MDAzZXRwaF9zdF9leHRfdmFsaWQpXFxuK1xcdFxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0XFx0KnN0ZWVyaW5nX3RhZyA9IHByaXYtXFx1MDAzZXRwaF9zdF9leHQ7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGlmICghcHJpdi1cXHUwMDNldHBoX3N0X3ZhbGlkKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcdFxcdCpzdGVlcmluZ190YWcgPSBwcml2LVxcdTAwM2V0cGhfc3Q7XFxuK1xcdH1cXG4rXFx0KnBoID0gcHJpdi1cXHUwMDNldHBoX3BoO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl91bm1hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxcbiBcXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCxcXG4gXFx0XFx0XFx0XFx0ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKVxcbkBAIC0xMDEsNiArMTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpXFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XFxuIFxcdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcXG4rXFx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcXG4gXFx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXFxuIFxcdC51bm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl91bm1hcCxcXG4gXFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXFxuQEAgLTMzMyw2ICszNjUsNzIgQEAgaW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcXG4rXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc2l6ZV90IGFyZ3N6KVxcbit7XFxuK1xcdHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHNldF90cGg7XFxuK1xcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xcbitcXHRzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmO1xcbitcXHR1OCBjb21wO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0Y29tcCA9IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHZkZXYtXFx1MDAzZXBkZXYpO1xcbitcXHRpZiAoY29tcCA9PSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORSlcXG4rXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbitcXG4rXFx0cmV0ID0gdmZpb19jaGVja19mZWF0dXJlKGZsYWdzLCBhcmdzeiwgVkZJT19ERVZJQ0VfRkVBVFVSRV9TRVQsXFxuK1xcdFxcdFxcdFxcdCBzaXplb2Yoc2V0X3RwaCkpO1xcbitcXHRpZiAocmV0ICE9IDEpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbitcXHRpZiAoY29weV9mcm9tX3VzZXIoXFx1MDAyNnNldF90cGgsIGFyZywgc2l6ZW9mKHNldF90cGgpKSlcXG4rXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuK1xcbitcXHRpZiAoc2V0X3RwaC5mbGFncyBcXHUwMDI2IH4oVkZJT19ETUFfQlVGX1RQSF9TVCB8IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKSlcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbitcXHRpZiAoc2V0X3RwaC5waCBcXHUwMDI2IH4weDMpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aWYgKChzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBjb21wICE9IFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBIKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRkbWFidWYgPSBkbWFfYnVmX2dldChzZXRfdHBoLmRtYWJ1Zl9mZCk7XFxuK1xcdGlmIChJU19FUlIoZG1hYnVmKSlcXG4rXFx0XFx0cmV0dXJuIFBUUl9FUlIoZG1hYnVmKTtcXG4rXFxuK1xcdGlmIChkbWFidWYtXFx1MDAzZW9wcyAhPSBcXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xcbitcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbitcXHRcXHRnb3RvIG91dF9wdXQ7XFxuK1xcdH1cXG4rXFxuK1xcdHByaXYgPSBkbWFidWYtXFx1MDAzZXByaXY7XFxuK1xcdGlmIChwcml2LVxcdTAwM2V2ZGV2ICE9IHZkZXYpIHtcXG4rXFx0XFx0cmV0ID0gLUVJTlZBTDtcXG4rXFx0XFx0Z290byBvdXRfcHV0O1xcbitcXHR9XFxuK1xcbitcXHRyZXQgPSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoZG1hYnVmLVxcdTAwM2VyZXN2LCBOVUxMKTtcXG4rXFx0aWYgKHJldClcXG4rXFx0XFx0Z290byBvdXRfcHV0O1xcbitcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0X2V4dCAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZ19leHQ7XFxuK1xcdHByaXYtXFx1MDAzZXRwaF9waCAgICAgICAgID0gc2V0X3RwaC5waDtcXG4rXFx0cHJpdi1cXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVCk7XFxuK1xcdHByaXYtXFx1MDAzZXRwaF9zdF9leHRfdmFsaWQgPVxcbitcXHRcXHQhIShzZXRfdHBoLmZsYWdzIFxcdTAwMjYgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQpO1xcbitcXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4rXFx0cmV0ID0gMDtcXG4rXFxuK291dF9wdXQ6XFxuK1xcdGRtYV9idWZfcHV0KGRtYWJ1Zik7XFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKVxcbiB7XFxuIFxcdHN0cnVjdCB2ZmlvX3BjaV9kbWFfYnVmICpwcml2O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaCBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXFxuaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXFxuKysrIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcXG5AQCAtMTE4LDYgKzExOCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdmZpb19wY2lfaXNfdmdhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXFxuIFxcdFxcdFxcdFxcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1ZiBfX3VzZXIgKmFyZyxcXG4gXFx0XFx0XFx0XFx0ICBzaXplX3QgYXJnc3opO1xcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcXG4rXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KTtcXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX21vdmUoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCBib29sIHJldm9rZWQpO1xcbiAjZWxzZVxcbkBAIC0xMjgsNiArMTMyLDE0IEBAIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbiB7XFxuIFxcdHJldHVybiAtRU5PVFRZO1xcbiB9XFxuK1xcbitzdGF0aWMgaW5saW5lIGludFxcbit2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXFxuK1xcdFxcdFxcdFxcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGggX191c2VyICphcmcsXFxuK1xcdFxcdFxcdFxcdCAgc2l6ZV90IGFyZ3N6KVxcbit7XFxuK1xcdHJldHVybiAtRU5PVFRZO1xcbit9XFxuIHN0YXRpYyBpbmxpbmUgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX2NsZWFudXAoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2KVxcbiB7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXFxuQEAgLTExMyw2ICsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHtcXG4gXFx0ICovXFxuIFxcdHZvaWQgKCp1bnBpbikoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG4gXFxuK1xcdC8qKlxcbitcXHQgKiBAZ2V0X3BjaV90cGg6XFxuK1xcdCAqXFxuK1xcdCAqIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBzdGVlcmluZyBtZXRhZGF0YSBmb3JcXG4rXFx0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXFxuK1xcdCAqIG91dGJvdW5kIFRMUHMgdGFyZ2V0aW5nIHRoZSBleHBvcnRlciBmb3IgcGVlci10by1wZWVyIERNQS5cXG4rXFx0ICpcXG4rXFx0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXFxuK1xcdCAqIEBleHRlbmRlZDogZmFsc2UgZm9yIDgtYml0IFNULCB0cnVlIGZvciAxNi1iaXQgRXh0ZW5kZWQgU1RcXG4rXFx0ICogQHN0ZWVyaW5nX3RhZzogUmV0dXJucyB0aGUgcmF3IFRQSCBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWRcXG4rXFx0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXFxuK1xcdCAqIEBwaDogUmV0dXJucyB0aGUgVFBIIHByb2Nlc3NpbmcgaGludCAoMi1iaXQgdmFsdWUpXFxuK1xcdCAqXFxuK1xcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXFxuK1xcdCAqIFxcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxcbitcXHQgKiB0aGUgZXhwb3J0ZXIgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZS5cXG4rXFx0ICpcXG4rXFx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcXG4rXFx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxcbitcXHQgKi9cXG4rXFx0aW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuK1xcdFxcdFxcdCAgIHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xcbitcXG4gXFx0LyoqXFxuIFxcdCAqIEBtYXBfZG1hX2J1ZjpcXG4gXFx0ICpcXG5AQCAtNTYzLDYgKzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4gXFx0XFx0ICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XFxuIGludCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xcbiB2b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG4rXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XFxuIFxcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcXG5AQCAtMTE4MiwxNiArMTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZVxcbiBcXHRcXHRcXHQgICB1NjQgbGVuZ3RoLCB1MTYgdWlkLCBwaHlzX2FkZHJfdCBhZGRyLCB1MzIgb2JqX2lkKTtcXG4gXFxuICNpZmRlZiBDT05GSUdfUENJRV9UUEhcXG4raW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiB0YWcsXFxuK1xcdFxcdFxcdCAgICAgICB1MTYgKnN0X2luZGV4KTtcXG4raW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XFxuIGludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxcbiBcXHRcXHRcXHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleCk7XFxuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTtcXG4gI2Vsc2VcXG4rc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICB1MTYgdGFnLCB1MTYgKnN0X2luZGV4KVxcbit7XFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitcXG4rc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbit7XFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitcXG4gc3RhdGljIGlubGluZSBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbiBcXHRcXHRcXHRcXHQgICAgICBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXFxuIHtcXG4gXFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiB9XFxuK1xcbiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxcbiB7XFxuIFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktdHBoLmggYi9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxcbmluZGV4IGJlNjhjZDE3ZjJmODMzLi43NzQzYWY2ZmU0MzI2ZSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXFxuQEAgLTksNiArOSw4IEBAXFxuICNpZm5kZWYgTElOVVhfUENJX1RQSF9IXFxuICNkZWZpbmUgTElOVVhfUENJX1RQSF9IXFxuIFxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpX3JlZ3MuaFxcdTAwM2VcXG4rXFxuIC8qXFxuICAqIEFjY29yZGluZyB0byB0aGUgRUNOIGZvciBQQ0kgRmlybXdhcmUgU3BlYywgU3RlZXJpbmcgVGFnIGNhbiBiZSBkaWZmZXJlbnRcXG4gICogZGVwZW5kaW5nIG9uIHRoZSBtZW1vcnkgdHlwZTogVm9sYXRpbGUgTWVtb3J5IG9yIFBlcnNpc3RlbnQgTWVtb3J5LiBXaGVuIGFcXG5AQCAtMzAsNiArMzIsOCBAQCB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xcbiBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSk7XFxuIHUxNiBwY2llX3RwaF9nZXRfc3RfdGFibGVfc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuIHUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG4rdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG4gI2Vsc2VcXG4gc3RhdGljIGlubGluZSBpbnQgcGNpZV90cGhfc2V0X3N0X2VudHJ5KHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaW5kZXgsIHUxNiB0YWcpXFxuQEAgLTQxLDYgKzQ1LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX2dldF9jcHVfc3Qoc3RydWN0IHBjaV9kZXYgKmRldixcXG4gc3RhdGljIGlubGluZSB2b2lkIHBjaWVfZGlzYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfVxcbiBzdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxcbiB7IHJldHVybiAtRUlOVkFMOyB9XFxuK3N0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4reyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxcbitzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbit7IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcbiAjZW5kaWZcXG4gXFxuICNlbmRpZiAvKiBMSU5VWF9QQ0lfVFBIX0ggKi9cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmhcXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmhcXG5AQCAtMTUzNCw2ICsxNTM0LDQ5IEBAIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYge1xcbiAgKi9cXG4gI2RlZmluZSBWRklPX0RFVklDRV9GRUFUVVJFX01JR19QUkVDT1BZX0lORk92MiAgMTJcXG4gXFxuKy8qKlxcbisgKiBVcG9uIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VUIGFzc29jaWF0ZSBUUEggKFRMUCBQcm9jZXNzaW5nIEhpbnRzKSBtZXRhZGF0YVxcbisgKiB3aXRoIGEgdmZpby1leHBvcnRlZCBkbWEtYnVmLiBUaGUgZG1hLWJ1ZiBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5XFxuKyAqIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRiBvbiB0aGlzIGRldmljZSwgYW5kIHRoZSBkZXZpY2UgbXVzdCByZXBvcnRcXG4rICogVFBIIENvbXBsZXRlciBzdXBwb3J0IGluIERldmljZSBDYXBhYmlsaXRpZXMgMiAoYml0cyAxMzoxMik7IHJlcXVlc3RzXFxuKyAqIGNhcnJ5aW5nIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIGFkZGl0aW9uYWxseSByZXF1aXJlIHRoZSBkZXZpY2UgdG9cXG4rICogcmVwb3J0IHRoZSBFeHRlbmRlZCBUUEggQ29tcGxldGVyIGVuY29kaW5nLiBPdGhlcndpc2UgdGhlIGlvY3RsXFxuKyAqIHJldHVybnMgLUVPUE5PVFNVUFAuXFxuKyAqXFxuKyAqIEBkbWFidWZfZmQgaXMgdGhlIGZpbGUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUYuXFxuKyAqXFxuKyAqIDgtYml0IFNUIChAc3RlZXJpbmdfdGFnKSBhbmQgMTYtYml0IEV4dGVuZGVkIFNUIChAc3RlZXJpbmdfdGFnX2V4dCkgYXJlXFxuKyAqIGRpc3RpbmN0IG5hbWVzcGFjZXMuIEBmbGFncyBpcyB0aGUgYXV0aG9yaXRhdGl2ZSB2YWxpZGl0eSBtYXNrIGZvciB0aGVcXG4rICogdHdvIG5hbWVzcGFjZXM6IFZGSU9fRE1BX0JVRl9UUEhfU1QgbWFya3MgQHN0ZWVyaW5nX3RhZyB2YWxpZCBhbmRcXG4rICogVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQgbWFya3MgQHN0ZWVyaW5nX3RhZ19leHQgdmFsaWQuIEFuIGltcG9ydGVyXFxuKyAqIHJlcXVlc3RzIG9uZSBuYW1lc3BhY2UgYW5kIHJlY2VpdmVzIHRoZSBtYXRjaGluZyB2YWx1ZS5cXG4rICpcXG4rICogRWFjaCBTRVQgZnVsbHkgcmVwbGFjZXMgdGhlIGRtYS1idWYncyBUUEggc3RhdGUgZm9yIGZ1dHVyZSBxdWVyaWVzXFxuKyAqIG9ubHkuIEEgbmFtZXNwYWNlIHdob3NlIGZsYWcgYml0IGlzIGNsZWFyIGlzIHJlcG9ydGVkIGFzIHVuc3VwcG9ydGVkXFxuKyAqIHRvIGZ1dHVyZSBpbXBvcnRlcnM7IGFuIGltcG9ydGVyIHRoYXQgaGFzIGFscmVhZHkgcmV0cmlldmVkIGEgdmFsdWVcXG4rICogaXMgdW5hZmZlY3RlZC4gQGZsYWdzID09IDAgbGVhdmVzIGJvdGggbmFtZXNwYWNlcyB1bnN1cHBvcnRlZCBmb3JcXG4rICogZnV0dXJlIGltcG9ydGVycy5cXG4rICpcXG4rICogQHBoIGlzIHRoZSAyLWJpdCBUTFAgUHJvY2Vzc2luZyBIaW50IGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwgM10uXFxuKyAqXFxuKyAqIFVuZGVmaW5lZCBAZmxhZ3MgYW5kIEBwaCBiaXRzIG11c3QgYWx3YXlzIGJlIHplcm8uXFxuKyAqXFxuKyAqIFVzZXJzcGFjZSBtdXN0IGNvbmZpZ3VyZSBUUEggYmVmb3JlIGhhbmRpbmcgdGhlIGRtYS1idWYgZmQgdG8gYW5cXG4rICogaW1wb3J0ZXIuXFxuKyAqL1xcbisjZGVmaW5lIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEggMTNcXG4rXFxuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVFxcdFxcdCgxIFxcdTAwM2NcXHUwMDNjIDApXFxuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVF9FWFRcXHRcXHQoMSBcXHUwMDNjXFx1MDAzYyAxKVxcbitcXG4rc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1Zl90cGgge1xcbitcXHRfX3MzMlxcdGRtYWJ1Zl9mZDtcXG4rXFx0X191MzJcXHRmbGFncztcXG4rXFx0X191MTZcXHRzdGVlcmluZ190YWdfZXh0O1xcbitcXHRfX3U4XFx0c3RlZXJpbmdfdGFnO1xcbitcXHRfX3U4XFx0cGg7XFxuK307XFxuK1xcbiAvKiAtLS0tLS0tLSBBUEkgZm9yIFR5cGUxIFZGSU8gSU9NTVUgLS0tLS0tLS0gKi9cXG4gXFxuIC8qKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OToxNi4zMDM4NTc3OTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1MjkyNTcwMzkwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQQ0lFX1RQSFwiLFxuICAgIFwiUENJX1AyUERNQVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaFwiLFxuICAgIFwicGNpZV90cGhfY29tcGxldGVyX3R5cGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgdG8gRE1BLUJVRiBhbmQgVkZJTy4gVGhlIG5ldyBpb2N0bCBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIIGlzIHJlYWNoYWJsZSBhbmQgY2FuIGJlIGZ1enplZC4gVGhlIGNoYW5nZXMgaW4gZHJpdmVycy9wY2kvdHBoLmMgYW5kIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZDYwMmE4ZTE2NzQ2NGUwYmQwYTE3OGUzZTQxN2I2MmViZjIwY2VhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxOTo1OToxMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG5pbmRleCBkNTA0YzYzNmRjMjk0ZS4uZTgzMTRlZDI0MGQzMzYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG4rKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jXG5AQCAtOTM5LDYgKzkzOSw3IEBAIGRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXG4gICogICAgIC0gZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KClcbiAgKiAgICAgLSBkbWFfYnVmX3ZtYXAoKVxuICAqICAgICAtIGRtYV9idWZfdnVubWFwKClcbisgKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcbiAgKlxuICAqIDIuIEltcG9ydGVycyBtdXN0IG5vdCBob2xkIHRoZSBkbWEtYnVmIHJlc2VydmF0aW9uIGxvY2sgd2hlbiBjYWxsaW5nIHRoZXNlXG4gICogICAgZnVuY3Rpb25zOlxuQEAgLTk3OSw2ICs5ODAsNyBAQCBkbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnVubWFwX2RtYV9idWYoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnZtYXAoKVxuICAqICAgICAtIFx1MDAyNmRtYV9idWZfb3BzLnZ1bm1hcCgpXG4rICogICAgIC0gXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGgoKVxuICAqXG4gICogMy4gRXhwb3J0ZXJzIG11c3QgaG9sZCB0aGUgZG1hLWJ1ZiByZXNlcnZhdGlvbiBsb2NrIHdoZW4gY2FsbGluZyB0aGVzZVxuICAqICAgIGZ1bmN0aW9uczpcbkBAIC0xMTQ0LDYgKzExNDYsMzYgQEAgdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcbiB9XG4gRVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXCJETUFfQlVGXCIpO1xuIFxuKy8qKlxuKyAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcbisgKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XG4rICogQGV4dGVuZGVkOiBmYWxzZSBmb3IgOC1iaXQgU1QsIHRydWUgZm9yIDE2LWJpdCBFeHRlbmRlZCBTVFxuKyAqIEBzdGVlcmluZ190YWc6IHJldHVybnMgdGhlIHJhdyBzdGVlcmluZyB0YWcgZm9yIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlXG4rICogQHBoOiByZXR1cm5zIHRoZSBUUEggcHJvY2Vzc2luZyBoaW50XG4rICpcbisgKiBXcmFwcGVyIGZvciB0aGUgb3B0aW9uYWwgXHUwMDI2ZG1hX2J1Zl9vcHMuZ2V0X3BjaV90cGggY2FsbGJhY2suXG4rICpcbisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIC1FT1BOT1RTVVBQIGlmIHRoZVxuKyAqIGV4cG9ydGVyIGRvZXMgbm90IGltcGxlbWVudCB0aGUgY2FsbGJhY2sgb3IgaGFzIG5vIG1ldGFkYXRhIGZvciB0aGVcbisgKiByZXF1ZXN0ZWQgbmFtZXNwYWNlLlxuKyAqXG4rICogVGhlIHJldHVybmVkIHN0ZWVyaW5nIHRhZyBhbmQgcHJvY2Vzc2luZyBoaW50IGFyZSBvbmx5IHZhbGlkIHVudGlsIHRoZVxuKyAqIGV4cG9ydGVyIGludmFsaWRhdGVzIHRoZSBjdXJyZW50IG1hcHBpbmcgKHNpZ25hbGxlZCB0byB0aGUgaW1wb3J0ZXIgdmlhXG4rICogXHUwMDI2ZG1hX2J1Zl9hdHRhY2hfb3BzLm1vdmVfbm90aWZ5KS4gSW1wb3J0ZXJzIG11c3QgcmUtcXVlcnkgYWZ0ZXIgYSBuZXdcbisgKiBtYXBwaW5nIGlzIGVzdGFibGlzaGVkIGZvbGxvd2luZyBpbnZhbGlkYXRpb24uXG4rICovXG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxuK3tcbitcdGRtYV9yZXN2X2Fzc2VydF9oZWxkKGRtYWJ1Zi1cdTAwM2VyZXN2KTtcbitcbitcdGlmICghZG1hYnVmLVx1MDAzZW9wcy1cdTAwM2VnZXRfcGNpX3RwaClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0cmV0dXJuIGRtYWJ1Zi1cdTAwM2VvcHMtXHUwMDNlZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgc3RlZXJpbmdfdGFnLCBwaCk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFwiRE1BX0JVRlwiKTtcbitcbiAvKipcbiAgKiBkbWFfYnVmX21hcF9hdHRhY2htZW50IC0gUmV0dXJucyB0aGUgc2NhdHRlcmxpc3QgdGFibGUgb2YgdGhlIGF0dGFjaG1lbnQ7XG4gICogbWFwcGVkIGludG8gX2RldmljZV8gYWRkcmVzcyBzcGFjZS4gSXMgYSB3cmFwcGVyIGZvciBtYXBfZG1hX2J1ZigpIG9mIHRoZVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY1xuaW5kZXggMDI4MDkxMTRmYzc5YWYuLmEyYjQ5N2Y2YjE2YmRjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNcbkBAIC02MCw2ICs2MCw3IEBAXG4gTU9EVUxFX0FVVEhPUihcIkVsaSBDb2hlbiBcdTAwM2NlbGlAbWVsbGFub3guY29tXHUwMDNlXCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgSUIgZHJpdmVyXCIpO1xuIE1PRFVMRV9MSUNFTlNFKFwiRHVhbCBCU0QvR1BMXCIpO1xuK01PRFVMRV9JTVBPUlRfTlMoXCJETUFfQlVGXCIpO1xuIFxuIHN0cnVjdCBtbHg1X2liX2V2ZW50X3dvcmsge1xuIFx0c3RydWN0IHdvcmtfc3RydWN0XHR3b3JrO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG5pbmRleCBlNmI3NDk1NWQ5NWRjZC4uNTUyMTZhZTYzNzYxNDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG4rKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jXG5AQCAtMzksNiArMzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtcmVzdi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLXRwaC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjcmRtYS9mcm1yX3Bvb2xzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NyZG1hL2liX3VtZW1fb2RwLmhcdTAwM2VcbiAjaW5jbHVkZSBcImRtLmhcIlxuQEAgLTE2Nyw2ICsxNjgsMzkgQEAgc3RhdGljIGludCBnZXRfdW5jaGFuZ2VhYmxlX2FjY2Vzc19mbGFncyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcbiAjZGVmaW5lIE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0sgR0VOTUFTS19VTEwoMjMsIDE2KVxuICNkZWZpbmUgTUxYNV9GUk1SX1BPT0xTX0tFUk5FTF9LRVlfU1RfSU5ERVhfTUFTSyBHRU5NQVNLX1VMTCgxNSwgMClcbiBcbitzdGF0aWMgdTggbWx4NV9pYl90cGhfa2V5X3BoKHU4IHBoKVxuK3tcbitcdGlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApXG4rXHRcdHBoIF49IE1MWDVfSUJfTk9fUEg7XG4rXG4rXHRyZXR1cm4gcGg7XG4rfVxuK1xuK3N0YXRpYyBpbnQgbWx4NV9pYl9nZXRfc3RfaGFuZGxlX3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4rXHRcdHJldHVybiAwO1xuK1xuK1x0cmV0dXJuIG1seDVfc3RfZ2V0X2luZGV4KGRldi1cdTAwM2VtZGV2LCBzdF9pbmRleCk7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdGlmIChzdF9pbmRleCA9PSBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpXG4rXHRcdHJldHVybjtcbitcbitcdG1seDVfc3RfZGVhbGxvY19pbmRleChkZXYtXHUwMDNlbWRldiwgc3RfaW5kZXgpO1xuK31cbitcbitzdGF0aWMgdm9pZCBtbHg1X2liX3B1dF9zdF9oYW5kbGVfcmVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LFxuK1x0XHRcdFx0ICAgICAgdTY0IGtlcm5lbF92ZW5kb3Jfa2V5KVxuK3tcbitcdHUxNiBzdF9pbmRleCA9IEZJRUxEX0dFVChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLFxuK1x0XHRcdFx0IGtlcm5lbF92ZW5kb3Jfa2V5KTtcbitcbitcdG1seDVfaWJfcHV0X3N0X2luZGV4X3JlZihkZXYsIHN0X2luZGV4KTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCBtbHg1X2liX21yICpcbiBfbWx4NV9mcm1yX3Bvb2xfYWxsb2Moc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHQgICAgICBpbnQgYWNjZXNzX2ZsYWdzLCBpbnQgYWNjZXNzX21vZGUsXG5AQCAtMTg5LDEzICsyMjMsMTAgQEAgX21seDVfZnJtcl9wb29sX2FsbG9jKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSxcbiBcdFx0XHRNTFg1X0ZSTVJfUE9PTFNfS0VZX0FDQ0VTU19NT0RFX0tTTV9NQVNLIDpcbiBcdFx0XHQwO1xuIFxuLVx0LyogTm9ybWFsaXplIHBoOiBzd2FwIDAgYW5kIE1MWDVfSUJfTk9fUEggKi9cbi1cdGlmIChwaCA9PSBNTFg1X0lCX05PX1BIIHx8IHBoID09IDApXG4tXHRcdHBoIF49IE1MWDVfSUJfTk9fUEg7XG4tXG4gXHRtci1cdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbiBcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfFxuLVx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssIHBoKTtcbitcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9QSF9NQVNLLFxuK1x0XHRcdCAgIG1seDVfaWJfdHBoX2tleV9waChwaCkpO1xuIFx0ZXJyID0gaWJfZnJtcl9wb29sX3BvcChcdTAwMjZkZXYtXHUwMDNlaWJfZGV2LCBcdTAwMjZtci1cdTAwM2VpYm1yKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0a2ZyZWUobXIpO1xuQEAgLTIxOCw3ICsyNDksOSBAQCBzdHJ1Y3QgbWx4NV9pYl9tciAqbWx4NV9tcl9jYWNoZV9hbGxvYyhzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIDAgOlxuIFx0XHRcdFx0ICAgICAgTUxYNV9GUk1SX1BPT0xTX0tFWV9BQ0NFU1NfTU9ERV9LU01fTUFTSyxcbiBcdFx0Lm51bV9kbWFfYmxvY2tzID0gbmRlc2NzLFxuLVx0XHQua2VybmVsX3ZlbmRvcl9rZXkgPSAwLCAvKiBubyBQSCBhbmQgbm8gU1QgaW5kZXggKi9cbitcdFx0Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbitcdFx0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1NUX0lOREVYX01BU0ssXG4rXHRcdFx0XHQgICBNTFg1X01LQ19QQ0lFX1RQSF9OT19TVEVFUklOR19UQUdfSU5ERVgpLFxuIFx0fTtcbiBcdHN0cnVjdCBtbHg1X2liX21yICptcjtcbiBcdGludCByZXQ7XG5AQCAtNTU3LDYgKzU5MCwxMCBAQCBzdGF0aWMgc3RydWN0IG1seDVfaWJfbXIgKnJlZ19jcmVhdGUoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRtci1cdTAwM2VpYm1yLnBkID0gcGQ7XG4gXHRtci1cdTAwM2VhY2Nlc3NfZmxhZ3MgPSBhY2Nlc3NfZmxhZ3M7XG4gXHRtci1cdTAwM2VwYWdlX3NoaWZ0ID0gb3JkZXJfYmFzZV8yKHBhZ2Vfc2l6ZSk7XG4rXHRtci1cdTAwM2VpYm1yLmZybXIua2V5Lmtlcm5lbF92ZW5kb3Jfa2V5ID1cbitcdFx0RklFTERfUFJFUChNTFg1X0ZSTVJfUE9PTFNfS0VSTkVMX0tFWV9TVF9JTkRFWF9NQVNLLCBzdF9pbmRleCkgfFxuK1x0XHRGSUVMRF9QUkVQKE1MWDVfRlJNUl9QT09MU19LRVJORUxfS0VZX1BIX01BU0ssXG4rXHRcdFx0ICAgbWx4NV9pYl90cGhfa2V5X3BoKHBoKSk7XG4gXG4gXHRpbmxlbiA9IE1MWDVfU1RfU1pfQllURVMoY3JlYXRlX21rZXlfaW4pO1xuIFx0aWYgKHBvcHVsYXRlKVxuQEAgLTc1Myw2ICs3OTAsMTIgQEAgc3RhdGljIHN0cnVjdCBpYl9tciAqY3JlYXRlX3JlYWxfbXIoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGliX3VtZW0gKnVtZW0sXG4gXHRcdFx0c3RfaW5kZXggPSBtZG1haC1cdTAwM2VzdF9pbmRleDtcbiBcdH1cbiBcbitcdGVyciA9IG1seDVfaWJfZ2V0X3N0X2hhbmRsZV9yZWYoZGV2LCBzdF9pbmRleCk7XG4rXHRpZiAoZXJyKSB7XG4rXHRcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcbitcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbitcdH1cbitcbiBcdHhsdF93aXRoX3VtciA9IG1seDVyX3Vtcl9jYW5fbG9hZF9wYXMoZGV2LCB1bWVtLVx1MDAzZWxlbmd0aCk7XG4gXHRpZiAoeGx0X3dpdGhfdW1yKSB7XG4gXHRcdG1yID0gYWxsb2NfY2FjaGVhYmxlX21yKHBkLCB1bWVtLCBpb3ZhLCBhY2Nlc3NfZmxhZ3MsXG5AQCAtNzY5LDYgKzgxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfbXIgKmNyZWF0ZV9yZWFsX21yKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBpYl91bWVtICp1bWVtLFxuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZXNsb3dfcGF0aF9tdXRleCk7XG4gXHR9XG4gXHRpZiAoSVNfRVJSKG1yKSkge1xuK1x0XHRtbHg1X2liX3B1dF9zdF9pbmRleF9yZWYoZGV2LCBzdF9pbmRleCk7XG4gXHRcdGliX3VtZW1fcmVsZWFzZSh1bWVtKTtcbiBcdFx0cmV0dXJuIEVSUl9DQVNUKG1yKTtcbiBcdH1cbkBAIC05MDMsNiArOTQ3LDUyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfb3BzIG1seDVfaWJfZG1hYnVmX2F0dGFjaF9vcHMgPSB7XG4gXHQuaW52YWxpZGF0ZV9tYXBwaW5ncyA9IG1seDVfaWJfZG1hYnVmX2ludmFsaWRhdGVfY2IsXG4gfTtcbiBcbitzdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4rXHRcdFx0XHQgIHUxNiAqc3RfaW5kZXgsIHU4ICpwaClcbit7XG4rXHR1MTYgbG9jYWxfc3RfaW5kZXg7XG4rXHR1MTYgc3RlZXJpbmdfdGFnO1xuK1x0dTggbG9jYWxfcGg7XG4rXHRib29sIGV4dGVuZGVkO1xuK1x0aW50IHJldDtcbitcbitcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXHUwMDNlbWRldi1cdTAwM2VwZGV2KSkge1xuK1x0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcbitcdFx0ZXh0ZW5kZWQgPSBmYWxzZTtcbitcdFx0YnJlYWs7XG4rXHRjYXNlIFBDSV9UUEhfUkVRX0VYVF9UUEg6XG4rXHRcdGV4dGVuZGVkID0gdHJ1ZTtcbitcdFx0YnJlYWs7XG4rXHRkZWZhdWx0OlxuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4rXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbitcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXHUwMDI2c3RlZXJpbmdfdGFnLCBcdTAwMjZsb2NhbF9waCk7XG4rXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVx1MDAzZXJlc3YpO1xuK1x0aWYgKHJldCkge1xuK1x0XHRpZiAocmV0ICE9IC1FT1BOT1RTVVBQKVxuK1x0XHRcdG1seDVfaWJfZGJnKGRldiwgXCJnZXRfcGNpX3RwaCBmYWlsZWQgKCVkKVxcblwiLCByZXQpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4rXHRyZXQgPSBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYtXHUwMDNlbWRldiwgc3RlZXJpbmdfdGFnLFxuK1x0XHRcdFx0XHQgXHUwMDI2bG9jYWxfc3RfaW5kZXgpO1xuK1x0aWYgKHJldCkge1xuK1x0XHRtbHg1X2liX2RiZyhkZXYsIFwic3RfYWxsb2NfaW5kZXhfYnlfdGFnIGZhaWxlZCAoJWQpXFxuXCIsIHJldCk7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbitcdCpzdF9pbmRleCA9IGxvY2FsX3N0X2luZGV4O1xuK1x0KnBoID0gbG9jYWxfcGg7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYoc3RydWN0IG1seDVfaWJfbXIgKm1yKVxuK3tcbitcdG1seDVfaWJfcHV0X3N0X2hhbmRsZV9yZWYobXJfdG9fbWRldihtciksXG4rXHRcdFx0XHQgIG1yLVx1MDAzZWlibXIuZnJtci5rZXkua2VybmVsX3ZlbmRvcl9rZXkpO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IGliX21yICpcbiByZWdfdXNlcl9tcl9kbWFidWYoc3RydWN0IGliX3BkICpwZCwgc3RydWN0IGRldmljZSAqZG1hX2RldmljZSxcbiBcdFx0ICAgdTY0IG9mZnNldCwgdTY0IGxlbmd0aCwgdTY0IHZpcnRfYWRkcixcbkBAIC05NDUsMTIgKzEwMzUsMjIgQEAgcmVnX3VzZXJfbXJfZG1hYnVmKHN0cnVjdCBpYl9wZCAqcGQsIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXZpY2UsXG4gXHRcdHBoID0gZG1haC1cdTAwM2VwaDtcbiBcdFx0aWYgKGRtYWgtXHUwMDNldmFsaWRfZmllbGRzIFx1MDAyNiBCSVQoSUJfRE1BSF9DUFVfSURfRVhJU1RTKSlcbiBcdFx0XHRzdF9pbmRleCA9IG1kbWFoLVx1MDAzZXN0X2luZGV4O1xuK1xuK1x0XHRlcnIgPSBtbHg1X2liX2dldF9zdF9oYW5kbGVfcmVmKGRldiwgc3RfaW5kZXgpO1xuK1x0XHRpZiAoZXJyKSB7XG4rXHRcdFx0aWJfdW1lbV9yZWxlYXNlKFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0pO1xuK1x0XHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdH1cbitcdH0gZWxzZSB7XG4rXHRcdGdldF9wY2lfdHBoX21yX2RtYWJ1ZihkZXYsIHVtZW1fZG1hYnVmLVx1MDAzZWF0dGFjaC1cdTAwM2VkbWFidWYsXG4rXHRcdFx0XHQgICAgICBcdTAwMjZzdF9pbmRleCwgXHUwMDI2cGgpO1xuIFx0fVxuIFxuIFx0bXIgPSBhbGxvY19jYWNoZWFibGVfbXIocGQsIFx1MDAyNnVtZW1fZG1hYnVmLVx1MDAzZXVtZW0sIHZpcnRfYWRkcixcbiBcdFx0XHRcdGFjY2Vzc19mbGFncywgYWNjZXNzX21vZGUsXG4gXHRcdFx0XHRzdF9pbmRleCwgcGgpO1xuIFx0aWYgKElTX0VSUihtcikpIHtcbitcdFx0bWx4NV9pYl9wdXRfc3RfaW5kZXhfcmVmKGRldiwgc3RfaW5kZXgpO1xuIFx0XHRpYl91bWVtX3JlbGVhc2UoXHUwMDI2dW1lbV9kbWFidWYtXHUwMDNldW1lbSk7XG4gXHRcdHJldHVybiBFUlJfQ0FTVChtcik7XG4gXHR9XG5AQCAtMTQwNSw2ICsxNTA1LDcgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCkge1xuIFx0XHRpZiAoIW1seDVfdW1yX3Jldm9rZV9tcl93aXRoX2xvY2sobXIpKSB7XG4gXHRcdFx0aWJfZnJtcl9wb29sX3B1c2gobXItXHUwMDNlaWJtci5kZXZpY2UsIFx1MDAyNm1yLVx1MDAzZWlibXIpO1xuK1x0XHRcdG1seDVfaWJfbXJfcHV0X3N0X2hhbmRsZV9yZWYobXIpO1xuIFx0XHRcdHJldHVybiAwO1xuIFx0XHR9XG4gXHR9XG5AQCAtMTQzMiw2ICsxNTMzLDkgQEAgc3RhdGljIGludCBtbHg1cl9oYW5kbGVfbWtleV9jbGVhbnVwKHN0cnVjdCBtbHg1X2liX21yICptcilcbiBcdGlmIChtci1cdTAwM2VpYm1yLmZybXIucG9vbCBcdTAwMjZcdTAwMjYgIXJldClcbiBcdFx0aWJfZnJtcl9wb29sX2Ryb3AoXHUwMDI2bXItXHUwMDNlaWJtcik7XG4gXG4rXHRpZiAoIXJldClcbitcdFx0bWx4NV9pYl9tcl9wdXRfc3RfaGFuZGxlX3JlZihtcik7XG4rXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3N0LmNcbmluZGV4IDk5N2JlOTFmMGExMzVhLi5iZjE0YTdhNmRmMTVlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvc3QuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jXG5AQCAtOTIsMjMgKzkyLDE4IEBAIHZvaWQgbWx4NV9zdF9kZXN0cm95KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG4gXHRrZnJlZShzdCk7XG4gfVxuIFxuLWludCBtbHg1X3N0X2FsbG9jX2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuLVx0XHRcdHVuc2lnbmVkIGludCBjcHVfdWlkLCB1MTYgKnN0X2luZGV4KVxuK2ludCBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgdGFnLFxuK1x0XHRcdCAgICAgICB1MTYgKnN0X2luZGV4KVxuIHtcbiBcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbiBcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbiBcdHVuc2lnbmVkIGxvbmcgaW5kZXg7XG4gXHR1MzIgeGFfaWQ7XG4tXHR1MTYgdGFnO1xuLVx0aW50IHJldDtcbitcdGludCByZXQgPSAwO1xuIFxuIFx0aWYgKCFzdClcbiBcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIFxuLVx0cmV0ID0gcGNpZV90cGhfZ2V0X2NwdV9zdChkZXYtXHUwMDNlcGRldiwgbWVtX3R5cGUsIGNwdV91aWQsIFx1MDAyNnRhZyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuIFx0aWYgKHN0LVx1MDAzZWRpcmVjdF9tb2RlKSB7XG4gXHRcdCpzdF9pbmRleCA9IHRhZztcbiBcdFx0cmV0dXJuIDA7XG5AQCAtMTUyLDggKzE0Nyw0NiBAQCBpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbiBcdG11dGV4X3VubG9jayhcdTAwMjZzdC1cdTAwM2Vsb2NrKTtcbiBcdHJldHVybiByZXQ7XG4gfVxuK0VYUE9SVF9TWU1CT0xfR1BMKG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKTtcbitcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIHRwaF9tZW1fdHlwZSBtZW1fdHlwZSxcbitcdFx0XHR1bnNpZ25lZCBpbnQgY3B1X3VpZCwgdTE2ICpzdF9pbmRleClcbit7XG4rXHR1MTYgdGFnO1xuK1x0aW50IHJldDtcbitcbitcdHJldCA9IHBjaWVfdHBoX2dldF9jcHVfc3QoZGV2LVx1MDAzZXBkZXYsIG1lbV90eXBlLCBjcHVfdWlkLCBcdTAwMjZ0YWcpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbitcdHJldHVybiBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZyhkZXYsIHRhZywgc3RfaW5kZXgpO1xuK31cbiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2FsbG9jX2luZGV4KTtcbiBcbitpbnQgbWx4NV9zdF9nZXRfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuK3tcbitcdHN0cnVjdCBtbHg1X3N0X2lkeF9kYXRhICppZHhfZGF0YTtcbitcdHN0cnVjdCBtbHg1X3N0ICpzdCA9IGRldi1cdTAwM2VzdDtcbitcdGludCByZXQgPSAwO1xuK1xuK1x0aWYgKCFzdClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKHN0LVx1MDAzZWRpcmVjdF9tb2RlKVxuK1x0XHRyZXR1cm4gMDtcbitcbitcdG11dGV4X2xvY2soXHUwMDI2c3QtXHUwMDNlbG9jayk7XG4rXHRpZHhfZGF0YSA9IHhhX2xvYWQoXHUwMDI2c3QtXHUwMDNlaWR4X3hhLCBzdF9pbmRleCk7XG4rXHRpZiAoV0FSTl9PTl9PTkNFKCFpZHhfZGF0YSkpXG4rXHRcdHJldCA9IC1FSU5WQUw7XG4rXHRlbHNlXG4rXHRcdHJlZmNvdW50X2luYyhcdTAwMjZpZHhfZGF0YS1cdTAwM2V1c2Vjb3VudCk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2c3QtXHUwMDNlbG9jayk7XG4rXG4rXHRyZXR1cm4gcmV0O1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChtbHg1X3N0X2dldF9pbmRleCk7XG4rXG4gaW50IG1seDVfc3RfZGVhbGxvY19pbmRleChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgc3RfaW5kZXgpXG4ge1xuIFx0c3RydWN0IG1seDVfc3RfaWR4X2RhdGEgKmlkeF9kYXRhO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3RwaC5jIGIvZHJpdmVycy9wY2kvdHBoLmNcbmluZGV4IDY1NWZmZDYwZTYyZjZhLi5lNzY5M2ZkOWQ2NzYzNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGNpL3RwaC5jXG4rKysgYi9kcml2ZXJzL3BjaS90cGguY1xuQEAgLTE3Myw2ICsxNzMsNTEgQEAgdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gfVxuIEVYUE9SVF9TWU1CT0wocGNpZV90cGhfZ2V0X3N0X3RhYmxlX2xvYyk7XG4gXG4rLyoqXG4rICogcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZSAtIFJldHVybiB0aGUgZGV2aWNlJ3MgZW5hYmxlZCBUUEggcmVxdWVzdGVyIHR5cGVcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuKyAqXG4rICogUmV0dXJuOiBQQ0lfVFBIX1JFUV9ESVNBQkxFLCBQQ0lfVFBIX1JFUV9UUEhfT05MWSBvciBQQ0lfVFBIX1JFUV9FWFRfVFBILlxuKyAqL1xuK3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4re1xuK1x0cmV0dXJuIHBkZXYtXHUwMDNldHBoX3JlcV90eXBlO1xuK31cbitFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xuK1xuKy8qKlxuKyAqIHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBUUEggQ29tcGxldGVyIHN1cHBvcnRcbisgKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxuKyAqXG4rICogUmVhZHMgdGhlIFwiVFBIIENvbXBsZXRlciBTdXBwb3J0ZWRcIiBmaWVsZCAoYml0cyAxMzoxMikgb2YgRGV2aWNlXG4rICogQ2FwYWJpbGl0aWVzIDIuIFRoZSByZXNlcnZlZCAwYjEwIGVuY29kaW5nIGlzIGZvbGRlZCBpbnRvXG4rICogXCJub3Qgc3VwcG9ydGVkXCIgc28gY2FsbGVycyBvbmx5IG5lZWQgdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSB0aHJlZVxuKyAqIGRlZmluZWQgdmFsdWVzLlxuKyAqXG4rICogUmV0dXJuOiBvbmUgb2YgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FLFxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWSBvclxuKyAqICAgICAgICAgJVBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9FWFRfVFBILlxuKyAqL1xuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3tcbitcdHUzMiByZWc7XG4rXG4rXHRpZiAocGNpZV9jYXBhYmlsaXR5X3JlYWRfZHdvcmQocGRldiwgUENJX0VYUF9ERVZDQVAyLCBcdTAwMjZyZWcpKVxuK1x0XHRyZXR1cm4gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkU7XG4rXHRpZiAoUENJX1BPU1NJQkxFX0VSUk9SKHJlZykpXG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcbitcbitcdHN3aXRjaCAoRklFTERfR0VUKFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9NQVNLLCByZWcpKSB7XG4rXHRjYXNlIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTpcbitcdFx0cmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9UUEhfT05MWTtcbitcdGNhc2UgUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX0VYVF9UUEg6XG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSDtcbitcdGRlZmF1bHQ6XG4rXHRcdHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTtcbitcdH1cbit9XG4rRVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XG4rXG4gLypcbiAgKiBSZXR1cm4gdGhlIHNpemUgb2YgU1QgdGFibGUuIElmIFNUIHRhYmxlIGlzIG5vdCBpbiBUUEggUmVxdWVzdGVyIEV4dGVuZGVkXG4gICogQ2FwYWJpbGl0eSBzcGFjZSwgcmV0dXJuIDAuIE90aGVyd2lzZSByZXR1cm4gdGhlIFNUIFRhYmxlIFNpemUgKyAxLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jIGIvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmNcbmluZGV4IGEyOGYxZTk5MzYyYzFlLi5jN2Q2OTAyYmM2MWIwNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2NvcmUuY1xuQEAgLTE1NzIsNiArMTU3Miw5IEBAIGludCB2ZmlvX3BjaV9jb3JlX2lvY3RsX2ZlYXR1cmUoc3RydWN0IHZmaW9fZGV2aWNlICpkZXZpY2UsIHUzMiBmbGFncyxcbiBcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV90b2tlbih2ZGV2LCBmbGFncywgYXJnLCBhcmdzeik7XG4gXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRjpcbiBcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHZkZXYsIGZsYWdzLCBhcmcsIGFyZ3N6KTtcbitcdGNhc2UgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSDpcbitcdFx0cmV0dXJuIHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaCh2ZGV2LCBmbGFncywgYXJnLFxuK1x0XHRcdFx0XHRcdFx0IGFyZ3N6KTtcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiAtRU5PVFRZO1xuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG5pbmRleCBjMTZmNDYwYzAxZDY4MS4uNTM1MTgzOWMxMzM4YWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG4rKysgYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jXG5AQCAtMyw2ICszLDcgQEBcbiAgKi9cbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtYnVmLW1hcHBpbmcuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS1wMnBkbWEuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS10cGguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2RtYS1yZXN2LmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcInZmaW9fcGNpX3ByaXYuaFwiXG5AQCAtMTksNyArMjAsMTcgQEAgc3RydWN0IHZmaW9fcGNpX2RtYV9idWYge1xuIFx0dTMyIG5yX3JhbmdlcztcbiBcdHN0cnVjdCBrcmVmIGtyZWY7XG4gXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wO1xuLVx0dTggcmV2b2tlZCA6IDE7XG4rXG4rXHQvKlxuK1x0ICogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgZG1hYnVmLVx1MDAzZXJlc3YsIEByZXZva2VkIGFkZGl0aW9uYWxseVxuK1x0ICogcHJvdGVjdGVkIGJ5IG1lbW9yeV9sb2NrLlxuK1x0ICovXG4rXHR1MTYgdHBoX3N0X2V4dDtcbitcdHU4IHRwaF9zdDtcbitcdGJvb2wgcmV2b2tlZDtcbitcdHU4IHRwaF9zdF92YWxpZDoxO1xuK1x0dTggdHBoX3N0X2V4dF92YWxpZDoxO1xuK1x0dTggdHBoX3BoOjI7XG4gfTtcbiBcbiBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG5AQCAtMzAsNyArNDEsNyBAQCBzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXG4gXHRpZiAoIWF0dGFjaG1lbnQtXHUwMDNlcGVlcjJwZWVyKVxuIFx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gXG4tXHRpZiAocHJpdi1cdTAwM2VyZXZva2VkKVxuK1x0aWYgKFJFQURfT05DRShwcml2LVx1MDAzZXJldm9rZWQpKVxuIFx0XHRyZXR1cm4gLUVOT0RFVjtcbiBcbiBcdGlmICghZG1hX2J1Zl9hdHRhY2hfcmV2b2NhYmxlKGF0dGFjaG1lbnQpKVxuQEAgLTY5LDYgKzgwLDI2IEBAIHZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbitzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHRcdFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcbit7XG4rXHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdiA9IGRtYWJ1Zi1cdTAwM2Vwcml2O1xuK1xuK1x0ZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoZG1hYnVmLVx1MDAzZXJlc3YpO1xuK1xuK1x0aWYgKGV4dGVuZGVkKSB7XG4rXHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfZXh0X3ZhbGlkKVxuK1x0XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbitcdFx0KnN0ZWVyaW5nX3RhZyA9IHByaXYtXHUwMDNldHBoX3N0X2V4dDtcbitcdH0gZWxzZSB7XG4rXHRcdGlmICghcHJpdi1cdTAwM2V0cGhfc3RfdmFsaWQpXG4rXHRcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0XHQqc3RlZXJpbmdfdGFnID0gcHJpdi1cdTAwM2V0cGhfc3Q7XG4rXHR9XG4rXHQqcGggPSBwcml2LVx1MDAzZXRwaF9waDtcbitcdHJldHVybiAwO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXG4gXHRcdFx0XHQgICBzdHJ1Y3Qgc2dfdGFibGUgKnNndCxcbiBcdFx0XHRcdCAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcilcbkBAIC0xMDEsNiArMTMyLDcgQEAgc3RhdGljIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpXG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xuIFx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxuK1x0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcbiBcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxuIFx0LnVubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX3VubWFwLFxuIFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9kbWFfYnVmX3JlbGVhc2UsXG5AQCAtMzMzLDYgKzM2NSw3MiBAQCBpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbitcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbitcdFx0XHRcdCAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuK1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KVxuK3tcbitcdHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHNldF90cGg7XG4rXHRzdHJ1Y3QgdmZpb19wY2lfZG1hX2J1ZiAqcHJpdjtcbitcdHN0cnVjdCBkbWFfYnVmICpkbWFidWY7XG4rXHR1OCBjb21wO1xuK1x0aW50IHJldDtcbitcbitcdGNvbXAgPSBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSh2ZGV2LVx1MDAzZXBkZXYpO1xuK1x0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXG4rXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbitcbitcdHJldCA9IHZmaW9fY2hlY2tfZmVhdHVyZShmbGFncywgYXJnc3osIFZGSU9fREVWSUNFX0ZFQVRVUkVfU0VULFxuK1x0XHRcdFx0IHNpemVvZihzZXRfdHBoKSk7XG4rXHRpZiAocmV0ICE9IDEpXG4rXHRcdHJldHVybiByZXQ7XG4rXG4rXHRpZiAoY29weV9mcm9tX3VzZXIoXHUwMDI2c2V0X3RwaCwgYXJnLCBzaXplb2Yoc2V0X3RwaCkpKVxuK1x0XHRyZXR1cm4gLUVGQVVMVDtcbitcbitcdGlmIChzZXRfdHBoLmZsYWdzIFx1MDAyNiB+KFZGSU9fRE1BX0JVRl9UUEhfU1QgfCBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aWYgKHNldF90cGgucGggXHUwMDI2IH4weDMpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aWYgKChzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUX0VYVCkgXHUwMDI2XHUwMDI2XG4rXHQgICAgY29tcCAhPSBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfRVhUX1RQSClcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0ZG1hYnVmID0gZG1hX2J1Zl9nZXQoc2V0X3RwaC5kbWFidWZfZmQpO1xuK1x0aWYgKElTX0VSUihkbWFidWYpKVxuK1x0XHRyZXR1cm4gUFRSX0VSUihkbWFidWYpO1xuK1xuK1x0aWYgKGRtYWJ1Zi1cdTAwM2VvcHMgIT0gXHUwMDI2dmZpb19wY2lfZG1hYnVmX29wcykge1xuK1x0XHRyZXQgPSAtRUlOVkFMO1xuK1x0XHRnb3RvIG91dF9wdXQ7XG4rXHR9XG4rXG4rXHRwcml2ID0gZG1hYnVmLVx1MDAzZXByaXY7XG4rXHRpZiAocHJpdi1cdTAwM2V2ZGV2ICE9IHZkZXYpIHtcbitcdFx0cmV0ID0gLUVJTlZBTDtcbitcdFx0Z290byBvdXRfcHV0O1xuK1x0fVxuK1xuK1x0cmV0ID0gZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKGRtYWJ1Zi1cdTAwM2VyZXN2LCBOVUxMKTtcbitcdGlmIChyZXQpXG4rXHRcdGdvdG8gb3V0X3B1dDtcbitcbitcdHByaXYtXHUwMDNldHBoX3N0ICAgICAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZztcbitcdHByaXYtXHUwMDNldHBoX3N0X2V4dCAgICAgPSBzZXRfdHBoLnN0ZWVyaW5nX3RhZ19leHQ7XG4rXHRwcml2LVx1MDAzZXRwaF9waCAgICAgICAgID0gc2V0X3RwaC5waDtcbitcdHByaXYtXHUwMDNldHBoX3N0X3ZhbGlkICAgPSAhIShzZXRfdHBoLmZsYWdzIFx1MDAyNiBWRklPX0RNQV9CVUZfVFBIX1NUKTtcbitcdHByaXYtXHUwMDNldHBoX3N0X2V4dF92YWxpZCA9XG4rXHRcdCEhKHNldF90cGguZmxhZ3MgXHUwMDI2IFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUKTtcbitcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXHUwMDNlcmVzdik7XG4rXHRyZXQgPSAwO1xuK1xuK291dF9wdXQ6XG4rXHRkbWFfYnVmX3B1dChkbWFidWYpO1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4gdm9pZCB2ZmlvX3BjaV9kbWFfYnVmX21vdmUoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCBib29sIHJldm9rZWQpXG4ge1xuIFx0c3RydWN0IHZmaW9fcGNpX2RtYV9idWYgKnByaXY7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmggYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaFxuaW5kZXggZmNhOWQwZGZhYzkwZjguLmM1OGYzNjliZTRiMzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2LmhcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oXG5AQCAtMTE4LDYgKzExOCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdmZpb19wY2lfaXNfdmdhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIGludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcbiBcdFx0XHRcdCAgc3RydWN0IHZmaW9fZGV2aWNlX2ZlYXR1cmVfZG1hX2J1ZiBfX3VzZXIgKmFyZyxcbiBcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KTtcbitpbnQgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldixcbitcdFx0XHRcdCAgICAgIHUzMiBmbGFncyxcbitcdFx0XHRcdCAgICAgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxuK1x0XHRcdFx0ICAgICAgc2l6ZV90IGFyZ3N6KTtcbiB2b2lkIHZmaW9fcGNpX2RtYV9idWZfY2xlYW51cChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYpO1xuIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9tb3ZlKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgYm9vbCByZXZva2VkKTtcbiAjZWxzZVxuQEAgLTEyOCw2ICsxMzIsMTQgQEAgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWYoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LCB1MzIgZmxhZ3MsXG4ge1xuIFx0cmV0dXJuIC1FTk9UVFk7XG4gfVxuK1xuK3N0YXRpYyBpbmxpbmUgaW50XG4rdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxuK1x0XHRcdFx0ICBzdHJ1Y3QgdmZpb19kZXZpY2VfZmVhdHVyZV9kbWFfYnVmX3RwaCBfX3VzZXIgKmFyZyxcbitcdFx0XHRcdCAgc2l6ZV90IGFyZ3N6KVxuK3tcbitcdHJldHVybiAtRU5PVFRZO1xuK31cbiBzdGF0aWMgaW5saW5lIHZvaWQgdmZpb19wY2lfZG1hX2J1Zl9jbGVhbnVwKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldilcbiB7XG4gfVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmhcbmluZGV4IGQxMjAzZGE1NmZjNWY3Li4xNGU4ZWI2MWE2MmMwNCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaFxuQEAgLTExMyw2ICsxMTMsMjkgQEAgc3RydWN0IGRtYV9idWZfb3BzIHtcbiBcdCAqL1xuIFx0dm9pZCAoKnVucGluKShzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xuIFxuK1x0LyoqXG4rXHQgKiBAZ2V0X3BjaV90cGg6XG4rXHQgKlxuK1x0ICogUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIHN0ZWVyaW5nIG1ldGFkYXRhIGZvclxuK1x0ICogdGhpcyBidWZmZXIgc28gYW4gaW1wb3J0ZXIgY2FuIHByb2dyYW0gYSBtYXRjaGluZyBTVC9QSCBoaW50IG9uXG4rXHQgKiBvdXRib3VuZCBUTFBzIHRhcmdldGluZyB0aGUgZXhwb3J0ZXIgZm9yIHBlZXItdG8tcGVlciBETUEuXG4rXHQgKlxuK1x0ICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciBmb3Igd2hpY2ggdG8gcmV0cmlldmUgVFBIIG1ldGFkYXRhXG4rXHQgKiBAZXh0ZW5kZWQ6IGZhbHNlIGZvciA4LWJpdCBTVCwgdHJ1ZSBmb3IgMTYtYml0IEV4dGVuZGVkIFNUXG4rXHQgKiBAc3RlZXJpbmdfdGFnOiBSZXR1cm5zIHRoZSByYXcgVFBIIHN0ZWVyaW5nIHRhZyBmb3IgdGhlIHJlcXVlc3RlZFxuK1x0ICogICAgICAgICAgICAgICAgbmFtZXNwYWNlXG4rXHQgKiBAcGg6IFJldHVybnMgdGhlIFRQSCBwcm9jZXNzaW5nIGhpbnQgKDItYml0IHZhbHVlKVxuK1x0ICpcbitcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXG4rXHQgKiBcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxuK1x0ICogdGhlIGV4cG9ydGVyIGhhcyBubyBtZXRhZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBuYW1lc3BhY2UuXG4rXHQgKlxuK1x0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcbitcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cbitcdCAqL1xuK1x0aW50ICgqZ2V0X3BjaV90cGgpKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXG4rXHRcdFx0ICAgdTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XG4rXG4gXHQvKipcbiBcdCAqIEBtYXBfZG1hX2J1ZjpcbiBcdCAqXG5AQCAtNTYzLDYgKzU4Niw4IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcbiBcdFx0ICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4gaW50IGRtYV9idWZfcGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4gdm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XG4raW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcbitcdFx0XHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcbiBcbiBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gKmV4cF9pbmZvKTtcbiBcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmhcbmluZGV4IGIxODcxYzA4MjFkMGI5Li5kMjZlNTc0NGM4NDNiZiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaFxuKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oXG5AQCAtMTE4MiwxNiArMTE4MiwzMSBAQCBpbnQgbWx4NV9kbV9zd19pY21fZGVhbGxvYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfc3dfaWNtX3R5cGUgdHlwZVxuIFx0XHRcdCAgIHU2NCBsZW5ndGgsIHUxNiB1aWQsIHBoeXNfYWRkcl90IGFkZHIsIHUzMiBvYmpfaWQpO1xuIFxuICNpZmRlZiBDT05GSUdfUENJRV9UUEhcbitpbnQgbWx4NV9zdF9hbGxvY19pbmRleF9ieV90YWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHRhZyxcbitcdFx0XHQgICAgICAgdTE2ICpzdF9pbmRleCk7XG4raW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleCk7XG4gaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgZW51bSB0cGhfbWVtX3R5cGUgbWVtX3R5cGUsXG4gXHRcdFx0dW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpO1xuIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KTtcbiAjZWxzZVxuK3N0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4rXHRcdFx0XHRcdCAgICAgdTE2IHRhZywgdTE2ICpzdF9pbmRleClcbit7XG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK1xuK3N0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfZ2V0X2luZGV4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzdF9pbmRleClcbit7XG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK1xuIHN0YXRpYyBpbmxpbmUgaW50IG1seDVfc3RfYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbiBcdFx0XHRcdCAgICAgIGVudW0gdHBoX21lbV90eXBlIG1lbV90eXBlLFxuIFx0XHRcdFx0ICAgICAgdW5zaWduZWQgaW50IGNwdV91aWQsIHUxNiAqc3RfaW5kZXgpXG4ge1xuIFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuIH1cbitcbiBzdGF0aWMgaW5saW5lIGludCBtbHg1X3N0X2RlYWxsb2NfaW5kZXgoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHN0X2luZGV4KVxuIHtcbiBcdHJldHVybiAtRU9QTk9UU1VQUDtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaCBiL2luY2x1ZGUvbGludXgvcGNpLXRwaC5oXG5pbmRleCBiZTY4Y2QxN2YyZjgzMy4uNzc0M2FmNmZlNDMyNmUgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS10cGguaFxuKysrIGIvaW5jbHVkZS9saW51eC9wY2ktdHBoLmhcbkBAIC05LDYgKzksOCBAQFxuICNpZm5kZWYgTElOVVhfUENJX1RQSF9IXG4gI2RlZmluZSBMSU5VWF9QQ0lfVFBIX0hcbiBcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9wY2lfcmVncy5oXHUwMDNlXG4rXG4gLypcbiAgKiBBY2NvcmRpbmcgdG8gdGhlIEVDTiBmb3IgUENJIEZpcm13YXJlIFNwZWMsIFN0ZWVyaW5nIFRhZyBjYW4gYmUgZGlmZmVyZW50XG4gICogZGVwZW5kaW5nIG9uIHRoZSBtZW1vcnkgdHlwZTogVm9sYXRpbGUgTWVtb3J5IG9yIFBlcnNpc3RlbnQgTWVtb3J5LiBXaGVuIGFcbkBAIC0zMCw2ICszMiw4IEBAIHZvaWQgcGNpZV9kaXNhYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gaW50IHBjaWVfZW5hYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG1vZGUpO1xuIHUxNiBwY2llX3RwaF9nZXRfc3RfdGFibGVfc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XG4gdTMyIHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2Moc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuK3U4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpO1xuK3U4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcbiAjZWxzZVxuIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX3NldF9zdF9lbnRyeShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbiBcdFx0XHRcdFx0dW5zaWduZWQgaW50IGluZGV4LCB1MTYgdGFnKVxuQEAgLTQxLDYgKzQ1LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaWVfdHBoX2dldF9jcHVfc3Qoc3RydWN0IHBjaV9kZXYgKmRldixcbiBzdGF0aWMgaW5saW5lIHZvaWQgcGNpZV9kaXNhYmxlX3RwaChzdHJ1Y3QgcGNpX2RldiAqcGRldikgeyB9XG4gc3RhdGljIGlubGluZSBpbnQgcGNpZV9lbmFibGVfdHBoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbW9kZSlcbiB7IHJldHVybiAtRUlOVkFMOyB9XG4rc3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3sgcmV0dXJuIFBDSV9UUEhfUkVRX0RJU0FCTEU7IH1cbitzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuK3sgcmV0dXJuIFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FOyB9XG4gI2VuZGlmXG4gXG4gI2VuZGlmIC8qIExJTlVYX1BDSV9UUEhfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5pbmRleCA1ZGU2MThhM2E1ZWVlZS4uNGMxYzcwYWFjMTUwOTcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZpby5oXG5AQCAtMTUzNCw2ICsxNTM0LDQ5IEBAIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWYge1xuICAqL1xuICNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9NSUdfUFJFQ09QWV9JTkZPdjIgIDEyXG4gXG4rLyoqXG4rICogVXBvbiBWRklPX0RFVklDRV9GRUFUVVJFX1NFVCBhc3NvY2lhdGUgVFBIIChUTFAgUHJvY2Vzc2luZyBIaW50cykgbWV0YWRhdGFcbisgKiB3aXRoIGEgdmZpby1leHBvcnRlZCBkbWEtYnVmLiBUaGUgZG1hLWJ1ZiBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5XG4rICogVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGIG9uIHRoaXMgZGV2aWNlLCBhbmQgdGhlIGRldmljZSBtdXN0IHJlcG9ydFxuKyAqIFRQSCBDb21wbGV0ZXIgc3VwcG9ydCBpbiBEZXZpY2UgQ2FwYWJpbGl0aWVzIDIgKGJpdHMgMTM6MTIpOyByZXF1ZXN0c1xuKyAqIGNhcnJ5aW5nIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUIGFkZGl0aW9uYWxseSByZXF1aXJlIHRoZSBkZXZpY2UgdG9cbisgKiByZXBvcnQgdGhlIEV4dGVuZGVkIFRQSCBDb21wbGV0ZXIgZW5jb2RpbmcuIE90aGVyd2lzZSB0aGUgaW9jdGxcbisgKiByZXR1cm5zIC1FT1BOT1RTVVBQLlxuKyAqXG4rICogQGRtYWJ1Zl9mZCBpcyB0aGUgZmlsZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRi5cbisgKlxuKyAqIDgtYml0IFNUIChAc3RlZXJpbmdfdGFnKSBhbmQgMTYtYml0IEV4dGVuZGVkIFNUIChAc3RlZXJpbmdfdGFnX2V4dCkgYXJlXG4rICogZGlzdGluY3QgbmFtZXNwYWNlcy4gQGZsYWdzIGlzIHRoZSBhdXRob3JpdGF0aXZlIHZhbGlkaXR5IG1hc2sgZm9yIHRoZVxuKyAqIHR3byBuYW1lc3BhY2VzOiBWRklPX0RNQV9CVUZfVFBIX1NUIG1hcmtzIEBzdGVlcmluZ190YWcgdmFsaWQgYW5kXG4rICogVkZJT19ETUFfQlVGX1RQSF9TVF9FWFQgbWFya3MgQHN0ZWVyaW5nX3RhZ19leHQgdmFsaWQuIEFuIGltcG9ydGVyXG4rICogcmVxdWVzdHMgb25lIG5hbWVzcGFjZSBhbmQgcmVjZWl2ZXMgdGhlIG1hdGNoaW5nIHZhbHVlLlxuKyAqXG4rICogRWFjaCBTRVQgZnVsbHkgcmVwbGFjZXMgdGhlIGRtYS1idWYncyBUUEggc3RhdGUgZm9yIGZ1dHVyZSBxdWVyaWVzXG4rICogb25seS4gQSBuYW1lc3BhY2Ugd2hvc2UgZmxhZyBiaXQgaXMgY2xlYXIgaXMgcmVwb3J0ZWQgYXMgdW5zdXBwb3J0ZWRcbisgKiB0byBmdXR1cmUgaW1wb3J0ZXJzOyBhbiBpbXBvcnRlciB0aGF0IGhhcyBhbHJlYWR5IHJldHJpZXZlZCBhIHZhbHVlXG4rICogaXMgdW5hZmZlY3RlZC4gQGZsYWdzID09IDAgbGVhdmVzIGJvdGggbmFtZXNwYWNlcyB1bnN1cHBvcnRlZCBmb3JcbisgKiBmdXR1cmUgaW1wb3J0ZXJzLlxuKyAqXG4rICogQHBoIGlzIHRoZSAyLWJpdCBUTFAgUHJvY2Vzc2luZyBIaW50IGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSBbMCwgM10uXG4rICpcbisgKiBVbmRlZmluZWQgQGZsYWdzIGFuZCBAcGggYml0cyBtdXN0IGFsd2F5cyBiZSB6ZXJvLlxuKyAqXG4rICogVXNlcnNwYWNlIG11c3QgY29uZmlndXJlIFRQSCBiZWZvcmUgaGFuZGluZyB0aGUgZG1hLWJ1ZiBmZCB0byBhblxuKyAqIGltcG9ydGVyLlxuKyAqL1xuKyNkZWZpbmUgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCAxM1xuK1xuKyNkZWZpbmUgVkZJT19ETUFfQlVGX1RQSF9TVFx0XHQoMSBcdTAwM2NcdTAwM2MgMClcbisjZGVmaW5lIFZGSU9fRE1BX0JVRl9UUEhfU1RfRVhUXHRcdCgxIFx1MDAzY1x1MDAzYyAxKVxuK1xuK3N0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIHtcbitcdF9fczMyXHRkbWFidWZfZmQ7XG4rXHRfX3UzMlx0ZmxhZ3M7XG4rXHRfX3UxNlx0c3RlZXJpbmdfdGFnX2V4dDtcbitcdF9fdThcdHN0ZWVyaW5nX3RhZztcbitcdF9fdThcdHBoO1xuK307XG4rXG4gLyogLS0tLS0tLS0gQVBJIGZvciBUeXBlMSBWRklPIElPTU1VIC0tLS0tLS0tICovXG4gXG4gLyoqXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OToxNi4zMDM4NTkxMTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDI0NjE0NjE3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyBQQ0llIFRQSCBTdXBwb3J0IGluIFZGSU8gYW5kIERNQS1CVUYqKlxuXG5Pa2F5LCBzbyB3ZSBoYXZlIHRoaXMgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkgc3VwcG9ydCB0byBETUEtQlVGIGFuZCBWRklPLiBJdCB0b3VjaGVzIGEgYnVuY2ggb2YgZHJpdmVycywgaW5jbHVkaW5nIHNvbWUgY29yZSBETUEtQlVGIGFuZCBWRklPIGNvZGUsIGFsb25nIHdpdGggc29tZSBNZWxsYW5veCAobWx4NSkgYW5kIFBDSWUtc3BlY2lmaWMgc3R1ZmYuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkNhbiB3ZSByZWFjaCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBjYW4gd2UgKmZ1enoqIGl0P1wiLlxuXG5WRklPIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBhbmQgRE1BLUJVRiBpcyB0b28sIHNvIHRoYXQncyBnb29kLiBCdXQgVFBIIHN1cHBvcnQgaXRzZWxmIGhpbmdlcyBvbiB0aGUgUENJZSBkZXZpY2UgYWN0dWFsbHkgKmhhdmluZyogdGhlIFRQSCBjYXBhYmlsaXR5LiBUaGlzIGNhbiBiZSBlbXVsYXRlZCBvciBub3QsIGFuZCB0aGF0J3MgdGhlIGtleSBxdWVzdGlvbiBoZXJlLiBUaGUgYFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEhgIGlvY3RsIHNlZW1zIGxpa2Ugb3VyIGVudHJ5IHBvaW50LiBBbmQgYWZ0ZXIgbG9va2luZyBhdCB0aGUgY29kZSBpbiBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCB3aGljaCB1c2VzIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAsIEkgY2FuIHNlZSBhIHBhdGgsIG9yIG1vcmUgc3BlY2lmaWNhbGx5LCBhIHBvdGVudGlhbCBibG9ja2VyLlxuXG5gcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGNoZWNrcyBgUENJX0VYUF9ERVZDQVAyYCBmb3IgdGhlIFRQSCBjb21wbGV0ZXIuIElmIHRoZSB2aXJ0dWFsIGRldmljZSAqZG9lc24ndCogaGF2ZSB0aGF0IGNhcGFiaWxpdHksIHRoZSBmdW5jdGlvbiByZXR1cm5zIGAtRU9QTk9UU1VQUGAuIFRoYXQgbWVhbnMgd2Ugd2lsbCBvbmx5IGZ1enogdGhlIGxpbmVzIGJlZm9yZSB0aGlzIGNoZWNrLlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBpcywgZG9lcyBRRU1VIChvciB3aGF0ZXZlciB2aXJ0dWFsaXphdGlvbiB3ZSdyZSB1c2luZykgKmVtdWxhdGUqIFRQSCBjYXBhYmlsaXR5PyBJZiBub3QsIHdlJ2xsIG9ubHkgaGl0IHRoYXQgZWFybHkgYC1FT1BOT1RTVVBQYCByZXR1cm4uIEV2ZW4gaWYgaXQgKmRvZXMqIHJldHVybiBhbiBlcnJvciwgdGhhdCBjb2RlIHBhdGggaXMgc3RpbGwgcmVhY2hhYmxlLlxuXG5Mb29raW5nIGJleW9uZCB0aGUgY2hlY2ssIHRoZXJlJ3MgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGFkZGVkLCBhbmQgc29tZSBgbWx4NWAgZHJpdmVyIGNoYW5nZXMuIEhvd2V2ZXIsIEkgcmFyZWx5IGZ1enogaGFyZHdhcmUgZHJpdmVycyB1bmxlc3MgdGhleSBoYXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBhbmQgbWx4NSBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhbnkgaW4gdGhpcyBjb250ZXh0LlxuXG5TbywgbGV0J3MgZm9jdXMgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIElmIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgZmFpbHMsIHdlJ3JlIG9ubHkgZ29pbmcgdG8gZnV6eiBhIGNvdXBsZSBvZiBsaW5lcywgd2hpY2ggaXNuJ3QgaWRlYWwuIFRoZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGZ1bmN0aW9uIGl0c2VsZiBsb29rcyBsaWtlIGl0J3MgcmVhZGluZyB0aGUgYFBDSV9FWFBfREVWQ0FQMmAgcmVnaXN0ZXIgYW5kIGV4dHJhY3RpbmcgdGhlIFRQSCBjb21wbGV0ZXIgdHlwZS4gXG5cbklzIHRoZXJlIGV2ZW4gYSAqc29mdHdhcmUtZW11bGF0ZWQqIFBDSSBkZXZpY2Ugd2l0aCBUUEggY2FwYWJpbGl0eT8gUHJvYmFibHkgbm90IGJ5IGRlZmF1bHQuIFN5emthbGxlciwgd2l0aCBpdHMgYHN5el9wY2lfZGV2aWNlX2FkZGAgb3Igc2ltaWxhciBtZWNoYW5pc21zLCAqbWlnaHQqIGFsbG93IHVzIHRvIGluamVjdCBvbmUsIGJ1dCBJIG5lZWQgdG8gY29uZmlybSBpZiBpdCBzdXBwb3J0cyB0aGF0LiBPciBtYXliZSB2Z2VtPyBObywgdmdlbSBpc24ndCBQQ0kuXG5cbkhhbmcgb24uIFN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X2t2bV9zZXR1cF9jcHVgIGV0Yy4gQnV0IGhvdyBpcyBWRklPIGFjdHVhbGx5IGZ1enplZD8gQnkgb3BlbmluZyBgL2Rldi92ZmlvL2AgYW5kIHVzaW5nIHdoYXRldmVyIGR1bW15IFBDSSBkZXZpY2UgaXMgYXZhaWxhYmxlLiBCdXQgYWdhaW4sIHRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUgVFBILCB3ZSBoaXQgYC1FT1BOT1RTVVBQYC5cblxuT2theSwgYnV0IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgICppcyogYSBuZXcgaW9jdGwsIGFuZCB0aGF0J3MgdGhlIGNvcmUgZm9jdXMgaGVyZS5cblxuQWxyaWdodCwgd2hhdCBhYm91dCBjb25maWcgb3B0aW9ucz8gTGV0J3MgcXVpY2tseSBjaGVjayBpZiBgQ09ORklHX1BDSUVfVFBIYCBpcyByZXF1aXJlZC4gSXQgbG9va3MgbGlrZSBpdCAqaXMqIHVzZWQgaW4gYm90aCBgaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oYCBhbmQgYGluY2x1ZGUvbGludXgvcGNpLXRwaC5oYCwgYW5kIHRoYXQgaXMgYW4gaW1wb3J0YW50IGNvbmZpZyBvcHRpb24gdG8ga2VlcCBpbiBtaW5kLiBXZSBtaWdodCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbmZpZyBvcHRpb24gaXMgZW5hYmxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI5OTAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjMyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6MzAuNTUwMDA5NzMxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMzEyMjAzMTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUENJRV9UUEhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjc2OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdD0zOT1FbmFibGUgVFBIIHN1cHBvcnQgaW4gTGludXhcXG4tLVxcbkRvY3VtZW50YXRpb24vUENJL3RwaC5yc3QtNDEtXFxuRG9jdW1lbnRhdGlvbi9QQ0kvdHBoLnJzdDo0MjpUbyBzdXBwb3J0IFRQSCwgdGhlIGtlcm5lbCBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIENPTkZJR19QQ0lFX1RQSCBvcHRpb25cXG5Eb2N1bWVudGF0aW9uL1BDSS90cGgucnN0LTQzLWVuYWJsZWQuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNTI3MC1cXHRcXHRcXHRcXHRvbmUgUENJIGRvbWFpbiBwZXIgUENJIGZ1bmN0aW9uXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQ6NTI3MTpcXHRcXHRub3RwaFxcdFxcdFtQQ0lFXSBJZiB0aGUgUENJRV9UUEgga2VybmVsIGNvbmZpZyBwYXJhbWV0ZXJcXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC01MjcyLVxcdFxcdFxcdFxcdGlzIGVuYWJsZWQsIHRoaXMga2VybmVsIGJvb3Qgb3B0aW9uIGNhbiBiZSB1c2VkXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwNS0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwNjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwNzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oOjMwODojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfZC5oLTMwOS0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmgtMTg0NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NDg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg0OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODU4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NTk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNF8xX3NoX21hc2suaDoxODYxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzRfMV9zaF9tYXNrLmg6MTg2MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oOjE4NjY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl80XzFfc2hfbWFzay5oLTE4NjctI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oLTM2MC0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oOjM2MzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfZC5oLTM2NC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmgtMjA4MC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwODg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA4OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDkwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDkyOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5MzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5NjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8wX3NoX21hc2suaDoyMDk3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIwOTg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMF9zaF9tYXNrLmg6MjA5OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oOjIxMDI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzBfc2hfbWFzay5oLTIxMDMtI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzMC0jZGVmaW5lIG1tUENJRV9QQVNJRF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjVcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMTojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMjojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjlcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oOjMzMzojZGVmaW5lIG1tUENJRV9UUEhfUkVRUl9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfZC5oLTMzNC0jZGVmaW5lIG1tUENJRV9NQ19FTkhfQ0FQX0xJU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4YmNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmgtMTk0Ni0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk0NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfTUFTSyAweGZmZmZcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NDg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NDk6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9NQVNLIDB4ZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTA6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9NQVNLIDB4ZmZmMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fTkVYVF9QVFJfX1NISUZUIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfTUFTSyAweDFcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NTQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfTk9fU1RfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX01BU0sgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU2OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0lOVF9WRUNfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1NzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9ERVZfU1BDX01PREVfU1VQUE9SVEVEX01BU0sgMHg0XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTU4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0RFVl9TUENfTU9ERV9TVVBQT1JURURfX1NISUZUIDB4MlxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk1OTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9FWFRORF9UUEhfUkVRUl9TVVBQT1JFRF9NQVNLIDB4MTAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjE6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfTE9DQVRJT05fTUFTSyAweDYwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2MjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgMHg5XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL2JpZi9iaWZfNV8xX3NoX21hc2suaDoxOTYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX1NUX1RBQkxFX1NJWkVfTUFTSyAweDdmZjAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjQ6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgMHgxMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9iaWYvYmlmXzVfMV9zaF9tYXNrLmg6MTk2NTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ05UTF9fVFBIX1JFUVJfU1RfTU9ERV9TRUxfTUFTSyAweDdcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5NjY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX01BU0sgMHgzMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oOjE5Njg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX0VOX19TSElGVCAweDhcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvYmlmL2JpZl81XzFfc2hfbWFzay5oLTE5NjktI2RlZmluZSBQQ0lFX01DX0VOSF9DQVBfTElTVF9fQ0FQX0lEX01BU0sgMHhmZmZmXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaC0xODYtI2RlZmluZSBjZmdQQ0lFX1BBU0lEX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZDYgLy8gZHVwbGljYXRlIFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oOjE4NzojZGVmaW5lIGNmZ1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJlMCAvLyBkdXBsaWNhdGUgXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfb2Zmc2V0Lmg6MTg4OiNkZWZpbmUgY2ZnUENJRV9UUEhfUkVRUl9DQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMmU0IC8vIGR1cGxpY2F0ZSBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9vZmZzZXQuaDoxODk6I2RlZmluZSBjZmdQQ0lFX1RQSF9SRVFSX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyZTggLy8gZHVwbGljYXRlIFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX29mZnNldC5oLTE5MC0jZGVmaW5lIGNmZ1BDSUVfTUNfRU5IX0NBUF9MSVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJmMCAvLyBkdXBsaWNhdGUgXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNzI1LSNkZWZpbmUgUENJRV9QQVNJRF9DTlRMX19QQVNJRF9QUklWX01PREVfU1VQUE9SVEVEX0VOQUJMRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyNjovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyNzojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19DQVBfSURfX1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mjg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX1ZFUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjcyOTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMwOi8vUENJRV9UUEhfUkVRUl9DQVBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzMxOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczMjojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3MzM6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM0OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4OVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3MzY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjczNzovL1BDSUVfVFBIX1JFUVJfQ05UTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo3Mzg6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19TSElGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NzM5OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fU0hJRlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4XFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oLTc0MC0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNTg1NC0jZGVmaW5lIFBDSUVfUEFTSURfQ05UTF9fUEFTSURfUFJJVl9NT0RFX1NVUFBPUlRFRF9FTkFCTEVfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1NTovL1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NTY6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9fQ0FQX0lEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODU3OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfX0NBUF9WRVJfX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg1ODojZGVmaW5lIFBDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX19ORVhUX1BUUl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGMDAwMDBMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NTk6Ly9QQ0lFX1RQSF9SRVFSX0NBUFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODYwOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX05PX1NUX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUxcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2MTojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9JTlRfVkVDX01PREVfU1VQUE9SVEVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NjI6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfREVWX1NQQ19NT0RFX1NVUFBPUlRFRF9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODYzOiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DQVBfX1RQSF9SRVFSX0VYVE5EX1RQSF9SRVFSX1NVUFBPUkVEX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmg6NTg2NDojZGVmaW5lIFBDSUVfVFBIX1JFUVJfQ0FQX19UUEhfUkVRUl9TVF9UQUJMRV9MT0NBVElPTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA2MDBMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4NjU6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NBUF9fVFBIX1JFUVJfU1RfVEFCTEVfU0laRV9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3RkYwMDAwTFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODY2Oi8vUENJRV9UUEhfUkVRUl9DTlRMXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaWYvbmJpZl82XzFfc2hfbWFzay5oOjU4Njc6I2RlZmluZSBQQ0lFX1RQSF9SRVFSX0NOVExfX1RQSF9SRVFSX1NUX01PREVfU0VMX19NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA3TFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlmL25iaWZfNl8xX3NoX21hc2suaDo1ODY4OiNkZWZpbmUgUENJRV9UUEhfUkVRUl9DTlRMX19UUEhfUkVRUl9FTl9fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDMwMExcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpZi9uYmlmXzZfMV9zaF9tYXNrLmgtNTg2OS0vL1BDSUVfTUNfRU5IX0NBUF9MSVNUXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtODIwLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjgyMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDo4MjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMF8wX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6ODIzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTgyNC0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYwXzBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTExNzItI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTE3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxMTc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjFfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjExNzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTE3Ni0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYxXzBfUENJRV9ETEZfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NTctI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NjY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Njk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0Nzg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0ODc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTQ5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNDk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0OTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MDg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTE5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyMTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTIyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjJfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE1MjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMl8wX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUyNDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTI1LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE2NTEtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfQVJJX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjUzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjU5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjYyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV83X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NjY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzExX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjY4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Njk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjcxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzE3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8xOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2NzU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjc3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2Nzg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzIzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjgzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8yOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzI5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2ODc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzMyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY4ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjg5OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTA6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjkyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV8zN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzM4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfMzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk1OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTY6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTY5NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNjk4OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE2OTk6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzAxOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzQ3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwMzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNDhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA0OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV80OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDU6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwNjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzA3OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MDg6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzUzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcwOTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81NV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTE6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxMjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzEzOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV81OF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzU5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxNTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNzE2OiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjNfMF9QQ0lFX1RQSF9TVF9UQUJMRV82MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE3MTc6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGM18wX1BDSUVfVFBIX1NUX1RBQkxFXzYyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTcxODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYzXzBfUENJRV9UUEhfU1RfVEFCTEVfNjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNzE5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTI5OTUtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mjk5NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoyOTk3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjBfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjI5OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMF9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMjk5OS0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYwX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTMzNDctI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzM0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozMzQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjMzNTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMzM1MS0jZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYxX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHg0MTAxMDAyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM2MzItI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzMzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzNjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzYzOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY1NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY2OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY3ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY4NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozNjk3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjJfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM2OTg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGMl9QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzY5OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYyX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zNzAwLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTM4MjYtI2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX0FSSV9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgyNzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODI4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mjk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODMxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzMzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4MzU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzNjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODM3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Mzg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV84X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MzgzOTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzEyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQzOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NDc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8xN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg0ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzE4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODQ5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzIxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODUyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg1NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzI3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODU4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NTk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8yOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODYxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzMzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY0OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NjU6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2NjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM2X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODY3OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfMzdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Njg6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV8zOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg2OTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzM5X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODcwOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzE6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80MV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3MjojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQyX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODczOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4NzQ6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80NF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3NTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ1X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc2OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4Nzc6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV80N19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg3ODojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzQ4X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODc5OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNDlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODA6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81MF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4MTojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzUxX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODgyOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODM6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81M19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU0X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg1OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODY6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81Nl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg4NzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzU3X0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODg4OiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4ODk6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV81OV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MDojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYwX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDozODkxOiNkZWZpbmUgc21uQklGX0NGR19ERVYwX0VQRjNfUENJRV9UUEhfU1RfVEFCTEVfNjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjM4OTI6I2RlZmluZSBzbW5CSUZfQ0ZHX0RFVjBfRVBGM19QQ0lFX1RQSF9TVF9UQUJMRV82Ml9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6Mzg5MzojZGVmaW5lIHNtbkJJRl9DRkdfREVWMF9FUEYzX1BDSUVfVFBIX1NUX1RBQkxFXzYzX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0zODk0LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzA5LSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1NSSU9WX1ZGX01JR1JBVElPTl9TVEFURV9BUlJBWV9PRkZTRVRfREVGQVVMVCAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEwOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAweDQwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzExOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0NBUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oOjE0NzEyOiNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX1RQSF9SRVFSX0NOVExfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVnL25iaW8vbmJpb18yXzNfZGVmYXVsdC5oLTE0NzEzLSNkZWZpbmUgY2ZnQklGX0NGR19ERVYwX0VQRjBfMV9QQ0lFX0RMRl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAweDQxMDEwMDI1XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjEtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfU1JJT1ZfVkZfTUlHUkFUSU9OX1NUQVRFX0FSUkFZX09GRlNFVF9ERUZBVUxUIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjI6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfRU5IX0NBUF9MSVNUX0RFRkFVTFQgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjM6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfQ0FQX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0Lmg6MTUwNjQ6I2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfVFBIX1JFUVJfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvbmJpby9uYmlvXzJfM19kZWZhdWx0LmgtMTUwNjUtI2RlZmluZSBjZmdCSUZfQ0ZHX0RFVjBfRVBGMV8xX1BDSUVfRExGX0VOSF9DQVBfTElTVF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgIDB4NDEwMTAwMjVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaC0xNTM0Ni0jZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9BUklfQ05UTF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9FTkhfQ0FQX0xJU1RfREVGQVVMVCAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9DQVBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM0OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfUkVRUl9DTlRMX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfM19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfNl9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfN19ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOF9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM1OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfOV9ERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMThfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM2OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMTlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjVfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjZfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3NzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjdfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3ODojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjhfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM3OTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMjlfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzBfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MTojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzFfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MjojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzJfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4MzojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzNfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hc2ljX3JlZy9uYmlvL25iaW9fMl8zX2RlZmF1bHQuaDoxNTM4NDojZGVmaW5lIGNmZ0JJRl9DRkdfREVWMF9FUEYyXzFfUENJRV9UUEhfU1RfVEFCTEVfMzRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTozMy42ODEyNDAxODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTg2NzA0MjQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ09ORklHX1BDSUVfVFBIIFJlcXVpcmVtZW50KipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBleHBsaWNpdGx5IGVuYWJsZSBgQ09ORklHX1BDSUVfVFBIYCBmb3IgdGhpcyB0ZXN0aW5nLiBUaGUgcHJvbXB0IGlzIHZlcnkgY2xlYXI6IGF2b2lkIGFzc3VtcHRpb25zLCBkaWcgaW50byB0aGUgS2NvbmZpZyBmaWxlcywgYW5kIG9ubHkgbGlzdCBzcGVjaWZpYyBjb25maWdzIHJlbGF0ZWQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIFRoZSBpbnN0cnVjdGlvbnMgYWxzbyBzcGVjaWZ5ICpub3QqIGFkZGluZyBcIkNPTkZJR19cIiB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIG91dHB1dC5cblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBJJ2xsIG5lZWQgdG8gY29uZmlybSBpZiBgQ09ORklHX1BDSUVfVFBIYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgaXQgbmVlZHMgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkLiBUaGUgcGxhY2UgdG8gc3RhcnQgbG9va2luZyBpcywgYXMgdGhlIGluc3RydWN0aW9ucyBzdGF0ZSwgYGRyaXZlcnMvcGNpL0tjb25maWdgLiBMZXQncyBkaXZlIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTEwMywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTozOC42Njc5NDc1MzVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1MjQzNzQ4MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUENJRV9UUEhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wY2kvS2NvbmZpZz0xODU9Y29uZmlnIFBDSV9QQVNJRFxcbi0tXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTYtXFxuZHJpdmVycy9wY2kvS2NvbmZpZzoxOTc6Y29uZmlnIFBDSUVfVFBIXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVExQIFByb2Nlc3NpbmcgSGludHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjQxLjAyMDM5OTg0NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjU1NTY5NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gUENJIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHNvbWUgUENJIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvcGNpL0tjb25maWdgIGFyb3VuZCBsaW5lIDE5Ny4gVGhpcyBsaWtlbHkgY2VudGVycyBvbiBhIGdyb3VwIG9mIHJlbGF0ZWQgb3B0aW9ucywgcHJvYmFibHkgd2l0aGluIGEgZGVmaW5lZCBcIm1lbnVcIiBvciBibG9jaywgZ2l2ZW4gdGhlIGBLY29uZmlnYCBmaWxlIHN0cnVjdHVyZS4gSSdtIGd1ZXNzaW5nIHRoYXQgbGluZSBudW1iZXIgaXMgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IGZvciBhIHBhcnRpY3VsYXIgc2V0IG9mIGZlYXR1cmVzLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCBob3cgY2VydGFpbiBQQ0ktcmVsYXRlZCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgcG9zc2libHkgZGVwZW5kZW50IG9uIGhhcmR3YXJlLCBvdGhlciBrZXJuZWwgY29uZmlndXJhdGlvbnMsIG9yIHNwZWNpZmljIHVzZS1jYXNlcy4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgcGljdHVyZSBvZiB0aG9zZSBkZXBlbmRlbmNpZXMuIEknbSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBzdGF0ZW1lbnRzLCBgZGVwZW5kcyBvbmAgY2xhdXNlcywgYW5kIG1heWJlIHNvbWUgaGVscCB0ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTUzMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjQ1LjY4NTk1OTQ4M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk1NjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvcGNpL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTkwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTkwOlxcdFxcdCAgdG8gYWNjZXNzIG1vcmUgdGhhbiBvbmUgSU8gYWRkcmVzcyBzcGFjZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBtYWtlXFxuIDE5MTpcXHRcXHQgIHVzZSBvZiB0aGlzIGZlYXR1cmUgYW4gSU9NTVUgaXMgcmVxdWlyZWQgd2hpY2ggYWxzbyBzdXBwb3J0cyBQQVNJRHMuXFxuIDE5MjpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBzdWNoIGFuIElPTU1VIGFuZCB3YW50IHRvIGNvbXBpbGUgdGhlXFxuIDE5MzpcXHRcXHQgIGRyaXZlciBmb3IgaXQgaW50byB5b3VyIGtlcm5lbC5cXG4gMTk0OlxcdFxcbiAxOTU6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAxOTY6XFx0XFxuIDE5NzpcXHRjb25maWcgUENJRV9UUEhcXG4gMTk4OlxcdFxcdGJvb2wgXFxcIlRMUCBQcm9jZXNzaW5nIEhpbnRzXFxcIlxcbiAxOTk6XFx0XFx0aGVscFxcbiAyMDA6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludHMgKFRQSCkuXFxuIDIwMTpcXHRcXHQgIFRQSCBhbGxvd3MgZW5kcG9pbnQgZGV2aWNlcyB0byBwcm92aWRlIG9wdGltaXphdGlvbiBoaW50cywgc3VjaCBhc1xcbiAyMDI6XFx0XFx0ICBkZXNpcmVkIGNhY2hpbmcgYmVoYXZpb3IsIGZvciByZXF1ZXN0cyB0aGF0IHRhcmdldCBtZW1vcnkgc3BhY2UuXFxuIDIwMzpcXHRcXHQgIFRoZXNlIGhpbnRzLCBjYWxsZWQgU3RlZXJpbmcgVGFncywgY2FuIGVtcG93ZXIgdGhlIHN5c3RlbSBoYXJkd2FyZVxcbiAyMDQ6XFx0XFx0ICB0byBvcHRpbWl6ZSB0aGUgdXRpbGl6YXRpb24gb2YgcGxhdGZvcm0gcmVzb3VyY2VzLlxcbiAyMDU6XFx0XFxuIDIwNjpcXHRjb25maWcgUENJX1AyUERNQVxcbiAyMDc6XFx0XFx0Ym9vbCBcXFwiUENJIHBlZXItdG8tcGVlciB0cmFuc2ZlciBzdXBwb3J0XFxcIlxcbiAyMDg6XFx0XFx0ZGVwZW5kcyBvbiBaT05FX0RFVklDRVxcbiAyMDk6XFx0XFx0I1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTo0NS42ODYwNTczODNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIxNzE5NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYFBDSUVfVFBIYCBDb25maWd1cmF0aW9uIE9wdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFBDSUVfVFBIYCBvcHRpb24uIFJpZ2h0IGF3YXksIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIG5lZWQgdG8gZXhwbGljaXRseSBpbmNsdWRlIHdpdGhpbiBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyBhIG5vLWJyYWluZXIuIEJ1dCBsZXQncyBwYXVzZS4gQXJlIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyBvcHRpb25zIGx1cmtpbmcgYXJvdW5kIHRoYXQgYXJlIHJlbGF0ZWQ/IFdlIG5lZWQgdG8gYmUgdGhvcm91Z2guXG5cblRoZSBjb2RlIHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgIGZpbGUuIFJpZ2h0LiBUaGF0IGZpbGUgaXMgY29tcGlsZWQgKm9ubHkqIGlmIGBDT05GSUdfVkZJT19QQ0lgIGlzIGVuYWJsZWQuIE1ha2VzIHNlbnNlLiBcblxuV2FpdCBhIG1pbnV0ZSwgSSBzZWUgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgYmVpbmcgYWRkZWQgdG8gYHZmaW9fcGNpX2RtYWJ1Zi5jYC4gT2ssIHNvIHRoZSBuZXh0IHRoaW5nIEkgbmVlZCB0byBkbywgYmVmb3JlIEkgZHJhdyBhbnkgY29uY2x1c2lvbnMsIGlzIGNoZWNrIGlmIGB2ZmlvX3BjaV9kbWFidWYuY2AgaXRzZWxmIGhhcyBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIE5lZWQgdG8gc2VlIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIGVsc2UgdGhhdCdzIHJlbGV2YW50IHRvIHVuZGVyc3RhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3JyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDgxLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTk6NTk6NDkuOTA3Nzc5MTYyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjExNjkyMTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZmaW9fcGNpX2RtYWJ1ZlxcXFwub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3ZmaW8vcGNpL01ha2VmaWxlPTQ9dmZpby1wY2ktY29yZS0kKENPTkZJR19WRklPX1BDSV9aREVWX0tWTSkgKz0gdmZpb19wY2lfemRldi5vXFxuZHJpdmVycy92ZmlvL3BjaS9NYWtlZmlsZTo1OnZmaW8tcGNpLWNvcmUtJChDT05GSUdfVkZJT19QQ0lfRE1BQlVGKSArPSB2ZmlvX3BjaV9kbWFidWYub1xcbmRyaXZlcnMvdmZpby9wY2kvTWFrZWZpbGUtNi1vYmotJChDT05GSUdfVkZJT19QQ0lfQ09SRSkgKz0gdmZpby1wY2ktY29yZS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjUyLjUxOTQ3ODk2NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTM5MDg3MzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHN1bW1hcml6aW5nIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgVkZJTyBQQ0kgRE1BQlVGIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYC4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgVkZJTyBhbmQgRE1BIGJ1ZmZlciBzdXBwb3J0LCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZS4gSSdtIHRoaW5raW5nLCBcIldoZXJlIHdvdWxkIHRoaXMgYmUgZGVmaW5lZD8gSXQncyBsaWtlbHkgaW4gdGhlIGBkcml2ZXJzL3ZmaW8vcGNpYCBkaXJlY3RvcnkuXCIgTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy92ZmlvL3BjaS9LY29uZmlnYCBmaWxlIGFuZCBjb25maXJtIHRoYXQgYFZGSU9fUENJX0RNQUJVRmAgaXMgYWN0dWFsbHkgZGVmaW5lZCB0aGVyZS4gVGhpcyBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcywgZGVmYXVsdCBzZXR0aW5ncywgYW5kIGFueSByZWxldmFudCBkb2N1bWVudGF0aW9uLiBUaGlzIGlzIHdoZXJlIEknZCBnbyB0byBmaW5kIG91dCB3aGF0IHRoaXMgb3B0aW9uICphY3R1YWxseSBkb2VzKiBpbiB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDYxOSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE5OjU5OjU2LjA1ODU2ODYwNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY3NjgyMDQ2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVkZJT19QQ0lfRE1BQlVGXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZz00Nz1jb25maWcgVkZJT19QQ0lfWkRFVl9LVk1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL3ZmaW8vcGNpL0tjb25maWc6NTg6Y29uZmlnIFZGSU9fUENJX0RNQUJVRlxcbmRyaXZlcnMvdmZpby9wY2kvS2NvbmZpZy01OS1cXHRkZWZfYm9vbCB5IGlmIFZGSU9fUENJX0NPUkUgXFx1MDAyNlxcdTAwMjYgUENJX1AyUERNQSBcXHUwMDI2XFx1MDAyNiBETUFfU0hBUkVEX0JVRkZFUlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxOTo1OTo1OC43MzUzOTk0NzJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1MjMzODIwNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFZGSU8gVFBIIEZ1bmN0aW9uYWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIGl0J3MgZnV6emFibGUgYW5kIHdoYXQgdG8gZm9jdXMgb24uIEZpcnN0LCBJIHNlZSB0aGF0IHRoZSBgZGVmX2Jvb2xgIGZvciBzb21ldGhpbmcgaXMgY29uZGl0aW9uYWwgb24gYFZGSU9fUENJX0NPUkUgXHUwMDI2XHUwMDI2IFBDSV9QMlBETUEgXHUwMDI2XHUwMDI2IERNQV9TSEFSRURfQlVGRkVSYC4gVGhpcyBwcm9iYWJseSBtZWFucyBJIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIGBQQ0lfUDJQRE1BYCBpcyBhIGJvb2xlYW4sIHNvIEkgc2hvdWxkIHByb2JhYmx5IGFkZCB0aGF0IHRvIG15IGBFbmFibGVDb25maWdzYCBqdXN0IHRvIGJlIHNhZmUuIEFuZCBhbHNvIGBQQ0lFX1RQSGAuXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSWUgVFBIIHRvIERNQS1CVUYgYW5kIFZGSU8uICBTcGVjaWZpY2FsbHksIHRoZXJlJ3MgYSBuZXcgYFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEhgIGlvY3RsLiBUaGUgY3JpdGljYWwgcXVlc3Rpb246IGlzIHRoaXMgaW9jdGwgcmVhY2hhYmxlIGJ5IHN5emthbGxlcj8gIFllcywgaXQgbG9va3MgbGlrZSBpdCdzIHJlYWNoYWJsZSB2aWEgdGhlIHVzdWFsIGAvZGV2L3ZmaW8vZGV2aWNlcy8uLi5gIG9yIGAvZGV2L3ZmaW8vdmZpb2AgaW9jdGxzLiBBbmQgSSdtIHByZXR0eSBzdXJlIHN5emthbGxlciBkb2VzIGluZGVlZCBmdXp6IFZGSU8gaW9jdGxzLiBTbywgdGhlIGlvY3RsIGhhbmRsZXIsIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS5cblxuVGhlIGNvZGUgY2FsbHMgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlKHZkZXYtXHUwMDNlcGRldilgLiBJZiB0aGUgdW5kZXJseWluZyBkZXZpY2UgZG9lc24ndCAqaGF2ZSogVFBIIGNhcGFiaWxpdGllcywgaXQgcmV0dXJucyBgLUVPUE5PVFNVUFBgLiBUaGF0J3MgaW1wb3J0YW50LiBOb3csIHRoZSBiaWcgcXVlc3Rpb24gaXM6IGNhbiBzeXprYWxsZXIgY3JlYXRlIGEgUENJIGRldmljZSB3aXRoICphcmJpdHJhcnkqIGNhcGFiaWxpdGllcz8gSWYgaXQgY2FuLCB0aGlzIGNvdWxkIGxlYWQgdG8gYSBkZWVwZXIgZGl2ZS4gSXQgZG9lc24ndCBsb29rIGxpa2Ugc3l6a2FsbGVyIGhhcyBhIGdlbmVyaWMgUENJIGRldmljZSBpbmplY3RvciBsaWtlIGBzeXpfcGNpX2RldmljZV9hZGRgLCB0aG91Z2ggSSdtIHZhZ3VlbHkgcmVtZW1iZXJpbmcgc29tZXRoaW5nIGFib3V0IGBzeXpfa3ZtX3NldHVwX2NwdWAsIGJ1dCBpdCBkb2Vzbid0IGxvb2sgbGlrZSBpdCBzdXBwb3J0cyB0aGlzLiBTbyBuby4gSXQgbWlnaHQgdXNlIHNvbWUgUUVNVSBwcm92aWRlZCBQQ0kgZGV2aWNlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIGlmIHRob3NlIGRldmljZXMgYXJlIGNhcGFibGUgb2YgVFBILiAgQnV0IGV2ZW4gaWYgaXQgKm9ubHkqIGhpdHMgdGhlIGAtRU9QTk9UU1VQUGAgcGF0aCwgaXQncyBzdGlsbCBleGVjdXRpbmcgZnVuY3Rpb25hbCBjb2RlIGFuZCBjb3VsZCBiZSBpbnRlcmVzdGluZy5cblxuT2theSwgbGV0J3Mgc3RlcCBiYWNrIGFuZCBiZSBzdXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgICppcyogcmVhY2hhYmxlLiBJdCdzIGhhbmRsZWQgYnkgYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgdmZpb19wY2lfY29yZV9pb2N0bGAgZm9yIGBWRklPX0RFVklDRV9GRUFUVVJFYC4gIFNvLCB5ZXMsIGl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUuXG5cbk5vdywgd2hpY2ggZnVuY3Rpb25zIGFyZSB0aGUga2V5IG9uZXMgdG8gZm9jdXMgb24gZm9yIGZ1enppbmc/IEZyb20gaGVyZSBpdCBsb29rcyBsaWtlOlxuXG4qICAgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGBcbiogICBgZG1hX2J1Zl9nZXRfcGNpX3RwaGBcbiogICBgcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZWBcbiogICBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgXG4qICAgYG1seDVfc3RfYWxsb2NfaW5kZXhfYnlfdGFnYFxuKiAgIGBtbHg1X3N0X2dldF9pbmRleGBcblxuQnV0IHdhaXQsIGBtbHg1YCBpcyBhIE1lbGxhbm94IGhhcmR3YXJlIGRyaXZlciwgc28gSSBjYW4gcHJvYmFibHkgaWdub3JlIHRoZSBgbWx4NWAgZnVuY3Rpb25zIGZvciBub3cgYmVjYXVzZSB0aGV5J3JlIG5vdCBnb2luZyB0byBiZSB0cmlnZ2VyZWQgd2l0aG91dCB0aGF0IGhhcmR3YXJlLiBTbyB0aGF0IG5hcnJvd3MgaXQgZG93biBhIGJpdC5cblxuSSdsbCBkb3VibGUtY2hlY2sgdG8gc2VlIGlmIGB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoYCBpcyByZWFjaGFibGUuIFRoYXQncyB0aGUgYGdldF9wY2lfdHBoYCBjYWxsYmFjayBmb3IgYHZmaW9fcGNpX2RtYWJ1Zl9vcHNgLCBhbmQgaXQgZ2V0cyBjYWxsZWQgYnkgYGRtYV9idWZfZ2V0X3BjaV90cGhgLiBXaG8gYWN0dWFsbHkgY2FsbHMgYGRtYV9idWZfZ2V0X3BjaV90cGhgPyAgQWNjb3JkaW5nIHRvIHRoaXMgcGF0Y2gsIGl0J3MgYGdldF9wY2lfdHBoX21yX2RtYWJ1ZmAgaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBTaW5jZSBJJ20gbm90IHVzaW5nIE1lbGxhbm94IGhhcmR3YXJlLCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgbWF5IG5vdCBiZSB0cmlnZ2VyZWQgYnkgdGhlIGBtbHg1YCBkcml2ZXIsIGFuZCB0aGF0IG1pZ2h0IG1lYW4gYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGlzIG5vdCByZWFjaGFibGUuIFRoZXJlIGFyZSBubyBvdGhlciBjYWxsZXJzIGluIHRoaXMgcGF0Y2gsIHNvIHllcywgaXQncyBsaWtlbHkgbm90IHJlYWNoYWJsZS4gQnV0IHRoZSBpb2N0bCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcywgYW5kIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgcmVhY2hhYmxlIGZyb20gdGhlcmUuXG5cbk9rYXksIGxldCdzIG1ha2UgZG91Ymx5IHN1cmUgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYVxuXG4iLCJJbnB1dFRva2VucyI6NTA5OTEsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjEzLjI1ODc4NThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDU2NDE1MzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfY29yZS5jPTE1NTc9aW50IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmRldmljZSwgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMtMTU3NS1cXHRjYXNlIFZGSU9fREVWSUNFX0ZFQVRVUkVfRE1BX0JVRl9UUEg6XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmM6MTU3NjpcXHRcXHRyZXR1cm4gdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHZkZXYsIGZsYWdzLCBhcmcsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9jb3JlLmMtMTU3Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgYXJnc3opO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0yNTM9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjctXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzozNjg6aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zNjktXFx0XFx0XFx0XFx0ICAgICAgdTMyIGZsYWdzLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg9MTE4PWludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1ZihzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsIHUzMiBmbGFncyxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEyMC1cXHRcXHRcXHRcXHQgIHNpemVfdCBhcmdzeik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2Lmg6MTIxOmludCB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgoc3RydWN0IHZmaW9fcGNpX2NvcmVfZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEyMi1cXHRcXHRcXHRcXHQgICAgICB1MzIgZmxhZ3MsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaD0xMzY9c3RhdGljIGlubGluZSBpbnRcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXYuaDoxMzc6dmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoKHN0cnVjdCB2ZmlvX3BjaV9jb3JlX2RldmljZSAqdmRldiwgdTMyIGZsYWdzLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfcHJpdi5oLTEzOC1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2ZmlvX2RldmljZV9mZWF0dXJlX2RtYV9idWZfdHBoIF9fdXNlciAqYXJnLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDoxNS45NjQ0Mzk1NjVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk4NzU0NjA4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcml6ZWQgdGhvdWdodCBwcm9jZXNzLCBwcmVzZW50ZWQgYXMgaWYgSSdtIHRoZSBvbmUgdGhpbmtpbmcgaXQ6XG5cbioqUmVhY2hpbmcgdGhlIFRhcmdldCoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgc3VnZ2VzdHMgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gdGFja2xlLiBJIGJlbGlldmUgdGhpcyAqaXMqIHJlYWNoYWJsZSDigJMgdGhhdCdzIHRoZSBmaXJzdCBjcml0aWNhbCBhc3Nlc3NtZW50LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biwgcmlnaHQ/IExldCdzIGdldCByaWdodCB0byBpdC4uLiBJIHdhbnQgdG8gY2hlY2sgdGhlIHNwZWNpZmljIHZhbHVlIG9mIHRoZSBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGZpZWxkLiBUaGF0IHdpbGwgYmUgdmVyeSB0ZWxsaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mzg5MCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjIzLjk1MTk4OTQyOVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkyNjM3Mjc1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9jb21wbGV0ZXJfdHlwZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS90cGguYz0xODY9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcXG5kcml2ZXJzL3BjaS90cGguYzoxODk6ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSdzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxcbmRyaXZlcnMvcGNpL3RwaC5jLTE5MC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjIwMTp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjE4LX1cXG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XFxuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTM3OC1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcXHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cXHUwMDNlcGRldik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXFx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzctI2Vsc2VcXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDoyNi44NzgzNzA3NDdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMyMjMyMzc4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIFBDSWUgVFBIIENvbXBsZXRlciBUeXBlKipcblxuQWxyaWdodCwgaXQgbG9va3MgbGlrZSB3ZSd2ZSBjb25maXJtZWQgdGhhdCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIGlzIGluZGVlZCByZWFjaGFibGUgd2l0aGluIHRoZSBjb2RlLiBHb29kLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpbiB0aGlzIGFuYWx5c2lzIGlzIHRvIHNjcnV0aW5pemUgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBVbmRlcnN0YW5kaW5nIGhvdyB0aGF0IHJlcXVlc3QgdHlwZSBpcyBoYW5kbGVkIGlzIGNydWNpYWwgZm9yIGEgY29tcGxldGUgcGljdHVyZS4gV2UgbmVlZCB0byBkaXNzZWN0IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZXNlIHR3byB0byBmdWxseSBncmFzcCB0aGUgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDcxNywiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjMwLjIwMDY5NzY5NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc4MjMxNzQxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTU4LVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTU5OlxcdHN3aXRjaCAocGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShkZXYtXFx1MDAzZW1kZXYtXFx1MDAzZXBkZXYpKSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NjAtXFx0Y2FzZSBQQ0lfVFBIX1JFUV9UUEhfT05MWTpcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jPTE3ND1FWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2dldF9zdF90YWJsZV9sb2MpO1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMTc2LS8qKlxcbmRyaXZlcnMvcGNpL3RwaC5jOjE3NzogKiBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlIC0gUmV0dXJuIHRoZSBkZXZpY2UncyBlbmFibGVkIFRQSCByZXF1ZXN0ZXIgdHlwZVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE3OC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMTgxLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjE4Mjp1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4My17XFxuLS1cXG5kcml2ZXJzL3BjaS90cGguYy0xODUtfVxcbmRyaXZlcnMvcGNpL3RwaC5jOjE4NjpFWFBPUlRfU1lNQk9MKHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUpO1xcbmRyaXZlcnMvcGNpL3RwaC5jLTE4Ny1cXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTM0PXUzMiBwY2llX3RwaF9nZXRfc3RfdGFibGVfbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNTp1OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC0zNi11OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD00Nj1zdGF0aWMgaW5saW5lIGludCBwY2llX2VuYWJsZV90cGgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBtb2RlKVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oLTQ3LXsgcmV0dXJuIC1FSU5WQUw7IH1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDo0ODpzdGF0aWMgaW5saW5lIHU4IHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtNDkteyByZXR1cm4gUENJX1RQSF9SRVFfRElTQUJMRTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMDozMi45ODMwODIyODNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3NjU0NTQ1MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gUENJZSBUUEggYW5kIEZ1enppbmcgUmVsZXZhbmNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYHBjaWVfdHBoX2VuYWJsZWRfcmVxX3R5cGVgLiBUaGUgY29kZSBzaG93cyBpdCdzICpvbmx5KiBjYWxsZWQgZnJvbSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCwgd2hpY2ggaXMgYnVyaWVkIGRlZXAgd2l0aGluIHRoZSBgbWx4NWAgZHJpdmVyJ3MgbWVtb3J5IHJlZ2lvbiBtYW5hZ2VtZW50IChgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuY2ApLiBSaWdodCwgYW5kIGBtbHg1YCBpcyBhIGhhcmR3YXJlIGRyaXZlci4uLiB0aGF0IG1lYW5zIGl0J3Mgbm90IGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBteSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgZWZmaWNpZW50IHdpdGggbXkgYEZvY3VzU3ltYm9sc2AgbGlzdCwgYW5kIGluY2x1ZGluZyBjb2RlIHBhdGhzIHRoYXQgYXJlIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaXMganVzdCB3YXN0ZWQgZWZmb3J0LiBUaGVyZWZvcmUsIGBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlYCBzaG91bGQgKmRlZmluaXRlbHkqIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGBGb2N1c1N5bWJvbHNgLiBMZXQncyBtb3ZlIG9uIGFuZCB0YWtlIGEgbG9vayBhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgbm93OyBtYXliZSB0aGVyZSdzIHNvbWV0aGluZyByZWxldmFudCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU1NjUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDA6NDkuNzQ4NTQyNjYxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc2Mzg3MjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRtYV9idWZfZ2V0X3BjaV90cGhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz05MTk9ZG1hX2J1Zl9waW5fb25fbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaClcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQxLSAqICAgICAtIGRtYV9idWZfdnVubWFwKClcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjk0MjogKiAgICAgLSBkbWFfYnVmX2dldF9wY2lfdHBoKClcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0My0gKlxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYz0xMTQ3PUVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfdW5waW4sIFxcXCJETUFfQlVGXFxcIik7XFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNDktLyoqXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTUwOiAqIGRtYV9idWZfZ2V0X3BjaV90cGggLSBSZXRyaWV2ZSBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnQgKFRQSCkgbWV0YWRhdGFcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNTEtICogQGRtYWJ1ZjogRE1BIGJ1ZmZlciB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY2LSAqL1xcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE2NzppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2OC1cXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc2LX1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl9nZXRfcGNpX3RwaCwgXFxcIkRNQV9CVUZcXFwiKTtcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzgtXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jPTk1MD1zdGF0aWMgdm9pZCBnZXRfcGNpX3RwaF9tcl9kbWFidWYoc3RydWN0IG1seDVfaWJfZGV2ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFidWYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3MC1cXHRkbWFfcmVzdl9sb2NrKGRtYWJ1Zi1cXHUwMDNlcmVzdiwgTlVMTCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzo5NzE6XFx0cmV0ID0gZG1hX2J1Zl9nZXRfcGNpX3RwaChkbWFidWYsIGV4dGVuZGVkLCBcXHUwMDI2c3RlZXJpbmdfdGFnLCBcXHUwMDI2bG9jYWxfcGgpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcyLVxcdGRtYV9yZXN2X3VubG9jayhkbWFidWYtXFx1MDAzZXJlc3YpO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz02Mj12ZmlvX3BjaV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04Mi1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjgzOnN0YXRpYyBpbnQgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODQtXFx0XFx0XFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9MTMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmZpb19wY2lfZG1hYnVmX29wcyA9IHtcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNC1cXHQuYXR0YWNoID0gdmZpb19wY2lfZG1hX2J1Zl9hdHRhY2gsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzoxMzU6XFx0LmdldF9wY2lfdHBoID0gdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTEzNi1cXHQubWFwX2RtYV9idWYgPSB2ZmlvX3BjaV9kbWFfYnVmX21hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTM3PXN0cnVjdCBkbWFfYnVmX29wcyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMjgtXFx0ICpcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMjk6XFx0ICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIGRtYV9idWZfZ2V0X3BjaV90cGgoKS4gQ2FsbGVkIHdpdGhcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzAtXFx0ICogXFx1MDAyNmRtYV9idWYucmVzdiBoZWxkLiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRU9QTk9UU1VQUCB3aGVuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzMtXFx0ICogUmV0dXJuZWQgbWV0YWRhdGEgZm9sbG93cyB0aGUgbGlmZXRpbWUgcnVsZXMgZG9jdW1lbnRlZCBmb3JcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDoxMzQ6XFx0ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLlxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzNS1cXHQgKi9cXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oPTU4OD12b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTtcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaDo1ODk6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC01OTAtXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjUyLjYyNDkzOTMyM1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDY2MjczODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBSZWFjaGFiaWxpdHkgaW4gdGhlIEZ1enppbmcgRW52aXJvbm1lbnQqKlxuXG5Pa2F5LCBzbyBoZXJlJ3MgdGhlIHNpdHVhdGlvbjogSSd2ZSBiZWVuIGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGFjdHVhbGx5IHJlYWNoYWJsZSBpbiBvdXIgZnV6emluZyBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IHdpdGggcmVnYXJkIHRvIERNQSBidWZmZXIgaW50ZXJhY3Rpb25zLiBJJ3ZlIHBpbnBvaW50ZWQgdGhhdCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAgaXMgKm9ubHkqIGNhbGxlZCBieSBgZ2V0X3BjaV90cGhfbXJfZG1hYnVmYCB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmNgLiBUaGF0IG1lYW5zLCBhcyB0aGluZ3Mgc3RhbmQsIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBhbmQgdGhlIHJlbGF0ZWQgYHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGhgIGFyZSBlc3NlbnRpYWxseSBkZWFkIGNvZGUgcGF0aHMgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFdlIGp1c3QgY2FuJ3QgZ2V0IHRvIHRoZW0gZ2l2ZW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cblxuVGhlcmVmb3JlLCB0aGUgb25seSBmdW5jdGlvbnMgd2UgY2FuIHJlYXNvbmFibHkgaGl0IGR1cmluZyBmdXp6aW5nIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gQnV0IGxldCdzIG5vdCBqdXN0IHRha2UgbXkgd29yZCBmb3IgaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLlxuXG5Ob3csIEknbSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gSSByZW1lbWJlciBzZWVpbmcgaXQgY2FsbGVkIGZyb20gYHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZWAuIFllcCwgdGhhdCBjb25maXJtcyBpdCDigJMgd2UgY2FuIGFic29sdXRlbHkgaGl0IHRoYXQgY29kZSBwYXRoLlxuXG5GaW5hbGx5LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYCBpc24ndCBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlIHRvIGJlIGRvdWJseSBzdXJlIG9mIGl0cyByZWFjaGFiaWxpdHkuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCBmb3IgdGhhdCBmdW5jdGlvbiB0byBtYWtlIHN1cmUgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvcnJlY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MjU4LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAwOjU4LjY5MTIxNzA5M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUwODEwMTQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2llX3RwaF9jb21wbGV0ZXJfdHlwZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS90cGguYz0xODY9RVhQT1JUX1NZTUJPTChwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvcGNpL3RwaC5jLTE4OC0vKipcXG5kcml2ZXJzL3BjaS90cGguYzoxODk6ICogcGNpZV90cGhfY29tcGxldGVyX3R5cGUgLSBSZXR1cm4gdGhlIGRldmljZSdzIFRQSCBDb21wbGV0ZXIgc3VwcG9ydFxcbmRyaXZlcnMvcGNpL3RwaC5jLTE5MC0gKiBAcGRldjogUENJIGRldmljZSB0byBxdWVyeVxcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjAwLSAqL1xcbmRyaXZlcnMvcGNpL3RwaC5jOjIwMTp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3BjaS90cGguYy0yMDIte1xcbi0tXFxuZHJpdmVycy9wY2kvdHBoLmMtMjE4LX1cXG5kcml2ZXJzL3BjaS90cGguYzoyMTk6RVhQT1JUX1NZTUJPTChwY2llX3RwaF9jb21wbGV0ZXJfdHlwZSk7XFxuZHJpdmVycy9wY2kvdHBoLmMtMjIwLVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0zNjg9aW50IHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaChzdHJ1Y3QgdmZpb19wY2lfY29yZV9kZXZpY2UgKnZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTM3OC1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjM3OTpcXHRjb21wID0gcGNpZV90cGhfY29tcGxldGVyX3R5cGUodmRldi1cXHUwMDNlcGRldik7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0zODAtXFx0aWYgKGNvbXAgPT0gUENJX0VYUF9ERVZDQVAyX1RQSF9DT01QX05PTkUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaD0zNT11OCBwY2llX3RwaF9lbmFibGVkX3JlcV90eXBlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTtcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaDozNjp1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmgtMzctI2Vsc2VcXG4tLVxcbmluY2x1ZGUvbGludXgvcGNpLXRwaC5oPTQ4PXN0YXRpYyBpbmxpbmUgdTggcGNpZV90cGhfZW5hYmxlZF9yZXFfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC00OS17IHJldHVybiBQQ0lfVFBIX1JFUV9ESVNBQkxFOyB9XFxuaW5jbHVkZS9saW51eC9wY2ktdHBoLmg6NTA6c3RhdGljIGlubGluZSB1OCBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5pbmNsdWRlL2xpbnV4L3BjaS10cGguaC01MS17IHJldHVybiBQQ0lfRVhQX0RFVkNBUDJfVFBIX0NPTVBfTk9ORTsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTowMS4xOTkzMjY2OTNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODcxODA4MzU4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFN0cmF0ZWd5IGZvciB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGgqKlxuXG5Pa2F5LCBteSBmb2N1cyBuZWVkcyB0byBiZSBzb2xlbHkgb24gYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAuIFRoZSBwcmltYXJ5IHN5bWJvbHMgSSdtIGNvbmNlcm5lZCB3aXRoIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gVGhlIGdvYWwgaGVyZSBpcyB0byBkZXRlcm1pbmUgdGhlIGZ1enphYmlsaXR5IG9mIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgLlxuXG5NeSBpbml0aWFsIGNvbmNlcm4gaXMgdGhhdCBpZiBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgIHJldHVybnMgYFBDSV9FWFBfREVWQ0FQMl9UUEhfQ09NUF9OT05FYCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FT1BOT1RTVVBQYC4gVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIHJlbGlhYmx5IGNyZWF0ZSBhIFBDSSBkZXZpY2UgKndpdGgqIFRQSCBjb21wbGV0ZXIgY2FwYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudD8gU3l6a2FsbGVyIG9mdGVuIHV0aWxpemVzIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgYC9kZXYvdmZpby9gIHdpdGggZHVtbXkgZGV2aWNlcy4gVGhlIHByb2JsZW0gaXMsIGlmIHRoZSBkdW1teSBkZXZpY2UgKmxhY2tzKiBUUEggY29tcGxldGVyIGNhcGFiaWxpdHksIHdlJ3JlIGFsd2F5cyBnb2luZyB0byBnZXQgdGhhdCBgLUVPUE5PVFNVUFBgIGVycm9yLCB3aGljaCBlc3NlbnRpYWxseSBtZWFucyB3ZSdkIG5ldmVyIHJlYWNoIHRoZSBjb3JlIGZ1bmN0aW9uLlxuXG5Ib3dldmVyLCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHdheXMgcmV0dXJuZWQsIGl0J3Mgc3RpbGwgKnJlYWNoYWJsZSogY29kZSwgYXQgbGVhc3QgdGhlIGluaXRpYWwgbGluZXMuIFRoaXMgbWFrZXMgaXQgd29ydGggZnV6emluZy4gVGhlIGZ1bmN0aW9uICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIHRoYXQgd2UgY2FuIHJlYWNoLCBhbmQgd2UgaGF2ZSB0byBzZWUgaWYgc29tZSBjbGV2ZXIgZnV6emluZyBjYW4gbGV2ZXJhZ2UgdGhhdC4gQW5kLCBvbmUgY2FuJ3QgcnVsZSBvdXQgdGhlIHBvc3NpYmlsaXR5IHRoYXQgc3l6a2FsbGVyICpjb3VsZCogaW5qZWN0IGEgZGV2aWNlIHdpdGggVFBIIGNhcGFiaWxpdHkgb3IgdGhhdCBzb21lIGRlZmF1bHQgUUVNVSBlbXVsYXRlZCBkZXZpY2VzIG1pZ2h0IGhhdmUgaXQuIFNvLCBJIGhhdmUgdG8gbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgYEVuYWJsZUNvbmZpZ3NgLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGBQQ0lFX1RQSGAsIGBWRklPX1BDSWAsIGFuZCBgVkZJT19QQ0lfRE1BQlVGYCBhcmUgZW5hYmxlZC4gYFZGSU9fUENJX0RNQUJVRmAgaXMgZGVwZW5kZW50IG9uIGBWRklPX1BDSV9DT1JFYCwgYFBDSV9QMlBETUFgIGFuZCBgRE1BX1NIQVJFRF9CVUZGRVJgLiBTaW5jZSBgRE1BX1NIQVJFRF9CVUZGRVJgIGlzIHVzdWFsbHkgb24gYnkgZGVmYXVsdCwgdGhlIGtleSBpcyBgUENJX1AyUERNQWAuIE5vdyBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBgUENJX1AyUERNQWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NTQ5LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjA5LjkxNzQxMjQ0WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODM0OTAzODk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQQ0lfUDJQRE1BXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGNpL0tjb25maWc9MTk3PWNvbmZpZyBQQ0lFX1RQSFxcbi0tXFxuZHJpdmVycy9wY2kvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9wY2kvS2NvbmZpZzoyMDY6Y29uZmlnIFBDSV9QMlBETUFcXG5kcml2ZXJzL3BjaS9LY29uZmlnLTIwNy1cXHRib29sIFxcXCJQQ0kgcGVlci10by1wZWVyIHRyYW5zZmVyIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjEyLjc1MjMyNjUwNVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDM5MzQ4MDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoZSBmaXJzdCBzdGVwIGlzIGNsZWFyOiBJIG5lZWQgdG8gYWRkIGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYCB0byBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLlxuXG5Ob3csIGxldCdzIGdvIHRocm91Z2ggdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIGFjdHVhbGx5IHN1aXRhYmxlIGZvciBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXNuJ3QganVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMsIGxvZ2dpbmcgdHdlYWtzLCBkZWNvcmF0aXZlIG1hY3JvIHVwZGF0ZXMsIG9yIGNvZGUgdGhhdCdzIHVucmVhY2hhYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC5cblxuTG9va2luZyBhdCB0aGUgcGF0Y2gsIGl0IHRvdWNoZXMgYGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmNgLCBgZHJpdmVycy9wY2kvdHBoLmNgLCBhbmQgYGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNgLiBBbGwgdGhyZWUgb2YgdGhvc2UgYXJlIHJlYWNoYWJsZSB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50LiBUaGVyZWZvcmUsIGl0J3Mgc2FmZSB0byBzYXkgdGhpcyBzaG91bGQgYmUgYSBgV29ydGhGdXp6aW5nPXRydWVgIHNjZW5hcmlvLlxuXG5UaGUgYEZvY3VzU3ltYm9sc2AgYXJlIGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIHR3byBrZXkgYXJlYXMgdG8gZm9jdXMgb24uXG5cblNvLCBsZXQgbWUgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnkgb3RoZXIga2V5IGNvbmZpZ3VyYXRpb25zLiBJIGNhbiBzZWUgdGhhdCBgQ09ORklHX1ZGSU9fUENJYCBpcyBhbHJlYWR5IGVuYWJsZWQgaW4gc3l6a2FsbGVyLiBgQ09ORklHX0lORklOSUJBTkRgIGlzIGFsc28gZW5hYmxlZCwgYnV0IG1seDUgbG9va3MgdG8gYmUgaGFyZHdhcmUgc3BlY2lmaWMgYW5kIGxpa2VseSBpcnJlbGV2YW50IGhlcmUuIFNvLCB5ZXMsIGBQQ0lFX1RQSGAgYW5kIGBQQ0lfUDJQRE1BYCBhcmUgdGhlIG1haW4gb25lcyB0aGF0IGFyZSBuZXcuXG5cbkxldCdzIGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jaWVzLiBJIGtub3cgYHZmaW9fcGNpX2NvcmVfZmVhdHVyZV9kbWFfYnVmX3RwaGAgaXMgY29tcGlsZWQgd2hlbiBgQ09ORklHX1ZGSU9fUENJX0RNQUJVRmAgaXMgZW5hYmxlZC4gQW5kLCB5ZXMsIGl0J3MgaW5kZWVkIGluIGBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jYC4gQWxzbywgSSBjYW4gc2VlIHRoYXQgYENPTkZJR19WRklPX1BDSV9ETUFCVUZgIHJlcXVpcmVzIGBQQ0lfUDJQRE1BYC4gU28sIGBQQ0lfUDJQRE1BYCBpcyBhIG11c3QuXG5cbk5vdywgbGV0J3MgbWFrZSBzdXJlIGBwY2llX3RwaF9jb21wbGV0ZXJfdHlwZWAgaXMgY29tcGlsZWQgd2hlbiBgQ09ORklHX1BDSUVfVFBIYCBpcyBlbmFibGVkLiBZZXAsIHRoYXQgb25lIGxpdmVzIGluIGBkcml2ZXJzL3BjaS90cGguY2AuIFdhaXQsIGlzIGBkcml2ZXJzL3BjaS90cGguY2AgY29tcGlsZWQgKm9ubHkqIHdoZW4gYENPTkZJR19QQ0lFX1RQSGAgaXMgZW5hYmxlZD8gTmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdC4uLiBidXQgb3ZlcmFsbCwgaXQgbG9va3MgZ29vZCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk2NDQsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDE6MjEuMTkxNjc4NDU1WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDI1MzQ4MzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRwaFxcXFwub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS9NYWtlZmlsZT00MD1vYmotJChDT05GSUdfUENJX05QRU0pXFx0XFx0Kz0gbnBlbS5vXFxuZHJpdmVycy9wY2kvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX1BDSUVfVFBIKVxcdFxcdCs9IHRwaC5vXFxuZHJpdmVycy9wY2kvTWFrZWZpbGUtNDItb2JqLSQoQ09ORklHX0NBUkRCVVMpXFx0XFx0Kz0gc2V0dXAtY2FyZGJ1cy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjI0LjYxNzAzNDY5NVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTYzMzMwODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gZGV2aWNlIGRyaXZlciBkZXZlbG9wbWVudCBhbmQga2VybmVsIGNvbmZpZ3VyYXRpb246XG5cbioqQW5hbHl6aW5nIGEgS2VybmVsIEJ1aWxkIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc28gSSBzZWUgYSBsaW5lIHRoYXQgY2xlYXJseSBpbmRpY2F0ZXMgYHRwaC5vYCDigJMgYSBtb2R1bGUsIEkgcHJlc3VtZSDigJMgaXMgZ29pbmcgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkIG91dHB1dCBpZiB0aGUgYENPTkZJR19QQ0lFX1RQSGAgb3B0aW9uIGlzIHNldC4gTm8gc3VycHJpc2VzIHRoZXJlOyB0aGF0J3Mgc3RhbmRhcmQga2VybmVsIGJ1aWxkIHN5bnRheC4gSXQncyBhIGNsZWFyIGRlcGVuZGVuY3k6IGlmIHdlIHdhbnQgdGhhdCBgdHBoLm9gIG9iamVjdCBmaWxlIGluIHRoZSBidWlsdCBkcml2ZXIgdGhlbiB3ZSBoYXZlIHRvIGVuYWJsZSB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLlxuXG5UaGUga2V5IHF1ZXN0aW9uIHRoZW4gYmVjb21lczogd2hlcmUgKmVsc2UqIGRvZXMgdGhpcyBgUENJRV9UUEhgIHNldHRpbmcgYXBwZWFyLCBhbmQgd2hhdCdzIGl0cyBvdmVyYWxsIGltcGFjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGNoZWNrIGlmIHRoZXJlJ3MgYW55IGNvZGUgdGhhdCAqdW5jb25kaXRpb25hbGx5KiBjYWxscyBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuIElmIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHJlZ2FyZGxlc3Mgb2YgdGhlIGBDT05GSUdfUENJRV9UUEhgIHNldHRpbmcsIHRoZW4gd2UgaGF2ZSBhIHBvdGVudGlhbCBwcm9ibGVtLiBJdCB3b3VsZCBpbXBseSB0aGF0IHRoZSBzeXN0ZW0gbWF5IHRyeSB0byBsaW5rIHRvIHRoYXQgb2JqZWN0IGV2ZW4gaWYgYENPTkZJR19QQ0lFX1RQSGAgaXMgc2V0IHRvIFwiblwiIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBjb21waWxlIHRpbWUgZXJyb3JzLiBUaGlzIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIHNpdHVhdGlvbiB0byB1bmRlcnN0YW5kLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIGRldGVybWluZSB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgdGhhdCBwYXJ0aWN1bGFyIGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDg5MywiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjI4Ljc4MDM2ODgyOVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMzM1ODEzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkbWFfYnVmX2dldF9wY2lfdHBoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9OTE5PWRtYV9idWZfcGluX29uX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTk0MS0gKiAgICAgLSBkbWFfYnVmX3Z1bm1hcCgpXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzo5NDI6ICogICAgIC0gZG1hX2J1Zl9nZXRfcGNpX3RwaCgpXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDMtICpcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM9MTE0Nz1FWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX3VucGluLCBcXFwiRE1BX0JVRlxcXCIpO1xcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTQ5LS8qKlxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE1MDogKiBkbWFfYnVmX2dldF9wY2lfdHBoIC0gUmV0cmlldmUgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50IChUUEgpIG1ldGFkYXRhXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTUxLSAqIEBkbWFidWY6IERNQSBidWZmZXIgdG8gcXVlcnlcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE2Ni0gKi9cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNjc6aW50IGRtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjgtXFx0XFx0XFx0dTE2ICpzdGVlcmluZ190YWcsIHU4ICpwaClcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3Ni19XFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTc3OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0X3BjaV90cGgsIFxcXCJETUFfQlVGXFxcIik7XFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTc4LVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYz05NTA9c3RhdGljIHZvaWQgZ2V0X3BjaV90cGhfbXJfZG1hYnVmKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzAtXFx0ZG1hX3Jlc3ZfbG9jayhkbWFidWYtXFx1MDAzZXJlc3YsIE5VTEwpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6OTcxOlxcdHJldCA9IGRtYV9idWZfZ2V0X3BjaV90cGgoZG1hYnVmLCBleHRlbmRlZCwgXFx1MDAyNnN0ZWVyaW5nX3RhZywgXFx1MDAyNmxvY2FsX3BoKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jLTk3Mi1cXHRkbWFfcmVzdl91bmxvY2soZG1hYnVmLVxcdTAwM2VyZXN2KTtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM9NjI9dmZpb19wY2lfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtODItXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYzo4MzpzdGF0aWMgaW50IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgYm9vbCBleHRlbmRlZCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTg0LVxcdFxcdFxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTEzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZmaW9fcGNpX2RtYWJ1Zl9vcHMgPSB7XFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzQtXFx0LmF0dGFjaCA9IHZmaW9fcGNpX2RtYV9idWZfYXR0YWNoLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6MTM1OlxcdC5nZXRfcGNpX3RwaCA9IHZmaW9fcGNpX2RtYV9idWZfZ2V0X3BjaV90cGgsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy0xMzYtXFx0Lm1hcF9kbWFfYnVmID0gdmZpb19wY2lfZG1hX2J1Zl9tYXAsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD0zNz1zdHJ1Y3QgZG1hX2J1Zl9vcHMge1xcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTI4LVxcdCAqXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTI5OlxcdCAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkbWFfYnVmX2dldF9wY2lfdHBoKCkuIENhbGxlZCB3aXRoXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMwLVxcdCAqIFxcdTAwMjZkbWFfYnVmLnJlc3YgaGVsZC4gUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLUVPUE5PVFNVUFAgd2hlblxcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTMzLVxcdCAqIFJldHVybmVkIG1ldGFkYXRhIGZvbGxvd3MgdGhlIGxpZmV0aW1lIHJ1bGVzIGRvY3VtZW50ZWQgZm9yXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6MTM0OlxcdCAqIGRtYV9idWZfZ2V0X3BjaV90cGgoKS5cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaC0xMzUtXFx0ICovXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RtYS1idWYuaD01ODg9dm9pZCBkbWFfYnVmX3VucGluKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7XFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg6NTg5OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtNTkwLVxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTozMS41MDM3MzE1MzNaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkxMDQxMzk2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgRE1BLUJVRiBhbmQgUENJLVRQSCBTeW1ib2wgUmVhY2hhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJJ3ZlIHRyYWNrZWQgZG93biB0aGUgcmVsZXZhbnQgY29kZTsgYGRtYV9idWZfZ2V0X3BjaV90cGhgIGlzIGRlZmluaXRlbHkgaW4gYGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBnaXZlbiB0aGF0IGl0J3MgY29uZGl0aW9uYWwgb24gYENPTkZJR19ETUFfU0hBUkVEX0JVRkZFUmAuIFNvLCBiYXNlZCBvbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIGl0IGlzIGNvbXBpbGVkLiBOb3csIHRoZSBjcnVjaWFsIHBhcnQgaXMgdW5kZXJzdGFuZGluZyAqd2hlcmUqIGl0J3MgYWN0dWFsbHkgdXNlZC4gVGhlIGFuYWx5c2lzIGVhcmxpZXIgZGVmaW5pdGl2ZWx5IHNob3dlZCB0aGF0IGl0J3MgKm9ubHkqIGNhbGxlZCBieSB0aGUgbWx4NSBkcml2ZXIsIHdoaWNoLCBhcyB3ZSBlc3RhYmxpc2hlZCwgaXNuJ3Qgb24gdGhlIGNyaXRpY2FsIHBhdGguIFRoZXJlZm9yZSwgdGhlcmUncyBubyBuZWVkIHRvIGNsdXR0ZXIgYEZvY3VzU3ltYm9sc2Agd2l0aCBgZG1hX2J1Zl9nZXRfcGNpX3RwaGAuXG5cbk5vdywgdGhlIGZvbGxvdy11cDogd2hhdCBhYm91dCBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGA/IEFoLCByaWdodCwgdGhhdCdzIGEgY2FsbGJhY2sgd2l0aGluIHRoZSBgZG1hX2J1Zl9vcHNgIHN0cnVjdHVyZS4gQnV0IHRoZSBrZXkgaGVyZSBpcyBpdHMgKmRlcGVuZGVuY3kqLiBJdCdzIG9ubHkgY2FsbGVkIGJ5IGBkbWFfYnVmX2dldF9wY2lfdHBoYCwgd2hpY2ggd2UndmUganVzdCBjb25maXJtZWQgaXMgaXRzZWxmIHVucmVhY2hhYmxlLiBUaGlzIG1lYW5zIGB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoYCBpcyAqYWxzbyogdW5yZWFjaGFibGUuIFNvLCBhZGRpbmcgaXQgdG8gYEZvY3VzU3ltYm9sc2Agd291bGQgYmUgdW5uZWNlc3NhcnkuXG5cblRoZXJlZm9yZSwgYWZ0ZXIgdGhpcyB0aG9yb3VnaCBleGFtaW5hdGlvbiwgbXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoZSBvbmx5IHJlYWNoYWJsZSBmdW5jdGlvbnMgcmVsYXRlZCB0byB0aGlzIGFyZSBgdmZpb19wY2lfY29yZV9mZWF0dXJlX2RtYV9idWZfdHBoYCBhbmQgYHBjaWVfdHBoX2NvbXBsZXRlcl90eXBlYC4gSG93ZXZlciwgSSBuZWVkIHRvIG1ha2UgKmFic29sdXRlbHkqIHN1cmUgdGhlcmUgaXNuJ3Qgc29tZSBoaWRkZW4gY2FsbCB0aGF0IEkndmUgbWlzc2VkLiBJIG11c3QgYmUgY29tcGxldGVseSBjZXJ0YWluIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBjYWxsZXJzIG9mIGBkbWFfYnVmX2dldF9wY2lfdHBoYCBpbiB0aGUga2VybmVsLiBMZXQgbWUgZG91YmxlLWNoZWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjU5NSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMDowMTozNy40MTQxNDc1MDRaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MTQxMjI5OTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZG1hX2J1Zl9nZXRfcGNpX3RwaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTkxOT1kbWFfYnVmX3Bpbl9vbl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKVxcbi0tXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy05NDEtICogICAgIC0gZG1hX2J1Zl92dW5tYXAoKVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6OTQyOiAqICAgICAtIGRtYV9idWZfZ2V0X3BjaV90cGgoKVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtOTQzLSAqXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jPTExNDc9RVhQT1JUX1NZTUJPTF9OU19HUEwoZG1hX2J1Zl91bnBpbiwgXFxcIkRNQV9CVUZcXFwiKTtcXG4tLVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE0OS0vKipcXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jOjExNTA6ICogZG1hX2J1Zl9nZXRfcGNpX3RwaCAtIFJldHJpZXZlIFBDSWUgVExQIFByb2Nlc3NpbmcgSGludCAoVFBIKSBtZXRhZGF0YVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE1MS0gKiBAZG1hYnVmOiBETUEgYnVmZmVyIHRvIHF1ZXJ5XFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNjYtICovXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYzoxMTY3OmludCBkbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYy0xMTY4LVxcdFxcdFxcdHUxNiAqc3RlZXJpbmdfdGFnLCB1OCAqcGgpXFxuLS1cXG5kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jLTExNzYtfVxcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmM6MTE3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2dldF9wY2lfdHBoLCBcXFwiRE1BX0JVRlxcXCIpO1xcbmRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMtMTE3OC1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM9OTUwPXN0YXRpYyB2b2lkIGdldF9wY2lfdHBoX21yX2RtYWJ1ZihzdHJ1Y3QgbWx4NV9pYl9kZXYgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmMtOTcwLVxcdGRtYV9yZXN2X2xvY2soZG1hYnVmLVxcdTAwM2VyZXN2LCBOVUxMKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tci5jOjk3MTpcXHRyZXQgPSBkbWFfYnVmX2dldF9wY2lfdHBoKGRtYWJ1ZiwgZXh0ZW5kZWQsIFxcdTAwMjZzdGVlcmluZ190YWcsIFxcdTAwMjZsb2NhbF9waCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbXIuYy05NzItXFx0ZG1hX3Jlc3ZfdW5sb2NrKGRtYWJ1Zi1cXHUwMDNlcmVzdik7XFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jPTYyPXZmaW9fcGNpX2RtYV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jLTgyLVxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmM6ODM6c3RhdGljIGludCB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGJvb2wgZXh0ZW5kZWQsXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYy04NC1cXHRcXHRcXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS92ZmlvX3BjaV9kbWFidWYuYz0xMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyB2ZmlvX3BjaV9kbWFidWZfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM0LVxcdC5hdHRhY2ggPSB2ZmlvX3BjaV9kbWFfYnVmX2F0dGFjaCxcXG5kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jOjEzNTpcXHQuZ2V0X3BjaV90cGggPSB2ZmlvX3BjaV9kbWFfYnVmX2dldF9wY2lfdHBoLFxcbmRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lfZG1hYnVmLmMtMTM2LVxcdC5tYXBfZG1hX2J1ZiA9IHZmaW9fcGNpX2RtYV9idWZfbWFwLFxcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9Mzc9c3RydWN0IGRtYV9idWZfb3BzIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEyOC1cXHQgKlxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEyOTpcXHQgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgZG1hX2J1Zl9nZXRfcGNpX3RwaCgpLiBDYWxsZWQgd2l0aFxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMC1cXHQgKiBcXHUwMDI2ZG1hX2J1Zi5yZXN2IGhlbGQuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC1FT1BOT1RTVVBQIHdoZW5cXG4tLVxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTEzMy1cXHQgKiBSZXR1cm5lZCBtZXRhZGF0YSBmb2xsb3dzIHRoZSBsaWZldGltZSBydWxlcyBkb2N1bWVudGVkIGZvclxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjEzNDpcXHQgKiBkbWFfYnVmX2dldF9wY2lfdHBoKCkuXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmgtMTM1LVxcdCAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9kbWEtYnVmLmg9NTg4PXZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpO1xcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oOjU4OTppbnQgZG1hX2J1Zl9nZXRfcGNpX3RwaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBib29sIGV4dGVuZGVkLFxcbmluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oLTU5MC1cXHRcXHRcXHR1MTYgKnN0ZWVyaW5nX3RhZywgdTggKnBoKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjA6MDE6NDAuMDI4MjgyNjc2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNTQzNDA4NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRmluYWwgVGhvdWdodHMgb24gdGhlIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBubyBtb3JlIGluY29taW5nIGNhbGxzIOKAkyB0aW1lIHRvIGZpbmFsaXplIHRoaXMgY29uZmlndXJhdGlvbi4gVGhlIGZpbmFsIGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2Agc2VlbXMgc29saWQ6IGB2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhgIGFuZCBgcGNpZV90cGhfY29tcGxldGVyX3R5cGVgLiBUaG9zZSBhcmUgdGhlIGNvcmUgZWxlbWVudHMuXG5cbk5vdywgZm9yIHRoZSBgRW5hYmxlQ29uZmlnc2AuIFdlJ3ZlIGdvdCBgUENJRV9UUEhgIGFuZCBgUENJX1AyUERNQWAuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnksIGVzcGVjaWFsbHkgc2luY2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBETUEtQlVGIGFuZCBWRklPLlxuXG5BaCwgcmlnaHQsIGBDT05GSUdfVkZJT19QQ0lfRE1BQlVGYCBpcyBhIGBkZWZfYm9vbGAgYW5kIGRlcGVuZHMgb24gdGhlIG90aGVycywgc28gd2UgZG9uJ3QgbmVlZCB0byBzcGVjaWZ5IGl0IGV4cGxpY2l0bHksIHRoYXQncyB0YWtlbiBjYXJlIG9mLiBIb3dldmVyLCBgUENJX1AyUERNQWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgWk9ORV9ERVZJQ0VgLiBIbW0sIGlzIGBaT05FX0RFVklDRWAgYSBkZWZhdWx0IG9yIHNvbWV0aGluZyB3ZSAqbXVzdCogZW5hYmxlPyBTeXprYWxsZXIgY29uZmlncyB1c3VhbGx5IGhhdmUgaXQgZW5hYmxlZCwgYnV0IHRvIGJlIHNhZmUsIEknbGwgYWRkIGl0LiBObywgd2FpdCwgaG9sZCBvbi4gVGhlIGluc3RydWN0aW9ucyBzYXksIFwiRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0IHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS5cIiBgWk9ORV9ERVZJQ0VgIGlzIHF1aXRlIGdlbmVyaWMsIGJ1dCBgUENJX1AyUERNQWAgaXMgcXVpdGUgc3BlY2lmaWMuIE9rYXksIGxlYXZlIGl0IG9mZi5cblxuTGV0J3MgcmV2aWV3IHRoZSBwYXRjaCdzIHB1cnBvc2U6IGl0IGFkZHMgUENJZSBUTFAgUHJvY2Vzc2luZyBIaW50cyAoVFBIKSBzdXBwb3J0IHRvIERNQS1CVUYgYW5kIFZGSU8sIGFuZCB0aGUgbmV3IGBWRklPX0RFVklDRV9GRUFUVVJFX0RNQV9CVUZfVFBIYCBpb2N0bCBjYW4gYmUgZnV6emVkLiBUaGUgZHJpdmVyIGNvZGUgaXMgcmVhY2hhYmxlLiBUaGUgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLlxuXG5JcyB0aGVyZSBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBNYXliZSBgdmZpb19wY2lfZG1hX2J1Zl9nZXRfcGNpX3RwaGA/IEV2ZW4gdGhvdWdoIG1seDUgZG9lc24ndCBkaXJlY3RseSBjYWxsIGl0LCBjb3VsZCBzeXprYWxsZXIgZmluZCBhbm90aGVyIHdheT8gQnV0LCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNhbGxlcnMgaW4gdGhlIGtlcm5lbC4gU28sIG5vLiBJdCBjYW4ndCBiZSB0cmlnZ2VyZWQuXG5cbkxldCdzIGNoZWNrIGBtbHg1X3N0X2FsbG9jX2luZGV4X2J5X3RhZ2AgYW5kIGBtbHg1X3N0X2dldF9pbmRleGAuIFRoZXNlIGFyZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9zdC5jYC4gU2luY2UgbWx4NSBpcyBoYXJkd2FyZSBhbmQgbm90IGRpcmVjdGx5IHJlYWNoYWJsZSwgd2UgY2FuIGlnbm9yZSB0aGVtLlxuXG5TbywgSSB0aGluayB3ZSdyZSBnb29kLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCwgdGFyZ2V0ZWQgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ2NjksIk91dHB1dFRva2VucyI6MTY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIwOjAxOjQ5LjA4MjYyODAzOVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjkyNTI5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUENJRV9UUEhcIixcbiAgICBcIlBDSV9QMlBETUFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhcIixcbiAgICBcInBjaWVfdHBoX2NvbXBsZXRlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUENJRV9UUEhcIixcbiAgICBcIlBDSV9QMlBETUFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2ZmlvX3BjaV9jb3JlX2ZlYXR1cmVfZG1hX2J1Zl90cGhcIixcbiAgICBcInBjaWVfdHBoX2NvbXBsZXRlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBQQ0llIFRMUCBQcm9jZXNzaW5nIEhpbnRzIChUUEgpIHRvIERNQS1CVUYgYW5kIFZGSU8uIFRoZSBuZXcgaW9jdGwgVkZJT19ERVZJQ0VfRkVBVFVSRV9ETUFfQlVGX1RQSCBpcyByZWFjaGFibGUgYW5kIGNhbiBiZSBmdXp6ZWQuIFRoZSBjaGFuZ2VzIGluIGRyaXZlcnMvcGNpL3RwaC5jIGFuZCBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2RtYWJ1Zi5jIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowcc9mq[1] Phase: Succeeded StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 2026-07-02 20:02:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 2026-07-02 20:02:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[2] Phase: Running StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Running StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 2026-07-02 20:02:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-02 20:02:01 +0000 UTC FinishedAt: 2026-07-02 20:02:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcc9mq/series-workflowcc9mq-convert-artifact-2672939653/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Running StartedAt: 2026-07-02 20:02:11 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Running StartedAt: 2026-07-02 20:02:11 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*34bd08d4-0a3a-4abc-b1cf-ede6d82c7cc9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcc9mq/series-workflowcc9mq-convert-artifact-2672939653/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowcc9mq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vfio_pci_core_feature_dma_buf_tph","pcie_tph_completer_type"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["PCIE_TPH","PCI_P2PDMA"],"series_id":"df55e600-866b-4a21-82ff-ce942b1c92e8","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Running StartedAt: 2026-07-02 20:02:11 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*34bd08d4-0a3a-4abc-b1cf-ede6d82c7cc9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowcc9mq/series-workflowcc9mq-convert-artifact-2672939653/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}